OSDN Git Service

gcc/ChangeLog:
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
2
3         * value-prof.c (tree_ic_transform): Print counts.
4         * tree-profile.c (tree_gen_ic_func_profiler):
5         Clear __gcov_indreict_call_callee variable
6         to avoid misattribution of the profile.
7
8 2008-05-28  Rafael Espindola  <espindola@google.com>
9
10         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
11         invalid sharing.
12
13 2008-05-28  Richard Guenther  <rguenther@suse.de>
14
15         PR tree-optimization/36339
16         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
17         and clobbering code out of the loop.
18
19 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
20
21         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
22         letters defined.
23
24         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
25         s390_contiguous_bitmask_p, s390_symref_operand_p,
26         s390_check_symref_alignment, s390_reload_larl_operand,
27         s390_reload_symref_address): New functions.
28         (s390_branch_condition_mnemonic): Support compare and branch
29         instructions.
30         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
31         and 'W' constraints.
32         (s390_secondary_reload): Add secondary reloads for unaligned
33         symbol refs or symbol refs to floating point or QI/TI mode
34         integer values.
35         (legitimate_address_p): Accept symbol references as addresses.
36         (s390_expand_insv): Use rotate and insert selected bits
37         instruction for insv when building for z10.
38         (print_operand_address): Handle symbol ref addresses.
39         (print_operand): Output modifier 'c' added for signed byte
40         values.
41         (s390_encode_section_info): Mark symbol refs with
42         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
43
44         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
45         (length attribute): RRF, RRR have 4 byte length.
46         (FPALL, INTALL): New mode iterators added.
47         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
48         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
49         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
50         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
51         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
52         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
53         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
54         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
55         instructions.
56         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
57         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
58         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
59         reload<INTALL:mode><P:mode>_toreg_z10,
60         reload<FPALL:mode><P:mode>_tomem_z10,
61         reload<FPALL:mode><P:mode>_toreg_z10,
62         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
63         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
64         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
65         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
66         definition.
67         (movmem, clrmem, cmpmem): New splitters added.
68
69         * config/s390/predicates.md (larl_operand): Use
70         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
71         SYMBOL_REF_ALIGN1_P.
72         (s390_signed_integer_comparison,
73         s390_unsigned_integer_comparison): New predicates.
74
75         * config/s390/s390-protos.h (s390_check_symref_alignment,
76         s390_contiguous_bitmask_p, s390_reload_larl_operand,
77         s390_reload_symref_address,
78         s390_compare_and_branch_condition_mask): Prototypes added.
79
80         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
81         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
82         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
83
84 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
85
86         * config/s390/s390.c (z10_cost): New cost function for z10.
87         (s390_handle_arch_option, override_options): Support
88         -march=z10 switch.
89         (s390_issue_rate): Adjust issue rate for z10.
90         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
91         (processor_flags): Add PF_Z10.
92         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
93         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
94         * gcc/config.gcc: Add z10.
95
96 2008-05-28  Richard Guenther  <rguenther@suse.de>
97
98         PR tree-optimization/36291
99         * tree-flow. h (struct gimple_df): Remove var_anns member.
100         * tree-flow-inline.h (gimple_var_anns): Remove.
101         (var_ann): Simplify.
102         * tree-dfa.c (create_var_ann): Simplify.
103         (remove_referenced_var): Clear alias info from var_anns of globals.
104         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
105         (delete_tree_ssa): Clear alias info from var_anns of globals.
106         Do not free var_anns.
107         (var_ann_eq): Remove.
108         (var_ann_hash): Likewise.
109
110 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
111
112         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
113         and loongson2f entries.
114         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
115         * config/mips/mips.h (processor_type): Add Loongson-2E
116         and Loongson-2F entries.
117         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
118         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
119         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
120         * doc/invoke.texi (MIPS Options): Document loongson2e
121         and loongson2f processor names.
122
123 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
124
125         PR target/35767
126         PR target/35771
127         * config/i386/i386.c (ix86_function_arg_boundary): Use
128         alignment of canonical type.
129         (ix86_expand_vector_move): Check unaligned memory access for
130         all SSE modes.
131
132 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
133
134         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
135         Moved to the front of file.
136
137 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
138             H.J. Lu  <hongjiu.lu@intel.com>
139
140         * dwarf2out.c (current_fde): New.
141         (add_cfi): Use it.
142         (lookup_cfa:): Likewise.
143         (dwarf2out_end_epilogue): Likewise.
144         (dwarf2out_note_section_used): Likewise.
145
146 2008-05-27  Michael Matz  <matz@suse.de>
147
148         PR c++/27975
149         * c.opt (Wenum-compare): New warning option.
150         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
151
152 2008-05-27  Michael Matz  <matz@suse.de>
153
154         PR middle-end/36326
155         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
156         non-BLKmode types.
157         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
158         into memory as tail calls.
159
160 2008-05-27  Richard Guenther  <rguenther@suse.de>
161
162         PR tree-optimization/36339
163         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
164         pointers cause all addressable variables to be call clobbered.
165
166 2008-05-27  Richard Guenther  <rguenther@suse.de>
167
168         PR tree-optimization/36245
169         * tree-ssa-address.c (add_to_parts): Deal with non-pointer
170         bases.
171
172 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
173
174         * config/s390/s390.md: Replace all occurences of the 'm'
175         constraint with 'RT'.
176
177 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
178
179         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
180         definitions added.
181         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
182         "*movdi_64".
183         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
184         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
185         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
186
187 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
188
189         * reload.c: (find_reloads): Skip alternatives according to the
190         "enabled" attribute. Constify the constraint variable.
191         * recog.c (get_attr_enabled): Add default implementation.
192         (extract_insn): Set the alternative_enabled_p array
193         in the recog_data struct.
194         (preprocess_constraints, constrain_operands): Skip
195         alternatives according to the "enabled" attribute
196         * recog.h (struct recog_data): New field alternative_enabled_p.
197         (skip_alternative): New inline function.
198         * regclass.c: (record_operand_costs): Check the "enabled"
199         attribute.
200         (record_reg_classes): Skip alternative according to the
201         "enabled" attribute.
202
203         * doc/md.texi: Add documention for the "enabled" attribute.
204
205 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
206
207         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
208         * postreload.c (reload_cse_simplify_operands): Replace 'm'
209         constraint with TARGET_MEM_CONSTRAINT.
210         * recog.c (asm_operand_ok, preprocess_constraints,
211         constrain_operands): Likewise.
212         * regclass.c (record_reg_classes): Likewise.
213         * reload.c (find_reloads, alternative_allows_const_pool_ref):
214         Likewise.
215         * reload1.c (maybe_fix_stack_asms): Likewise.
216         * stmt.c (parse_output_constraint, parse_input_constraint):
217         Likewise.
218         * recog.h: Adjust comment.
219         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
220         * genoutput.c (note_constraint): Don't emit error for 'm'
221         constraint.
222         * doc/md.texi: Add a note to description of 'm' constraint.
223         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
224
225 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
226
227         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
228         that the bitfield is of integral type before testing its precision.
229
230 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
231             Sa Liu  <saliu@de.ibm.com> 
232
233         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
234         __modti3, __udivti3, __umodti3 and __udivmodti4.
235         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
236         that implement TImode mul and div functions.
237         * config/spu/multi3.c: New. Implement __multi3.
238         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
239         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
240         functions on SPU.
241
242 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
243
244         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
245         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
246         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
247         tls_sysv_suffix): New mode and mode attribute iterators.
248         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
249         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
250         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
251         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
252         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
253         iterators.
254
255 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
256
257         PR tree-optimization/36329
258         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
259         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
260         * cgraphbuild.c (initialize_inline_failed): Use the latter
261         macro in lieu of the former.
262         * ipa-inline.c (cgraph_mark_inline): Likewise.
263         (cgraph_decide_inlining_of_small_function): Likewise.
264         (cgraph_decide_inlining): Likewise.
265         (cgraph_decide_inlining_incrementally): Likewise.
266
267 2008-05-26  Tristan Gingold  <gingold@adacore.com>
268             Anatoly Sokolov  <aesok@post.ru>
269
270         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
271         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
272         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
273         optimization for 'avr6' architecture.
274
275 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
276
277         PR target/34932
278         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
279
280 2008-05-26  Richard Guenther  <rguenther@suse.de>
281
282         * tree-ssa-sccvn.c (expr_has_constants): Declare.
283         (visit_reference_op_load): Initialize VN_INFO->has_constants
284         properly.
285
286 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
287
288         PR middle-end/36253
289         * caller-save.c (insert_restore): Verify alignment of spill
290         space.
291         (insert_save): Likewise.
292
293         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
294
295         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
296         (STACK_SLOT_ALIGNMENT): Likewise.
297
298         * function.c (LOCAL_ALIGNMENT): Removed.
299         (get_stack_local_alignment): New.
300         (assign_stack_local): Use it.  Set alignment on stack slot.
301         (assign_stack_temp_for_type): Use get_stack_local_alignment.
302
303         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
304         (STACK_SLOT_ALIGNMENT): New.
305
306         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
307         stack slot in XFmode.
308
309         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
310
311 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
312
313         PR/36321
314         * config/i386/i386.md (allocate_stack_worker_64): Make sure
315         argument operand in rax isn't removed.
316
317 2008-05-26  Richard Guenther  <rguenther@suse.de>
318
319         PR middle-end/36300
320         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
321         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
322
323 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
324
325         PR bootstrap/36331
326         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
327
328 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
329
330         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
331         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
332
333 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
334
335          * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
336         build a trampoline if we don't want one.
337         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
338         return zero for nested functions if we don't want a trampoline.
339
340 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
341
342         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
343
344 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
345
346         PR fortran/18428
347         * c.opt: Removed undocumented option '-lang-fortran'.
348         * c-common.h: Removed global variable 'lang_fortran'.
349         * c-opts.c (c_common_handle_option): Removed code to handle
350         option '-lang-fortran'. Updated includes.
351         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
352         definition of '__GFORTRAN__'.
353         (define__GNUC__): Reimplemented to use BASEVER and
354         cpp_define_formatted.
355         (builtin_define_with_value_n): Removed.
356         * c-incpath.h: Renamed to ...
357         * incpath.h: ... this.
358         * c-incpath.c: Renamed to ...
359         * incpath.c: ... this. Updated includes.
360         * fix-header.c: Updated includes.
361         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
362         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
363         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
364
365 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
366
367         * tree.h: Update the table of flags used on tree nodes.
368         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
369         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
370         (FORCED_LABEL): Add access check.
371         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
372         (ASM_INPUT_P): Likewise.
373         (ASM_VOLATILE_P): Likewise.
374         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
375         (OMP_SECTION_LAST): Access private_flag directly.
376         (OMP_RETURN_NOWAIT): Likewise.
377         (OMP_PARALLEL_COMBINED): Likewise.
378         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
379         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
380         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
381         deprecated_flag directly.
382
383 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
384
385         * final.c (frame_pointer_needed): Removed.
386         * flags.h (frame_pointer_needed): Likewise.
387
388         * function.h (rtl_data): Add frame_pointer_needed.
389         (frame_pointer_needed): New.
390
391 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
392
393         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
394
395 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
396
397         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
398         SRC is a REG.
399
400 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
401
402         * c-common.c (strip_array_types): Move function to..
403         * tree.c: ..here.
404         (get_inner_array_type): Delete.
405         * c-common.h (strip_array_types): Move declaration to..
406         * tree.h: ..here.
407         (get_inner_array_type): Delete.
408         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
409         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
410         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
411         * config/pa/pa.c (emit_move_sequence): Likewise.
412
413 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
414
415         * config/i386/i386.md (*sse_prologue_save_insn): Set length
416         attribute to 34.
417
418 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
419
420         * function.c: Include target hook for nonlocal_goto frame value.
421
422 2008-05-24  Richard Guenther  <rguenther@suse.de>
423
424         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that
425         a scalar variable can be only accessed through a pointer
426         or a union.
427
428 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
429
430         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
431         * doc/extend.texi: Likewise.
432
433 2008-05-23  DJ Delorie  <dj@redhat.com>
434
435         * config/m32c/jump.md (untyped_call): Add.
436
437         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
438         for A24 to PSImode.
439         (m32c_address_cost): Detail costs for indirect offsets.
440
441 2008-05-23  Rafael Espindola  <espindola@google.com>
442
443         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
444         if a node is a SUBREG.
445         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
446         is a SUBREG.
447
448 2008-05-23  Paul Brook  <paul@codesourcery.com>
449             Carlos O'Donell  <carlos@codesourcery.com>
450
451         * doc/extend.texi: Clarify use of __attribute__((naked)).
452         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
453         * target.h (gcc_target): Add allocate_stack_slots_for_args.
454         * function.c (use_register_for_decl): Use
455         targetm.calls.allocate_stack_slots_for_args.
456         * target-def.h (TARGET_CALLS): Add 
457         TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
458         * config/arm/arm.c (arm_allocate_stack_slots_for_args): 
459         New function.
460         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
461
462 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
463
464         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
465
466 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
467
468         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
469         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
470         is only rounded once.
471
472 2008-05-23  Richard Guenther  <rguenther@suse.de>
473
474         * tree-ssa-operands.c (mark_difference_for_renaming): Use
475         bitmap_xor.
476
477 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
478             Jakub Jelinek  <jakub@redhat.com>
479
480         PR target/36079
481         * configure.ac: Handle --enable-cld.
482         * configure: Regenerated.
483         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
484         * config/i386/i386.h (struct machine_function): Add needs_cld field.
485         (ix86_current_function_needs_cld): New define.
486         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
487         (cld): New isns pattern.
488         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
489         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
490         * config/i386/i386.opt (mcld): New option.
491         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
492         TARGET_CLD and ix86_current_function_needs_cld.
493         (override_options): Use -mcld by default for 32-bit code if
494         USE_IX86_CLD.
495
496         * doc/install.texi (Options specification): Document --enable-cld.
497         * doc/invoke.texi (Machine Dependent Options)
498         [i386 and x86-64 Options]: Add -mcld option.
499         (Intel 386 and AMD x86-64 Options): Document -mcld option.
500
501 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
502         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
503         (return_in_memory_64): Likewise.
504         (return_in_memory_ms_64): Likewise.
505
506 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
507
508         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
509         * builtins.c (fold_builtin_fpclassify): New.
510         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
511         * builtins.def (BUILT_IN_FPCLASSIFY): New.
512         * c-common.c (handle_type_generic_attribute): Adjust to accept
513         fixed arguments before an elipsis.
514         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
515         * doc/extend.texi: Document __builtin_fpclassify.
516
517 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
518
519         * omp-low.c (gate_expand_omp_ssa): Remove.
520         (pass_expand_omp_ssa): Remove.
521         (gate_expand_omp): Do not check for flag_openmp_ssa.
522         * common.opt (-fopenmp-ssa): Remove.
523         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
524
525 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
526
527         * config/sh/sh.opt (mfixed-range): New option.
528         * config/sh/sh-protos.h (sh_fix_range): Declare.
529         * config/sh/sh.c (sh_fix_range): New function.
530         * config/sh/sh.h (sh_fixed_range_str): Declare.
531         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
532         is not empty.
533         * doc/invoke.texi (SH Options): Document -mfixed-range.
534
535 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
536
537         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
538         it before the redeclaration.
539
540 2008-05-22  Anatoly Sokolov <aesok@post.ru>
541
542         * config/avr/avr.c (get_sequence_length): Add new function.
543         (expand_prologue, expand_epilogue): Remove duplicate code.
544
545 2008-05-22  Rafael Espindola  <espindola@google.com>
546
547         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
548         sharing.
549
550 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
551
552         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
553         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
554
555         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
556         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
557         (vect_update_misalignment_for_peel): Likewise.
558         (vector_alignment_reachable_p): Likewise.
559         * tree-vect-transform.c (vectorizable_load): Likewise.
560         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
561         (get_vectype_for_scalar_type): Pass mode of scalar_type
562         to UNITS_PER_SIMD_WORD.
563
564         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
565         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
566         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
567         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
568         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
569
570 2008-05-22  Ira Rosen  <irar@il.ibm.com>
571
572         PR tree-optimization/36293
573         * tree-vect-transform.c (vect_transform_strided_load): Don't check
574         if the first load must be skipped because of a gap.
575
576 2008-05-22  Richard Guenther  <rguenther@suse.de>
577
578         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
579         more cases of offset disambiguation that is possible if
580         strict-aliasing rules apply.
581         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
582         for basic offset and type-based disambiguation.
583
584 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
585
586         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
587         ix86_expand_vector_set on V16QImode for SSE4.1.
588
589 2008-05-21  Tom Tromey  <tromey@redhat.com>
590
591         * c.opt (Wimport): Mark as undocumented.
592         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
593         -Wno-import.
594         (Warning Options): Likewise.
595         * doc/cppopts.texi: Don't mention -Wimport.
596
597 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
598
599         PR tree-optimization/36287
600         PR tree-optimization/36286
601         * lambda-code.c (build_access_matrix): Do not use the loop->num
602         for computing the number of induction variables: use the loop depth
603         instead.
604
605 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
606
607         PR/36280
608         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
609         option -f(no-)leading-underscore.
610
611 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
612
613         * config/i386/i386.c (ix86_expand_vector_init_general): Use
614         GET_MODE_NUNITS (mode).
615
616 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
617
618         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
619         (-mmulhw): Add 464 to description.
620         (-mdlmzb): Likewise.
621         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
622         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
623         464fp entries.
624         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
625         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
626         * config/rs6000/rs6000.md: Update comments for 464.
627
628 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
629
630         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
631
632 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
633
634         * config/i386/sse.md (vec_extractv4sf): Removed.
635         (vec_extractv2df): Likewise.
636         (vec_extractv2di): Likewise.
637         (vec_extractv4si): Likewise.
638         (vec_extractv8hi): Likewise.
639         (vec_extractv16qi): Likewise.
640         (vec_extract<mode>): New.
641
642 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
643
644         * config/i386/sse.md (vec_setv4sf): Removed.
645         (vec_setv2df): Likewise.
646         (vec_setv2di): Likewise.
647         (vec_setv4si): Likewise.
648         (vec_setv8hi): Likewise.
649         (vec_setv16qi): Likewise.
650         (vec_set<mode>): New.
651
652 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
653
654         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
655         goto for vec_concat and vec_interleave.
656
657 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
658
659         * config/i386/sse.md (vec_initv4sf): Removed.
660         (vec_initv2df): Likewise.
661         (vec_initv2di): Likewise.
662         (vec_initv4si): Likewise.
663         (vec_initv8hi): Likewise.
664         (vec_initv16qi): Likewise.
665         (vec_init<mode>): New.
666
667 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
668
669         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
670
671 2008-05-21  Tom Tromey  <tromey@redhat.com>
672
673         * ggc-zone.c (lookup_page_table_if_allocated): New function.
674         (zone_find_object_offset): Likewise.
675         (gt_ggc_m_S): Likewise.
676         (highest_bit): Likewise.
677         * ggc-page.c (gt_ggc_m_S): New function.
678         * stringpool.c (string_stack): Remove.
679         (init_stringpool): Update.
680         (ggc_alloc_string): Use ggc_alloc.
681         (maybe_delete_ident): New function.
682         (ggc_purge_stringpool): Likewise.
683         (gt_ggc_m_S): Remove.
684         * ggc-common.c (ggc_protect_identifiers): New global.
685         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
686         ggc_protect_identifiers.
687         * ggc.h (ggc_protect_identifiers): Declare.
688         (gt_ggc_m_S): Update.
689         (ggc_purge_stringpool): Declare.
690         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
691         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
692         special case.
693         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
694
695 2008-05-21  David S. Miller  <davem@davemloft.net>
696
697         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
698         tmake_file.
699
700 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
701
702         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
703         once finished.
704
705 2008-05-20  David Daney  <ddaney@avtrex.com>
706
707         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
708         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
709         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
710         UNSPEC_UPDATE_GOT_VERSION): Renumber.
711         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
712         (atomic_hiqi_op): New define_code_iterator.
713         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
714         mips_expand_compare_and_swap_12.
715         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
716         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
717         (sync_<optab><mode>, sync_old_<optab><mode>,
718         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
719         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
720         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
721         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
722         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
723         (test_and_set_12): New insn.
724         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
725         sync_new_<optab><mode>, sync_old_nand<mode>,
726         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
727         clobber to operand 0 for SI and DI mode insns.
728         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
729         mips_gen_fn_4): New typedefs.
730         (mips_gen_fn_ptrs): Define new union type.
731         (mips_expand_compare_and_swap_12): Remove declaration.
732         (mips_expand_atomic_qihi): Declare function.
733         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
734         (mips_expand_atomic_qihi): ... this.  Use new generator function
735         parameter.
736         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
737         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
738         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP,
739         MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
740         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
741         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
742         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
743         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
744         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
745         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
746         MIPS_SYNC_EXCHANGE_12_ZERO_OP,
747         MIPS_SYNC_EXCHANGE_12_NONZERO_OP): New macros.
748
749 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
750
751         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
752         the missing break.
753
754 2008-05-20  Anatoly Sokolov <aesok@post.ru>
755
756         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
757         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
758         (avr_attribute_table): Add 'OS_main' function attribute.
759         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
760         functions with 'OS_main' attribute.
761
762 2008-05-20  Richard Guenther  <rguenther@suse.de>
763
764         PR tree-optimization/35204
765         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
766         helper, split out from ...
767         (DFS): ... here.  Make the DFS walk non-recursive.
768
769 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
770             Jan Sjodin  <jan.sjodin@amd.com>
771
772         PR tree-optimization/36181
773         * tree-parloops.c (loop_has_vector_phi_nodes): New.
774         (parallelize_loops): Don't parallelize when the loop has vector
775         phi nodes.
776
777 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
778             Sebastian Pop  <sebastian.pop@amd.com>
779
780         * tree-loop-linear.c (gather_interchange_stats): Look in the access
781         matrix, and never look at the tree representation of the memory
782         accesses.
783         (linear_transform_loops): Computes parameters and access matrices.
784         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
785         when fails.
786         (access_matrix_get_index_for_parameter): New.
787         * tree-data-ref.h (struct access_matrix): New.
788         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
789         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
790         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
791         am_vector_index_for_loop): New.
792         (struct data_reference): Add field access_matrix.
793         (DR_ACCESS_MATRIX): New.
794         (compute_data_dependences_for_loop): Update declaration.
795         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
796         * lambda.h (lambda_vector_vec_p): Declared.
797         * lambda-code.c: Depend on pointer-set.h.
798         (lambda_collect_parameters_from_af, lambda_collect_parameters,
799         av_for_af_base, av_for_af, build_access_matrix,
800         lambda_compute_access_matrices): New.
801         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
802
803 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
804
805         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
806         $SOURCEDIR/include.
807
808 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
809             Sebastian Pop  <sebastian.pop@amd.com>
810
811         PR tree-optimization/36206
812         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
813         FOLD_CONVERSIONS.
814         (instantiate_scev_1): Rename flags to fold_conversions.
815         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
816         outeside instantiation_loop.
817         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
818         (evolution_function_is_affine_or_constant_p): Removed.
819         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
820         instantiate_scev.
821         (analyze_siv_subscript): Pass in the loop nest number.
822         Call evolution_function_is_affine_in_loop instead of 
823         evolution_function_is_affine_p.
824         (analyze_overlapping_iterations): Pass in the loop nest number.
825
826 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
827             Sebastian Pop  <sebastian.pop@amd.com>
828
829         PR tree-optimization/36206
830         * tree-chrec.h (chrec_fold_op): New.
831         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
832         and other trees.
833
834 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
835
836         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
837         (DIRS_EQ): New.
838         (remove_duplicates): Do not set inode on non-inode systems.
839         Use DIRS_EQ.
840
841 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
842
843         * config.gcc (tm_file): Update comments about relative pathnames.
844
845 2008-05-20  Richard Guenther  <rguenther@suse.de>
846
847         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
848         * tree-ssa-sccvn.c (process_scc): Likewise.
849         * tree-ssa-sink.c (execute_sink_code): Likewise.
850         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
851         * tree-vrp.c (process_assert_insertions): Likewise.
852         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
853         (perform_tree_ssa_dce): Likewise.
854         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
855         (dump_dominator_optimization_stats): Likewise.
856         * tree-vectorizer.c (vectorize_loops): Likewise.
857
858 2008-05-20  Richard Guenther  <rguenther@suse.de>
859
860         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
861
862 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
863
864         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
865         (ix86_i386elf_return_in_memory): Likewise.
866         (ix86_i386interix_return_in_memory): Likewise.
867         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
868         (SUBTARGET_RETURN_IN_MEMORY): New.
869         * config/i386/i386elf.h: Likewise.
870         * config/i386/ptx4-i.h: Likewise.
871         * config/i386/sol2-10.h: Likewise.
872         * config/i386/sysv4.h: Likewise.
873         * config/i386/vx-common.h: Likewise.
874         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
875         * config/i386/i386.c (ix86_return_in_memory): Made static and
876         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
877         (ix86_i386elf_return_in_memory): Removed.
878         (ix86_i386interix_return_in_memory): Removed.
879         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
880         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
881
882 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
883
884         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
885
886 2008-05-19  Xinliang David Li  <davidxl@google.com>
887
888         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
889         * opts.c: Ditto.
890         * common.opt: Ditto.
891         * doc/invoke.texi: Ditto.
892
893 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
894
895         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
896         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
897
898 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
899
900         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
901         sizes of operand array from 8/4 to 4/2.
902         (ix86_expand_vector_init_general): Change size of operand array
903         from 32 to 16.  Remove op0, op1 and half_mode.
904
905 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
906
907         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
908         (ix86_expand_vector_init_interleave): Likewise.
909         (ix86_expand_vector_init_general): Use them.  Assert word_mode
910         == SImode when n_words == 4.
911
912 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
913
914         * config/i386/i386.c (ix86_secondary_reload): New static function.
915         (TARGET_SECONDARY_RELOAD): New define.
916         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
917         * config/i386/i386.md (reload_outqi): Remove.
918
919 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
920
921         PR middle-end/35509
922         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
923         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
924         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
925         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
926         (fold_builtin_1): Likewise.
927         * builtins.def (BUILT_IN_ISINF_SIGN): New.
928         c-common.c (check_builtin_function_arguments): Handle
929         BUILT_IN_ISINF_SIGN.
930         * doc/extend.texi: Document __builtin_isinf_sign.
931         * fold-const.c (operand_equal_p): Handle COND_EXPR.
932
933 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
934
935         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
936         EH cleanup at the end of the pass, search for those that have been
937         turned into forwarder blocks and do the cleanup on their successor.
938
939 2008-05-18  Richard Guenther  <rguenther@suse.de>
940
941         * tree-cfg.c (verify_gimple_expr): Allow conversions from
942         pointers to sizetype and vice versa.
943
944 2008-05-18 Xinliang David Li   <davidxl@google.com>
945
946         * gcc/tree-ssa-dce.c: Coding style fix.
947         (check_pow): Documentation comment. 
948         (check_log): Documenation comment. Coding style fix.
949         (is_unnecessary_except_errno_call): Ditto.
950         (gen_conditions_for_pow): Ditto.
951         (gen_conditions_for_log): Ditto.
952         (gen_shrink_wrap_conditions): Ditto.
953         (shrink_wrap_one_built_in_calls): Ditto.
954         * gcc/doc/invoke.texi: Better documentation string.
955         * ChangeLog: Fix wrong change log entries from 
956         May 17 checkin on function call DCE.
957
958 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
959
960         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
961
962 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
963
964         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
965         * df-problems.c (simulation routines): Fixed block comment to
966         properly say how to add forwards scanning functions.
967         
968 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
969
970         * tree-inline.c (setup_one_parameter): Remove dead code.
971
972 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
973
974         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
975         a BIT_AND_EXPR only for an INTEGER_TYPE.
976
977 2008-05-17 Xinliang David Li   <davidxl@google.com>
978
979         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
980         (check_pow, check_log, is_unnecessary_except_errno_call): New 
981         functions to check for eliminating math functions that are pure 
982         except for setting errno.
983         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
984         general condition expressions for shrink-wrapping pow/log calls.
985         (gen_shrink_wrap_conditions): Ditto.
986         (shrink_wrap_one_built_in_call): Ditto.
987         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
988         (mark_operand_necessary): If debugging, output if OP is necessary.
989         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
990         unnecessary.
991         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
992         opt level >= 2.
993         * gcc/common.opt: New user flag -ftree-builtin-dce.
994         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
995
996 2008-05-16  David S. Miller  <davem@davemloft.net>
997
998         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
999         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
1000
1001 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
1002
1003         PR target/36246
1004         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
1005
1006 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1007
1008         * ifcvt.c (dead_or_predicable): Rename
1009         df_simulate_one_insn_backwards to df_simulate_one_insn.
1010         * recog.c (peephole2_optimize): Ditto.
1011         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
1012         Ditto.
1013         * df.h: Rename df_simulate_one_insn_backwards to
1014         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
1015         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
1016         scanning of defs and uses.
1017         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
1018         (df_simulate_one_insn_forwards): Removed.
1019
1020 2008-05-16  Doug Kwan  <dougkwan@google.com>
1021
1022         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
1023         QNaN & SNaN.
1024         (real_from_string): Handle NaNs and Inf as approriate.
1025
1026 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
1027
1028         * doc/gty.texi (Source Files Containing Type Information): Note
1029         that headers should appear first in the gtfiles list.
1030
1031 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1032
1033         * tree.def (COND_EXEC): Properly documented this code.
1034
1035 2008-05-16  Diego Novillo  <dnovillo@google.com>
1036
1037         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
1038         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
1039         the new field.
1040
1041 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1042
1043         * tree-ssa-dse (max_stmt_uid): Removed.
1044         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
1045         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
1046         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
1047         * function.h (cfun.last_stmt_uid): New field.
1048         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
1049         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
1050         New functions.
1051         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
1052         (create_stmt_ann): Initialize the ann->uid field.
1053         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
1054         with new calls.
1055         * tree-flow.h (renumber_gimple_stmt_uids): New function.
1056
1057 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
1058
1059         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
1060         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
1061         (init_empty_tree_cfg): Call it.
1062
1063 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1064
1065         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
1066         Update all users.
1067
1068 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1069
1070         * doc/invoke.text (-fdump-tree-*-verbose): New option.
1071         * tree-dump.c (dump_options): New verbose option.
1072         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
1073         Add verbose dump.
1074         * tree-pass.h (TDF_VERBOSE): New dump flag.
1075         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
1076         (tree-flow.h): Added include.
1077         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
1078
1079 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
1080
1081         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
1082
1083         From Jie Zhang  <jie.zhang@analog.com>
1084         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1085         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
1086         mcpu=bf561-none and mcpu=bf561-0.2.
1087         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1088         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
1089         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1090         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
1091         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
1092         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
1093         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
1094         option.
1095         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
1096         (cputype_selected): Remove.
1097         (bfin_handle_option): Don't use cputype_selected.
1098         (override_options): When no mcpu option, enable all workarounds.
1099         Don't use bfin_workarounds.
1100         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
1101         processor type.
1102         (DEFAULT_CPU_TYPE): Don't define.
1103
1104 2008-05-16  Richard Guenther  <rguenther@suse.de>
1105
1106         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
1107         on deletion of the last stmt.
1108
1109 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
1110
1111         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
1112         V8HImode for SSE2 and V16QImode for SSE4.1.
1113
1114 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
1115
1116         * cgraph.h (compute_inline_parameters): Made public.
1117         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
1118         variable_generate_summary, function_write_summary,
1119         variable_write_summary, variable_read_summary.  Added generate_summary,
1120         write_summary, read_summary.
1121         * cgraphunit.c (cgraph_process_new_functions): Changed call from
1122         pass_ipa_inline.function_generate_summary, to
1123         compute_inline_parameters. 
1124         * ipa-inline.c (compute_inline_parameters): Made public and added
1125         node parameter.
1126         (compute_inline_parameters_for_current): New function.
1127         (pass_inline_param): Now calls compute_inline_parameters_for_current.
1128         (inline_generate_summary): Removed parameter and made to loop over
1129         all cgraph nodes.
1130         (pass_ipa_inline): Updated for new IPA_PASS structure.
1131         * passes.c (execute_ipa_summary_passes): Now is called once per
1132         pass rather than once per node*pass.
1133         
1134 2008-05-15  Anatoly Sokolov <aesok@post.ru>
1135
1136         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
1137         avr_have_mul_p, avr_asm_only_p): Remove variables.
1138         (avr_override_options): Remove initialization of removed variables.
1139         (avr_file_start):  Convert removed variables to fields of 
1140         'struct base_arch_s *avr_current_arch'. 
1141         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
1142         (AVR_HAVE_MUL): (Ditto.).
1143         (AVR_HAVE_MOVW): (Ditto.).
1144         (AVR_HAVE_LPMX): (Ditto.). 
1145         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
1146         avr_asm_only_p): Remove declaration.
1147
1148 2008-05-15  Diego Novillo  <dnovillo@google.com>
1149
1150         * config/arm/arm.c (arm_return_in_memory): Fix return type.
1151         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
1152
1153 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
1154
1155         PR middle-end/36194
1156         * combine.c (check_conversion): Rename back to check_promoted_subreg.
1157         Don't call record_truncated_value from here.
1158         (record_truncated_value): Turn it into a for_each_rtx callback.
1159         (record_truncated_values): New function.
1160         (combine_instructions): Call note_uses with record_truncated_values.
1161         Change name of check_conversion to check_promoted_subreg. 
1162
1163 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
1164
1165         * doc/sourcebuild.texi: Document support for torture tests.
1166
1167 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
1168
1169         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
1170         to alternative 4 of operand 2.
1171
1172 2008-05-15  Richard Guenther  <rguenther@suse.de>
1173
1174         * tree-pass.h (current_pass): Declare.
1175         (get_pass_for_id): Likewise.
1176         * passes.c (passes_by_id, passes_by_id_size): New globals.
1177         (set_pass_for_id): New function.
1178         (get_pass_for_id): Likewise.
1179         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
1180         (execute_function_todo): Flush per function statistics.
1181         * toplev.c (compile_file): Init statistics.
1182         (general_init): Do early statistics initialization.
1183         (finalize): Finish statistics.
1184         * statistics.h (statistics_early_init): Declare.
1185         (statistics_init): Likewise.
1186         (statistics_fini): Likewise.
1187         (statistics_fini_pass): Likewise.
1188         (statistics_counter_event): Likewise.
1189         (statistics_histogram_event): Likewise.
1190         * statistics.c: New file.
1191         * Makefile.in (OBJS-common): Add statistics.o.
1192         (statistics.o): Add dependencies.
1193         * doc/invoke.texi (-fdump-statistics): Document.
1194
1195         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
1196         (insert): Likewise.
1197         (execute_pre): Use statistics_counter_event.
1198         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
1199         (substitute_and_fold): Increment it.  Use statistics_counter_event.
1200
1201 2008-05-15  Diego Novillo  <dnovillo@google.com>
1202
1203         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
1204
1205         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
1206         * tree-ssa-alias.c (new_type_alias): Remove references to
1207         sub-variables from comment.
1208         * tree-ssa-operands.c (swap_tree_operands): Likewise.
1209
1210 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
1211
1212         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
1213         attribute to 1 only for insertps alternative.
1214
1215 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1216
1217         * config/bfin/bfin.md (loadbytes): New pattern.
1218         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
1219         (bfin_init_builtins): Initialize it.
1220         (bdesc_1arg): Add it.
1221
1222 2008-05-15  Sa Liu  <saliu@de.ibm.com>
1223
1224         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
1225         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
1226         * testsuite/lib/target-supports.exp: Add
1227         check_effective_target_fortran_integer_16.
1228
1229 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1230
1231         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
1232         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
1233         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
1234         (TARGET_RETURN_IN_MEMORY): Define.
1235
1236 2008-05-15  Richard Guenther  <rguenther@suse.de>
1237
1238         PR middle-end/36244
1239         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
1240         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
1241         represent unmodifiable vars.
1242
1243 2008-05-15  Richard Guenther  <rguenther@suse.de>
1244
1245         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
1246         INDIRECT_REF and TARGET_MEM_REF.
1247         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
1248         TARGET_MEM_REF.
1249
1250 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
1251             H.J. Lu  <hongjiu.lu@intel.com>
1252
1253         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
1254         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
1255         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
1256         insn alternatives.  Add missing alternatives.
1257         (*vec_concatv2di_rex64_sse4_1): Likewise.
1258         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
1259         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
1260         Require TARGET_SSE.
1261
1262 2008-05-15  Richard Guenther  <rguenther@suse.de>
1263
1264         PR tree-optimization/36009
1265         PR tree-optimization/36204
1266         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
1267         (determine_invariantness_stmt): Record the loop a store is
1268         always executed in.
1269         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
1270         dependency.
1271
1272 2008-05-15  Richard Guenther  <rguenther@suse.de>
1273
1274         PR tree-optimization/34330
1275         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
1276         through the pointer will alias the SMT.
1277
1278 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
1279
1280         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
1281
1282 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
1283
1284         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
1285
1286 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1287             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
1288
1289         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
1290         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
1291         (vashl_optab): New optab for vector/vector shifts.
1292         (vashr_optab): Ditto.
1293         (vlshr_optab): Ditto.
1294         (vrotl_optab): Ditto.
1295         (vrotr_optab): Ditto.
1296         (optab_subtype): New enum for optab_for_tree_code call.
1297         (optab_for_tree_code): Add enum optab_subtype argument.
1298
1299         * optabs.c (optab_for_tree_code): Take an additional argument to
1300         distinguish between a vector shift by a scalar and vector shift by
1301         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
1302         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
1303         vector shift by a vector.
1304         (expand_widen_pattern_expr): Pass additional argument to
1305         optab_for_tree_code.
1306
1307         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
1308         vrotl_optab, vrotr_optab.
1309
1310         * expr.c (expand_expr_real_1): Update calls to
1311         optab_for_tree_code to distinguish between vector shifted by a
1312         scalar and vector shifted by a vector.
1313         * tree-vectorizer.c (supportable_widening_operation): Ditto.
1314         (supportable_narrowing_operation): Ditto.
1315         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
1316         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
1317         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
1318         (vect_create_epilog_for_reduction): Ditto.
1319         (vectorizable_reduction): Ditto.
1320         (vectorizable_operation): Ditto.
1321         (vect_strided_store_supported): Ditto.
1322         (vect_strided_load_supported): Ditto.
1323         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
1324         * expmed.c (expand_shift): Ditto.
1325
1326         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
1327         scalar type.
1328         (ashr@var{m}3): Ditto.
1329         (vashl@var{m}3): Document new vector/vector shift standard name.
1330         (vashr@var{m}3): Ditto.
1331         (vlshr@var{m}3): Ditto.
1332         (vrotl@var{m}3): Ditto.
1333         (vrotr@var{m}3): Ditto.
1334
1335         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
1336         (PPERM_INVERT): Ditto.
1337         (PPERM_REVERSE): Ditto.
1338         (PPERM_REV_INV): Ditto.
1339         (PPERM_ZERO): Ditto.
1340         (PPERM_ONES): Ditto.
1341         (PPERM_SIGN): Ditto.
1342         (PPERM_INV_SIGN): Ditto.
1343         (PPERM_SRC1): Ditto.
1344         (PPERM_SRC2): Ditto.
1345
1346         * config/i386/sse.md (mulv2di3): Add SSE5 support.
1347         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
1348         allows a memory operand to be the value being added, and split it
1349         to improve vectorization.
1350         (sse5_pmacsdqh_mem): Ditto.
1351         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
1352         (sse5_mulv2div2di3_high): Ditto.
1353         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
1354         (vec_pack_trunc_v4si): Ditto.
1355         (vec_pack_trunc_v2di): Ditto.
1356         (sse5_pcmov_<mode>): Remove code that tried to use use
1357         andps/andnps instead of pcmov.
1358         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
1359         pmacsdqh instructions.
1360         (vec_widen_smult_lo_v4si): Ditto.
1361
1362         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
1363         (PPERM_INVERT): Ditto.
1364         (PPERM_REVERSE): Ditto.
1365         (PPERM_REV_INV): Ditto.
1366         (PPERM_ZERO): Ditto.
1367         (PPERM_ONES): Ditto.
1368         (PPERM_SIGN): Ditto.
1369         (PPERM_INV_SIGN): Ditto.
1370         (PPERM_SRC1): Ditto.
1371         (PPERM_SRC2): Ditto.
1372         (ix86_expand_sse_movcc): Move the SSE5 test after the if
1373         true/false tests.
1374         (ix86_expand_int_vcond): If SSE5 generate all possible integer
1375         comparisons.
1376         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
1377         says ignore whether the last reference is a memory operand.
1378
1379 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1380             Paolo Bonzini <bonzini at gnu dot org>
1381
1382         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
1383         shift patterns.
1384
1385         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
1386         (vlshr<mode>3): Rename from vlshr<mode>3.
1387         (vashr<mode>3): Rename from vashr<mode>3.
1388         (mulv4sf3): Change the names of vector shift patterns.
1389         (mulv4si3): Ditto.
1390         (negv4sf2): Ditt.
1391
1392         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
1393         shift insns.
1394
1395         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
1396         (SI_SHLHI): Ditto.
1397         (SI_SHL): Ditto.
1398         (SI_SHLI): Ditto.
1399         (SI_ROTH): Ditto.
1400         (SI_ROTHI): Ditto.
1401         (SI_ROT): Ditto.
1402         (SI_ROTI): Ditto.
1403         (SPU_RL_0): Ditto.
1404         (SPU_RL_1): Ditto.
1405         (SPU_RL_2): Ditto.
1406         (SPU_RL_3): Ditto.
1407         (SPU_RL_4): Ditto.
1408         (SPU_RL_5): Ditto.
1409         (SPU_RL_6): Ditto.
1410         (SPU_RL_7): Ditto.
1411         (SPU_SL_0): Ditto.
1412         (SPU_SL_1): Ditto.
1413         (SPU_SL_2): Ditto.
1414         (SPU_SL_3): Ditto.
1415         (SPU_SL_4): Ditto.
1416         (SPU_SL_5): Ditto.
1417         (SPU_SL_6): Ditto.
1418         (SPU_SL_7): Ditto.
1419
1420         * config/spu/spu.md (v): New iterator macro to add v for vector types.
1421         (floatunssidf2_internal): Change vector/vector shift names.
1422         (floatunsdidf2_internal): Ditto.
1423         (mulv8hi3): Ditto.
1424         (ashrdi3): Ditto.
1425         (ashrti3): Ditto.
1426         (cgt_df): Ditto.
1427         (cgt_v2df): Ditto.
1428         (dftsv): Ditto.
1429         (vashl<mode>3): Rename from ashl<mode>3.
1430         (vashr<mode>3): Rename from ashr<mode>3.
1431         (vlshr<mode>3): Rename from lshr<mode>3.
1432         (vrotl<mode>3): Rename from rotl<mode>3.
1433
1434 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1435
1436         PR target/36224
1437         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
1438         multiply gives the wrong value when doing widening multiplies.
1439         (vec_widen_smult_lo_v4si): Ditto.
1440
1441 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
1442
1443         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
1444         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
1445         emit_library_call_value. 
1446         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
1447         * tree.h (ECF_LIBCALL_BLOCK): Removed.
1448         * calls.c (initialize_argument_information, precompute_arguments, 
1449         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
1450         (precompute_arguments): Removed flags parameter.
1451         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
1452         
1453 2008-05-14  Richard Guenther  <rguenther@suse.de>
1454
1455         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
1456         Make sure to register the store if the use is a PHI_NODE.
1457
1458 2008-05-14  Olivier Hainque  <hainque@adacore.com>
1459
1460         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
1461         memory if the component is to be referenced in BLKmode according
1462         to get_inner_reference.
1463
1464 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
1465
1466         * calls.c (emit_library_call_value_1): Restore code clearing
1467         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
1468
1469 2008-05-14  Olivier Hainque  <hainque@adacore.com>
1470             Nicolas Roche  <roche@adacore.com>
1471
1472         * configure.ac: Add support for a "gcc_subdir" variable in
1473         config-lang.in, to denote a subdirectory where the language/GCC
1474         integration files are to be found.
1475         * configure: Regenerate.
1476
1477 2008-05-14  Ira Rosen  <irar@il.ibm.com>
1478
1479         PR tree-optimization/36098
1480         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
1481         value for the first load in the group in case of a gap.
1482         (vect_build_slp_tree): Check that there are no gaps in loads.
1483
1484 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
1485
1486         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
1487         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
1488         expand_copysign_bit, ): Change call to emit_no_conflict_block to
1489         emit_insn and remove unneeded code to construct extra args.
1490         (emit_no_conflict_block): Removed.
1491         * optabls.h: (emit_no_conflict_block): Removed.
1492         * cse.c (cse_extended_basic_block): Remove search for
1493         REG_NO_CONFLICT note.
1494         * global.c: Removed incorrect comment added in revision 117.
1495         * expr.c (convert_move): Change call to emit_no_conflict_block to
1496         emit_insn.
1497         * recog.c: Change comments so that they do not mention
1498         REG_NO_CONFLICT.
1499         * local_alloc.c (combine_regs): Removed last parameter.
1500         (no_conflict_p): Removed.
1501         (block_alloc): Removed note, no_conflict_combined_regno and set
1502         local vars. Removed all code to process REG_NO_CONFLICT blocks.
1503         (combine_regs): Removed already_dead and code to look for
1504         REG_NO_CONFLICT notes.
1505         * lower_subreg (remove_retval_note): Removed code to look for
1506         REG_NO_CONFLICT block.
1507         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
1508         (resolve_clobber): Remove code to process libcalls that have
1509         REG_NO_CONFLICT notes.
1510         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
1511         case.
1512         * combine.c (can_combine_p, distribute_notes):  Removed
1513         REG_NO_CONFLICT case.
1514         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
1515         to emit_insns.
1516         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
1517         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
1518         Ditto.
1519         * reg-notes.def (NO_CONFLICT): Removed.
1520
1521 2008-05-14  David S. Miller  <davem@davemloft.net>
1522
1523         * config/sparc/sparc.c (sparc_profile_hook): If
1524         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
1525         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
1526         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
1527
1528 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
1529
1530         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
1531
1532 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
1533
1534         PR target/36222
1535         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
1536         and op1 expansion before vector concat to have less live pseudos.
1537
1538 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
1539
1540         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
1541         ix86_expand_vector_set if supported.
1542
1543 2008-05-13  Diego Novillo  <dnovillo@google.com>
1544             Kenneth Zadeck  <zadeck@naturalbridge.com>
1545
1546         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
1547
1548         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
1549         phinodes_print_statistics, init_ssanames, fini_ssanames,
1550         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
1551         release_ssa_name, release_defs, replace_ssa_name_symbol,
1552         ssanames_print_statistics): Move ...
1553         * tree-flow.h: ... here.
1554         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
1555         Use FN instead of cfun.
1556         (make_ssa_name_fn): Rename from make_ssa_name.
1557         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
1558         * tree-flow-inline.h (make_ssa_name): Move from
1559         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
1560         * omp-low.c (expand_omp_parallel):
1561         * tree-flow-inline.h (redirect_edge_var_map_result):
1562         * tree-ssa.c (init_tree_ssa): Add argument FN.
1563         Use it instead of cfun.  Update all users.
1564
1565 2008-05-13  Tom Tromey  <tromey@redhat.com>
1566
1567         PR preprocessor/22168:
1568         * doc/cpp.texi (Top): Update menu.
1569         (Alternatives to Wrapper #ifndef): New node.
1570         (Other Directives): Document deprecation.
1571         (Obsolete Features): Remove menu.
1572         (Assertions): Merge node into Obsolete Features.
1573         (Obsolete once-only headers): Move earlier; rename to Alternatives
1574         to Wrapper #ifndef.
1575         * doc/cppopts.texi: Update.
1576         * c.opt (Wdeprecated): Enable for C and ObjC.
1577         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
1578         (C++ Dialect Options): Move -Wno-deprecated from here to...
1579         (Warning Options): ... here.
1580
1581 2008-05-13  Richard Guenther  <rguenther@suse.de>
1582
1583         PR middle-end/36227
1584         * fold-const.c (fold_sign_changed_comparison): Do not allow
1585         changes in pointer-ness.
1586
1587 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
1588
1589         PR target/24713
1590         * config/sh/sh.c (sh_expand_prologue): Don't clear
1591         RTX_FRAME_RELATED_P for push insns.
1592
1593 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
1594
1595         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
1596
1597 2008-05-12  Anatoly Sokolov <aesok@post.ru>
1598
1599         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
1600         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
1601         Use 'machine->is_leaf' instead of 'leaf_func_p'.
1602
1603 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
1604
1605         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
1606         (*vec_concatv4sf_sse): This.
1607         (*sse2_concatv2si): Renamed to ...
1608         (*vec_concatv2si_sse2): This.
1609         (*sse1_concatv2si): Renamed to ...
1610         (*vec_concatv2si_sse): This.
1611         (*vec_concatv2di_rex): Renamed to ...
1612         (*vec_concatv2di_rex64): This.
1613         (*vec_concatv2si_sse4_1): New.
1614         (*vec_concatv2di_rex64_sse4_1): Likewise.
1615
1616 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
1617
1618         PR rtl-optimization/36111
1619         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
1620         that was created for swappable operands.
1621
1622 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
1623
1624         PR ada/36001
1625         * Makefile.in: Substitute GNATMAKE and GNATBIND.
1626         * configure.ac: Add call to ACX_PROG_GNAT.
1627
1628 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
1629
1630         * optc-gen.awk: Fix comment typo.
1631
1632 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1633
1634         * pretty-print.c (pp_integer_with_precision): Use
1635         HOST_LONG_LONG_FORMAT.
1636
1637 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
1638
1639         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
1640                 
1641 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
1642
1643         * config/i386/i386.c (bdesc_ptest): Removed.
1644         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
1645         (bdesc_args): Add __builtin_ia32_ptestz128,
1646         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
1647         (ix86_init_mmx_sse_builtins): Updated.
1648         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
1649         (ix86_expand_builtin): Updated.
1650
1651 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
1652
1653         * tree-cfg.c (valid_fixed_convert_types_p): New function.
1654         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
1655
1656 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
1657
1658         * value-prof.c (interesting_stringop_to_profile): Do not
1659         return early for BUILT_IN_MEMPCPY.
1660
1661 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
1662
1663         * calls.c (expand_call): Don't use callgraph to increase
1664         preferred_stack_boundary.
1665
1666         * cgraph.h (cgraph_rtl_info): Use unsigned on
1667         preferred_incoming_stack_boundary.
1668
1669         * final.c (rest_of_clean_state): Use unsigned on
1670         preferred_stack_boundary.
1671
1672 2008-05-09  Tom Tromey  <tromey@redhat.com>
1673
1674         PR preprocessor/22231:
1675         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
1676         proceeding.
1677
1678 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
1679
1680         PR tree-optimization/36129
1681         * tree-ssa-ccp.c: Include value-prof.h.
1682         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
1683         built-in function was folded to a constant.
1684         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
1685
1686 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
1687             Sebastian Pop  <sebastian.pop@amd.com>
1688
1689         * tree-scalar-evolution.c: Document instantiate_scev.
1690         (instantiate_parameters_1): Renamed instantiate_scev_1.
1691         Don't use the same loop for instantiation_loop and evolution_loop.
1692         (instantiate_scev): New.
1693         (instantiate_parameters): Moved...
1694         (resolve_mixers): Update call to instantiate_scev_1 to pass the
1695         same loop twice.  Maintains the semantics for this function.
1696         * tree-scalar-evolution.h (instantiate_scev): Declare.
1697         (instantiate_parameters): ...here.  Now static inline.
1698         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
1699         instead of resolve_mixers.
1700
1701 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
1702
1703         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
1704
1705 2008-05-09  Tomas Bily  <tbily@suse.cz>
1706
1707         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
1708         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
1709         * tree-ssa-structalias.c (get_constraint_for): Likewise.
1710         * c-common.c (c_common_truthvalue_conversion): Likewise.
1711         * tree-object-size.c (compute_object_offset): Likewise.
1712         * tree-inline.c (estimate_num_insns_1): Likewise.
1713         * varasm.c (const_hash_1, compare_constant, copy_constant)
1714         (compute_reloc_for_constant, output_addressed_constants)
1715         (initializer_constant_valid_p): Likewise.
1716         * c-omp.c (check_omp_for_incr_expr): Likewise.
1717         * gimplify.c (gimplify_expr): Likewise.
1718         * c-typeck.c (c_finish_return): Likewise.
1719         * tree-vectorizer.c (supportable_widening_operation)
1720         (supportable_narrowing_operation): Likewise.
1721         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
1722         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
1723         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
1724         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
1725         (descr_info_loc): Likewise.
1726         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
1727         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
1728         (fold_unary): Likewise.
1729         * builtins.c (get_pointer_alignment): Likewise.
1730         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
1731         (instantiate_parameters_1): Likewise.
1732         * tree.c (expr_align, stabilize_reference): Likewise.
1733         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
1734         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
1735         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
1736         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
1737         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
1738         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
1739         Likewise.
1740         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
1741         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
1742         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
1743         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
1744         (forward_propagate_comparison)
1745         (tree_ssa_forward_propagate_single_use_vars): Likewise.
1746         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
1747         * emit-rtl.c (component_ref_for_mem_expr)
1748         (set_mem_attributes_minus_bitpos): Likewise.
1749         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
1750         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
1751         Likewise.
1752         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
1753         (build_function_call, pointer_diff, build_compound_expr)
1754         (c_finish_return): Likewise.
1755         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
1756         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
1757         Likewise.
1758         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
1759         * expr.c (is_aligning_offset): Likewise.
1760         * tree-ssa-alias.c (is_escape_site): Likewise.
1761         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
1762         (check_all_va_list_escapes): Likewise.
1763         * tree-ssa-loop-ivopts.c (determine_base_object)
1764         (determine_common_wider_type): Likewise.
1765         * dojump.c (do_jump): Likewise.
1766         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
1767         * tree-gimple.c (is_gimple_cast): Likewise.
1768         * fold-const.c (decode_field_reference, )
1769         (fold_sign_changed_comparison, fold_unary, fold_comparison)
1770         (fold_binary): Likewise.
1771         * tree-ssa-alias-warnings.c (find_alias_site_helper)
1772         (already_warned_in_frontend_p): Likewise.
1773         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
1774         * tree.c (really_constant_p, get_unwidened): Likewise.
1775         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
1776         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
1777         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
1778         Likewise.
1779         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
1780         CONVERT_EXPR_P.
1781         (CONVERT_EXPR_P): Define.
1782         (CASE_CONVERT): Define.
1783         
1784 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
1785
1786         PR middle-end/36117
1787         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
1788         (delete_unmarked_insns): When deleting a call, call
1789         delete_unreachable_blocks.
1790         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
1791         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
1792
1793 2008-05-08  Richard Guenther  <rguenther@suse.de>
1794
1795         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
1796         (-ftree-salias): Likewise.
1797         (salias-max-implicit-fields): Remove param documentation.
1798         (salias-max-array-elements): Likewise.
1799         * tree-pass.h (pass_create_structure_vars): Remove.
1800         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
1801         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
1802         * tree-ssa-alias.c (create_structure_vars): Remove.
1803         (gate_structure_vars): Likewise.
1804         (pass_create_structure_vars): Likewise.
1805         (gate_build_alias): Likewise.
1806         (pass_build_alias): Adjust to run always and dump the function.
1807         * common.opt (ftree-salias): Hide.
1808         * passes.c (init_optimization_passes): Remove
1809         pass_create_structure_vars, adjust comment.
1810         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
1811         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
1812         * opts.c (decode_options): Do not set flag_tree_salias.
1813         (common_handle_option): Add OPT_ftree_salias to the backward
1814         compatibility section.
1815
1816 2008-05-08  Richard Guenther  <rguenther@suse.de>
1817
1818         * tree-flow-inline.h (var_can_have_subvars): Move ...
1819         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
1820         * tree-flow.h (var_can_have_subvars): Remove.
1821         (push_fields_onto_fieldstack): Remove.
1822         (sort_fieldstack): Likewise.
1823         (struct fieldoff): Move ...
1824         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
1825         alias_set and base_for_components fields.
1826         (sort_fieldstack): Make static.
1827         (push_fields_onto_fieldstack): Likewise.  Remove code that
1828         handles anything but RECORD_TYPEs.  Remove alias_set and
1829         base_for_components handling.
1830         (create_variable_info_for): Adjust.
1831
1832 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
1833
1834         * common.opt (Wframe-larger-than=): Shorten the help message
1835         to one line.
1836         * doc/invoke.texi (Wframe-larger-than=): Add more description.
1837
1838 2008-05-08  Rafael Espindola  <espindola@google.com>
1839
1840         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
1841         trap.
1842         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
1843         trap and that both operands are gimple values.
1844         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
1845         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
1846         is a fp operation.
1847
1848 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
1849
1850         * read-rtl.c (join_c_conditions): Return the first string if the
1851         two strings are equal.
1852
1853 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
1854
1855         * gensupport.h (pred_data): Add a "num_codes" field.
1856         (add_predicate_code): Declare.
1857         * gensupport.c (add_predicate_code): New function.
1858         (std_pred_table): Add an "allows_const_p" field.
1859         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
1860         Remove the (incomplete) list of such codes from the codes field.
1861         (init_predicate_table): Use add_predicate_code.  Add all
1862         RTX_CONST_OBJs if allows_const_p is true.
1863         * genrecog.c (process_define_predicate): Use add_predicate_code.
1864
1865 2008-05-08  David Daney  <ddaney@avtrex.com>
1866             Richard Sandiford  <rsandifo@nildram.co.uk>
1867         
1868         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
1869         special case of constant zero operands.
1870         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
1871         old and new values.  Special case constant zero values.
1872         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
1873         fails.
1874         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
1875         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
1876
1877 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
1878
1879         PR target/36090
1880         * simplify-rtx.c (simplify_plus_minus): Create CONST of
1881         similar RTX_CONST_OBJ before CONST_INT.
1882
1883 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
1884
1885         * stmt.c (expand_stack_restore): Change sa mode if needed.
1886
1887 2008-05-08  Richard Guenther  <rguenther@suse.de>
1888
1889         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
1890         return type to bool.
1891         (ix86_sol10_return_in_memory): Likewise.
1892         (ix86_i386elf_return_in_memory): Likewise.
1893         (ix86_i386interix_return_in_memory): Likewise.
1894         * config/i386/i386.c (ix86_return_in_memory): Likewise.
1895         (ix86_sol10_return_in_memory): Likewise.
1896         (ix86_i386elf_return_in_memory): Likewise.
1897         (ix86_i386interix_return_in_memory): Likewise.
1898
1899 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
1900
1901         PR bootstrap/36180
1902         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
1903         fndecl argument.
1904         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
1905         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
1906         declared in front.
1907
1908 2008-05-08  Richard Guenther  <rguenther@suse.de>
1909
1910         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
1911         * tree-data-ref.h (struct dr_alias): Remove subvars field.
1912         (DR_SUBVARS): Remove.
1913         * tree-dfa.c (dump_subvars_for): Remove.
1914         (debug_subvars_for): Likewise.
1915         (dump_variable): Do not dump subvars.
1916         (remove_referenced_var): Do not remove subvars.
1917         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
1918         (lookup_subvars_for_var): Remove.
1919         (get_subvars_for_var): Likewise.
1920         (get_subvars_at): Likewise.
1921         (get_first_overlapping_subvar): Likewise.
1922         (overlap_subvar): Likewise.
1923         * tree-flow.h (subvar_t): Remove.
1924         (struct var_ann_d): Remove subvars field.
1925         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
1926         argument.  Remove special handling of SFTs.
1927         (compute_tag_properties): Likewise.
1928         (set_initial_properties): Likewise.
1929         (compute_call_clobbered): Likewise.
1930         (count_mem_refs): Likewise.
1931         (compute_memory_partitions): Likewise.
1932         (compute_flow_insensitive_aliasing): Likewise.
1933         (setup_pointers_and_addressables): Likewise.
1934         (new_type_alias): Likewise.
1935         (struct used_part): Remove.
1936         (used_portions): Likewise.
1937         (struct used_part_map): Likewise.
1938         (used_part_map_eq): Likewise.
1939         (used_part_map_hash): Likewise.
1940         (free_used_part_map): Likewise.
1941         (up_lookup): Likewise.
1942         (up_insert): Likewise.
1943         (get_or_create_used_part_for): Likewise.
1944         (create_sft): Likewise.
1945         (create_overlap_variables_for): Likewise.
1946         (find_used_portions): Likewise.
1947         (create_structure_vars): Likewise.
1948         * tree.def (STRUCT_FIELD_TAG): Remove.
1949         * tree.h (MTAG_P): Adjust.
1950         (struct tree_memory_tag): Remove base_for_components and
1951         unpartitionable flags.
1952         (struct tree_struct_field_tag): Remove.
1953         (SFT_PARENT_VAR): Likewise.
1954         (SFT_OFFSET): Likewise.
1955         (SFT_SIZE): Likewise.
1956         (SFT_NONADDRESSABLE_P): Likewise.
1957         (SFT_ALIAS_SET): Likewise.
1958         (SFT_UNPARTITIONABLE_P): Likewise.
1959         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
1960         (union tree_node): Remove sft field.
1961         * alias.c (get_alias_set): Remove special handling of SFTs.
1962         * print-tree.c (print_node): Remove handling of SFTs.
1963         * tree-dump.c (dequeue_and_dump): Likewise.
1964         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
1965         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
1966         * tree-predcom.c (set_alias_info): Do not set subvars.
1967         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
1968         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
1969         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
1970         (add_vars_for_offset): Remove.
1971         (add_virtual_operand): Remove special handling of SFTs.
1972         (add_call_clobber_ops): Likewise.
1973         (add_call_read_ops): Likewise.
1974         (get_asm_expr_operands): Likewise.
1975         (get_modify_stmt_operands): Likewise.
1976         (get_expr_operands): Likewise.
1977         (add_to_addressable_set): Likewise.
1978         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
1979         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
1980         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
1981         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
1982         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
1983         (tree_node_structure): Likewise.
1984         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
1985         handling of SFTs.
1986         (find_what_p_points_to): Likewise.
1987
1988 2008-05-08  Sa Liu  <saliu@de.ibm.com>
1989
1990         * config/spu/spu.md: Fixed subti3 pattern.
1991
1992 2008-05-08  Richard Guenther  <rguenther@suse.de>
1993
1994         PR middle-end/36154
1995         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
1996         sure to create a representative for trailing arrays for PTA.
1997
1998 2008-05-08  Richard Guenther  <rguenther@suse.de>
1999
2000         PR middle-end/36172
2001         * fold-const.c (operand_equal_p): Two objects which types
2002         differ in pointerness are not equal.
2003
2004 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
2005
2006         * calls.c (compute_argument_block_size): Add argument tree fndecl.
2007         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
2008         (emit_library_call_value_1): Add new variable fndecl initialized by
2009         NULL_TREE. It should be the decl type of orgfun, but this information
2010         seems not to be available here, so it uses the default calling abi.
2011         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
2012         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
2013         by TARGET_RETURN_IN_MEMORY.
2014         * config/i386/i386-interix.h: Likewise.
2015         * config/i386/i386.h: Likewise.
2016         * config/i386/i386elf.h: Likewise.
2017         * config/i386/ptx4-i.h: Likewise.
2018         * config/i386/sol2-10.h: Likewise.
2019         * config/i386/sysv4.h: Likewise.
2020         * config/i386/vx-common.h: Likewise.
2021         * config/cris/cris.h: Removed #if 0 clause.
2022         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
2023         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
2024         argument.
2025         (ix86_sol10_return_in_memory): Likewise.
2026         (ix86_i386elf_return_in_memory): New.
2027         (ix86_i386interix_return_in_memory): New.
2028         * config/mt/mt-protos.h (mt_return_in_memory): New.
2029         * config/mt/mt.c: Likewise.
2030         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
2031         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
2032         * config/bfin/bfin.h: Likewise.
2033         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
2034         argument.
2035         * config/bfin/bfin.c: Likewise.
2036         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
2037         * config/alpha/unicosmk.h: Likewise.
2038         * config/i386/cygming.h: Likewise.
2039         * config/iq2000/iq2000.h: Likewise.
2040         * config/mips/mips.h: Likewise.
2041         * config/mn10300/mn10300.h: Likewise.
2042         * config/rs6000/rs6000.h: Likewise.
2043         * config/score/score.h: Likewise.
2044         * config/spu/spu.h: Likewise.
2045         * config/v850/v850.h: Likewise.
2046         * defaults.h: Likewise.
2047         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
2048         * expr.c (emit_block_move): Adjust use of
2049         OUTGOING_REG_PARM_STACK_SPACE.
2050         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
2051         OUTGOING_REG_PARM_STACK_SPACE.
2052         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
2053
2054 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
2055
2056         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
2057         on OMP_RETURN for OMP_FOR.
2058
2059         PR debug/35896
2060         * dwarf2out.c (dw_expand_expr, common_check): Removed.
2061         (fortran_common): New function.
2062         (gen_variable_die): Call fortran_common instead of common_check,
2063         adjust for it returning tree instead of rtx.  Formatting.
2064
2065 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
2066
2067         PR rtl/7335
2068         PR rtl/33826
2069         * see.c (see_copy_insn): Copy new pure const attributes for new call.
2070         * c-decl.c (merge_decls): Ditto.
2071         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
2072         to RTL_CONST_OR_PURE_CALL_P.
2073         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
2074         Initialized DECL_LOOPING_CONST_PURE.
2075         (process_call_operands): Set tree_side_effects properly.
2076         * tree.h (TREE_READONLY_DECL_P): Removed.
2077         (DECL_IS_PURE): Renamed to DECL_PURE_P.
2078         (DECL_LOOPING_OR_CONST_P): New macro.
2079         (struct tree_function_decl): Added looping_const_or_pure_p.
2080         (ECF_*) Renumbered.
2081         (ECF_LOOPING_OR_CONST_P): New macro.
2082         * rtlanal.c (pure_const_p): Removed.
2083         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
2084         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
2085         to RTL_CONST_CALL_P.
2086         * ipa-pure-const.c (pure_const_state_e): Added looping field.
2087         (check_decl, check_tree, check_call, scan_function): Initialize
2088         looping.
2089         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
2090         (static_execute): Set looping true for recursive functions.
2091         Undo setting state to IPA_NEITHER for recursive functions.
2092         * cse.c (cse_insn): 
2093         * ifcvt.c (noce_can_store_speculate_p): Changed
2094         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
2095         RTL_CONST_OR_PURE_CALL_P.
2096         * dse.c (scan_insn): Ditto.
2097         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
2098         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
2099         RTL_CONST_OR_PURE_CALL_P.
2100         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
2101         pure_call_p to RTL_CONST_CALL_P.
2102         * gimplify.c (gimplify_call_expr): Clear side effects for
2103         non-looping pure and constant calls.
2104         * calls.c (emit_call_1): Set rtl flags from ecf flags.
2105         (flags_from_decl_or_type): Set ecf flags from decl flags.
2106         (initialize_argument_information): Turn off
2107         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
2108         Change const to pure if callee_copies is true rather than just
2109         turning off const.
2110         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
2111         way of marking pure calls.
2112         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
2113         Remove hack that was supposed to fix pr7335 and remove old
2114         way of marking pure calls.
2115         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
2116         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
2117         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
2118         RTL_CONST_OR_PURE_CALL_P.
2119         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
2120         * loop-invariant.c (find_exits, find_invariant_bb): Changed
2121         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
2122         * sched-deps.c (schedule_analyze): Ditto.
2123         * rtl.h (struct rtx_def): Use call field, unchanging field, and
2124         return_val field of calls to represent pure and const function info.
2125         (CONST_OR_PURE_CALL_P): Deleted macro.
2126         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
2127         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
2128         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
2129         TREE_READONLY.
2130         * tree-optimize.c (execute_fixup_cfg): Added test for
2131         ECF_LOOPING_CONST_OR_PURE.
2132         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
2133         DECL_PURE_P.
2134         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
2135         effects for looping pure or const calls.
2136         (verify_gimple_expr): Added verification code. 
2137         * config/alpha/alpha.c (alpha_legitimize_address,
2138         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
2139         RTL_CONST_CALL_P.
2140         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
2141         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
2142         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
2143         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
2144         RTL_CONST_OR_PURE_CALL_P.
2145         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
2146         and const calls to be deleted.
2147
2148 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
2149
2150         PR target/35714
2151         * config/i386/mmx.md (mmx_subv2sf3): New expander.
2152         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
2153         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
2154         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2155         to handle nonimmediate operands.
2156         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
2157         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
2158         to handle nonimmediate operands.
2159         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
2160         (mmx_pmulhrwv4hi3): New expander.  Use
2161         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2162         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
2163         (sse2_umulv1siv1di3): New expander.  Use
2164         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2165         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
2166         (mmx_eq<mode>3): New expander.  Use
2167         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2168         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
2169         (mmx_uavgv8qi3): New expander.  Use
2170         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2171         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
2172         (mmx_uavgv4hi3): New expander.  Use
2173         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2174
2175         * config/i386/sse.md
2176         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
2177         to handle nonimmediate operands.
2178         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
2179         to handle nonimmediate operands.
2180         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
2181         to handle nonimmediate operands.
2182         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
2183         to handle nonimmediate operands.
2184         (sse2_unpckhpd_exp): New expander.  Use
2185         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2186         (sse2_unpcklpd_exp): New expander.  Use
2187         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2188         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
2189         to handle nonimmediate operands.
2190         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
2191         to handle nonimmediate operands.
2192         (*sse2_<plusminus_insn><mode>3): Rename from
2193         sse2_<plusminus_insn><mode>3 insn pattern.
2194         (sse2_<plusminus_insn><mode>3): New expander.  Use
2195         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2196         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
2197         (sse2_umulv2siv2di3): New expander.  Use
2198         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2199         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
2200         (sse4_1_mulv2siv2di3): New expander.  Use
2201         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2202         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
2203         (sse2_pmaddwd): New expander.  Use
2204         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2205         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
2206         (sse2_eq<mode>3): New expander.  Use
2207         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2208         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
2209         (sse4_1_eqv2di3): New expander.  Use
2210         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2211         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2212         (sse2_uavgv16qi3): New expander.  Use
2213         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2214         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2215         (sse2_uavgv16qi3): New expander.  Use
2216         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2217         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
2218         (sse2_uavgv8hi3): New expander.  Use
2219         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2220         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
2221         (ssse3_pmulhrswv8hi3): New expander.  Use
2222         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2223         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
2224         (ssse3_pmulhrswv4hi3): New expander.  Use
2225         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2226
2227         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
2228         (<sse>_vmmul<mode>3): Ditto.
2229         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
2230         (divv2df3): Ditto.
2231         (ssse3_pmaddubsw128): Use register_operand for operand 1.
2232         (ssse3_pmaddubsw): Ditto.
2233
2234         * config/i386/i386.c (struct_builtin_description)
2235         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
2236         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
2237         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
2238         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
2239         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
2240         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
2241         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
2242         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
2243         (ix86_fixup_binary_operands): Assert that src1
2244         and src2 must have the same mode when swapped.
2245         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
2246         and ix86_binary_operator_ok.  Do not force operands in registers
2247         when optimizing.
2248
2249 2008-05-07  Jan Hubicka  <jh@suse.cz>
2250
2251         * cgraph.c (dump_cgraph_node): Update.
2252         * cgraph.h (cgraph_local_info): Break out inline summary.
2253         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
2254         hook.
2255         * ipa-inline (inline_summary): New accestor function.
2256         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
2257         cgraph_decide_inlining, compute_inline_parameters): Update.
2258         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
2259
2260 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
2261
2262         Cleanup ColdFire scheduling support and add V4 pipeline model.
2263
2264         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
2265         (define_attr cpu): Add cfv4 value.
2266         (define_attr type, define_attr type1): Merge into a single 'type'
2267         attribute.  Update all uses.
2268         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
2269         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
2270         Update all uses.
2271         (define_attr opx_mem, define_attr opy_mem): Remove.
2272         (define_attr op_mem): Clean up, update comment.
2273         (define_attr size): Use specific values instead of general int.
2274         (define_attr guess, define_attr split): Remove.  Update all uses.
2275         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
2276         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
2277         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
2278         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
2279         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
2280         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
2281         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
2282         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
2283         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
2284         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
2285         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
2286         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
2287         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
2288         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
2289         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
2290         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
2291         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
2292         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
2293         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
2294         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
2295         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
2296         Update or set attributes.
2297         (stack_tie): New fake instruction.
2298
2299         * config/m68k/m68k.h (TUNE_CFV4): New macro.
2300         (m68k_sched_attr_size): Update declaration.
2301         (m68k_sched_attr_type2): Remove.
2302         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
2303         Declare new bypass predicates.
2304
2305         * config/m68k/m68k.c (m68k_sched_issue_rate,
2306         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
2307         implementations.
2308         (TARGET_SCHED_ISSUE_RATE,
2309         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
2310         (override_options): Handle scheduling for ColdFire V4 core.
2311         (m68k_expand_prologue): Emit stack_tie.
2312         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
2313         'OP_TYPE_FPN'.  Update all uses.
2314         (sched_guess_p): Remove.
2315         (sched_address_type): Handle symbolic addresses.
2316         (sched_get_operand): New static function.
2317         (sched_operand_type): Merge into sched_attr_op_type.
2318         (sched_attr_op_type): Handle FP registers, handle quick constants,
2319         update.
2320         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
2321         (m68k_sched_attr_size): Update.  Move logic to ...
2322         (sched_get_attr_size_int): New static function.
2323         (sched_get_opxy_mem_type): New static function.
2324         (m68k_sched_attr_op_mem): Update.
2325         (m68k_sched_attr_type2): Remove.
2326         (sched_cfv4_bypass_data): New static variable.
2327         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
2328         (m68k_sched_issue_rate): Implement scheduler hook.
2329         (struct _sched_ib: enabled_p): New field.
2330         (m68k_sched_variable_issue): Update.  Handle V4.
2331         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
2332         sched_dump_class_func_t, sched_dump_split_class,
2333         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
2334         sched_dump_dfa_class, m68k_sched_dump): Remove.
2335         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
2336         hook.
2337         (m68k_sched_init_global): Remove statisctics dumping, introduce
2338         sanity check that all instructions have pipeline reservations.  Handle
2339         ColdFire V4 core.
2340         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
2341         Handle ColdFire V4 core.
2342         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
2343         New static functions.
2344         (m68k_sched_address_bypass_p): New bypass predicate.
2345         (sched_get_indexed_address_scale): New static function.
2346         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
2347
2348         * cf.md: Update comments.
2349         (define_attr type2): Remove.  Use 'type' attribute instead.
2350         Update all uses.
2351         (cf_ib): Rename to cfv123_ib.  Update all uses.
2352         (cf_oep): Rename to cfv123_oep.  Update all uses.
2353         (cf_chr): Rename to cfv123_chr.  Update all uses.
2354         (cf_mem): Rename to cfv123_mem.  Update all uses.
2355         (cf_mac): Move to more appropriate place.
2356         (cfv123_guess): New automaton and cpu_unit.
2357         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
2358         Update uses of 'size' attribute.  Handle before reload scheduling.
2359         (cfv123_guess): New dummy reservation for unhandled instructions.
2360         (cfv4_*): Pipeline description of ColdFire V4 core.
2361         (ignore): New reservation to handle 'ignore' type.
2362
2363 2008-05-07  Ian Lance Taylor  <iant@google.com>
2364
2365         PR middle-end/36013
2366         * gimplify.c (find_single_pointer_decl_1): Don't look through
2367         indirections.
2368         (find_single_pointer_decl): Adjust comments.
2369
2370 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
2371
2372         PR middle-end/36137
2373         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
2374         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
2375
2376         PR middle-end/36106
2377         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
2378         integral type rather than floating point, then VIEW_CONVERT_EXPR
2379         to the floating point type.
2380
2381 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
2382
2383         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
2384         TFmode op0 to register.
2385
2386 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
2387
2388         * c-decl.c (grokdeclarator): Comment typo.
2389
2390 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
2391
2392         * tree-flow.h: Remove prototype for computed_goto_p.
2393         * tree-cfg.c (computed_goto_p): Make static.
2394
2395 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
2396
2397         PR target/35657
2398         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
2399         (contains_aligned_value_p): This.  Handle _Decimal128.
2400         (ix86_function_arg_boundary): Only align _Decimal128 to its
2401         natural boundary and handle it properly.
2402
2403 2008-05-06  Martin Jambor  <mjambor@suse.cz>
2404
2405         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
2406         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
2407         (ipcp_method_set_orig_node): Removed.
2408         (ipcp_cval_get_cvalue_type): Removed.
2409         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
2410         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
2411         (ipcp_cval_set_cvalue_type): Removed.
2412         (ipcp_cval_get_cvalue): Removed.
2413         (ipcp_cval_set_cvalue): Removed.
2414         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
2415         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
2416         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
2417         (ipcp_cval_meet): Renamed to ipa_lattice_meet
2418         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
2419         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
2420         (ipcp_get_ith_lattice): Changed parameters.
2421         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
2422         (ipcp_lattice_from_jfunc): Changed parameters.
2423         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
2424         (ipcp_method_cval_print): Added temporary variable info.
2425         (ipcp_redirect): Removed already unused local variable caller.
2426         (ipcp_redirect): New temporary variable orig_callee_info
2427         (ipcp_redirect): Removed newly unused local variable callee.
2428         (ipcp_redirect): Removed (a bit confusing) local variable type.
2429         (ipcp_insert_stage): Added local variable info.
2430         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
2431         renamed too
2432         (ipcp_formal_create): Removed.
2433         (ipcp_method_cval_set): Removed.
2434         (ipcp_propagate_stage): Renamed lattice variables.
2435         (ipcp_method_cval_set_cvalue_type): Removed.
2436         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
2437         (ipcp_print_all_lattices): Changed printed strings to refer to 
2438         lattices rather than cvals.
2439         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
2440         (ipcp_propagate_const): Changed formal parameters.
2441         (build_const_val): Changed formal parameters.
2442         (ipcp_insert_stage): Removed useless variable cvalue
2443         (build_const_val): Changed formal parameters.
2444         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
2445         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
2446         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
2447         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
2448         (ipcp_print_func_profile_counts): Changed string from "method" to 
2449         "function"
2450         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
2451         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
2452         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
2453         (ipcp_structures_print): Renamed to ipcp_print_all_structures
2454         (ipcp_profile_print): Renamed to ipcp_print_profile_data
2455         (ipcp_lat_is_const): Changed parameters and made inline.
2456         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
2457         (ipcp_redirect): Renamed to ipcp_need_redirect_p
2458         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
2459         the predicate condition directly
2460         (ipcp_propagate_stage): Added local variable args. Removed local
2461         variable callee.  (Both are mere code simplifications.)
2462         (ipcp_method_dont_insert_const): Renamed to
2463         ipcp_node_not_modifiable_p.
2464         (ipcp_node_not_modifiable_p): Made inline.
2465         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
2466         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
2467         (ipcp_print_all_lattices): Removed variable cvalue
2468         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
2469         Updated comments.
2470
2471 2008-05-06  Olivier Hainque  <hainque@adacore.com>
2472
2473         * tree-sra.c (try_instantiate_multiple_fields): Early return
2474         if field has POINTER_TYPE.
2475
2476 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
2477
2478         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
2479         by using 'q' specifier for instruction.
2480         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
2481
2482 2008-05-06  Anatoly Sokolov <aesok@post.ru>
2483
2484         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
2485         Change mode of zero_extract from QImode to HImode.
2486         (sign bit tests peepholes): (Ditto.).
2487
2488 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
2489
2490         * config/i386/mmx.md: Remove double backslashes from asm templates.
2491         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
2492         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2493         to handle nonimmediate operands.
2494         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
2495         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2496         to handle nonimmediate operands.
2497         (*mmx_<code>v2sf3_finite): New insn pattern.
2498         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
2499         (mmx_<code>v2sf3): New expander.  Use
2500         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2501         (mmx_<plusminus_insn><mode>3): New expander.  Use
2502         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2503         (*mmx_<plusminus_insn><mode>3): New insn pattern.
2504         (mmx_add<mode>3): Removed.
2505         (mmx_ssadd<mode>3): Ditto.
2506         (mmx_usadd<mode>3): Ditto.
2507         (mmx_sub<mode>3): Ditto.
2508         (mmx_sssub<mode>3): Ditto.
2509         (mmx_ussub<mode>3): Ditto.
2510         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
2511         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
2512         to handle nonimmediate operands.
2513         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
2514         insn pattern.
2515         (mmx_smulv4hi3_highpart): New expander.  Use
2516         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2517         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
2518         insn pattern.
2519         (mmx_umulv4hi3_highpart): New expander.  Use
2520         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2521         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
2522         (mmx_<code>v4hi3): New expander.  Use
2523         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2524         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
2525         (mmx_<code>v8qi3): New expander.  Use
2526         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2527         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
2528         (mmx_<code><mode>3): New expander.  Use
2529         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2530
2531 2008-05-05  Jan Hubicka  <jh@suse.cz>
2532
2533         PR tree-optimization/36118
2534         * passes.c (pass_init_dump_file): Fix dump header.
2535
2536 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2537
2538         PR middle-end/36141
2539         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
2540         VCE for function decls.
2541
2542 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2543
2544         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
2545
2546 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2547
2548         * config/i386/i386.md (sat_plusminus): New.
2549         (plusminus_insn): Likewise.
2550         (plusminus_mnemonic): Likewise.
2551         (addsub): Removed.
2552         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
2553         (*<addsub><mode>3_cc_overflow): Renamed to ...
2554         (*<plusminus_insn><mode>3_cc_overflow): This.
2555         (*<addsub>si3_zext_cc_overflow): Renamed to ...
2556         (*<plusminus_insn>si3_zext_cc_overflow): This.
2557
2558         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
2559         (<plusminus_insn><mode>3): This.
2560         (*<addsub><mode>3): Renamed to ...
2561         (*<plusminus_insn><mode>3): This.
2562         (<sse>_vm<addsub><mode>3): Renamed to ...
2563         (<sse>_vm<plusminus_insn><mode>3): This.
2564         (sse3_h<addsub>v4sf3): Renamed to ...
2565         (sse3_h<plusminus_insn>v4sf3): This.
2566         (sse3_h<addsub>v2df3): Renamed to ...
2567         (sse3_h<plusminus_insn>v2df3): This.
2568         (<plusminus_insn><mode>3): New.
2569         (*<plusminus_insn><mode>3): Likewise.
2570         (sse2_<plusminus_insn><mode>3): Likewise.
2571         (add<mode>): Removed.
2572         (*add<mode>3): Likewise.
2573         (sse2_ssadd<mode>3): Likewise.
2574         (sse2_usadd<mode>3): Likewise.
2575         (sub<mode>3): Likewise.
2576         (*sub<mode>3): Likewise.
2577         (sse2_sssub<mode>3): Likewise.
2578         (sse2_ussub<mode>3): Likewise.
2579
2580 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
2581
2582         * gthr-single.h: Add in required interface elements as per gthr.h.
2583         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
2584         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
2585         Generalize UNUSED macro. 
2586         (__gthread_once): Add.
2587         (__gthread_key_create): Add.
2588         (__gthread_key_delete): Add.
2589         (__gthread_getspecific): Add.
2590         (__gthread_setspecific): Add.
2591         
2592 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
2593
2594         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
2595         the same size types for the indirect reference on the rhs, then
2596         create a VCE.
2597
2598 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
2599
2600         * config/i386/i386.md
2601         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
2602         one insn template instead of template series.
2603         (*xordi_1_rex64): Ditto.
2604         (*xordi_2_rex64): Ditto.
2605
2606 2008-05-05  Ira Rosen  <irar@il.ibm.com>
2607
2608         PR tree-optimization/36119
2609         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
2610         in case of SLP.
2611
2612 2008-06-04  Jan Hubicka  <jh@suse.cz>
2613
2614         tree-optimization/36100
2615         * tree-pass.h (pass_O0_always_inline): Declare.
2616         * ipa-inline.c (inline_transform): Remove dead code.
2617         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
2618         pass_O0_always_inline): New.
2619         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
2620
2621 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
2622
2623         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
2624         mnemonic in this_param move for TARGET_64BIT.
2625
2626 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
2627
2628         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
2629         (*strmovsi_rex_1): Ditto.
2630         (*strsetsi_1): Ditto.
2631         (*strsetsi_rex_1): Ditto.
2632
2633         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
2634         adddicc expanders using SWI mode iterator.
2635
2636 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
2637
2638         PR target/36121
2639         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
2640         argument handling.
2641
2642 2008-05-04  David S. Miller  <davem@davemloft.net>
2643
2644         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
2645         (sparc*-*-linux*): Use linux.h in tm_file.
2646         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
2647         compiler defaulting to 32-bit.
2648         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
2649         no longer needed.
2650         * config/sparc/linux.h: Remove definitions now obtained
2651         properly from linux.h
2652         * config/sparc/linux64.h: Likewise.
2653         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
2654         don't want this setting for 32-bit builds in a biarch compiler.
2655         * doc/install.texi: Add sparc-linux to list of targets
2656         supporting --enable-targets=all.
2657
2658 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
2659
2660         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
2661
2662 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
2663
2664         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
2665         after V4SI_FTYPE_V8HI.
2666         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
2667         case V4SI_FTYPE_V2DF.
2668
2669 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
2670
2671         * doc/invoke.texi (max-flow-memory-locations): Removed.
2672         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
2673         
2674 2008-05-03  Richard Guenther  <rguenther@suse.de>
2675
2676         PR middle-end/34973
2677         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
2678
2679 2008-05-02  David S. Miller  <davem@davemloft.net>
2680
2681         * config.gcc (need_64bit_hwint): Document libcpp dependency.
2682
2683 2008-05-02  Simon Baldwin <simonb@google.com>
2684
2685         PR bootstrap/36108
2686         * c-common.h (warn_array_subscript_range): Removed.
2687         * c-common.c (warn_array_subscript_range): Ditto.
2688         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
2689         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
2690
2691 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
2692
2693         * config/i386/i386.c (ix86_special_builtin_type): New.
2694         (bdesc_special_args): Likewise.
2695         (ix86_expand_special_args_builtin): Likewise.
2696         (ix86_init_mmx_sse_builtins): Updated.
2697         (ix86_expand_builtin): Updated.
2698         (ix86_expand_store_builtin): Removed.
2699         (ix86_expand_unop_builtin): Likewise.
2700
2701         * config/i386/mm3dnow.h (__v2sf): Moved to ...
2702         * config/i386/mmintrin.h (__v2sf): Here.
2703
2704         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
2705         const __v2sf.
2706         (_mm_loadl_pi): Likewise.
2707         (_mm_storeh_pi): Replace __v2si with __v2sf.
2708         (_mm_storel_pi): Likewise.
2709
2710         * doc/extend.texi: Correct __builtin_ia32_loadhps,
2711         __builtin_ia32_loadlps, __builtin_ia32_storehps,
2712         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
2713         __builtin_ia32_loadlpd.
2714
2715 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
2716
2717         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
2718         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
2719         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
2720         (ix86_init_mmx_sse_builtins): Updated.
2721         (ix86_expand_args_builtin): Likewise.
2722         (ix86_expand_builtin): Likewise.
2723         (ix86_expand_unop1_builtin): Renamed to ...
2724         (ix86_expand_unop_vec_merge_builtin): This.
2725
2726 2008-05-01  Jan Hubicka  <jh@suse.cz>
2727
2728         PR bootstrap/36100
2729         * ipa-inline.c (inline_generate_summary): Make static.
2730         (inline_transform): Do not call inlining at -O0; make static.
2731         * passes.c (execute_todo): Add sanity check.
2732         (execute_one_ipa_transform_pass): Execute proper flags.
2733
2734 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
2735
2736         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
2737         (DECL_NONADDRESSABLE_P): Likewise.
2738         * alias.c (record_component_aliases): Fix comment.
2739
2740 2008-05-01  Simon Baldwin <simonb@google.com>
2741
2742         * c-common.h (warn_array_subscript_range): New function.
2743         * c-common.c (warn_array_subscript_range): Ditto.
2744         * tree-vrp.c (check_array_ref): Corrected code to agree with
2745         comment, ignoring only arrays of size 0 or size 1.
2746         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
2747
2748 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2749
2750         * config/i386/i386.c (ix86_builtin_type): Replace
2751         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
2752         (bdesc_args): Updated.
2753         (ix86_init_mmx_sse_builtins): Likewise.
2754         (ix86_expand_args_builtin): Likewise.
2755
2756         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
2757         with __v1di.
2758
2759         * doc/extend.texi: Correct __builtin_ia32_palignr.
2760
2761 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2762
2763         PR target/36095
2764         * config/i386/i386.c (bdesc_crc32): Removed.
2765         (ix86_expand_crc32): Likewise.
2766         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
2767         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
2768         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
2769         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
2770         UINT_FTYPE_UINT_UCHAR.
2771         (bdesc_args): Updated. Add crc32 builtins.
2772         (ix86_init_mmx_sse_builtins): Updated.
2773         (ix86_expand_args_builtin): Updated to support subreg.
2774
2775         * doc/extend.texi: Correct __builtin_ia32_crc32di.
2776
2777 2008-05-01  Jan Hubicka  <jh@suse.cz>
2778
2779         * tree-pass.h (opt_pass): Add IPA_PASS.
2780         (varpool_node, cgraph_node): Forward declare.
2781         (ipa_opt_pass): Define.
2782         (pass_ipa_inline): Turn into ipa_opt_pass.
2783         (pass_apply_inline): Remove.
2784         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
2785         (apply_inline): Turn into ....
2786         (inline_transform): ... this one.
2787         (inline_generate_summary): New function.
2788         (pass_apply_inline): Remove.
2789         * function.h (ipa_opt_pass): Forward declare structure; typedef;
2790         vector.
2791         (struct function): Add ipa_transforms_to_apply.
2792         * passes.c (register_one_dump_file): Work on IPA_PASS.
2793         (init_optimization_passes): Remove pass_inline_parameters and
2794         pass_apply_inline.
2795         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
2796         (execute_one_pass) ... here; apply transforms when possible.
2797         (add_ipa_transform_pass, execute_ipa_summary_asses,
2798         execute_one_ipa_transform_pass): New.
2799         (execute_ipa_pass_list): Update for IPA_PASS type.
2800
2801 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2802
2803         * config/i386/i386.c (ix86_builtin_type): Add
2804         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
2805         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
2806         (bdesc_args): Add SSE4a builtins.
2807         (ix86_init_mmx_sse_builtins): Updated.
2808         (ix86_expand_args_builtin): Likewise.
2809         (ix86_expand_builtin): Likewise.
2810
2811 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2812
2813         * config/i386/i386.c (ix86_builtin_type): Add
2814         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
2815         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
2816         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
2817         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
2818         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
2819         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
2820         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
2821         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
2822         and DI_FTYPE_DI_DI_INT.
2823         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
2824         (ix86_init_mmx_sse_builtins): Updated.
2825         (ix86_expand_args_builtin): Likewise.
2826         (ix86_expand_builtin): Likewise.
2827         (ix86_expand_binop_imm_builtin): Removed.
2828
2829         * doc/extend.texi: Correct __builtin_ia32_palignr128.
2830
2831 2008-04-30  Richard Guenther  <rguenther@suse.de>
2832
2833         PR tree-optimization/32921
2834         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
2835
2836 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
2837
2838         * config/arm/arm.c (arm_unwind_emit): Use
2839         crtl->all_throwers_are_sibcalls instead of
2840         cfun->all_throwers_are_sibcalls.
2841         (arm_output_fn_unwind): Likewise.
2842         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
2843         instead of cfun->uses_pic_offset_table.
2844         (frv_expand_prologue): Likewise.
2845         (frv_frame_pointer_required): Likewise.
2846         (frv_expand_fdpic_call): Likewise.
2847         (frv_emit_movsi): Likewise.
2848         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
2849         cfun->returns_pcc_struct instead of
2850         current_function_returns_pcc_struct.
2851         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
2852         instead of cfun->calls_eh_return.
2853         (m32c_pushm_popm): Likewise.
2854         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
2855         "extern" declaration.
2856
2857 2008-04-30  Richard Guenther  <rguenther@suse.de>
2858
2859         PR tree-optimization/21636
2860         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
2861         constant address.
2862         (evaluate_stmt): Print the likely value.
2863         (ccp_visit_stmt): Avoid excessive vertical spacing.
2864
2865 2008-04-30  Rafael Espindola  <espindola@google.com>
2866
2867         * builtins.c (fold_call_expr): Return realret.
2868         * tree-ssa-threadedge.c
2869         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
2870         __builtin_object_size.
2871
2872 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
2873
2874         * gcc.c (wrapper_string): New variable.
2875         (insert_wrapper): New function.
2876         (execute): New option -wrapper.
2877         * doc/invoke.texi (Overall Options): New driver option -wrapper.
2878
2879 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
2880
2881         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
2882         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
2883         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
2884         from...
2885         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
2886         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
2887         config/rs6000/e500crtres64gprctr.asm,
2888         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
2889         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
2890         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
2891         config/rs6000/e500crtsav64gprctr.asm,
2892         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
2893         config/rs6000/e500crtsavg64gprctr.asm: New files.
2894         * config/rs6000/t-ppccomm: Add build rules for new files.
2895         (LIB2FUNCS_STATIC_EXTRA): Add new files.
2896         * config/rs6000/t-netbsd: Add build rules for new files.
2897         (LIB2FUNCS_STATIC_EXTRA): New variable.
2898         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
2899         (CRTSAVRES_DEFAULT_SPEC): Likewise.
2900         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
2901
2902 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
2903
2904         * config/i386/i386.c (ix86_builtin_type): Add
2905         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
2906         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
2907         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
2908         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
2909         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
2910         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
2911         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
2912         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
2913         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
2914         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
2915         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
2916         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
2917         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
2918         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
2919         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
2920         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
2921         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
2922         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
2923         V1DI_FTYPE_V2SI_V2SI.
2924         (bdesc_2arg): Moved to ...
2925         (bdesc_args): Here.
2926         (ix86_init_mmx_sse_builtins): Updated.
2927         (ix86_expand_args_builtin): Updated.  Take a pointer
2928         to const struct builtin_description.  Handle comparison
2929         builtin functions.
2930         (ix86_expand_sse_compare): Take a new argument for swapping operands.
2931         (ix86_expand_builtin): Updated.
2932
2933         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
2934         (ssse3_pmaddubsw128): This.
2935         (ssse3_pmaddubswv4hi3): Renamed to ...
2936         (ssse3_pmaddubsw): This.
2937
2938         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
2939         (__builtin_ia32_packssdw128): Likewise.
2940         (__builtin_ia32_packuswb128): Likewise.
2941         (__builtin_ia32_pmaddubsw): Likewise.
2942         (__builtin_ia32_pmaddubsw128): Likewise.
2943
2944 2008-04-30  Richard Guenther  <rguenther@suse.de>
2945
2946         PR tree-optimization/14847
2947         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
2948         (recognize_bits_test): Use it.
2949         (recognize_single_bit_test): Likewise.
2950
2951 2008-04-30  Martin Jambor  <mjambor@suse.cz>
2952
2953         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
2954         instead of setting number of formal parameters to zero.
2955         (ipcp_init_stage): Do not set the number of actual parameters to zero 
2956         either.
2957         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
2958         which are called with variable number of arguments.
2959         (ipcp_insert_stage): Explicitely skipping all nodes which are
2960         called with variable number of arguments.
2961         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
2962         number of parameters.
2963
2964         * ipa-prop.h (struct ipa_node_params): Added flag
2965         called_with_var_arguments
2966         (ipa_set_param_count): Added.  Changed sole setter to use it.
2967         (ipa_get_param_count): Added.  All readers of param_count
2968         converted to use it instead.
2969         (ipa_set_called_with_variable_arg): Added.
2970         (ipa_is_called_with_var_arguments): Added.
2971         (ipa_get_ith_param): Added.  All readers of param_decls converted
2972         to use it instead.
2973         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
2974         changed to use it. 
2975         (ipa_get_cs_argument_count): Added, all readers of argument_count
2976         changed to cal it.
2977         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
2978         to use it.
2979         
2980         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
2981         (struct ipcp_lattice): Renamed cval_type to type
2982         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
2983
2984         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
2985         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
2986         (ipcp_insert_stage): Changed the type of variable cvalue to tree
2987         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
2988         (build_const_val): Changed the type of parameter cvalue to tree
2989         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
2990         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
2991         
2992         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
2993         constant 
2994
2995         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
2996         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
2997         (ipa_add_method): Renamed to ipa_push_func_to_list
2998         (ipa_remove_method): Renamed to ipa_pop_func_from_list
2999         (ipa_callsite_param_count): Removed.
3000         (ipa_callsite_param_count_set): Removed.
3001         (ipa_callsite_param): Removed.
3002         (ipa_callsite_callee): Removed.
3003         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
3004         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
3005         (ipa_method_formal_count): Removed.
3006         (ipa_method_formal_count_set): Removed.
3007         (ipa_method_get_tree): Removed.
3008         (ipa_method_tree_map_create): Removed.
3009         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
3010         (ipa_create_param_decls_array): Creates the array itself
3011         (ipa_create_param_decls_array): Temporary variable info instead of 
3012         a few dereferences.
3013         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
3014         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
3015         (get_type): Removed.
3016         (ipa_jf_get_info_type): Removed.
3017         (ipa_node_create): Renamed to ipa_create_node_params
3018         (ipa_free): Renamed to ipa_free_all_node_params
3019         (ipa_nodes_create): Renamed to ipa_create_all_node_params
3020         (ipa_edges_create): Renamed to ipa_create_all_edge_args
3021         (ipa_edges_free): Renamed to ipa_free_all_edge_args
3022         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
3023         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
3024         ipa_free_all_edge_args
3025         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
3026         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
3027         (ipa_create_methodlist_node): Removed.
3028         (ipa_methodlist_method): Removed.
3029         (ipa_methodlist_method_set): Removed.
3030         (ipa_methodlist_next_method): Removed.
3031         (ipa_methodlist_next_method_set): Removed.
3032         (ipa_method_is_modified): Removed.
3033         (ipa_method_modify_create): Removed.
3034         (ipa_method_modify_init): Temporary variable info instead of a few 
3035         dereferences.
3036         (ipa_detect_param_modifications): Temporary variable info instead of 
3037         a few dereferences.
3038         (ipa_compute_jump_functions): Temporary variable info instead of 
3039         a few dereferences.
3040         (ipa_method_modify_set): Removed.
3041         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
3042         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
3043         than craph_node as the first parameter.
3044         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
3045         (ipa_method_modify_init): Removed.
3046         (ipa_compute_jump_functions): Added a temp variable instead of 
3047         repeatadly dereferencing the cgraph_edge.aux pointer
3048         (ipa_callsite_param_set_type): Removed.
3049         (ipa_compute_jump_functions): i renamed to index and moved to 
3050         an inner block
3051         (ipa_callsite_param_set_info_type_formal): Removed.
3052         (ipa_callsite_param_set_info_type): Removed.
3053         (ipa_callsite_param_map_create): Removed.
3054         (ipa_callsite_tree): Removed.
3055         (ipa_callsite_caller): Removed.
3056         (ipa_pop_func_from_list): return_method removed to return_func
3057
3058         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
3059         prefixed all values with IPA_. Changed all users.
3060         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
3061         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
3062         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
3063         (union parameter_info): Renamed to jump_func_value.
3064         (union jump_func_value): Renamed value to constant
3065         (struct ipa_jump_func): Renamed info_type to value
3066         (struct ipa_node): Renamed to ipa_node_params
3067         (struct ipa_node_params): Renamed ipa_arg_num to param_count
3068         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
3069         (struct ipa_node_params): Renamed ipa_mod to modified_flags
3070         (struct ipa_edge): Renamed to ipa_edge_args
3071         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
3072         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
3073         (struct ipa_methodlist): Renamed to ipa_func_list
3074         (struct ipa_func_list): method_p renamed to node, next_method
3075         renamed to next
3076         (ipa_methodlist_p): Removed, switched all users to struct pointer
3077         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
3078
3079 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
3080
3081         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
3082         (rs6000_emit_epilogue): Use backchain to restore only when we
3083         have a large frame.  Make use of frame pointer to restore if we
3084         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
3085
3086 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
3087
3088         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
3089         Add mode to zero_extract.
3090         (sign bit tests peepholes): (Ditto.).
3091
3092 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
3093
3094         * config/i386/i386.c (ix86_builtins): Replace Prescott New
3095         Instructions in comments with SSE3.
3096         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
3097         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
3098         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
3099         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
3100         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
3101         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
3102         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
3103         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
3104         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
3105         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
3106         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
3107         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
3108         (bdesc_sse_args): Renamed to ...
3109         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
3110         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
3111         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
3112         IX86_BUILTIN_FABSQ.
3113         (bdesc_1arg): Moved to ...
3114         (bdesc_args): Here.
3115         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
3116         Instructions in comments with SSE3.
3117         (ix86_expand_sse_operands_builtin): Renamed to ...
3118         (ix86_expand_args_builtin): This.  Updated.
3119         (ix86_expand_unop1_builtin): Update comments.
3120         (ix86_expand_builtin): Updated.
3121
3122 2008-04-29  Richard Guenther  <rguenther@suse.de>
3123
3124         PR tree-optimization/36078
3125         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
3126         Update virtual SSA form after cleaning up the CFG.
3127
3128 2008-04-29  Richard Guenther  <rguenther@suse.de>
3129
3130         PR middle-end/15255
3131         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
3132
3133 2008-04-29  Richard Guenther  <rguenther@suse.de>
3134
3135         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
3136         (compute_may_aliases): Do not call finalize_ref_all_pointers.
3137         (compute_flow_insensitive_aliasing): Do not treat
3138         PTR_IS_REF_ALL pointers special.
3139         (get_smt_for): Likewise.
3140         (may_alias_p): Re-structure.
3141         (is_escape_site): A ref-all pointer conversion is not an escape site.
3142         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
3143         PTR_IS_REF_ALL pointers special.
3144         * tree-ssa-structalias.h (struct alias_info): Remove
3145         ref_all_symbol_mem_tag field.
3146         (PTR_IS_REF_ALL): Remove.
3147
3148 2008-04-29  Richard Guenther  <rguenther@suse.de>
3149
3150         PR middle-end/36077
3151         * fold-const.c (extract_muldiv_1): In combining division constants
3152         make sure to never overflow.
3153
3154 2008-04-29  Nick Clifton  <nickc@redhat.com>
3155
3156         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
3157
3158 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3159
3160         PR bootstrap/35169
3161         * optc-gen.awk: Work around HP-UX/IA awk bug.
3162
3163 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
3164
3165         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
3166         2008-04-25 commit.
3167
3168 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
3169
3170         PR target/36073
3171         * config/i386/i386.md
3172         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
3173         Change operand 1 predicate to nonimmediate_operand.
3174
3175 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
3176
3177         PR debug/36060
3178         * dwarf2out.c (struct die_struct): Mark as chain_circular through
3179         die_sub field.
3180         * gengtype.c (walk_type, write_func_for_structure): Handle
3181         chain_circular.
3182         * doc/gty.texi: Document chain_circular.
3183
3184 2008-04-28  Richard Guenther  <rguenther@suse.de>
3185
3186         PR tree-optimization/36066
3187         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
3188         SCEV and loop.
3189
3190 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
3191
3192         PR target/36064
3193         * config/i386/i386.md
3194         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
3195         Use match_scratch instead of match_operand for operands 3 and 4.
3196
3197 2008-04-27  Richard Guenther  <rguenther@suse.de>
3198
3199         PR tree-optimization/18754
3200         PR tree-optimization/34223
3201         * tree-pass.h (pass_complete_unrolli): Declare.
3202         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
3203         loop size before and after unconditionally of UL_NO_GROWTH in effect.
3204         Rewrite loop into loop closed SSA form if it is not already.
3205         (tree_unroll_loops_completely): Re-structure to iterate over
3206         innermost loops with intermediate CFG cleanups.
3207         Unroll outermost loops only if requested or the code does not grow
3208         doing so.
3209         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
3210         loops are available.
3211         (tree_vectorize): Instead do so here.
3212         (tree_complete_unroll): Also unroll outermost loops.
3213         (tree_complete_unroll_inner): New function.
3214         (gate_tree_complete_unroll_inner): Likewise.
3215         (pass_complete_unrolli): New pass.
3216         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
3217         uses outside of the loop.
3218         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
3219         form if it is available.  
3220         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
3221         * passes.c (init_optimization_passes): Schedule complete inner
3222         loop unrolling pass before the first CCP pass after final inlining.
3223
3224 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
3225
3226         * targhooks.h (default_emutls_var_fields,
3227         default_emutls_var_init): Declare.
3228         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
3229         * target.h (struct gcc_target): Add struct emutls member.
3230         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
3231         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
3232         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
3233         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
3234         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
3235         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
3236         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
3237         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
3238         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
3239         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
3240         emit debug information.
3241         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
3242         * varasm.c: Include targhooks.h.
3243         (emutls_object_section, emutls_tmpl_section): New.
3244         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
3245         (EMUTLS_SEPARATOR): New.
3246         (prefix_name): New.
3247         (get_emutls_object_name): New.
3248         (default_emutls_var_fields): New, broken out of ...
3249         (get_emutls_object_type): ... here.  Adjust to use target hooks.
3250         (get_emutls_init_templ_addr): Adjust to use target hooks.
3251         (emutls_decl): Adjust to use target hooks.
3252         (emutls_finish): Likewise.
3253         (default_emutls_var_init): New, broken out of ...
3254         (assemble_variable): ... here.  Adjust to use target hooks.
3255         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
3256         SECCAT_EMUTLS_TMPL.
3257         * c-common.c (handle_section_attribute): Prevent overriding
3258         sections for emulated tls with special sections.
3259         * config/i386/i386.c (x86_64_elf_select_section): Add
3260         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
3261         (x86_64_elf_unique_section): Likewise.
3262         * config/vxworks.c: Include tree.h.
3263         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
3264         (vxworks_override_options): Set TLS scheme.
3265         * doc/tm.texi (Emulated TLS): New node.
3266
3267 2008-04-26  Simon Baldwin <simonb@google.com>
3268
3269         PR c/35652
3270         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
3271         with propagated string constants.
3272
3273 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
3274
3275         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
3276         constraint for operand 2 when operand 0 is memory operand.
3277         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
3278         operand 0 is memory operand.
3279         (fix_trunc<mode>_i387_with_temp): Ditto.
3280         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
3281         operand 2 when operand 1 is memory operand.
3282         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
3283         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
3284         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
3285         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
3286         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
3287         operands 2,3 and 4 when operand 1 is memory operand.
3288         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
3289         is memory operand.
3290         (fistdi2_floor_with_temp): Ditto.
3291         (fist<mode>2_floor_with_temp): Ditto.
3292         (fistdi2_ceil_with_temp): Ditto.
3293         (fist<mode>2_ceil_with_temp): Ditto.
3294         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
3295
3296 2008-04-26  David Daney  <ddaney@avtrex.com>
3297
3298         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
3299         unspec_volitile.
3300         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
3301         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
3302         UNSPEC_UPDATE_GOT_VERSION): Renumber.
3303         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
3304         (compare_and_swap_12): New insn.
3305         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
3306         * config/mips/mips.c (mips_force_binary): New function.
3307         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
3308         (mips_expand_compare_and_swap_12): New function.
3309         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
3310
3311 2008-04-25  Jan Hubicka  <jh@suse.cz>
3312
3313         PR testsuite/35843
3314         * cfgexpand.c (pass_expand): Turn into RTL pass.
3315         * passes.c (execute_one_pass): Do pass typechecking after execution.
3316         * tree-pass.h (pass_expand): Turn into RTL pass.
3317
3318         * function.h (struct rtl_data): Move here fields
3319         accesses_prior_frames, calls_eh_return, saves_all_registers,
3320         has_nonlocal_goto, has_asm_statement, is_thunk,
3321         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
3322         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
3323         arg_pointer_save_area_init from struct function; turn into bool.
3324         (struct function): Move
3325         calls_eh_return, saves_all_registers, has_nonlocal_goto,
3326         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
3327         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
3328         tail_call_emit, arg_pointer_save_area_init
3329         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
3330         (current_function_returns_struct, current_function_returns_pcc_struct,
3331         current_function_calls_setjmp, current_function_calls_alloca,
3332         current_function_accesses_prior_frames,
3333         current_function_calls_eh_return, current_function_is_thunk,
3334         current_function_stdarg, current_function_profile,
3335         current_function_limit_stack, current_function_uses_pic_offset_table,
3336         current_function_uses_const_pool, current_function_has_nonlocal_label,
3337         current_function_saves_all_registers,
3338         current_function_has_nonlocal_goto,
3339         current_function_has_asm_statement): Remove accesor macros.
3340         * ra-conflict.c (global_conflicts): Update.
3341         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
3342         (suitable_for_tail_call_opt_p): Update.
3343         * builtins.c (expand_builtin_return_addr): Update.
3344         (expand_builtin_setjmp_setup): Update.
3345         (expand_builtin_nonlocal_goto): Update.
3346         * final.c (final_start_function): Update.
3347         (profile_function): Update.
3348         (leaf_function_p): Update.
3349         (only_leaf_regs_used): Update.
3350         * df-scan.c (df_get_exit_block_use_set): Update.
3351         * dojump.c (clear_pending_stack_adjust): Update.
3352         * tree-stdarg.c (gate_optimize_stdarg): Update.
3353         * gimple-low.c (lower_function_body): Update.
3354         * global.c (compute_regsets): Update.
3355         (global_alloc): Update.
3356         * dwarf2out.c (dwarf2out_begin_prologue): Update.
3357         * expr.c (expand_assignment): Update.
3358         * dse.c (dse_step0): Update.
3359         (dse_step1): Update.
3360         * c-decl.c (store_parm_decls): Update.
3361         * local-alloc.c (combine_regs): Update.
3362         (find_free_reg): Update.
3363         * function.c (assign_parms_augmented_arg_list): Update.
3364         (assign_parm_find_data_types): Update.
3365         (assign_parms): Update.
3366         (allocate_struct_function): Update.
3367         (expand_function_start): Update.
3368         (expand_function_end): Update.
3369         (get_arg_pointer_save_area): Update.
3370         (thread_prologue_and_epilogue_insns): Update.
3371         (rest_of_match_asm_constraints): Update.
3372         * stor-layout.c (variable_size): Update.
3373         * gcse.c (gcse_main): Update.
3374         (bypass_jumps): Update.
3375         * gimplify.c (gimplify_function_tree): Update.
3376         * calls.c (emit_call_1): Update.
3377         (expand_call): Update.
3378         * bt-load.c (compute_defs_uses_and_gen): Update.
3379         * except.c (sjlj_assign_call_site_values): Update.
3380         (sjlj_emit_function_enter): Update.
3381         (can_throw_external): Update.
3382         (set_nothrow_function_flags): Update.
3383         (expand_builtin_unwind_init): Update.
3384         (expand_eh_return): Update.
3385         (convert_to_eh_region_ranges): Update.
3386         (output_function_exception_table): Update.
3387         * emit-rtl.c (gen_tmp_stack_mem): Update.
3388         * cfgexpand.c (expand_used_vars): Update.
3389         (tree_expand_cfg): Update.
3390         * cfgcleanup.c (rest_of_handle_jump): Update.
3391         * explow.c (allocate_dynamic_stack_space): Update.
3392         * varasm.c (assemble_start_function): Update.
3393         (force_const_mem): Update.
3394         (mark_constant_pool): Update.
3395         * tree-optimize.c (tree_rest_of_compilation): Update.
3396         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
3397         * tree-cfg.c (notice_special_calls): Update.
3398         (is_ctrl_altering_stmt): Update.
3399         (tree_can_make_abnormal_goto): Update.
3400         (tree_purge_dead_abnormal_call_edges): Update.
3401         * config/alpha/predicates.md: Update.
3402         * config/alpha/alpha.c (alpha_sa_mask): Update.
3403         (alpha_sa_size): Update.
3404         (alpha_does_function_need_gp): Update.
3405         (alpha_expand_prologue): Update.
3406         (alpha_start_function): Update.
3407         (alpha_output_function_end_prologue): Update.
3408         (alpha_expand_epilogue): Update.
3409         * config/frv/frv.c (frv_stack_info): Update.
3410         (frv_expand_epilogue): Update.
3411         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
3412         (s390_register_info): Update.
3413         (s390_frame_info): Update.
3414         (s390_init_frame_layout): Update.
3415         (s390_can_eliminate): Update.
3416         (save_gprs): Update.
3417         * config/spu/spu.c (spu_split_immediate): Update.
3418         (need_to_save_reg): Update.
3419         (spu_expand_prologue): Update.
3420         (spu_expand_epilogue): Update.
3421         * config/sparc/sparc.md: Update.
3422         * config/sparc/sparc.c (eligible_for_return_delay): Update.
3423         (sparc_tls_got): Update.
3424         (legitimize_pic_address): Update.
3425         (sparc_emit_call_insn): Update.
3426         (sparc_expand_prologue): Update.
3427         (output_return): Update.
3428         (print_operand): Update.
3429         (sparc_function_ok_for_sibcall): Update.
3430         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
3431         * config/m32r/m32r.md: Update.
3432         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
3433         (m32r_compute_frame_size): Update.
3434         (m32r_expand_prologue): Update.
3435         (m32r_expand_epilogue): Update.
3436         (m32r_legitimize_pic_address): Update.
3437         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
3438         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
3439         * config/i386/i386.c (ix86_frame_pointer_required): Update.
3440         (gen_push): Update.
3441         (ix86_save_reg): Update.
3442         (ix86_compute_frame_layout): Update.
3443         (ix86_expand_prologue): Update.
3444         (ix86_expand_epilogue): Update.
3445         * config/sh/sh.c (output_stack_adjust): Update.
3446         (calc_live_regs): Update.
3447         (sh5_schedule_saves): Update.
3448         (sh_expand_prologue): Update.
3449         (sh_expand_epilogue): Update.
3450         (sh_setup_incoming_varargs): Update.
3451         (sh_allocate_initial_value): Update.
3452         (sh_get_pr_initial_val): Update.
3453         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
3454         * config/sh/sh.md (label:): Update.
3455         * config/avr/avr.c (out_movhi_mr_r): Update.
3456         * config/crx/crx.h (enum): Update.
3457         * config/xtensa/xtensa.h (along): Update.
3458         * config/stormy16/stormy16.c Update.
3459         (xstormy16_compute_stack_layout): Update.
3460         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
3461         (fr30_expand_prologue): Update.
3462         * config/cris/cris.c (cris_conditional_register_usage): Update.
3463         (cris_reg_saved_in_regsave_area): Update.
3464         (cris_initial_frame_pointer_offset): Update.
3465         (cris_simple_epilogue): Update.
3466         (cris_expand_prologue): Update.
3467         (cris_expand_epilogue): Update.
3468         (cris_expand_pic_call_address): Update.
3469         (cris_asm_output_symbol_ref): Update.
3470         (cris_asm_output_label_ref): Update.
3471         * config/cris/cris.md Update.
3472         * config/iq2000/iq2000.c (compute_frame_size): Update.
3473         (iq2000_expand_epilogue): Update.
3474         * config/mt/mt.h (save_direction): Update.
3475         * config/mn10300/mn10300.c (mn10300_function_value): Update.
3476         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
3477         (ia64_secondary_reload_class): Update.
3478         * config/m68k/m68k.c (m68k_save_reg): Update.
3479         (m68k_expand_prologue): Update.
3480         (m68k_expand_epilogue): Update.
3481         (legitimize_pic_address): Update.
3482         * config/rs6000/rs6000.c (rs6000_got_register): Update.
3483         (first_reg_to_save): Update.
3484         (first_altivec_reg_to_save): Update.
3485         (compute_vrsave_mask): Update.
3486         (compute_save_world_info): Update.
3487         (rs6000_stack_info): Update.
3488         (spe_func_has_64bit_regs_p): Update.
3489         (rs6000_ra_ever_killed): Update.
3490         (rs6000_emit_eh_reg_restore): Update.
3491         (rs6000_emit_allocate_stack): Update.
3492         (rs6000_emit_prologue): Update.
3493         (rs6000_emit_epilogue): Update.
3494         (rs6000_output_function_epilogue): Update.
3495         (output_profile_hook): Update.
3496         (rs6000_elf_declare_function_name): Update.
3497         * config/rs6000/rs6000.h (rs6000_args): Update.
3498         * config/rs6000/rs6000.md: Update.
3499         * config/mcore/mcore.c (mcore_expand_prolog): Update.
3500         * config/arc/arc.c (arc_output_function_epilogue): Update.
3501         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
3502         * config/darwin.c (machopic_function_base_name): Update.
3503         * config/score/score3.c (score3_compute_frame_size): Update.
3504         (rpush): Update.
3505         (rpop): Update.
3506         (score3_epilogue): Update.
3507         * config/score/score7.c (score7_compute_frame_size): Update.
3508         (score7_prologue): Update.
3509         (score7_epilogue): Update.
3510         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
3511         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
3512         * config/arm/arm.c (use_return_insn): Update.
3513         (require_pic_register): Update.
3514         (arm_load_pic_register): Update.
3515         (arm_compute_save_reg0_reg12_mask): Update.
3516         (arm_compute_save_reg_mask): Update.
3517         (thumb1_compute_save_reg_mask): Update.
3518         (output_return_instruction): Update.
3519         (arm_output_function_prologue): Update.
3520         (arm_output_epilogue): Update.
3521         (arm_get_frame_offsets): Update.
3522         (arm_expand_prologue): Update.
3523         (thumb_pushpop): Update.
3524         (thumb_exit): Update.
3525         (thumb1_expand_prologue): Update.
3526         (thumb1_expand_epilogue): Update.
3527         (arm_unwind_emit): Update.
3528         (arm_output_fn_unwind): Update.
3529         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
3530         * config/arm/arm.md: Update.
3531         * config/pa/pa.md: Update.
3532         * config/pa/pa.c (legitimize_pic_address): Update.
3533         (compute_frame_size): Update.
3534         (hppa_expand_prologue): Update.
3535         (hppa_expand_epilogue): Update.
3536         (borx_reg_operand): Update.
3537         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
3538         (HARD_REGNO_RENAME_OK): Update.
3539         * config/mips/mips.c (mips_global_pointer): Update.
3540         (mips_save_reg_p): Update.
3541         (mips_compute_frame_info): Update.
3542         (mips_frame_pointer_required): Update.
3543         (mips_expand_prologue): Update.
3544         (mips_expand_epilogue): Update.
3545         (mips_can_use_return_insn): Update.
3546         (mips_reorg_process_insns): Update.
3547         * config/v850/v850.c (compute_register_save_size): Update.
3548         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
3549         * config/mmix/mmix.c (along): Update.
3550         (mmix_expand_epilogue): Update.
3551         * config/bfin/bfin.c (legitimize_pic_address): Update.
3552         (must_save_p): Update.
3553         (stack_frame_needed_p): Update.
3554         (add_to_reg): Update.
3555         (bfin_expand_prologue): Update.
3556         * stmt.c (expand_asm_operands): Update.
3557         * reload1.c (reload): Update.
3558         (init_elim_table): Update.
3559
3560 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
3561         
3562         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
3563         
3564 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
3565
3566         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
3567         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
3568         (mov<mode>): Removed.
3569         (*movv4sf_internal): Likewise.
3570         (*movv2df_internal): Likewise.
3571
3572 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
3573
3574         * config.gcc (crx-*-elf): Remove deprecation.
3575
3576 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
3577
3578         * config/i386/cygming-crtend.c (register_frame_ctor): Register
3579         __gcc_deregister_frame with atexit.
3580         (deregister_frame_dtor): Remove.
3581
3582 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
3583             Nathan Sidwell  <nathan@codesourcery.com>
3584
3585         * config/rs6000/rs6000.opt (mspe): Remove Var property.
3586         (misel): Likewise.
3587         * config/rs6000/rs6000.h (rs6000_spe): Declare.
3588         (rs6000_isel): Likewise.
3589         * config/rs6000/rs6000.c (rs6000_spe): New variable.
3590         (rs6000_isel): New variable.
3591         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
3592
3593 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3594
3595         PR c++/35758
3596         * c-common.c (handle_vector_size_attribute): Call
3597         lang_hooks.types.reconstruct_complex_type instead of
3598         reconstruct_complex_type.
3599         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
3600         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
3601         * langhooks.h (struct lang_hooks_for_types): Add
3602         reconstruct_complex_type hook.
3603         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
3604         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
3605
3606 2008-04-24  Richard Guenther  <rguenther@suse.de>
3607
3608         * c-common.h (check_builtin_function_arguments): Declare.
3609         * c-common.c (validate_nargs): New function.
3610         (check_builtin_function_arguments): Likewise.
3611         * c-typeck.c (build_function_call): Call
3612         check_builtin_function_arguments.
3613         * builtins.c (fold_builtin_classify): Remove error reporting code.
3614         (fold_builtin_unordered_cmp): Likewise.
3615         (fold_builtin_1): Likewise.
3616         (fold_builtin_n): Likewise.
3617
3618 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3619
3620         PR tree-optimization/36008
3621         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
3622         the original op1, rather than delta by step.
3623
3624 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
3625             Sebastian Pop  <sebastian.pop@amd.com>
3626
3627         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
3628         eliminate_local_variables_stmt, eliminate_local_variables,
3629         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
3630         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
3631         of code delimited by two edges in the CFG.
3632         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
3633         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
3634         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
3635         the case of parallelisation of reductions.
3636         (expr_invariant_in_region_p): New.
3637
3638         * tree-flow.h (gather_blocks_in_sese_region): Declared.
3639         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
3640
3641 2008-04-24  Ira Rosen  <irar@il.ibm.com>
3642             Richard Guenther  <rguenther@suse.de>
3643
3644         PR tree-optimization/36034
3645         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
3646         incapable of dealing with loads with gaps.
3647
3648 2008-04-24  Rafael Espindola  <espindola@google.com>
3649
3650         * tree-flow.h (vrp_evaluate_conditional): Change signature.
3651         * tree-ssa-propagate.c (fold_predicate_in): Update call to
3652         vrp_evaluate_conditional.
3653         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
3654         (vrp_evaluate_conditional): Split the cond argument.
3655         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
3656         (simplify_stmt_for_jump_threading): Update call to
3657         vrp_evaluate_conditional.
3658
3659 2008-04-24  Ira Rosen  <irar@il.ibm.com>
3660
3661         PR tree-optimization/35982
3662         * tree-vect-analyze.c (vect_check_interleaving): Check that the
3663         interleaved data-refs are of the same type.
3664
3665 2008-04-24  Danny Smith  <dannysmith@users.net>
3666
3667         * c-format.c (check_format_info_main): Use strncmp rather than a
3668         magic prefix to handle multichar length specs.
3669         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
3670         Don't prefix "I64" and "I32" with '\0'.
3671
3672 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3673
3674         PR target/36015
3675         * config/i386/i386.c (init_cumulative_args): Don't pass anything
3676         in registers for -m32 only if stdarg_p (fntype).
3677
3678 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
3679
3680         PR rtl-optimization/36006
3681         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
3682         temp to op0 in order to avoid invalid rtx sharing.
3683
3684 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
3685
3686         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
3687         check TREE_INVARIANT.
3688         * tree-gimple.c (is_gimple_address): New.
3689         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
3690         * tree-gimple.h (is_gimple_address): New.
3691         * tree.h (decl_address_invariant_p): New.
3692         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
3693         (build_string): Likewise.
3694         (decl_address_invariant_p): New, from is_gimple_invariant_address.
3695         (tree_invariant_p_1): Likewise.
3696         (save_expr): Use it.
3697         (tree_invariant_p): New.
3698         (skip_simple_arithmetic): Use it.
3699         (stabilize_reference_1): Use it.
3700         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
3701         simplify.
3702         (build1_stat): Drop code to compute TREE_INVARIANT.
3703         (build2_stat): Drop code to compute TREE_INVARIANT.
3704         (build3_stat): Drop code to compute TREE_INVARIANT.
3705         (build4_stat): Drop code to compute TREE_INVARIANT.
3706         (build5_stat): Drop code to compute TREE_INVARIANT.
3707         (build7_stat): Drop code to compute TREE_INVARIANT.
3708         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
3709         * tree.h (struct tree_base): Remove invariant_flag.
3710         (TREE_INVARIANT): Remove.
3711         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
3712         (fold_builtin_expect): Check TREE_CONSTANT.
3713         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
3714         * c-tree.h (c_expr_to_decl): Drop third parameter.
3715         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
3716         (build_c_cast): Don't set TREE_INVARIANT.
3717         (pop_init_level): Don't set TREE_INVARIANT.
3718         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
3719         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
3720         TREE_CONSTANT.
3721         (gimplify_init_constructor): Don't set TREE_INVARIANT.
3722         (gimplify_addr_expr): Adjust comment.
3723         * tree-mudflap.c (mf_build_string):
3724         * print-tree.c (print_node): Don't print TREE_INVARIANT.
3725         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
3726         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
3727         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
3728         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
3729         * langhooks.h (struct lang_hooks): Drop third parameter from
3730         expr_to_decl.
3731
3732 2008-04-23  Richard Guenther  <rguenther@suse.de>
3733
3734         PR tree-optimization/27799
3735         PR tree-optimization/32921
3736         PR tree-optimization/32624
3737         * tree-ssa-structalias.c (merge_smts_into): Only merge the
3738         SMTs aliases and the tag itself into the solution.
3739         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
3740         merge the points-to solution back into the SMT aliases.
3741         (may_alias_p): Use alias_set_subset_of instead of
3742         aliases_conflict_p.  A pointer which points to
3743         memory with alias set zero may access any variable.
3744
3745 2008-04-23  Richard Guenther  <rguenther@suse.de>
3746
3747         * alias.c (alias_set_subset_of): Correctly handle asking
3748         if zero is a subset of an alias set with zero child.
3749         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
3750         (compute_flow_insensitive_aliasing): Correctly walk all
3751         pointers.  Do not unnecessarily union sets.
3752
3753 2008-04-23  Richard Guenther  <rguenther@suse.de>
3754
3755         PR middle-end/36021
3756         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
3757
3758 2008-04-22  Tomas Bily  <tbily@suse.cz>
3759
3760         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
3761         unreachable case.
3762         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
3763         NON_LVALUE_EXPR.
3764         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
3765         * tree-ssa-structalias.c (get_constraint_for): Likewise.
3766         * tree-inline.c (estimate_num_insns_1): Likewise.
3767         * varasm.c (const_hash_1, compare_constant, copy_constant)
3768         (compute_reloc_for_constant, output_addressed_constants): Likewise.
3769         * emit-rtl.c (component_ref_for_mem_expr)
3770         (set_mem_attributes_minus_bitpos): Likewise.
3771         * expr.c (highest_pow2_factor, expand_expr_real_1, )
3772         (is_aligning_offset): Likewise.
3773         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
3774         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
3775         * dojump.c (do_jump): Likewise.
3776         * builtins.c (get_pointer_alignment, get_memory_rtx)
3777         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
3778         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
3779
3780 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
3781
3782         PR rtl-optimization/36017
3783         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
3784         expanding the library call.
3785
3786 2008-04-22  Ian Lance Taylor  <iant@google.com>
3787
3788         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
3789         than size_in_bytes.
3790
3791 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
3792
3793         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
3794         of LR/CTR moves for Power6.
3795
3796 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
3797
3798         PR middle-end/36003
3799         * passes.c (init_optimization_passes): Remove
3800         pass_fast_rtl_byte_dce.
3801         
3802 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
3803
3804         PR target/29096
3805         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
3806         builtin functions to generate faster code.
3807         (_mm_cvtpu16_ps): Ditto.
3808         (_mm_cvtpi32x2_ps): Ditto.
3809
3810 2008-04-22  Nick Clifton  <nickc@redhat.com>
3811
3812         * common.opt (ftree-loop-distribution): Add Optimization
3813         attribute.
3814
3815         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
3816         (frv_expand_builtin_va_start): Likewise.
3817
3818         * config/arm/arm.c (thumb_find_work_register): Fix location of
3819         argument register count.
3820
3821 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
3822
3823         Support scheduling for ColdFire V1 and V3 microarchitecture.
3824         Improve scheduling of multiplication instructions.
3825
3826         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
3827         (mac): New instruction attribute.
3828         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
3829         (m68k_sched_mac): New variable.
3830         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
3831         Handle cfv1 and cfv3.
3832         (max_insn_size): New static variable.
3833         (struct _sched_ib): New type.
3834         (sched_ib): New static variable.
3835         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
3836         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
3837         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
3838         Update.
3839         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
3840         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
3841         new variables.  Update.
3842         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
3843         Add modeling of cfv3 instruction buffer.  Update.
3844         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
3845         * config/m68k/m68k.h (TUNE_CFV3): New macro.
3846         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
3847         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
3848         a particular reservation applies to.
3849         (type2): Reorganize attribute values.  Rename alu to alu_reg,
3850         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
3851         to mul_l and mul_w.
3852         (cf_ib_*): Simplify description of instruction buffer.
3853         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
3854         (cf_mem): Split into cf_mem1 and cf_mem2.
3855         (cf_v2_move_??): Rename to cfv12_alu_??.
3856         (cf_v2_move_l_??): Rename to cfv12_omove_??.
3857         (cf_v2_mul_??): Remove reservations.
3858         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
3859         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
3860         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
3861         appropriate place.
3862         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
3863         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
3864         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
3865         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
3866         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
3867         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
3868         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
3869         expansions of the above reservations for instructions of sizes
3870         1, 2 and 3 words.
3871
3872 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
3873
3874         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
3875
3876 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
3877
3878         * coverage.c: Include tree-pass.h.
3879         (coverage_counter_alloc): Print da_file_name to the dump file.
3880
3881 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
3882
3883         * sbitmap.c (sbitmap_range_empty_p): New function.
3884         * sbitmap.h (sbitmap_range_empty_p): New function.
3885         * bitmap.h: Now includes obstack.h.
3886
3887 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
3888             Kenneth Zadeck  <zadeck@naturalbridge.com>
3889
3890         * dbgcnt.def (ra_byte_scan): Added.
3891         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
3892         when the last hit happens for a counter.  
3893         * timevar.def (TV_DF_BYTE_LR): New variable.
3894         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
3895         * passes.c (pass_fast_rtl_byte_dce): New pass.
3896         * fwprop.c (update_df): Added mode to call df_ref_create.
3897         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
3898         DF_REF_EXTRACT_OFFSET.
3899         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
3900         DF_BYTE_LR_OUT, df_byte_lr): New macro.
3901         (df_mm): New enum.
3902         (df_ref_extract): Added mode field.
3903         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
3904         DF_REF_EXTRACT_OFFSET.
3905         (DF_REF_EXTRACT_MODE): New macro.
3906         (df_byte_lr_bb_info): New structure.
3907         (df_print_byte_regset, df_compute_accessed_bytes, 
3908         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
3909         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
3910         df_byte_lr_simulate_uses,
3911         df_byte_lr_simulate_artificial_refs_at_top,
3912         df_byte_lr_simulate_artificial_refs_at_end,
3913         df_compute_accessed_bytes): New function.
3914         (df_ref_create): Add parameter.
3915         (df_byte_lr_get_bb_info): New inline function.
3916         * df-scan.c (df_ref_record, df_uses_record,
3917         df_ref_create_structure): Added mode parameter.
3918         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
3919         df_defs_record, df_uses_record, df_get_conditional_uses,
3920         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
3921         df_entry_block_defs_collect, df_exit_block_uses_collect):
3922         Added mode parameter to calls to df_ref_record, df_uses_record,
3923         df_ref_create_structure.
3924         (df_ref_equal_p, df_ref_compare): Added test for modes.
3925         (df_ref_create_structure): Added code to set mode.  Renamed
3926         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
3927         DF_REF_EXTRACT_OFFSET.
3928         * df-core.c (df_print_byte_regset): New function.
3929         * df-byte-scan.c: New file.
3930         * df-problems.c (df_rd_transfer_function): Removed unnecessary
3931         calls to BITMAP_FREE.  
3932         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
3933         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
3934         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
3935         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
3936         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
3937         df_byte_lr_local_compute, df_byte_lr_init,
3938         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
3939         df_byte_lr_transfer_function, df_byte_lr_free, 
3940         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
3941         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
3942         df_byte_lr_simulate_uses,
3943         df_byte_lr_simulate_artificial_refs_at_top,
3944         df_byte_lr_simulate_artificial_refs_at_end): New function.
3945         * dce.c (byte_dce_process_block): New function.
3946         (dce_process_block): au is now passed in rather than computed
3947         locally.  Changed loops that look at artificial defs to not look
3948         for conditional or partial ones, because there never are any.  
3949         (fast_dce): Now is able to drive byte_dce_process_block or 
3950         dce_process_block depending on the kind of dce being done.
3951         (rest_of_handle_fast_dce): Add parameter to fast_dce.
3952         (rest_of_handle_fast_byte_dce): New function.
3953         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
3954         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
3955
3956 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
3957
3958         PR fortran/35019
3959         * gcc.h: Added fortran options that take arguments to
3960         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
3961         macros.
3962
3963 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
3964
3965         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
3966         scalarization if on the LHS and not a full access.
3967
3968 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3969
3970         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
3971
3972 2008-04-18  Rafael Espindola  <espindola@google.com>
3973
3974         * tree-vrp.c (find_case_label_index): Fix the binary search.
3975         (find_case_label_range): New.
3976         (vrp_visit_switch_stmt): Use find_case_label_range.
3977         (simplify_switch_using_ranges): Use find_case_label_range.
3978
3979 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
3980
3981         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
3982         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
3983
3984 2008-04-18  Tom Tromey  <tromey@redhat.com>
3985
3986         PR libcpp/15500:
3987         * doc/cpp.texi (Implementation-defined behavior): Mention
3988         -finput-charset.
3989
3990 2008-04-18  Ian Lance Taylor  <iant@google.com>
3991
3992         * fold-const.c (pointer_may_wrap_p): New static function.
3993         (fold_comparison): Add another test for pointer overflow.  Use
3994         pointer_may_wrap_p to disable some false positives.
3995
3996 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
3997           
3998         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
3999         (fname_as_string): Match updated cpp_interpret_string prototype.
4000         (fix_string_type): Support char16_t* and char32_t*.
4001         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
4002         derivative) nodes.  Register as builtin if C++0x.
4003         (c_parse_error): Support CPP_CHAR{16,32}.
4004         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
4005         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
4006         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
4007         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
4008         CTI_CHAR32_ARRAY_TYPE>: New elements.
4009         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
4010         char32_type_node, signed_char32_type_node, char16_array_type_node,
4011         char32_array_type_node): New defines.
4012         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
4013         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
4014         (lex_string): Support CPP_STRING{16,32}, match updated
4015         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
4016         (lex_charconst): Support CPP_CHAR{16,32}.
4017         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
4018         and CPP_STRING{16,32}.
4019
4020 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
4021
4022         PR bootstrap/35457
4023         * aclocal.m4: Regenerate.
4024         * configure: Regenerate.
4025
4026 2008-04-18  Jan Hubicka  <jh@suse.cz>
4027
4028         * except.c (dw2_size_of_call_site_table,
4029         sjlj_size_of_call_site_table): Use vector API for call_site_record.
4030
4031         * cgraphbuild.c (build_cgraph_edges): Update.
4032         * tree-pass.h: Update comment.
4033         * final.c (leaf_function_p): Update.
4034         (leaf_renumber_regs): Update.
4035         (rest_of_clean_state): Update.
4036         * omp-low.c (expand_omp_parallel): Update.
4037         * ipa-reference.c (analyze_function): Update.
4038         * reorg.c (find_end_label): Update.
4039         (optimize_skip): Update.
4040         (fill_simple_delay_slots): Update.
4041         (fill_simple_delay_slots): Update.
4042         (make_return_insns): Update.
4043         (dbr_schedule): Update.
4044         * gimple-low.c (record_vars_into): Update.
4045         * cfgbuild.c (make_edges): Update.
4046         * function.c (assign_stack_local): Update.
4047         (assign_parm_adjust_stack_rtl): Update.
4048         (locate_and_pad_parm): Update.
4049         (allocate_struct_function): Do not initialize stack_alignment_needed
4050         and preferred_stack_boundary here.
4051         (stack_protect_prologue): Update.
4052         (stack_protect_epilogue): Update.
4053         (expand_function_start): Initialize stack_alignment_needed,
4054         preferred_stack_boundary and max_jumptable_ents.
4055         (expand_function_end): Update.
4056         (free_after_compilation): Do not NULLify epilogue_delay_list.
4057         * function.h (struct rtl_data): Add stack_protect_guard,
4058         stack_alignment_needed,
4059         preferred_stack_boundary, epilogue_delay_list.
4060         (struct function): Remove value_histograms, stack_alignment_needed,
4061         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
4062         last_label_uid,
4063         unexpanded_var_list, stack_protect_guard.
4064         (current_function_epilogue_delay_list): Remove.
4065         * ipa-type-escape.c (analyze_function): Update.
4066         * gimplify.c (pop_gimplify_context): Update comment.
4067         * calls.c (expand_call): Update.
4068         (emit_library_call_value_1): Update.
4069         * except.c (set_nothrow_function_flags): Update.
4070         * cfgexpand.c (get_decl_align_unit): Update.
4071         (create_stack_guard): Update.
4072         (estimated_stack_frame_size): Update.
4073         (expand_used_vars): Update.
4074         (tree_expand_cfg): Free histogram earliers, init expansion variables.
4075         * explow.c (allocate_dynamic_stack_space): Update.
4076         * tree-ssa-live.c (remove_unused_locals): Update.
4077         * varasm.c (mark_constant_pool): Update.
4078         * tree-inline.c (remap_decls): Update.
4079         (initialize_cfun): Update.
4080         (declare_return_variable): Update.
4081         (inline_forbidden_p): Update.
4082         (expand_call_inline): Update.
4083         (declare_inline_vars): Update.
4084         (tree_function_versioning): Update.
4085         * tree-flow.h (value_histograms): New.
4086         (VALUE_HISTOGRAMS): New macro.
4087         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
4088         last_label_uid.
4089         * tree-cfg.c (set_bb_for_stmt): Update.
4090         (replace_by_duplicate_decl): Update.
4091         (move_block_to_fn): Update.
4092         (new_label_mapper): Update.
4093         (dump_function_to_file): Update.
4094         * ipa-struct-reorg.c (build_data_structure): Update.
4095         * cfgrtl.c (print_rtl_with_bb): Update.
4096         * reload1.c (reload): Update.
4097         (reload): Update.
4098         * config/i386/i386.c (setup_incoming_varargs_64,
4099         ix86_compute_frame_layout): Update.
4100         * config/arc/arc.c (arc_output_function_epilogue): Update.
4101
4102 2008-04-18  Marius Strobl <marius@FreeBSD.org>
4103
4104         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
4105         for FreeBSD as well.
4106         * gthr-posix95.h: Likewise.
4107
4108 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
4109
4110         PR rtl-optimization/35838
4111         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
4112         out the byte offset of the first subreg.
4113
4114 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
4115
4116         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
4117         to split_ti instead of three separate calls with single member arrays.
4118         (subti3 splitter): Ditto.
4119         (adddi3 splitter): Ditto with split_di.
4120         (subdi3 splitter): Ditto.
4121         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
4122         two separate calls with single member arrays.  Swap match_dup
4123         operands 1 and 2 to better fit into the array.
4124         (negdi2 splitter): Ditto with split_di.
4125         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
4126         two separate calls with single member arrays.  Swap match_dup operands
4127         6 and 7 to better fit into the array.
4128
4129 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
4130
4131         * config/i386/i386.c (sse_builtin_type): New.
4132         (bdesc_sse_args): Likewise.
4133         (bdesc_sse_3arg): Removed.
4134         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
4135         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
4136         IX86_BUILTIN_ROUNDPS.
4137         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
4138         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
4139         IX86_BUILTIN_ROUNDPS.
4140         (ix86_expand_sse_4_operands_builtin): Removed.
4141         (ix86_expand_sse_operands_builtin): New.
4142         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
4143         and CODE_FOR_sse4_1_roundps.
4144         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
4145         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
4146
4147 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
4148
4149         PR target/35907
4150         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
4151         regs before frame pop when needed.  If use_backchain_to_restore_sp
4152         then load backchain into a temp reg to restore vr and vrsave.  Add
4153         code to restore vr after frame pop if possible.
4154
4155 2008-04-17  Richard Guenther  <rguenther@suse.de>
4156
4157         * tree-vn.c (expressions_equal_p): Do not check type
4158         equality or compatibility before calling operand_equal_p.
4159         * fold-const.c (operand_equal_p): Check equivalence of
4160         integer constants before bailing out due to signedness or
4161         precision differences.
4162         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
4163         spurious differences in type qualification.  Ignore types
4164         for COMPONENT_REFs at all.
4165
4166 2008-04-17  Christian Bruel  <christian.bruel@st.com>
4167
4168         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
4169         msw_skip comparison.
4170         
4171 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
4172
4173         PR c/35739
4174         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
4175         reg type.
4176
4177         PR tree-optimization/35899
4178         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
4179         rather than TREE_OPERAND.
4180
4181 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
4182
4183         PR target/35944
4184         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
4185         temporary registers.  Change operand predicate to general_operand.
4186         (remainderxf3): Ditto.
4187
4188 2008-04-16  Richard Guenther  <rguenther@suse.de>
4189
4190         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
4191         * tree-affine.c (aff_combination_expand): Look through some
4192         conversions.
4193
4194 2008-04-15  Doug Kwan  <dougkwan@google.com>
4195
4196         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
4197         for hex printing.
4198         * tree-pretty-print.c (dump_generic_node): Ditto.
4199         * final.c (output_addr_const): Ditto.
4200         * dwarf2out.c (output_cfi): Ditto.
4201         * c-pretty-print.c (pp_c_integer_constant): Ditto.
4202         * print-rtl.c (print_rtx): Ditto.
4203         * print-tree.c (print_node_brief, print_node): Ditto.
4204         * c-common.c (match_case_to_enum_1): Ditto.
4205         * sched-vis.c (print_value): Ditto.
4206         * config/i386/i386.c (print_operand): Cast to long unsigned int
4207         for hex printing.
4208
4209 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
4210         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
4211         MS Windows VirtualProtect function.
4212
4213 2008-04-15  Jan Hubicka  <jh@suse.cz>
4214
4215         * gengtype.c (write_root): Param_is argument is OK.
4216         * expr.c (expand_expr_real_1): Update call of get_exception_*.
4217         * function.h: Include varray.h
4218         (rtl_eh): New stucture based on except.c one.
4219         (call_site_record): New forward declaration and vector type.
4220         * calls.c (emit_call_1): Do not call
4221         note_current_region_may_contain_throw.
4222         * except.c (eh_status): Remove cur_region, try_region since they are
4223         unused.
4224         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
4225         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
4226         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
4227         Remove call_site_data_used, call_site_data_size.
4228         Turn call_site_record into vector in function.h.
4229         (note_current_region_may_contain_throw): Remove.
4230         (get_exception_pointer, get_exception_filter): Do not take struct
4231         function argument; update.
4232         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
4233         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
4234         build_post_landing_pads, dw2_build_landing_pads,
4235         sjlj_assign_call_site_values, sjlj_mark_call_sites,
4236         sjlj_emit_function_enter, sjlj_emit_function_enter, 
4237         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
4238         sjlj_build_landing_pads, finish_eh_generation,
4239         remove_exception_handler_label, remove_eh_handler,
4240         maybe_remove_eh_handler, add_reachable_handler,
4241         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
4242         add_action_record, collect_one_action_chain, add_call_site,
4243         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
4244         sjlj_output_call_site_table, output_function_exception_table,
4245         * except.h (note_current_region_may_contain_throw): Remove
4246         (get_exception_pointer, get_exception_filter): Do not take struct
4247         function argument.
4248         * Makefile.in (GTFILES): Put varargs before struct function.
4249
4250 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4251
4252         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
4253         punt for STRING_CST.
4254         (get_constraint_for): Deal with STRING_CST here instead.
4255
4256 2008-04-15  Richard Guenther  <rguenther@suse.de>
4257
4258         * tree-ssa-propagate.c (substitute_and_fold): Substitute
4259         statements in a basic-block with a backward walk.  Do not
4260         substitute into dead statements but instead remove those.
4261
4262 2008-04-15  Richard Guenther  <rguenther@suse.de>
4263
4264         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
4265         to zero, thus disable creation of SFTs.
4266
4267 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4268
4269         * tree-predcom.c (suitable_reference_p): Return false if the
4270         reference can throw.
4271
4272 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
4273
4274         PR c/35751
4275         * c-decl.c (finish_decl): If extern or static var has variable
4276         size, set TREE_TYPE (decl) to error_mark_node.
4277
4278 2008-04-15  Rafael Espindola  <espindola@google.com>
4279
4280         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
4281         variable arg1.
4282
4283 2008-04-15  Richard Guenther  <rguenther@suse.de>
4284
4285         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
4286         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
4287         (visit_reference_op_load): Do walk vuse-vdef chains on
4288         vn_reference_lookup.
4289         (visit_reference_op_store): But do not here.
4290         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
4291         vn_reference_lookup.
4292         (vn_lookup_with_vuses): But do so here.
4293
4294 2008-04-14  Ian Lance Taylor  <iant@google.com>
4295
4296         * fold-const.c (fold_overflow_warning): Remove assertion.
4297
4298 2008-04-15  Ben Elliston  <bje@au.ibm.com>
4299
4300         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
4301         temp1 local variables.
4302
4303 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
4304
4305         PR target/35661
4306         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
4307         ".text.unlikely" section as executable.
4308
4309 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
4310
4311         * config/ia64/ia64.c (rtx_needs_barrier): Handle
4312         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
4313         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
4314         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
4315         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
4316         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
4317         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
4318
4319 2008-04-14  Ian Lance Taylor  <iant@google.com>
4320
4321         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
4322         * fold-const.c (fold_comparison): If appropriate, test
4323         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
4324         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
4325         reassociating a pointer type.
4326         * doc/invoke.texi (Optimize Options): Document that
4327         -fstrict-overflow applies to pointer wraparound.
4328
4329 2008-04-13  Jan Hubicka  <jh@suse.cz>
4330
4331         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
4332
4333 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
4334
4335         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
4336         we are going to "save the world".
4337
4338 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
4339
4340         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
4341         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
4342         operand 0 constraint, not "=".
4343
4344 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
4345
4346         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
4347
4348 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
4349
4350         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
4351         of size of positions_needed * CHAR_BIT.
4352
4353 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
4354
4355         PR middle-end/35897
4356         * dse.c (store_info): Change positions_needed to unsigned
4357         HOST_WIDE_INT.
4358         (lowpart_bitmask): New.
4359         (record_store): Cast to unsigned HOST_WIDE_INT for
4360         positions_needed.  Assert width <= size of positions_needed *
4361         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
4362         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
4363         lowpart_bitmask to set mask.
4364
4365 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
4366
4367         * config/bfin/constraints.md: New file.
4368         * config/bfin/bfin.md: Include it.
4369         (adddi3): Use satisfies_constraint functions instead of the old macros.
4370         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
4371         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
4372         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
4373         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
4374         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
4375         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
4376         EXTRA_CONSTRAINT): Delete.
4377         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
4378         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
4379         of the old macros.
4380         * config/bfin/bfin.c: Include "tm-constrs.h".
4381         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
4382         Use satisfies_constraint functions instead of the old macros.
4383         * doc/md.texi (Blackfin Constraints): Update file name reference.
4384
4385 2008-04-11  Richard Guenther  <rguenther@suse.de>
4386
4387         PR tree-optimization/35869
4388         * tree-vrp.c (execute_vrp): Move switch statement update after
4389         jump threading.  Schedule another cfg cleanup run.
4390
4391 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
4392
4393         PR c/35744
4394         * attribs.c (decl_attributes): Return early on errorneous node.
4395
4396 2008-04-10  Oleg Ryjkov  <olegr@google.com>
4397
4398         * tree.h (struct tree_base): Added a new flag default_def_flag.
4399         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
4400
4401 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4402
4403         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
4404
4405 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4406
4407         PR target/35768
4408         * pa.md: Define mode iterator P.  Define mode attribute dwc.
4409         (dcacheflush): Update pattern to use iterator P and attribute dwc.
4410         (icacheflush): Likewise.
4411         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
4412         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
4413
4414 2008-04-11  Ben Elliston  <bje@au.ibm.com>
4415
4416         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
4417
4418 2008-04-10  Rafael Espindola  <espindola@google.com>
4419
4420         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
4421         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
4422         (extract_range_from_expr): The same.
4423
4424 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
4425
4426         * config/mips/mips.md (GPR2): New mode iterator.
4427         (seq): Add comment.
4428         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
4429         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
4430         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
4431         Rewrite these to take two modes, the mode of comparison and the
4432         mode of the destination.
4433         * config/mips/mips.c (mips_expand_scc): Instead of having
4434         paradoxical subreg as destination, expand "narrowing" scc if mode
4435         of comparison is SI and target is requested in DI mode.
4436         (mips_emit_int_order_test): Update comment.  Make mode of
4437         comparison match CMP0 rather than TARGET.  When creating inverse
4438         target use mode of TARGET.
4439
4440 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
4441
4442         * gcov-dump.c (tag_summary): Only print summaries for the first
4443         GCOV_COUNTERS_SUMMABLE counters.
4444
4445 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
4446
4447         * config/i386/i386.md (absneg): New code iterator.
4448         (absnegprefix): New code attribute.
4449         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
4450         patterns using absneg code iterator.
4451         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
4452         using absneg code iterator.
4453         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
4454         *neg<mode>2 patterns using absneg code iterator.
4455         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
4456         *negextendsfdf2 patterns using absneg code iterator.
4457         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
4458         *negextendsfxf2 patterns using absneg code iterator.
4459         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
4460         *negextendsfdf2 patterns using absneg code iterator.
4461         * config/i386/sse.md (<code><mode>2): Macroize expander from
4462         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
4463
4464 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
4465
4466         * config/s390/s390.h: Remove the remains of the recent search
4467         & replace action of current_function_outgoing_args_size.
4468
4469 2008-04-10  Ira Rosen  <irar@il.ibm.com>
4470
4471         PR tree-optimization/35821
4472         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
4473         NEW_STMT_LIST is not NULL.
4474
4475 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
4476
4477         PR libstdc++/35597
4478         * toplev.c (process_options): Remove -ffunction-sections debugging
4479         warning.
4480
4481 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
4482
4483         PR middle-end/PR28690
4484         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
4485         than gen_rtx_fmt_ee to perform more canonicalizations.
4486
4487 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4488
4489         PR driver/35665
4490         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
4491
4492 2008-04-09  Richard Guenther  <rguenther@suse.de>
4493
4494         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
4495         (dump_function_to_file): Dump function arguments with types.
4496
4497 2008-04-08  Richard Guenther  <rguenther@suse.de>
4498
4499         * fold-const.c (fold_widened_comparison): Do not allow
4500         sign-changes that change the result.
4501
4502 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
4503
4504         PR target/35839
4505         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
4506         kinds of indirect references.
4507
4508 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
4509
4510         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
4511         GNU Fortran language string.
4512
4513 2008-04-08  Rafael Espindola  <espindola@google.com>
4514
4515         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
4516         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
4517         * tree.h (tree_call_nonnegative_warnv_p): New.
4518
4519 2008-04-08  Jan Hubicka  <jh@suse.cz>
4520
4521         * function.c (free_after_compilation): Clear out regno_reg_rtx
4522         pointer.
4523
4524 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
4525
4526         Revert
4527         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
4528
4529         PR middle-end/PR28690
4530         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
4531         same precedence as REG_POINTER and MEM_POINTER operands.
4532
4533 2008-04-08  Richard Guenther  <rguenther@suse.de>
4534
4535         PR middle-end/35834
4536         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
4537         for adding index to base.
4538
4539 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
4540
4541         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
4542         (MINGW_ENABLE_EXECUTE_STACK): New.
4543         (IN_LIBGCC2): For libgcc include windows.h file for
4544         function declarations.
4545
4546 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
4547
4548         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
4549         and tem2 if tem1 is not a REG or MULT.
4550
4551 2008-04-08  Jan Hubicka  <jh@suse.cz>
4552
4553         * function.h (incomming_args): Break out of struct function.
4554         (function_subsections): Break out of struct function.
4555         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
4556         return_rtx and hard_reg_initial_vals from struct function.
4557         Kill inl_max_label_num.
4558         (current_function_pops_args, current_function_args_info,
4559         current_function_args_size, current_function_args_size,
4560         current_function_pretend_args_size,
4561         current_function_outgoing_args_size,
4562         current_function_internal_arg_pointer, current_function_return_rtx):
4563         Kill compatibility accestor macros.
4564         * builtins.c (expand_builtin_apply_args_1): Update.
4565         (expand_builtin_next_arg): Update.
4566         * df-scan.c (df_get_call_refs): Update.
4567         * dbxout.c (dbxout_function_end): Update.
4568         * dwarf2out.c (dwarf2out_switch_text_section): Update.
4569         (output_line_info): Update.
4570         (secname_for_decl): Update.
4571         (dwarf2out_var_location): Update.
4572         * function.c (free_after_compilation): Update.
4573         (assign_parm_find_stack_rtl): Update.
4574         (assign_parms): Update.
4575         (expand_dummy_function_end): Update.
4576         (expand_function_end): Update.
4577         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
4578         (expand_call): Update.
4579         (emit_library_call_value_1): Update.
4580         (store_one_arg): Update.
4581         * varasm.c (initialize_cold_section_name): Update.
4582         (unlikely_text_section): Update.
4583         (unlikely_text_section_p): Update.
4584         (assemble_start_function): Update.
4585         (assemble_end_function): Update.
4586         (default_section_type_flags): Update.
4587         (switch_to_section): Update.
4588         * integrate.c (set_decl_abstract_flags): Update.
4589         (get_hard_reg_initial_val): Update.
4590         (has_hard_reg_initial_val): Update.
4591         (allocate_initial_values): Update.
4592         * resource.c (init_resource_info): Update.
4593         * config/alpha/alpha.c (NUM_ARGS): Update.
4594         (direct_return): Update.
4595         (alpha_va_start): Update.
4596         (alpha_sa_size): Update.
4597         (alpha_initial_elimination_offset): Update.
4598         (alpha_expand_prologue): Update.
4599         (alpha_start_function): Update.
4600         (alpha_expand_epilogue): Update.
4601         (unicosmk_initial_elimination_offset):
4602         * config/alpha/alpha.md (call expander): Update.
4603         * config/s390/s390.c (s390_register_info): Update.
4604         (s390_register_info): Update.
4605         (s390_frame_info): Update.
4606         (s390_initial_elimination_offset): Update.
4607         (s390_build_builtin_va_list): Update.
4608         (s390_va_start): Update.
4609         * config/spu/spu.c (direct_return): Update.
4610         (spu_expand_prologue): Update.
4611         (spu_initial_elimination_offset): Update.
4612         (spu_build_builtin_va_list): Update.
4613         (spu_va_start): Update.
4614         * config/sparc/sparc.c (sparc_init_modes): Update.
4615         (sparc_compute_frame_size): Update.
4616         (function_value): Update.
4617         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
4618         * config/i386/i386.md (return expander): Update.
4619         * config/i386/i386.c (ix86_va_start): Update.
4620         (ix86_can_use_return_insn_p): Update.
4621         (ix86_compute_frame_layout): Update.
4622         (ix86_expand_epilogue): Update.
4623         * config/sh/sh.c (output_stack_adjust): Update.
4624         (calc_live_regs): Update.
4625         (sh_expand_prologue): Update.
4626         (sh_builtin_saveregs): Update.
4627         (sh_va_start): Update.
4628         (initial_elimination_offset): Update.
4629         (sh_allocate_initial_value): Update.
4630         (sh_function_ok_for_sibcall): Update.
4631         (sh_get_pr_initial_val): Update.
4632         * config/sh/sh.md (return expander): Update.
4633         * config/avr/avr.c (frame_pointer_required_p): UPdate.
4634         * config/crx/crx.c (crx_compute_frame): UPdate.
4635         (crx_initial_elimination_offset): UPdate.
4636         * config/xtensa/xtensa.c (compute_frame_size): Update
4637         (xtensa_builtin_saveregs): Update.
4638         (xtensa_va_start): Update.
4639         (order_regs_for_local_alloc): Update.
4640         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
4641         (xstormy16_expand_builtin_va_start): Update.
4642         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
4643         * config/m68hc11/m68hc11.md (return expanders): Update.
4644         * config/m68hc11/m68hc11.c (expand_prologue): Update.
4645         (expand_epilogue): Update.
4646         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
4647         (cris_simple_epilogue): Update.
4648         (cris_expand_prologue): Update.
4649         (cris_expand_epilogue): Update.
4650         * config/iq2000/iq2000.c (iq2000_va_start): Update.
4651         (compute_frame_size): Update.
4652         * config/mt/mt.c (mt_compute_frame_size): Update.
4653         * config/mn10300/mn10300.c (expand_prologue): Update.
4654         (expand_epilogue): Update.
4655         (initial_offset): Update.
4656         (mn10300_builtin_saveregs):
4657         * config/mn10300/mn10300.md (return expander): Update.
4658         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
4659         (ia64_initial_elimination_offset): Update.
4660         (ia64_initial_elimination_offset): Update.
4661         (ia64_expand_prologue): Update.
4662         * config/m68k/m68k.md (return expander): Update.
4663         * config/rs6000/rs6000.c (rs6000_va_start): Update.
4664         (rs6000_stack_info): Update.
4665         * config/mcore/mcore.c (layout_mcore_frame): Update.
4666         (mcore_expand_prolog): Update.
4667         * config/arc/arc.c (arc_compute_frame_size): Update.
4668         * config/score/score3.c (score3_compute_frame_size): Update.
4669         * config/score/score7.c (score7_compute_frame_size): Update.
4670         * config/arm/arm.c (use_return_insn): Update.
4671         (thumb_find_work_register): Update.
4672         (arm_compute_save_reg_mask): Update.
4673         (arm_output_function_prologue): Update.
4674         (arm_output_epilogue): Update.
4675         (arm_size_return_regs): Update.
4676         (arm_get_frame_offsets): Update.
4677         (arm_expand_prologue): Update.
4678         (thumb_exit): Update.
4679         (thumb_unexpanded_epilogue): Update.
4680         (thumb1_output_function_prologue): Update.
4681         * config/pa/pa.md (return expander): Update.
4682         * config/pa/pa.c (compute_frame_size): Update.
4683         (hppa_builtin_saveregs): Update.
4684         * config/mips/mips.c (mips_va_start): Update.
4685         (mips16_build_function_stub): Update.
4686         (mips_compute_frame_info): Update.
4687         (mips_restore_gp): Update.
4688         (mips_output_function_prologue): Update.
4689         (mips_expand_prologue): Update.
4690         * config/v850/v850.c (compute_frame_size): Update.
4691         (expand_prologue): * config/mmix/mmix.c (along): update.
4692         (mmix_initial_elimination_offset): update.
4693         (mmix_reorg): update.
4694         (mmix_use_simple_return): update.
4695         (mmix_expand_prologue): update.
4696         (mmix_expand_epilogue): Update.
4697         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
4698         (emit_link_insn): Update.
4699
4700 2008-04-08  Anatoly Sokolov <aesok@post.ru>
4701
4702         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
4703         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
4704         instructions.
4705         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
4706         atmega103 device.
4707
4708 2008-04-07  Jan Hubicka  <jh@suse.cz>
4709
4710         * function.h (rtl): Rename to x_rtl.
4711         (crtl): New define.
4712         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
4713         frame_offset, stack_check_probe_note, arg_pointer_save_area,
4714         used_temp_slots avail_temp_slots, temp_slot_level,
4715         nonlocal_goto_handler_labels): Update accesstors.
4716         (rtl): New global variable.
4717         (struct function): Move some fileds to rtl_data.
4718         (get_arg_pointer_save_area): Update prototype.
4719         * builtins.c (expand_builtin_setjmp_receiver): Update call of
4720         get_arg_pointer_save_area.
4721         * expr.c (init_expr): Update
4722         * function.c (get_frame_size): Update
4723         (assign_stack_local): Update
4724         (expand_function_end): Update.
4725         (get_art_pointer_save_area): Update
4726         * function.h 
4727         * emit-rtl.c (rtl): Declare.
4728         (regno_reg_rtx): Declare.
4729         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
4730         Update.
4731         (gen_reg_rtx): Update.
4732         * varasm.c (n_deferred_constatns): Update accestor.
4733         (init_varasm_status): Do not allocate varasm_status.
4734         (force_const_mem, get_pool_size, output_constant_pool): Update.
4735         * stmt.c (force_label_rtx): Do not use x_ prefixes.
4736         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
4737         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
4738         * sparc/sparc.h (INIT_EXPANDERS): Update.
4739         * ia64/ia64.h (INIT_EXPANDERS): Update.
4740
4741 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
4742
4743         * reload.c (push_secondary_reload): Add missing break to for loop.
4744
4745 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
4746
4747         PR middle-end/PR28690
4748         * rtlanal.c: Update copyright years.
4749         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
4750         as REG_POINTER and MEM_POINTER operands.
4751         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
4752         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
4753         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
4754         * gcse.c: Update copyright years.
4755         (pre_delete): Call gen_reg_rtx_and_attrs.
4756         (hoist_code): Likewise.
4757         (build_store_vectors): Likewise.
4758         (delete_store): Likewise.
4759         * loop-invariant.c (move_invariant_reg): Likewise.
4760         Update copyright years.
4761
4762 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
4763
4764         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
4765         control string instead of quoted.
4766
4767 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
4768
4769         * doc/rtl.texi: Rewrite of subreg section.
4770
4771 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
4772
4773         PR/35842
4774         * config/i386/i386.c (legitimize_pic_address): Add treating
4775         of dllimport SYM_REF's.
4776         (legitimize_dllimport_symbol): Add prototype.
4777
4778 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
4779
4780         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
4781         reference in constructor with non self-referential type.
4782
4783 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
4784
4785         Removal of Return with Depressed Stack Pointer support
4786         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
4787         (ECF_SP_DEPRESSED): Likewise.
4788         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
4789         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
4790         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4791         (expand_call): Do not test ECF_SP_DEPRESSED.
4792         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4793         * function.c (keep_stack_depressed): Delete.
4794         (handle_epilogue_set): Likewise.
4795         (update_epilogue_consts): Likewise.
4796         (emit_equiv_load): Likewise.
4797         (thread_prologue_and_epilogue_insns): Remove support for Return with
4798         Depressed Stack Pointer.
4799         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4800
4801 2008-04-06  Richard Guenther  <rguenther@suse.de>
4802
4803         PR tree-optimization/35400
4804         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
4805         information from SSA_NAMEs.
4806
4807 2008-04-06  Anatoly Sokolov <aesok@post.ru>
4808
4809         * config/avr/avr.h (avr_mega_p): Remove declaration.
4810         (AVR_MEGA): Remove macro.
4811         * config/avr/avr.c (avr_mega_p): Remove variable.
4812         (avr_override_options): Remove inicializion of avr_mega_p.
4813         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
4814         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
4815         (avr_jump_mode): (Ditto.).
4816         (avr_output_progmem_section_asm_op): (Ditto.).
4817         (avr_asm_init_sections): (Ditto.).
4818         (avr_asm_init_sections): (Ditto.).
4819         (avr_rtx_costs): (Ditto.).
4820         * config/avr/avr.md: (Ditto.).
4821         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
4822         '__AVR_MEGA__'.
4823
4824 2008-04-06  Richard Guenther  <rguenther@suse.de>
4825
4826         PR tree-optimization/35842
4827         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
4828         is_gimple_invariant_address.
4829
4830 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
4831
4832         * gcc.c (default_compilers): Sync Fortran extensions list with
4833         that in fortran/lang-specs.h.
4834         * doc/invoke.texi: Likewise.
4835         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
4836         * dwarf2out.c (gen_compile_unit_die): Likewise.
4837
4838 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
4839
4840         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
4841
4842 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
4843
4844         PR target/12329
4845         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
4846         attribute is used for nested functions.
4847
4848 2008-04-05  Jan Hubicka  <jh@suse.cz>
4849
4850         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
4851
4852         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
4853         letter argument.
4854         (dump_files): Update.
4855         (enable_rtl_dump_file): Do not accept letter argument.
4856         * tree-pass.h (dump_file_info): Remove letter argument.
4857         * toplev.c (decode_d_option): Update -da handling.
4858         * toplev.h (enable_rtl_dump_file): Update prototype.
4859         * passes.c (register_one_dump_file): Do not accept IPA argument; work
4860         it out based on pass type.
4861         (register_dump_files_1): Likewise.
4862         (init_optimization_passes): Update register_one_dump_file calls.
4863         (execute_one_pass): Sanity check that IPA passes are called at IPA
4864         level and RTL passes at RTL level.
4865         (execute_pass_list): IPA pass can not be after or subpass of
4866         GIMPLE/RTL pass.
4867         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
4868         disallov RTL subpasses of IPA subpasses.
4869
4870 2008-04-05  Ben Elliston  <bje@au.ibm.com>
4871
4872         * tree-cfg.c (need_fake_edge_p): Return false for calls to
4873         builtins that return exactly once and do not throw. Cache call to
4874         call_expr_flags.
4875
4876 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
4877
4878         PR rtl-optimization/34916
4879         PR middle-end/35519
4880         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
4881         between instruction pairs.
4882
4883 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
4884
4885         * doc/invoke.texi: Document -mbitops for SH.
4886         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
4887         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
4888         * config/sh/sh.c (print_operand): Add %t operand code.
4889         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
4890         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
4891         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
4892         (extendqihi2): Likewise.
4893         (movqi_i): Likewise.
4894         (insv): Use bset, bclr and bst instructions for SH2A if possible.
4895         (extv): Use bld instruction for SH2A if possible.
4896         (extzv): Likewise.
4897         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
4898         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
4899         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
4900         (bset.b, bclr.b): Define peepholes.
4901         * config/sh/sh.opt (mbitops): New option.
4902
4903 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
4904
4905         PR target/35620
4906         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
4907         and view convert expression.
4908
4909 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
4910
4911         PR target/35364
4912         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
4913
4914 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
4915
4916         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
4917
4918         * config/i386/cpuid.h (bit_AES): New.
4919         (bit_PCLMUL): Likewise.
4920
4921         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
4922         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
4923         SSE2 if AES or PCLMUL is enabled.
4924         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
4925         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
4926         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
4927         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
4928         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
4929         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
4930         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
4931         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
4932         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
4933         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
4934         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
4935         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
4936         __builtin_ia32_aeskeygenassist128 and
4937         __builtin_ia32_pclmulqdq128.
4938         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
4939         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
4940         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
4941
4942         * config/i386/i386.h (TARGET_AES): New.
4943         (TARGET_PCLMUL): Likewise.
4944         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
4945
4946         * config/i386/i386.md (UNSPEC_AESENC): New.
4947         (UNSPEC_AESENCLAST): Likewise.
4948         (UNSPEC_AESDEC): Likewise.
4949         (UNSPEC_AESDECLAST): Likewise.
4950         (UNSPEC_AESIMC): Likewise.
4951         (UNSPEC_AESKEYGENASSIST): Likewise.
4952         (UNSPEC_PCLMUL): Likewise.
4953
4954         * config/i386/i386.opt (maes): New.
4955         (mpclmul): Likewise.
4956
4957         * config/i386/sse.md (aesenc): New pattern.
4958         (aesenclast): Likewise.
4959         (aesdec): Likewise.
4960         (aesdeclast): Likewise.
4961         (aesimc): Likewise.
4962         (aeskeygenassist): Likewise.
4963         (pclmulqdq): Likewise.
4964
4965         * config/i386/wmmintrin.h: New.
4966
4967         * doc/extend.texi: Document AES and PCLMUL built-in function.
4968
4969         * doc/invoke.texi: Document -maes and -mpclmul.
4970
4971 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
4972
4973         * function.c (free_after_parsing): Replace with
4974         cxx_push_function_context from C++ front-end.
4975         (allocate_struct_function): Don't call langhook.
4976         * langhooks.h (struct lang_hooks_for_functions): Delete.
4977         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
4978         member "function".
4979         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
4980         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
4981         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4982         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
4983         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
4984         remove LANG_HOOKS_FUNCTION_INITIALIZER.
4985         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
4986
4987         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
4988         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
4989         
4990 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
4991
4992         PR c/35440
4993         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
4994         for all types.
4995
4996 2008-04-04  Richard Guenther  <rguenther@suse.de>
4997
4998         PR middle-end/35823
4999         * fold-const.c (optimize_minmax_comparison): Use the correct
5000         type for the constant in the simplified comparison.
5001
5002 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
5003
5004         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
5005         Pass L2 size as "--param l2-cache-size" to the compiler.
5006         (decode_l2_cache): New function to decode L2 cache parameters using
5007         0x8000006 extended cpuid function.
5008         (detect_caches_amd): Determine parameters of L2 cache using
5009         decode_l2_caches function.
5010         (decode_caches_intel): Decode L2 cache parameters.
5011         (detect_caches_intel): Determine L2 cache parameters using
5012         decode_caches_intel and decode_l2_caches functions.
5013
5014 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
5015
5016         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
5017         secondary input reload for subword loads from the constant pool.
5018
5019 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
5020
5021         PR target/35713
5022         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
5023           constants of the appropriate size for runtime calculations.
5024
5025         PR c/35712
5026         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
5027           decimal-float literal constant zero.
5028
5029 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
5030
5031         PR c/35738
5032         * c-parser.c (c_parser_omp_atomic): Call
5033         default_function_array_conversion on the RHS.
5034
5035         PR middle-end/35818
5036         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
5037         call is_variable_sized if decl has incomplete type.
5038
5039 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
5040
5041         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
5042
5043 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
5044
5045         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
5046         iterators.
5047         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
5048         (sgt<u>): Merge sgt and sgtu into new expander.
5049         (sgt, sgtu): Remove expanders.
5050         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
5051         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
5052         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
5053         *sgtu_<mode>_mips16 into new pattern.
5054         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
5055         (sge<u>): Merge sge and sgeu into new expander.
5056         (sge, sgeu): Remove expanders.
5057         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
5058         new pattern.
5059         (*sge_<mode>, second *sge_<mode>): Remove patterns.
5060         (slt<u>): Merge slt and sltu into new expander.
5061         (slt, sltu): Remove expanders.
5062         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
5063         (*slt_<mode>, *sltu_<mode>): Remove patterns.
5064         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
5065         *sltu_<mode>_mips16 into new pattern.
5066         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
5067         (sle<u>): Merge sle and sleu into new expander.
5068         (sle, sleu): Remove expanders.
5069         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
5070         (*sle_<mode>, *sleu_<mode>): Remove patterns.
5071         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
5072         *sleu_<mode>_mips16 into new pattern.
5073         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
5074
5075 2008-04-03  Jan Hubicka  <jh@suse.cz>
5076
5077         PR tree-optimization/35795
5078         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
5079         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
5080         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
5081         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
5082         * score/score3.c (score3_output_mi_thunk): Likewise.
5083         * score/score7.c (score7_output_mi_thunk): Likewise.
5084         * mips/mips.c (mips_output_mi_thunk): Likewise.
5085
5086 2008-04-03  Richard Guenther  <rguenther@suse.de>
5087
5088         * tree-vrp.c (extract_range_from_unary_expr): Handle all
5089         conversions.  Simplify code.
5090
5091 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
5092
5093         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
5094
5095 2008-04-03  Tom Tromey  <tromey@redhat.com>
5096             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5097
5098         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
5099         * config/bfin/t-bfin-linux (generated_files): Add
5100         linux-sysroot-suffix.h.
5101         * doc/install.texi (Prerequisites): Require make 3.80.
5102         * doc/sourcebuild.texi (Front End Directory): Document new
5103         variable.
5104         * Makefile.in (generated_files): New variable.
5105         (ALL_HOST_OBJS): New variable.
5106         ($(ALL_HOST_OBJS)): New target.
5107
5108 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
5109
5110         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
5111         (remap_block): Call id->transform_lang_insert_block instead
5112         of langhook.
5113         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
5114         Set id.transform_lang_insert_block to NULL.
5115         (clone_body): Move to cp/optimize.c
5116         * tree-inline.h (struct copy_body_data): Change
5117         transform_lang_insert_block to function pointer.
5118         (copy_generic_body, copy_decl_no_change): Export.
5119         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
5120         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
5121         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
5122
5123         * c-tree.h (insert_block): Kill.
5124         * c-decl.c (insert_block): Kill.
5125
5126 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
5127
5128         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
5129         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
5130         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
5131         argument.
5132         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
5133         argument, call {push,pop}_function_context from here.
5134         * c-parser.c: Use c_{push,pop}_function_context.
5135
5136         * function.c (push_function_context_to): Move meat ...
5137         (push_function_context): ... here.  Simplify.
5138         * function.c (pop_function_context_from): Move meat ...
5139         (pop_function_context): ... here.  Simplify.
5140         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
5141         leave_nested).
5142         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
5143         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
5144         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
5145         * tree.h (push_function_context_to, pop_function_context_from): Remove.
5146
5147 2008-04-03  Ben Elliston  <bje@au.ibm.com>
5148
5149         * expmed.c (extract_force_align_mem_bit_field): Remove.
5150
5151 2008-04-03  Richard Guenther  <rguenther@suse.de>
5152
5153         PR middle-end/35800
5154         * expr.h (try_casesi): Adjust prototype.
5155         * expr.c (try_casesi): Take fallback label as extra parameter.
5156         Use that for gen_casesi if default_label is NULL.
5157         * stmt.c (expand_case): Pass fallback label to try_casesi,
5158         make sure to fill gaps with a fallback label if default_label
5159         is not present.
5160
5161 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
5162
5163         PR target/35801
5164         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
5165
5166 2008-04-03  Ben Elliston  <bje@au.ibm.com>
5167
5168         * expmed.c (extract_split_bit_field): Remove if (0) code.
5169         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
5170         (do_ds_constraint): Likewise.
5171
5172 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
5173
5174         * doc/cppopts.texi (-dU): Document.
5175         * c-common.h (flag_dump_macros): Update comment.
5176         * c-opts.c (handle_OPT_d): Handle -dU.
5177         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
5178         dump_queued_macros, cb_used_define, cb_used_undef): New.
5179         (init_pp_output): Handle -dU.
5180         (cb_line_change): Call dump_queued_macros.
5181         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
5182
5183 2008-04-02  Anatoly Sokolov <aesok@post.ru>
5184
5185         * config/avr/predicates.md (io_address_operand): New predicate. 
5186         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
5187         * config/avr/avr.c (avr_io_address_p): Remove function.
5188         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
5189         'avr_io_address_p' function.
5190         (out_movhi_r_mr): (Ditto.).
5191         (out_movqi_mr_r): (Ditto.).
5192         (out_movhi_mr_r): (Ditto.).
5193         (avr_address_cost): (Ditto.).
5194
5195 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
5196
5197         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
5198         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
5199         in 32bit mode when XMM registers are available to avoid store
5200         forwarding stalls.
5201         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
5202         corresponding post-reload splitters.
5203
5204 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5205
5206         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
5207         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
5208         __builtin_ia32_roundss.
5209         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
5210         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
5211         __builtin_ia32_roundss.
5212         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
5213         IX86_BUILTIN_SHUFPD here.
5214
5215 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5216
5217         * config/i386/i386.md (plogic): New.
5218         (plogicprefix): Likewise.
5219
5220         * config/i386/mmx.md (mmx_<code><mode>3): New.
5221         (mmx_and<mode>3): Removed.
5222         (mmx_ior<mode>3): Likewise.
5223         (mmx_xor<mode>3): Likewise.
5224
5225         * config/i386/sse.md (<code><mode>3): New.
5226         (*<code><mode>3): Likewise.
5227         (*<code><mode>3): Likewise.
5228         (<code><mode>3): Likewise.
5229         (*sse_<code><mode>3): Likewise.
5230         (*sse2_<code><mode>3): Likewise.
5231         (<code>tf3): Likewise.
5232         (*<code>tf3): Likewise.
5233         (and<mode>3): Likewise.
5234         (*and<mode>3): Likewise.
5235         (ior<mode>3): Removed.
5236         (*ior<mode>3): Likewise.
5237         (xor<mode>3): Likewise.
5238         (*xor<mode>3): Likewise.
5239         (*and<mode>3): Likewise.
5240         (*ior<mode>3): Likewise.
5241         (*xor<mode>3): Likewise.
5242         (and<mode>3): Likewise.
5243         (*sse_and<mode>3): Likewise.
5244         (*sse2_and<mode>3): Likewise.
5245         (andtf3): Likewise.
5246         (*andtf3): Likewise.
5247         (ior<mode>3): Likewise.
5248         (*sse_ior<mode>3): Likewise.
5249         (*sse2_ior<mode>3): Likewise.
5250         (iortf3): Likewise.
5251         (*iortf3): Likewise.
5252         (xor<mode>3): Likewise.
5253         (*sse_xor<mode>3): Likewise.
5254         (*sse2_xor<mode>3): Likewise.
5255         (xortf3): Likewise.
5256         (*xortf3): Likewise.
5257
5258 2008-04-02  Richard Guenther  <rguenther@suse.de>
5259
5260         PR tree-optimization/14495
5261         PR tree-optimization/34793
5262         * tree-vrp.c (struct switch_update): New structure.
5263         (to_remove_edges, to_update_switch_stmts): New VECs.
5264         (simplify_switch_using_ranges): New function.  Remove not taken
5265         case labels and edges.
5266         (simplify_stmt_using_ranges): Call it.
5267         (identify_jump_threads): Mark edges we have queued for removal
5268         so we don't thread them.
5269         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
5270         case label vector.
5271         * tree-cfg.c (group_case_labels): Deal with missing default label.
5272         (tree_verify_flow_info): Allow missing default label.
5273         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
5274         (emit_case_nodes): Likewise.
5275         (expand_case): Do not rely on the default label to be present.
5276         * expr.c (try_casesi): Deal with NULL default_label.
5277         (do_tablejump): Likewise.
5278
5279 2008-04-02  Richard Guenther  <rguenther@suse.de>
5280
5281         PR tree-optimization/14495
5282         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
5283         SWITCH_EXPR here ...
5284         (vrp_visit_switch_stmt): ... but here (new function).
5285         (find_case_label_index): New helper function.
5286         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
5287
5288 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5289
5290         * fwprop.c: Fix ISO-C99ism.
5291
5292 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5293
5294         PR bootstrap/35752
5295         * Makefile.in (objdir): Set it here.
5296         * configure.ac: Not here.  Find dynamic linker characteristics.
5297         * exec-tool.in: Use them.
5298         * aclocal.m4: Regenerate.
5299         * configure: Regenerate.
5300
5301 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5302
5303         * expr.c (expand_var): Delete it.
5304         * expr.h (expand_var): Delete prototype.
5305         * function.c (expand_function_start): Use expand_decl instead.
5306         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
5307         langhook.
5308
5309 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
5310
5311         PR rtl-optimization/35542
5312         * fwprop.c (forward_propagate_and_simplify): Replace
5313         loc_reg_mentioned_in_p with reg_mentioned_p.
5314
5315 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5316
5317         PR rtl-optimization/35281
5318         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
5319         (propagate_rtx_1): Handle PR_HANDLE_MEM.
5320         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
5321         (varying_mem_p): Move above propagate_rtx.
5322         (all_uses_available_at): Do not check MEMs.
5323
5324 2008-04-02  Rafael Espindola  <espindola@google.com>
5325
5326         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
5327         (register_edge_assert_for_2): Split the cond argument.
5328         (register_edge_assert_for_1): Adjust for the change in
5329         register_edge_assert_for_2.
5330         (register_edge_assert_for): Split the cond argument.
5331         (find_switch_asserts): Adjust for the change in
5332         register_edge_assert_for.
5333
5334 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
5335
5336         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
5337         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
5338         offsets for 64-bit mingw.
5339         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
5340         abi for x86_64-pc-mingw.
5341
5342 2008-04-02  Richard Guenther  <rguenther@suse.de>
5343
5344         * tree-vrp.c (extract_range_from_assert): Make sure to not
5345         produce range min/max with TREE_OVERFOW set.
5346         If merging a anti-range and a range keep the anti-range if
5347         the range covers all values of the type.
5348         (register_edge_assert_for_2): Only allow sign-changing
5349         conversions in detecting canonical range checks.  Also
5350         register an assert for the unsigned name if useful.
5351
5352         PR tree-optimization/35787
5353         * tree-vrp.c (vrp_val_max): New function.
5354         (vrp_val_min): Likewise.
5355         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
5356         (vrp_val_is_min): Likewise.
5357         (supports_overflow_infinity): Use vrp_val_{min,max}.
5358         (negative_overflow_infinity): Likewise.
5359         (positive_overflow_infinity): Likewise.
5360         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
5361         (is_positive_overflow_infinity): Likewise.
5362         (is_overflow_infinity): Likewise.
5363         (avoid_overflow_infinity): Use vrp_val_{min,max} and
5364         vrp_val_is_{min,max}.
5365         (set_and_canonicalize_value_range): Canonicalize anti-ranges
5366         to ranges if possible.  Avoid empty ranges.
5367
5368 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5369
5370         PR middle-end/35705
5371         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
5372         the expression is a function address.
5373
5374 2008-04-01  George Helffrich  <george@gcc.gnu.org>
5375
5376         PR fortran/35154, fortran/23057
5377         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
5378         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
5379         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
5380         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
5381         in common.
5382         (dbxout_syms): Check for COMMON-based symbol and wrap in
5383         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
5384         in bracket for efficiency.
5385
5386         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
5387         using DW_TAG_common_block + member offset.
5388         (add_pubname_string): New function.
5389         (dw_expand_expr): New function to find block name and offset for
5390         COMMON var.
5391         (common_check): New function to check whether symbol in Fortran COMMON.
5392         (gen_variable_die): If COMMON, use DW_TAG_common_block.
5393
5394 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
5395
5396         PR c/35436
5397         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
5398
5399 2008-04-02  Ben Elliston  <bje@au.ibm.com>
5400
5401         * config/v850/v850.md (casesi): Remove if (0) code.
5402         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
5403         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
5404
5405 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
5406
5407         * config/i386/i386.md (rex64suffix): New mode attribute.
5408         (floathi<mode>2): Disable expander for SSE math.
5409         (*floathi<mode>2_1): New insn insn_and_split pattern.
5410         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
5411         corresponding post-reload splitters.
5412         (*floathi<mode>2_i387): New macroized insn pattern.
5413         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
5414         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
5415         insn_and_split pattern.
5416         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
5417         New macroized instruction patterns and corresponding post-reload
5418         splitters.
5419         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
5420         and corresponding post-reload splitters.
5421         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
5422         New macroized instruction patterns.
5423         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
5424         macroized instruction patterns and corresponding post-reload splitters.
5425         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
5426         corresponding post-reload splitters.
5427         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
5428         New macroized instruction patterns.
5429         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
5430         corresponding post-reload splitters.
5431         (*floatsi<mode>2_i387): New macroized instruction patterns.
5432
5433 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
5434
5435         * config/i386/i386.md (smaxmin): New.
5436         (umaxmin): Likewise.
5437         (maxminiprefix): Likewise.
5438         (maxminfprefix): Likewise.
5439         (<code><mode>3): Likewise.
5440         (smin<mode>3): Removed.
5441         (smax<mode>3): Likewise.
5442
5443         * config/i386/mmx.md (mmx_<code>v2sf3): New.
5444         (mmx_<code>v4hi3): Likewise.
5445         (mmx_<code>v8qi3): Likewise.
5446         (mmx_smaxv2sf3): Removed.
5447         (mmx_sminv2sf3): Likewise.
5448         (mmx_umaxv8qi3): Likewise.
5449         (mmx_smaxv4hi3): Likewise.
5450         (mmx_uminv8qi3): Likewise.
5451         (mmx_sminv4hi3): Likewise.
5452
5453         * config/i386/sse.md (<addsub><mode>3): New.
5454         (*<addsub><mode>3): Likewise.
5455         (<sse>_vm<addsub><mode>3): Likewise.
5456         (<maxmin><mode>3): Likewise.
5457         (*<maxmin><mode>3_finite): Likewise.
5458         (*<maxmin><mode>3): Likewise.
5459         (<sse>_vm<maxmin><mode>3): Likewise.
5460         (sse3_h<addsub>v4sf3): Likewise.
5461         (sse3_h<addsub>v2df3): Likewise.
5462         (<maxmin>v16qi3): Likewise.
5463         (*<maxmin>v16qi3): Likewise.
5464         (<maxmin>v8hi3): Likewise.
5465         (*<maxmin>v8hi3): Likewise.
5466         (*sse4_1_<maxmin><mode>3): Likewise.
5467         (*sse4_1_<maxmin><mode>3): Likewise.
5468         (add<mode>3): Removed.
5469         (*add<mode>3): Likewise.
5470         (<sse>_vmadd<mode>3): Likewise.
5471         (sub<mode>3): Likewise.
5472         (*sub<mode>3): Likewise.
5473         (<sse>_vmsub<mode>3): Likewise.
5474         (smin<mode>3): Likewise.
5475         (*smin<mode>3_finite): Likewise.
5476         (*smin<mode>3): Likewise.
5477         (<sse>_vmsmin<mode>3): Likewise.
5478         (smax<mode>3): Likewise.
5479         (*smax<mode>3_finite): Likewise.
5480         (*smax<mode>3): Likewise.
5481         (<sse>_vmsmax<mode>3): Likewise.
5482         (sse3_haddv4sf3): Likewise.
5483         (sse3_haddv2df3): Likewise.
5484         (sse3_hsubv4sf3): Likewise.
5485         (sse3_hsubv2df3): Likewise.
5486         (umaxv16qi3): Likewise.
5487         (*umaxv16qi3): Likewise.
5488         (smaxv8hi3): Likewise.
5489         (*smaxv8hi3): Likewise.
5490         (*sse4_1_smax<mode>3): Likewise.
5491         (*sse4_1_umax<mode>3): Likewise.
5492         (uminv16qi3): Likewise.
5493         (*uminv16qi3): Likewise.
5494         (sminv8hi3): Likewise.
5495         (*sminv8hi3): Likewise.
5496         (*sse4_1_smin<mode>3): Likewise.
5497         (*sse4_1_umin<mode>3): Likewise.
5498
5499 2008-04-01  Rafael Espindola  <espindola@google.com>
5500
5501         * tree-cfg.c (verify_expr): remove in_phi.
5502         (verify_stmt): Don't call walk_tree with verify_expr. Use
5503         is_gimple_min_invariant instead of is_gimple_val.
5504
5505 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
5506
5507         * doc/include/gpl_v3.texi: Update for manpage generation.
5508         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
5509         gpl.texi.
5510         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
5511         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
5512         gpl_v3.texi instead of gpl.texi.
5513         (gpl.pod): New.
5514
5515 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
5516
5517         PR pch/13675
5518         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
5519
5520 2008-04-01  Rafael Espindola  <espindola@google.com>
5521
5522         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
5523         (extract_code_and_val_from_cond): Use
5524         extract_code_and_val_from_cond_with_ops.
5525
5526 2008-04-01  Jan Hubicka  <jh@suse.cz>
5527
5528         * function.c (free_after_compilation): Free epilogue_delay_list.
5529         (prepare_function_start): Assert that previous compilation was freed.
5530
5531 2008-04-01  Jan Hubicka  <jh@suse.cz>
5532             Jim Wilson  <wilson@tuliptree.org>
5533             Andreas Tobler <andreast@gcc.gnu.org>
5534
5535         PR middle-end/35781
5536         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
5537         rtl.emit instead cfun->emit.
5538         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
5539         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
5540
5541 2008-04-01  Ben Elliston  <bje@au.ibm.com>
5542
5543         * doc/c-tree.texi (Function Basics): Fix grammatical error.
5544
5545 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
5546
5547         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
5548         New options
5549         (fprofile-use): Add var flag_profile_use
5550         * coverage.c (coverage_begin_output): Do not open a gcno file for
5551         output only if -ftest-coverage is set.
5552         Do not add getpwd() to gcda file path.
5553         (build_gcov_info): Check the new flag
5554         flag_profile_datafile_relative_path.
5555         (coverage_init): Use profile_data_prefix.
5556         Read profile counter only if flag_profile_use is set.
5557         * opts.c (common_handle_option): New option fprofile-use=,
5558         fprofile-dir=, fprofile-generate=.
5559         * toplev.c (profile_data_prefix): New variable definition.
5560         * toplev.h (profile_data_prefix): New declaration.
5561         * doc/invoke.tex (Option Summary, Optimization Options):
5562         Add new options.
5563
5564 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
5565
5566         * varasm.c (output_constant_pool_1): In LABEL_REF check,
5567         use tmp consistently.
5568
5569         PR target/35695
5570         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
5571         * config/ia64/ia64.c (rtx_needs_barrier): Handle
5572         UNSPEC_FR_RECIP_APPROX_RES.
5573         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
5574
5575 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
5576
5577         PR c/35750
5578         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
5579
5580 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5581
5582         PR middle-end/30186
5583         * fold-const.c (fold_indirect_ref_1): Support accessing non first
5584         element of the vector via a pointer.
5585
5586 2008-03-31  Ian Lance Taylor  <iant@google.com>
5587
5588         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
5589
5590 2008-03-31  Jan Hubicka  <jh@suse.cz>
5591
5592         * builtins.c (expand_builtin_setjmp_receiver): Update call of
5593         get_arg_pointer_save_area.
5594         * expr.c (init_expr): Just clear out rtl.expr.
5595         * function.c (free_after_compilation): Clear out whole RTL structure.
5596         (get_func_frame_size): Merge into ...
5597         (get_frame_size): ... this one.
5598         (assign_stack_local_1): Merge into ...
5599         (assign_stack_local): ... this one.
5600         (expand_function_end): Update call of get_arg_pointer_save_area.
5601         (get_art_pointer_save_area): Remove cfun argument.
5602         * function.h (emit_status): regno_pointer_align does not need length
5603         attribute. Move x_regno_reg_rtx to ...
5604         (regno_reg_rtx): ... new global array.
5605         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
5606         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
5607         apply_args_value, forced_labels, stack_pointer_delta):
5608         Update accestors.
5609         (struct varasm_status): Move here from varasm.c
5610         (struct rtl_data): New. Move here some fields from struct function.
5611         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
5612         frame_offset, stack_check_probe_note, arg_pointer_save_area,
5613         used_temp_slots avail_temp_slots, temp_slot_level,
5614         nonlocal_goto_handler_labels): Update accesstors.
5615         (rtl): New global variable.
5616         (struct function): Move some fileds to rtl_data.
5617         (get_arg_pointer_save_area): Update prototype.
5618         * emit-rtl.c (rtl): Declare.
5619         (regno_reg_rtx): Declare.
5620         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
5621         Update.
5622         (gen_reg_rtx): Update.
5623         (init_virtual_regs): Do not tate emit_status argument.
5624         (init_emit): Do not allocate emit.
5625         * varasm.c (varasm_statuc): Move to function.h.
5626         (n_deferred_constatns): Update accestor.
5627         (init_varasm_status): Do not allocate varasm_status.
5628         (force_const_mem, get_pool_size, output_constant_pool): Update.
5629         * stmt.c (force_label_rtx): Do not use x_ prefixes.
5630         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
5631
5632 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
5633
5634         PR rtl-optimization/35729
5635         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
5636         references.
5637
5638 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
5639
5640         PR target/32000
5641         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
5642         load/store if memory is unaligned.
5643         (*movti_rex64): Likewise.
5644
5645         * config/i386/predicates.md (misaligned_operand): New.
5646
5647 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
5648
5649         PR tree-opt/35431
5650         * tree-ssa-phiopt.c (conditional_replacement): Return early for
5651         complex types.
5652
5653 2008-03-31  Jan Beulich  <jbeulich@novell.com>
5654
5655         * config/ia64/constraints.md: Add 'j' constraint.
5656         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
5657         (movdi_internal): Likewise.
5658
5659 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
5660
5661         PR c/35748
5662         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
5663
5664 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
5665
5666         PR target/35757
5667         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
5668         proper error message for the third argument on blendpd and
5669         blendps.
5670
5671         * config/i386/sse.md (blendbits): New.
5672         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
5673
5674 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
5675
5676         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
5677
5678 2008-03-30  Richard Guenther  <rguenther@suse.de>
5679
5680         PR middle-end/31023
5681         * fold-const.c (fold_sign_changed_comparison): Do leave
5682         conversions to base-types alone.
5683
5684 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5685
5686         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
5687         the link register if one altivec register is be saved.
5688
5689 2008-03-30  Ben Elliston  <bje@au.ibm.com>
5690
5691         * final.c (final_scan_insn): Remove if (0) code.
5692
5693 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
5694
5695         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
5696
5697 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
5698
5699         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
5700         of V4SFmode to ix86_binary_operator_ok.
5701
5702 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
5703
5704         * config/i386/i386.c (override_options): Initialize
5705         ix86_veclib_handler to ix86_veclibabi_svml when
5706         -mveclibabi=svml is used.
5707         (ix86_veclibabi_svml): New function for SVML ABI style
5708         vectorization support.
5709         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
5710
5711 2008-03-28  Rafael Espindola  <espindola@google.com>
5712
5713         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
5714         (tree_binary_nonnegative_warnv_p): Make it public.
5715         (tree_single_nonnegative_warnv_p): Make it public.
5716         (tree_invalid_nonnegative_warnv_p): Make it public.
5717         (tree_unary_nonzero_warnv_p): Make it public.
5718         (tree_binary_nonzero_warnv_p): Make it public
5719         (tree_single_nonzero_warnv_p): Make it public.
5720         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
5721         (extract_range_from_binary_expr): Split the expr argument.
5722         (extract_range_from_unary_expr): Split the expr argument.
5723         (extract_range_from_comparison): Split the expr argument.
5724         (extract_range_from_expr): Use the new aux functions.
5725         (vrp_evaluate_conditional_warnv): Use
5726         vrp_evaluate_conditional_warnv_with_ops.
5727         * tree.h (tree_unary_nonzero_warnv_p): Declare.
5728         (tree_binary_nonzero_warnv_p): Declare.
5729         (tree_single_nonzero_warnv_p): Declare.
5730         (tree_expr_nonzero_warnv_p): Declare.
5731         (tree_unary_nonnegative_warnv_p): Declare.
5732         (tree_binary_nonnegative_warnv_p): Declare.
5733         (tree_single_nonnegative_warnv_p): Declare.
5734         (tree_invalid_nonnegative_warnv_p): Declare.
5735
5736 2008-03-28  Richard Guenther  <rguenther@suse.de>
5737
5738         PR tree-optimization/30317
5739         PR tree-optimization/30911
5740         PR tree-optimization/34793
5741         * tree-vrp.c (set_and_canonicalize_value_range): New function.
5742         (struct assert_locus_d): New member EXPR.
5743         (register_new_assert_for): Add EXPR parameter to support
5744         ASSERT_EXPR <name, expr OP limit>.
5745         (register_edge_assert_for_1): Adjust callers.
5746         (find_assert_locations): Likewise.
5747         (process_assert_insertions_for): Build condition from expression.
5748         (extract_range_from_assert): Handle ASSERT_EXPRs
5749         of the form ASSERT_EXPR <name, expr OP limit>.
5750         (register_edge_assert_for_2): New helper registering
5751         asserts for comparisons.  Recognize range tests of the form
5752         (unsigned)i - CST1 OP CST2.
5753         (register_edge_assert_for_1): Use it.
5754         (register_edge_assert_for): Likewise.
5755         (needs_overflow_infinity): Integer sub-types
5756         do not need overflow infinities.
5757         (vrp_val_is_max): The extreme values of integer sub-types
5758         are those of the base type.
5759         (vrp_val_is_min): Likewise.
5760         * tree.def (ASSERT_EXPR): Document extra allowed conditional
5761         expressions.
5762
5763 2008-03-28  Nick Clifton  <nickc@redhat.com>
5764
5765         PR target/31110
5766         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
5767         Return GENERAL_REGS for stack adjustment reloads.
5768
5769 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5770
5771         PR target/31334
5772         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
5773         const_vector when all the vectors are constant.
5774
5775 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
5776
5777         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
5778         comparisons.
5779         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
5780         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
5781         (scc_sf): New.
5782         (s<code>_sf): Use new scc_sf attribute for opcode names.
5783
5784 2008-03-27  Tom Tromey  <tromey@redhat.com>
5785
5786         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
5787         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
5788         config/spu/t-spu-elf, config/i386/t-interix,
5789         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
5790         config/i386/x-darwin, config/i386/x-mingw32,
5791         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
5792         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
5793         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
5794         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
5795         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
5796         config/rs6000/x-darwin, config/rs6000/t-rs6000,
5797         config/score/t-score-elf, config/arm/t-strongarm-pe,
5798         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
5799         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
5800         Revert automatic dependency patch.
5801
5802 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5803
5804         PR target/35657
5805         * config/i386/i386.c (ix86_function_arg_boundary): Align
5806         decimal floating point to its natural boundary.
5807
5808 2008-03-27  Richard Guenther  <rguenther@suse.de>
5809
5810         PR middle-end/35716
5811         * fold-const.c (fold_comparison): Restrict distinct decl
5812         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
5813         solely rely on operand_equal_p.
5814
5815 2008-03-27  Richard Guenther  <rguenther@suse.de>
5816
5817         PR c/32511
5818         * c-common.c (handle_weak_attribute): Reject combination of
5819         weak and inline.
5820
5821 2008-03-27  Richard Guenther  <rguenther@suse.de>
5822
5823         PR tree-optimization/32810
5824         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
5825         conversions from DECL_INITIAL.
5826         (fold_const_aggregate_ref): Likewise from constructor elements.
5827
5828 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
5829
5830         * tree-affine.h (aff_combination_expand): Declare.
5831         (get_inner_reference_aff): Likewise.
5832         * tree-affine.c (aff_combination_expand): Split out from
5833         tree_to_aff_combination_expand.
5834         (get_inner_reference_aff): New function.
5835         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
5836         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
5837         (struct lim_aux_data): sm_done field removed.
5838         (mem_ref_loc_p, mem_ref_locs_p): New types.
5839         (struct mem_ref): Added id, stored, accesses_in_loop,
5840         indep_loop, dep_loop, indep_ref, dep_ref fields.
5841         Removed is_stored, locs and next fields.
5842         (memory_accesses): New variable.
5843         (movement_possibility): Do not allow moving statements
5844         that store to memory.
5845         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
5846         New functions.
5847         (determine_max_movement): For statements with memory references,
5848         find the outermost loop in that the reference is independent.
5849         (move_computations_stmt): Mark the virtual operands for renaming.
5850         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
5851         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
5852         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
5853         add_vop_ref_mapping, create_vop_ref_mapping_loop,
5854         create_vop_ref_mapping, analyze_memory_references,
5855         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
5856         get_all_locs_in_loop, ref_always_accessed_p,
5857         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
5858         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
5859         store_motion_loop, store_motion): New functions.
5860         (struct vop_to_refs_elt): New type.
5861         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
5862         memref_hash, memref_eq, hoist_memory_references): Rewritten.
5863         (schedule_sm): Replaced by...
5864         (execute_sm): ... this.
5865         (determine_lsm_ref, hoist_memory_references,
5866         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
5867         find_more_ref_vops, free_mem_ref, free_mem_refs,
5868         determine_lsm_loop, determine_lsm): Removed.
5869         (tree_ssa_lim_finalize): Free data structures used by store motion.
5870         (tree_ssa_lim): Call analyze_memory_references.  Use
5871         store_motion instead of determine_lsm.
5872
5873 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
5874
5875         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
5876         rename tmake_file to m68hc11/t-m68hc11.
5877         (mcore): Set inhibit_libc to true.
5878         * config.host (alpha*-dec-*vms*): Set extra_programs.
5879         (interix3*): Don't use host_xmake_file.
5880         * configure.ac: Let config.gcc override inhibit_libc.
5881         * configure: Regenerate.
5882
5883         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
5884         * config/t-openbsd-thread: Remove commented out lines.
5885         
5886         * config/x-interix: Remove.
5887
5888         * config/m68hc11/t-m68hc11-gas: Rename to...
5889         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
5890
5891         * config/mcore/t-mcore: Remove T_CFLAGS.
5892         * config/mcore/t-mcore-pe: Likewise.
5893
5894 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
5895
5896         * configure.ac: Replace custom __GNU_SOURCE test with
5897         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
5898         * aclocal.m4: Regenerate.
5899         * configure: Regenerate.
5900         * config.in: Regenerate.
5901
5902 2008-03-27  Richard Guenther  <rguenther@suse.de>
5903
5904         * fold-const.c (target.h): Include.
5905         (fold_comparison): Fold comparison of addresses of decls
5906         that bind locally or of constants.  Consolidate address folding code.
5907         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
5908         results from fold_binary_to_constant.
5909         (compare_values_warnv): Likewise.
5910
5911 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
5912
5913         PR middle-end/35429
5914         * fold-const.c (fold_truthop): Check for integeral types when folding
5915         a == 0 && b == 0 and a != 0 || b != 0 .
5916
5917 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
5918
5919         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
5920
5921 2008-03-26  Andreas Schwab  <schwab@suse.de>
5922
5923         * doc/invoke.texi: Fix use of @item vs. @itemx.
5924
5925 2008-03-26  Tom Tromey  <tromey@redhat.com>
5926
5927         * Makefile.in (build/gensupport.o, build/print-rtl.o,
5928         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
5929         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
5930         build/gencodes.o, build/genconditions.o, build/genconfig.o,
5931         build/genconstants.o, build/genemit.o, build/genextract.o,
5932         build/genflags.o, build/genmddeps.o, build/genopinit.o,
5933         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
5934         options.h.
5935
5936 2008-03-26  Richard Guenther  <rguenther@suse.de>
5937
5938         Revert
5939         2008-03-26  Richard Guenther  <rguenther@suse.de>
5940
5941         * fold-const.c (target.h): Include.
5942         (fold_comparison): Fold comparison of addresses of two decls
5943         that bind locally.  Consolidate address folding code.
5944
5945 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5946
5947         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
5948         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
5949         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
5950         dconstsqrt2, dconstthird, dconste and/or dconst10.
5951         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
5952         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
5953         dconstsqrt2, dconste): Delete.
5954         (init_emit_once): Likewise.  Simplify initializing dconstm1.
5955         Constify variable.
5956         * real.c (get_real_const): New.
5957         * real.h (dconst3, dconst10, dconstm2, dconstthird,
5958         dconstsqrt2, dconste): Delete.
5959         (real_value_const, get_real_const): New.
5960
5961 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
5962
5963         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
5964
5965         * config/i386/i386.c (ix86_function_arg_boundary): Check
5966         BIGGEST_ALIGNMENT instead of 128.
5967         (setup_incoming_varargs_64): Likewise.
5968
5969 2008-03-26  Tom Tromey  <tromey@redhat.com>
5970
5971         * Makefile.in (DEPFILES): Add missing '/'.
5972
5973 2008-03-26  Richard Guenther  <rguenther@suse.de>
5974
5975         * fold-const.c (target.h): Include.
5976         (fold_comparison): Fold comparison of addresses of two decls
5977         that bind locally.  Consolidate address folding code.
5978
5979 2008-03-26  Nick Clifton  <nickc@redhat.com>
5980
5981         PR target/31232
5982         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
5983         not allow INT+INT as a legitimate addressing mode.
5984
5985 2008-03-26  Richard Guenther  <rguenther@suse.de>
5986
5987         * tree-flow.h (widen_bitfield): Remove declaration.
5988         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
5989         (widen_bitfield): Remove function.
5990         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
5991         code.
5992
5993 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5994
5995         PR target/31558
5996         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
5997         error_mark_node's.
5998
5999 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
6000
6001         PR rtl-optimization/35232
6002         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
6003         (forget_old_reloads_1, forget_marked_reloads): Don't clear
6004         reg_reloaded_call_part_clobbered here.
6005         (reload_regs_reach_end_p): New function.
6006         (reload_reg_rtx_for_input): New variable.
6007         (reload_reg_rtx_for_output): Likewise.
6008         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
6009         when reassigning a pseudo register.  Load reloadreg from 
6010         reload_reg_rtx_for_input, moving the mode and register
6011         calculation to...
6012         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
6013         instead of the original when deciding whether an input reload
6014         would be a no-op or whether an output reload can be deleted.
6015         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
6016         when setting up new_spill_reg_store.  Load it from
6017         reload_reg_rtx_for_output, moving the mode and register
6018         calculation to...
6019         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
6020         instead of the original when deciding whether an output reload
6021         would be a no-op.  Do the same when modifying insn notes.
6022         Use rtx_equal_p instead of == to compare the registers.
6023         (inherit_piecemeal_p): Take a mode and two register numbers
6024         as argument.
6025         (emit_reload_insns): Clear new_spill_reg_store for every hard
6026         register in the reload register.  Remove spill registers
6027         from reg_reloaded_valid before considering whether to record
6028         inheritance information for them.  Use reload_reg_rtx_for_output
6029         instead of reg_rtx when recording output reloads.  Use
6030         reload_reg_rtx_for_input instead of reg_rtx when recording
6031         input reloads.  Set or clear reg_reloaded_call_part_clobbered
6032         at the same time as setting reg_reloaded_valid.
6033         (delete_output_reload): Add a new_reload_reg parameter and use it
6034         instead of rld[j].reg_rtx.
6035         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
6036         calls accordingly.
6037
6038 2008-03-25  Tom Tromey  <tromey@redhat.com>
6039
6040         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
6041         (build/genattr.o): Likewise.
6042         (build/genattrtab.o): Likewise.
6043         (build/gencodes.o): Likewise.
6044         (build/genconfig.o): Likewise.
6045         (build/genconstants.o): Likewise.
6046         (build/genemit.o): Likewise.
6047         (build/genextract.o): Likewise.
6048         (build/genflags.o): Likewise.
6049
6050 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
6051         
6052         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
6053         instead of size_int for integer types.
6054         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
6055         to match type of MINUS_EXPR.
6056         
6057 2008-03-25  Tom Tromey  <tromey@redhat.com>
6058
6059         * configure: Rebuilt.
6060         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
6061         Makefile.
6062
6063 2008-03-25  Tom Tromey  <tromey@redhat.com>
6064
6065         * config/x-solaris (host-solaris.o): Update.
6066         * config/x-linux (host-linux.o): Update.
6067         * config/x-hpux (host-hpux.o): Update.
6068         * config/x-darwin (host-darwin.o): Update.
6069         * config/v850/t-v850e (v850-c.o): Update.
6070         * config/v850/t-v850 (v850-c.o): Update.
6071         * config/t-vxworks (vxworks.o): Update.
6072         * config/t-sol2 (sol2-c.o, sol2.o): Update.
6073         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
6074         * config/spu/t-spu-elf (spu-c.o): Update.
6075         (spu.o): Remove.
6076         * config/sh/t-symbian (sh-c.o): Update.
6077         (symbian.o): Update.
6078         * config/sh/t-sh (sh-c.o): Update.
6079         * config/score/t-score-elf (score7.o, score3.o): Update.
6080         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
6081         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
6082         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
6083         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
6084         (rs6000.o): Remove.
6085         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
6086         * config/m32c/t-m32c (m32c-pragma.o): Update.
6087         * config/ia64/t-ia64 (ia64-c.o): Update.
6088         * config/i386/x-mingw32 (host-mingw32.o): Update.
6089         * config/i386/x-i386 (driver-i386.o): Update.
6090         * config/i386/x-darwin (host-i386-darwin.o): Update.
6091         * config/i386/x-cygwin (host-cygwin.o): Update.
6092         * config/i386/t-nwld (nwld.o): Update.
6093         * config/i386/t-netware (netware.o): Update.
6094         * config/i386/t-interix (winnt.o): Update.
6095         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
6096         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
6097         msformat-c.o): Update.
6098         * config/bfin/t-bfin-linux (generated_files): Add
6099         linux-sysroot-suffix.h.
6100         * config/arm/t-wince-pe (pe.o): Update.
6101         * config/arm/t-strongarm-pe (pe.o): Update.
6102         * config/arm/t-pe (pe.o): Update.
6103         * config/arm/t-arm (arm-c.o): Update.
6104         * doc/install.texi (Prerequisites): Require make 3.80.
6105         * Makefile.in: Remove .o targets.
6106         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
6107         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
6108         (simple_generated_h, simple_generated_c): Move earlier.
6109         (generated_files): New variable.
6110         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
6111         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
6112         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
6113         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
6114         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
6115         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
6116         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
6117         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
6118         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
6119         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
6120         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
6121         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
6122         (.c.o): Remove.
6123         (COMPILE.base, COMPILE): New variables.
6124         (%.o): New pattern rule.
6125         (ALL_HOST_OBJS): New variable.
6126         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
6127         (dummy-checksum.o, cc1-checksum.o): Remove.
6128         (DRIVER_SHLIB): New variable.
6129         (DRIVER_DEFINES): Use it.
6130         (gencondmd.c): Move out of build/.
6131         (s-conditions): Update.
6132         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
6133         (ALL_BUILD_OBJS): Likewise.
6134         (build/%.o): Use BUILDCOMPILE.
6135         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
6136         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
6137         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
6138         build/gencheck.o, build/gencodes.o, build/genconditions.o,
6139         build/genconfig.o, build/genconstants.o, build/genemit.o,
6140         build/genextract.o, build/genflags.o, build/genmddeps.o,
6141         build/genopinit.o, build/genoutput.o, build/genpeep.o,
6142         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
6143         build/gen-protos.o, build/scan.o, build/fix-header.o,
6144         build/scan-decls.o): Simplify.
6145         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
6146         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
6147         prefix.o, toplev.o): Reduce to variable setting.
6148         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
6149         ($(out_object_file), gcc-options.o): New targets.
6150         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
6151         * configure: Rebuilt.
6152         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
6153         * doc/sourcebuild.texi (Front End Directory): Document new variable.
6154
6155 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
6156
6157         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
6158         complain when we hit an error, return ERROR_MARK_NODE.
6159
6160 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6161
6162         * config/sh/constraints.md (Pso, Psz): New constraints.
6163         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
6164         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
6165
6166 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6167
6168         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
6169         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
6170
6171 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6172
6173         * config/sh/sh.md (prefetch): Add condition for SH2A target.
6174         (prefetch_sh2a): New.   
6175
6176 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
6177             Naveen.H.S  <naveen.hs@kpitcummins.com>
6178
6179         * config/sh/constraints.md (I28): New constraint.
6180         * config/sh/sh.c (broken_move): Add support for movi20s.
6181         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
6182
6183 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
6184             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
6185             Naveen.H.S  <naveen.hs@kpitcummins.com>
6186
6187         * config/sh/sh.c (SH_ATTRIBUTES): Define.
6188         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
6189         (print_operand): Handle resbank in %@ operand code.
6190         (sh_encode_section_info): New.
6191         (push_regs): Add conditions for resbank.
6192         (sh_expand_epilogue): Likewise.
6193         (sh_insert_attributes): Likewise.
6194         (sh_attribute_table): Likewise.
6195         (sh_handle_resbank_handler_attribute): New.
6196         (sh2a_handle_function_vector_handler_attribute): New.
6197         (sh2a_is_function_vector_call): New.
6198         (sh2a_get_function_vector_number): New.
6199         (sh2a_function_vector_p): New.
6200         (sh_cfun_resbank_handler_p): New.
6201         * config/sh/sh.md (calli): Emit jsr/n if possible.
6202         (calli_tbr_rel): New.
6203         (calli_pcrel): Emit jsr/n if possible.
6204         (return_i): Emit rts/n if possible.
6205         (call_valuei_tbr_rel): New.
6206         (call_valuei_pcrel): Add condition for SH2A target.
6207         (call_value): Likewise.
6208         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
6209         (sh2a_get_function_vector_number): Likewise.
6210         (sh2a_is_function_vector_call): Likewise.
6211         * doc/extend.texi: Document TBR relative addressing of SH2A.
6212         (resbank): Add description for SH2A.
6213
6214 2008-03-24  Richard Guenther  <rguenther@suse.de>
6215
6216         PR c/22371
6217         * gimplify.c (gimplify_modify_expr): For frontend type-correct
6218         pointer assignments change conversions according to middle-end rules.
6219         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
6220         * configure.ac: Include type checking in yes.
6221         * configure: Regenerate.
6222
6223 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6224
6225         * diagnostic.c (diagnostic_count_diagnostic): Delete.
6226         (diagnostic_report_diagnostic): Update. Handle ICEs here.
6227         
6228 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
6229
6230         * gthr-vxworks.h (UNUSED): Define.
6231
6232 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
6233
6234         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
6235
6236 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
6237
6238         * doc/extend.texi (Function Attributes): Add missing comma in the
6239         example of the "alloc_size" attribute.
6240         
6241 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
6242
6243         Revert:
6244         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
6245
6246         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
6247         32bit host.
6248
6249         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
6250
6251         PR target/35496
6252         * stor-layout.c (update_alignment_for_field): Set minimum alignment
6253         of the underlying type of a MS bitfield layout to the natural
6254         alignment of the type.
6255
6256         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
6257
6258         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
6259         to their natural alignment to avoid store forwarding stalls.
6260
6261 2008-03-22  Richard Guenther  <rguenther@suse.de>
6262
6263         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
6264         For PHI nodes verify the address is invariant.
6265         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
6266         (get_symbol_constant_value): Use is_gimple_min_invariant.
6267         (maybe_fold_stmt_indirect): Likewise.
6268
6269 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
6270
6271         PR rtl-optimization/33927
6272         * Makefile.in (dse.o): Depend on $(TM_P_H).
6273         * expr.h (extract_low_bits): Declare.
6274         * expmed.c (extract_low_bits): New function.
6275         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
6276         * dse.c: Include tm_p.h.
6277         (find_shift_sequence): Remove the read_reg argument and return the
6278         read value.  Emit the instructions instead of returning them.
6279         Iterate on new_mode rather than calculating it each time.
6280         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
6281         source to NEW_MODE and extract_low_bits to convert the shifted
6282         value to READ_MODE.
6283         (replace_read): Allow the load and store to have different mode
6284         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
6285         or extraction instructions before trying the replacement.  Update
6286         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
6287
6288 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
6289
6290         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
6291         to their natural alignment to avoid store forwarding stalls.
6292
6293 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6294
6295         PR target/27946
6296         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
6297         encouraging but not allowing gprs for input;
6298         change the input constraint to !f#r.
6299         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
6300         gprs for output;
6301         change the output constraint to !f#r.
6302
6303 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
6304
6305         PR target/13958
6306         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
6307         corresponding post-reload splitters.
6308         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
6309         when x87 FP math is selected.
6310         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
6311         New function prototype.
6312         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
6313         unreachable function to ease macroization of insn patterns.
6314
6315 2008-03-21  Martin Jambor  <mjambor@suse.cz>
6316
6317         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
6318         reference dumps if ddr is NULL or dependence is unknown.
6319
6320 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6321
6322         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
6323         unsigned extension into account.
6324         (ATOMIC_COMPARE_AND_SWAP): Likewise.
6325         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
6326         Do computations on a scratch register.
6327
6328 2008-03-21  Richard Guenther  <rguenther@suse.de>
6329
6330         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
6331         Use is_gimple_min_invariant instead of TREE_INVARIANT.
6332         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
6333         * tree-ssa-dom.c (record_equality): Likewise.
6334         * tree-inline.c (copy_body_r): Likewise.
6335         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
6336         TREE_INVARIANT.
6337
6338 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6339
6340         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
6341         as 'delete_unused' argument.
6342
6343 2008-03-20  Richard Guenther  <rguenther@suse.de>
6344
6345         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
6346         special casing of constant qualifiers.
6347         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
6348         care about them in general.
6349         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
6350         regardless of their type.
6351         (fold_stmt_r): Forcefully fold *& if we end up with that.
6352
6353 2008-03-20  Paul Brook  <paul@codesourcery.com>
6354
6355         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
6356         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
6357         linker flags.
6358         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
6359         definition.
6360         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
6361         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
6362
6363 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
6364
6365         * common.opt (Wmudflap): New option.
6366         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
6367         (mx_register_decls): Likewise.
6368         (mudflap_finish_file): Likewise.
6369         * doc/invoke.texi: Document -Wno-mudflap.
6370
6371 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
6372
6373         * c-format.c (replace_format_name_to_system_name): New.
6374         (cmp_attribs): New.
6375         (convert_format_name_to_system_name): New.
6376         (decode_format_attr): Add use of convert_format_name_to_system_name.
6377         (format_types_orig): Add gnu_ prefix to names.
6378         (check_format_info_main): Special treating of \0 escaped names for
6379         supporting multi-character format specifiers as I32, I64.
6380         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
6381         (gnu_target_overrides_format_attributes): New.
6382         * c-format.h: Add structure target_ovr_attr to hold
6383         system specific formatter names.
6384         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
6385         msformat-c.o file to c_target_objs and cxx_target_objs.
6386         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
6387         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
6388         (TARGET_N_FORMAT_TYPES): New.
6389         * config/i386/msformat-c.c: New.
6390         * config/i386/t-cygming: Add build rule for msformat-c.o.
6391         * doc/extend.texi: Add new format names gnu_* and ms_* and
6392         further details.
6393         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
6394
6395 2008-03-20  Ira Rosen  <irar@il.ibm.com>
6396
6397         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
6398         optimizations turned on under -O3.
6399         (ftree-vectorize): Add that the flag is turned on with -O3.
6400
6401 2008-03-20  Ben Elliston  <bje@au.ibm.com>
6402
6403         * regmove.c (try_auto_increment): Fix spelling error in comment.
6404         * final.c (final_scan_insn): Likewise.
6405
6406 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
6407
6408         PR target/14552
6409         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
6410         allocator preferences for "y" and "r" class registers.
6411         ("*mov<mode>_internal"): Ditto.
6412         ("*movv2sf_internal_rex64"): Ditto.
6413         ("*movv2sf_internal"): Ditto.
6414
6415 2008-03-19  Michael Matz  <matz@suse.de>
6416
6417         PR middle-end/35616
6418         * calls.c (expand_call): Check overlap of arguments with call
6419         address for sibcalls.
6420
6421 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
6422
6423         PR target/35496
6424         * stor-layout.c (update_alignment_for_field): Set minimum alignment
6425         of the underlying type of a MS bitfield layout to the natural
6426         alignment of the type.
6427
6428 2008-03-19  Jan Hubicka  <jh@suse.cz>
6429
6430         PR other/35094
6431         * toplev.c (decode_d_option): Handle all CPP flags.
6432         * tree-vrp.c: Update tree_pass descriptors.
6433         * regrename.c: Update tree_pass descriptors.
6434         * fwprop.c: Update tree_pass descriptors.
6435         * doc/invoke.texi: Remove documentation of dropped -d? flags.
6436         * tree-into-ssa.c: Update tree_pass descriptors.
6437         * tree-dump.c: Update tree_pass descriptors.
6438         * tree-complex.c: Update tree_pass descriptors.
6439         * tree-dump.h: Update tree_pass descriptors.
6440         * see.c: Update tree_pass descriptors.
6441         * cgraphbuild.c: Update tree_pass descriptors.
6442         * tracer.c: Update tree_pass descriptors.
6443         * tree-loop-distribution.c: Update tree_pass descriptors.
6444         * cgraph.c: Update tree_pass descriptors.
6445         * postreload-gcse.c: Update tree_pass descriptors.
6446         * postreload.c: Update tree_pass descriptors.
6447         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
6448         * tree-tailcall.c: Update tree_pass descriptors.
6449         * tree-pass.h (tree_opt_pass): Rename to ...
6450         (opt_pass) ... this one; add "type" field and remove letter field.
6451         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
6452         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
6453         all_lowering_passes): Update declaration.
6454         * ipa-cp.c: Update tree_pass descriptors.
6455         * final.c: Update tree_pass descriptors.
6456         * omp-low.c: Update tree_pass descriptors.
6457         * tree-ssa-dse.c: Update tree_pass descriptors.
6458         * ipa-reference.c: Update tree_pass descriptors.
6459         * tree-ssa-uncprop.c: Update tree_pass descriptors.
6460         * auto-inc-dec.c: Update tree_pass descriptors.
6461         * reorg.c: Update tree_pass descriptors.
6462         * cgraphunit.c: Update tree_pass descriptors.
6463         * tree-ssa-copyrename.c: Update tree_pass descriptors.
6464         * tree-ssa-ccp.c: Update tree_pass descriptors.
6465         * df-core.c: Update tree_pass descriptors.
6466         * mode-switching.c: Update tree_pass descriptors.
6467         * tree-nomudflap.c: Update tree_pass descriptors.
6468         * modulo-sched.c: Update tree_pass descriptors.
6469         * ipa-pure-const.c: Update tree_pass descriptors.
6470         * cse.c: Update tree_pass descriptors.
6471         * web.c: Update tree_pass descriptors.
6472         * tree-stdarg.c: Update tree_pass descriptors.
6473         * tree-ssa-math-opts.c: Update tree_pass descriptors.
6474         * tree-ssa-dom.c: Update tree_pass descriptors.
6475         * tree-nrv.c: Update tree_pass descriptors.
6476         * tree-ssa-alias.c: Update tree_pass descriptors.
6477         * loop-init.c: Update tree_pass descriptors.
6478         * gimple-low.c: Update tree_pass descriptors.
6479         * ipa-inline.c: Update tree_pass descriptors.
6480         * tree-ssa-sink.c: Update tree_pass descriptors.
6481         * global.c: Update tree_pass descriptors.
6482         * ifcvt.c: Update tree_pass descriptors.
6483         * jump.c: Update tree_pass descriptors.
6484         * predict.c: Update tree_pass descriptors.
6485         * tree-ssa-loop.c: Update tree_pass descriptors.
6486         * recog.c: Update tree_pass descriptors.
6487         * dse.c: Update tree_pass descriptors.
6488         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
6489         * tree-eh.c: Update tree_pass descriptors.
6490         * regmove.c: Update tree_pass descriptors.
6491         * local-alloc.c
6492         * function.c: Update tree_pass descriptors.
6493         * tree-vectorizer.c: Update tree_pass descriptors.
6494         * gcse.c: Update tree_pass descriptors.
6495         * ipa-type-escape.c: Update tree_pass descriptors.
6496         * tree-if-conv.c: Update tree_pass descriptors.
6497         * init-regs.c: Update tree_pass descriptors.
6498         * ipa.c: Update tree_pass descriptors.
6499         * tree-ssa-phiopt.c: Update tree_pass descriptors.
6500         * rtl-factoring.c: Update tree_pass descriptors.
6501         * lower-subreg.c: Update tree_pass descriptors.
6502         * bt-load.c: Update tree_pass descriptors.
6503         * tree-dfa.c: Update tree_pass descriptors.
6504         * except.c: Update tree_pass descriptors.
6505         * emit-rtl.c: Update tree_pass descriptors.
6506         * cfgexpand.c: Update tree_pass descriptors.
6507         * tree-cfgcleanup.c: Update tree_pass descriptors.
6508         * cfgcleanup.c: Update tree_pass descriptors.
6509         * tree-ssa-pre.c: Update tree_pass descriptors.
6510         * tree-sra.c: Update tree_pass descriptors.
6511         * tree-mudflap.c: Update tree_pass descriptors.
6512         * tree-ssa-copy.c: Update tree_pass descriptors.
6513         * cfglayout.c: Update tree_pass descriptors.
6514         * tree-ssa-forwprop.c: Update tree_pass descriptors.
6515         * tree-ssa-dce.c: Update tree_pass descriptors.
6516         * tree-ssa.c: Update tree_pass descriptors.
6517         * regclass.c: Update tree_pass descriptors.
6518         * integrate.c: Update tree_pass descriptors.
6519         * tree-optimize.c: Update tree_pass descriptors.
6520         * tree-ssa-phiprop.c: Update tree_pass descriptors.
6521         * tree-object-size.c: Update tree_pass descriptors.
6522         * combine.c: Update tree_pass descriptors.
6523         * tree-outof-ssa.c: Update tree_pass descriptors.
6524         * bb-reorder.c: Update tree_pass descriptors.
6525         * stack-ptr-mod.c: Update tree_pass descriptors.
6526         * var-tracking.c: Update tree_pass descriptors.
6527         * tree-profile.c: Update tree_pass descriptors.
6528         * tree-vect-generic.c: Update tree_pass descriptors.
6529         * reg-stack.c: Update tree_pass descriptors.
6530         * sched-rgn.c: Update tree_pass descriptors.
6531         * tree-ssa-structalias.c: Update tree_pass descriptors.
6532         * tree-cfg.c: Update tree_pass descriptors.
6533         * passes.c (current_pass): Update declaration.
6534         (finish_optimization_passes): Update.
6535         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
6536         (register_one_dump_file, register_dump_files_1, next_pass_1):
6537         Update arguments.
6538         (init_optimization_passes): Update handling of new types.
6539         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
6540         * ipa-struct-reorg.c: Update tree_pass descriptors.
6541         * tree-ssa-reassoc.c: Update tree_pass descriptors.
6542         * combine-stack-adj.c: Update tree_pass descriptors.
6543         * cfgrtl.c: Update tree_pass descriptors.
6544         * dce.c: Update tree_pass descriptors.
6545         * tree-ssanames.c: Update tree_pass descriptors.
6546
6547 2008-03-19  Richard Guenther  <rguenther@suse.de>
6548
6549         PR middle-end/35609
6550         * tree-ssa.c (walk_data): New structure.
6551         (warn_uninitialized_var): If not always_executed warn with "maybe"
6552         instead of "is".
6553         (execute_early_warn_uninitialized): Compute post-dominators.
6554         Initialize always_executed before processing each basic block.
6555
6556 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
6557
6558         PR target/35504
6559         * config/i386/i386.c (x86_this_parameter): Calculate correct location
6560         of "this" pointer when "regparm = N" or "fastcall" is in effect.
6561
6562 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6563
6564         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
6565
6566 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
6567
6568         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
6569         is true.
6570         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
6571         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
6572         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
6573         target after ignore has been set, and move there also the commputation
6574         of subtarget and original_target.
6575         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
6576         (LANG_HOOKS_INITIALIZER): Remove it.
6577         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
6578
6579 2008-03-18  Richard Guenther  <rguenther@suse.de>
6580
6581         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
6582         found an expression with constants, note that in the VN for the lhs.
6583         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
6584         fold them to constants if possible.  Run cleanup_cfg if done so.
6585         (execute_pre): Return todo.
6586         (do_pre): Likewise.
6587         (execute_fre): Likewise.
6588         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
6589         of constants.
6590         (get_prop_source_stmt): Look through pointer conversions.
6591
6592 2008-03-18  Jan Hubicka  <jh@suse.cz>
6593
6594         * tree-pretty-print.c: Include predict.h.
6595         (dump_generic_node): Dump predictor.
6596         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
6597         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
6598         * gimple-low.c (lower_stmt): Likewise.
6599         * expr.c (expand_expr_real): Likewise.
6600         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
6601         them.
6602         (build_predict_expr, build_predict_expr): New.
6603         * predict.h (predictor_name, build_predict_expr): Update.
6604         * c-typeck.c (c_finish_bc_stmt): Add prediction.
6605         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
6606         * predict.def (PRED_CONTINUE): Update hitrate.
6607         * tree.def (PREDICT_EXPR): Define.
6608         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
6609         do not handle BIND_EXPR.
6610         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
6611         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
6612         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
6613         operands.
6614
6615 2008-03-18  Michael Matz  <matz@suse.de>
6616
6617         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
6618
6619 2008-03-18  Richard Guenther  <rguenther@suse.de>
6620
6621         * tree-gimple.h (is_gimple_invariant_address): Declare.
6622         (is_gimple_constant): Likewise.
6623         * tree-gimple.c (is_gimple_constant): New function.
6624         (is_gimple_invariant_address): Likewise.
6625         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
6626         and is_gimple_invariant_address.
6627         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
6628         previous change.
6629         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
6630         an addressable base.
6631
6632 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
6633
6634         PR middle-end/35611
6635         * gimplify.c (gimplify_expr): Gimplify second operand of
6636         OMP_ATOMIC_LOAD.
6637
6638 2008-03-17  Richard Guenther  <rguenther@suse.de>
6639
6640         PR tree-optimization/19637
6641         * fold-const.c (fold_unary): Remove restrictions of removing
6642         intermediate pointer-conversions (P2)(P1)P0.
6643         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
6644         conversion to void pointer.
6645         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
6646
6647 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
6648
6649         PR debug/31510
6650         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
6651         emulated thread local variables.
6652
6653 2008-03-16  Richard Guenther  <rguenther@suse.de>
6654
6655         PR middle-end/35607
6656         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
6657         expand TREE_INVARIANT operations that are not gimple invariant.
6658
6659 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
6660
6661         * doc/extend.texi (Alignment): Say that the ABI controls
6662         the __alignof__ for non-strict-alignment targets rather
6663         than being a recommendation.
6664
6665 2008-03-15  Paul Brook  <paul@codesourcery.com>
6666
6667         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
6668         annotations.
6669         (arm_output_fn_unwind): Mark functions that can not be unwound.
6670
6671 2008-03-15  Paul Brook  <paul@codesourcery.com>
6672
6673         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
6674         extension instructions.
6675
6676 2008-03-15  Richard Guenther  <rguenther@suse.de>
6677
6678         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
6679         and fold constant aggregate refs.
6680         (fold_const_aggregate_ref): Handle string constants
6681         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
6682         (evaluate_stmt): Simplify now that ccp_fold folds constant
6683         aggregate refs.
6684
6685 2008-03-15  Paul Brook  <paul@codesourcery.com>
6686
6687         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
6688         (extzv): Use gen_extzv_t2.
6689         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
6690
6691 2008-03-15  Richard Guenther  <rguenther@suse.de>
6692
6693         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
6694         (fold_const_aggregate_ref): Likewise.
6695         (get_value): Return NULL if we don't have any values.
6696         (ccp_finalize): Set const_val to NULL after freeing it.
6697         * tree-flow.h (get_symbol_constant_value): Declare.
6698         (fold_const_aggregate_ref): Likewise.
6699         * tree-ssa-sccvn.c (try_to_simplify): Use them.
6700
6701 2008-03-15  Richard Guenther  <rguenther@suse.de>
6702
6703         PR middle-end/35593
6704         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
6705         to not produce negative array indices if not allowed.  Add
6706         parameter to indicate that.
6707         (maybe_fold_offset_to_component_ref): Allow negative array
6708         indices only for the first member of a structure.
6709         (maybe_fold_offset_to_reference): Allow negative array indices.
6710         (maybe_fold_stmt_addition): Likewise.
6711
6712 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
6713             Anatoly Sokolov <aesok@post.ru>
6714
6715         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
6716         (avr_arch): Add ARCH_AVR6.
6717         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
6718         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
6719         instead of fixed value 2.
6720         (print_operand_address): Use gs() asm specifier instead of pm().
6721         (avr_assemble_integer): (Ditto.).
6722         (avr_output_addr_vec_elt): (Ditto.).
6723         (print_operand): Handle "!" code.
6724         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
6725         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
6726         (AVR_HAVE_EIJMP_EICALL): Define.
6727         (AVR_3_BYTE_PC): Redefine.
6728         (AVR_2_BYTE_PC): (Ditto.).
6729         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
6730         (LINK_SPEC): Add atmega2560 and atmega2561.
6731         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
6732         (crtm2561.o).
6733         * config/avr/avr.md (call_insn): Use eicall instead of icall 
6734         for 3 byte PC devices.
6735         (call_value_insn): (Ditto.).
6736         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
6737         (indirect_jump): Use only for for 2 byte PC devices.
6738         (*tablejump): (Ditto.).
6739         (*indirect_jump_avr6): Add insn.
6740         (*tablejump_rjmp): Don't use for 3 byte PC devices.
6741         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
6742         instead of ijmp for 3 byte PC devices.
6743         (__tablejump2__): (Ditto.).
6744         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
6745         (MULITLIB_DIRNAMES): (Ditto.). 
6746         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
6747
6748 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
6749
6750         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
6751         "sse2_umulsidi3".  Use V1DI mode for operand 0.
6752         ("mmx_psadbw"): Use V1DI mode for operand 0.
6753         * config/i386/i386-modes.def (V1SI): New vector mode.
6754         * config/i386/i386.c (struct builtin_description)
6755         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
6756         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
6757         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
6758         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
6759         v1di_ftype_v8qi_v8qi type.
6760         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
6761
6762         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
6763         __builtin_ia32_pmuludq]: Fix the mode of return value.
6764
6765 2008-03-15  Richard Guenther  <rguenther@suse.de>
6766
6767         PR middle-end/35595
6768         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
6769         being a PHI_NODE.
6770
6771 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
6772         
6773         * doc/invoke.texi (Option Summary, Xtensa Options): Document
6774         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
6775         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
6776         unless TARGET_SERIALIZE_VOLATILE is enabled.
6777         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
6778         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
6779         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
6780
6781 2008-03-14  Richard Guenther  <rguenther@suse.de>
6782
6783         PR tree-optimization/34172
6784         * tree-flow.h (refs_may_alias_p): Declare.
6785         (get_single_def_stmt): Likewise.
6786         (get_single_def_stmt_from_phi): Likewise.
6787         (get_single_def_stmt_with_phi): Likewise.
6788         * tree-dfa.c (refs_may_alias_p): New function.
6789         (get_single_def_stmt): Likewise.
6790         (get_single_def_stmt_from_phi): Likewise.
6791         (get_single_def_stmt_with_phi): Likewise.
6792         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
6793         (vn_reference_lookup_1): New helper function.
6794         (vn_reference_lookup): Walk the virtual use-def chain to
6795         continue searching for a match if the def does not alias the
6796         reference we are looking for.
6797
6798 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
6799
6800         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
6801         archive and Perzl.  Update The Written Word listing.
6802
6803 2008-03-14  Richard Guenther  <rguenther@suse.de>
6804
6805         PR tree-optimization/34043
6806         PR tree-optimization/33989
6807         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
6808         when doing FRE.
6809         (bitmap_find_leader): Use extra argument to verify dominance
6810         relationship inside a basic-block.
6811         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
6812         (find_leader_in_sets): Adjust.
6813         (create_component_ref_by_pieces): Take extra argument for
6814         dominance check, handle lookup failures.
6815         (find_or_generate_expression): Likewise.
6816         (create_expression_by_pieces): Likewise.
6817         (insert_into_preds_of_block): Adjust.
6818         (create_value_expr_from): If asked for, verify all operands
6819         are in the blocks AVAIL_OUT set.
6820         (make_values_for_stmt): Check for SSA_NAMEs that are life
6821         over an abnormal edge.
6822         (compute_avail): Remove such check.
6823         (do_SCCVN_insertion): New function.
6824         (eliminate): If we do not find a leader suitable for replacement
6825         insert a replacement expression from SCCVN if available.
6826         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
6827         (struct vn_ssa_aux): Add needs_insertion flag.
6828         * tree-ssa-sccvn.c (may_insert): New global flag.
6829         (copy_reference_ops_from_ref): Value-number union member access
6830         based on its size, not type and member if insertion is allowed.
6831         (visit_reference_op_load): For a weak match from union type
6832         punning lookup a view-converted value and insert a SSA_NAME
6833         for that value if that is not found.
6834         (visit_use): Make dumps shorter.  Do not disallow value numbering
6835         SSA_NAMEs that are life over an abnormal edge to constants.
6836         (free_scc_vn): Release inserted SSA_NAMEs.
6837         (run_scc_vn): New flag to specify whether insertion is allowed.
6838         Process SSA_NAMEs in forward order.
6839         * tree-ssa-loop-im.c (for_each_index): Handle invariant
6840         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
6841         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
6842         pointer type to/from integral types that do not change the
6843         precision to regular conversions.
6844
6845 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
6846
6847         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
6848         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
6849         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
6850         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
6851         input arguments and the mode of return value.  Built-in functions
6852         that operate on whole 64-bit MMX register now use V1DI mode.
6853
6854 2008-03-13  Alon Dayan  <alond@il.ibm.com>
6855             Olga Golovanevsky  <olga@il.ibm.com>
6856
6857         PR tree-optimization/35041
6858         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
6859         to locate the right position in a statement.
6860
6861 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
6862
6863         PR target/34000
6864         PR target/35553
6865         * config/i386/xmmintrin.h:  Change all static inline functions to
6866         extern inline and add __gnu_inline__ attribute.
6867         * config/i386/bmintrin.h: Ditto.
6868         * config/i386/smmintrin.h: Ditto.
6869         * config/i386/tmmintrin.h: Ditto.
6870         * config/i386/mmintrin-common.h: Ditto.
6871         * config/i386/ammintrin.h: Ditto.
6872         * config/i386/emmintrin.h: Ditto.
6873         * config/i386/pmmintrin.h: Ditto.
6874         * config/i386/mmintrin.h: Ditto.
6875         * config/i386/mm3dnow.h: Ditto.
6876
6877 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
6878
6879         PR middle-end/35185
6880         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
6881         (lower_omp_2): New function.
6882         (lower_omp_1, lower_omp): Rewritten.
6883
6884 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
6885
6886         PR 35054
6887         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
6888         with the phrase "Microsoft Windows compilers".
6889         (Push/Pop Macro Pragmas): New subsection. Document
6890         #pragma push_macro and pragma pop_macro.
6891
6892 2008-03-12  Paul Brook  <paul@codesourcery.com>
6893
6894         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
6895
6896 2008-03-12  Paul Brook  <paul@codesourcery.com>
6897
6898         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
6899         (thumb2_alusi3_short): Exclude PLUS and MINUS.
6900         (thumb2_addsi_shortim): Rename ...
6901         (thumb2_addsi_short): ... to this.  Allow register operands.
6902         (thumb2_subsi_short): New pattern.
6903         (thumb2_one_cmplsi2_short,
6904         thumb2_negsi2_short): New patterns and peepholes.
6905
6906 2008-03-12  Paul Brook  <paul@codesourcery.com>
6907
6908         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
6909
6910 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
6911
6912         * config/i386/i386.md (int_cond): New code iterator.
6913         (fp_cond): Ditto.
6914         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
6915         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
6916         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
6917         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
6918         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
6919         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
6920         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
6921         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
6922
6923 2008-03-12  Paul Brook  <paul@codesourcery.com>
6924
6925         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
6926         instead of {arm,thumb}_compute_save_reg_mask.
6927         (output_return_instruction): Ditto.
6928         (thumb_unexpanded_epilogue): Ditto.
6929         (thumb1_expand_prologue): Ditto.
6930         (thumb1_output_function_prologue): Ditto.
6931         (arm_set_return_address): Ditto.
6932         (thumb_set_return_address): Ditto.
6933         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
6934         regs to achieve stack alignment.
6935         (thumb1_compute_save_reg_mask): Fix compiler warning.
6936         (arm_output_epilogue): Use offsets->saved_regs_mask.
6937         Adjust stack pointer by poping call clobered registers.
6938         (arm_expand_prologue): Use offsets->saved_regs_mask.
6939         Adjust stack pointer by pushing extra registers.
6940         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
6941
6942 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
6943
6944         PR tree-opt/35422
6945         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
6946         conversion to the operands of a multiplication.
6947
6948 2008-03-12  Richard Guenther  <rguenther@suse.de>
6949
6950         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
6951         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
6952         * timevar.def (TV_TREE_PHIPROP): Add.
6953         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
6954         pass description.  Use TV_TREE_PHIPROP.
6955         * tree-ssa-forwprop.c: Remove phiprop code.
6956
6957 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
6958
6959         PR middle-end/35549
6960         * omp-low.c (maybe_lookup_decl): Constify first argument.
6961         (use_pointer_for_field): Change last argument from bool to
6962         omp_context *.  Disallow shared copy-in/out in nested
6963         parallel if decl is shared in outer parallel too.
6964         (build_outer_var_ref, scan_sharing_clauses,
6965         lower_rec_input_clauses, lower_copyprivate_clauses,
6966         lower_send_clauses, lower_send_shared_vars): Adjust callers.
6967
6968 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
6969             Ira Rosen  <irar@il.ibm.com>
6970
6971         * tree-vectorizer.c (free_stmt_vec_info): New function.
6972         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
6973         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
6974         * tree-vectorizer.h (free_stmt_vec_info): Declare.
6975         * tree-vect-transform.c (vectorizable_conversion): Free
6976         vec_oprnds0 if it was allocated.
6977         (vect_permute_store_chain): Remove unused VECs.
6978         (vectorizable_store): Free VECs that are allocated in the..
6979         function.
6980         (vect_transform_strided_load, vectorizable_load): Likewise.
6981         (vect_remove_stores): Simplify the code.
6982         (vect_transform_loop): Move code to vect_remove_stores().
6983         Call vect_remove_stores() and free_stmt_vec_info().
6984
6985 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6986
6987         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
6988         TARGET_HPUX.  Revise comment.
6989         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
6990         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
6991         Use sr4 variant of `be' instruction when not generating PIC code.
6992         (attr_length_call): Adjust for above change.
6993
6994 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6995
6996         * ipa-reference.c (static_execute): Remove module_statics_const and
6997         associated setting code.
6998
6999 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
7000
7001         PR target/35540
7002         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
7003         predicate for operand 1.
7004         (paritysi2_cmp): Use register_operand predicate for operand 2.
7005         Use earlyclobber modifier for operand 1.  Remove support for
7006         memory operands.
7007         (paritydi2_cmp): Use register_operand predicate for operand 3.
7008         Use earlyclobber modifier for operand 1.  Remove support for
7009         memory operands.
7010
7011 2008-03-11  Paul Brook  <paul@codesourcery.com>
7012             Vladimir Prus  <vladimir@codesourcery.com>
7013
7014         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
7015         (arm_compute_save_reg0_reg12_mask): Always
7016         check if register 11 must be saved.  Always safe hard frame pointer
7017         when frame_pointer_needeed.
7018         (arm_compute_save_reg_mask): Save IP and PC
7019         only with apcs frames.
7020         (arm_output_epilogue): Adjust Thumb2 codepath to
7021         be also invoked and work for ARM non-apcs frames.
7022         (arm_expand_prologue): Don't bother saving IP
7023         for non-apcs frame, since it's not clobbered by
7024         prologue code.  Implement non-apcs frame
7025         layout.
7026
7027 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
7028
7029         PR rtl-optimization/35281
7030         * expr.c (convert_move): Use a new pseudo for the intermediate
7031         from_mode->word_mode result.
7032
7033 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
7034
7035         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
7036         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
7037         * toplev.c (compile_file): Don't call it.
7038
7039 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
7040
7041         PR middle-end/35526
7042         * expr.c (store_expr): Call emit_block_move if the mode
7043         of "temp" RTX is BLKmode.
7044
7045 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7046             Richard Guenther  <rguenther@suse.de>
7047
7048         PR tree-optimization/31358
7049         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
7050         the step with a NULL_TREE.
7051         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
7052         to sizetype if type is a pointer type.
7053         (add_candidate_1): Don't convert the base and step to
7054         the generic type if the orginal type is a pointer type.
7055         (add_iv_value_candidates): Use sizetype for the step
7056         if type is a pointer type.
7057         (cand_value_at): Likewise.
7058         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
7059         for pointer types.
7060         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
7061         Don't convert the tem affine to the type.
7062         (add_elt_to_tree): Use sizetype for the step if a pointer.
7063         Use POINTER_PLUS_EXPR for pointers.
7064         (aff_combination_to_tree): Use sizetype for the step if a
7065         pointer.
7066
7067 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
7068
7069         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
7070         Remove commutativity hint.
7071
7072 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
7073
7074         PR c/35438
7075         PR c/35439
7076         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
7077         errorneous type.  Check that v is a VAR_DECL.
7078
7079         PR middle-end/35099
7080         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
7081
7082 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
7083
7084         PR tree-optimization/35494
7085         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
7086         may be overriden at link and run time.
7087
7088 2008-03-10  Richard Guenther  <rguenther@suse.de>
7089
7090         PR tree-optimization/34677
7091         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
7092         (poolify_tree): Likewise.
7093         (modify_expr_template): Likewise.
7094         (poolify_modify_stmt): Likewise.
7095         (insert_fake_stores): Handle all component-ref style stores
7096         in addition to INDIRECT_REF.  Also handle complex types.
7097         Do not poolify the inserted load.
7098         (realify_fake_stores): Do not rebuild the tree but only
7099         make it a SSA_NAME copy.
7100         (init_pre): Remove initialzation of modify_expr_template.
7101         Do not allocate modify_expr_node_pool.
7102         (fini_pre): Do not free modify_expr_node_pool.
7103
7104 2008-03-10  Paul Brook  <paul@codesourcery.com>
7105
7106         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
7107         to avoid conflicts.
7108
7109 2008-03-10  Paul Brook  <paul@codesourcery.com>
7110             Mark Shinwell  <shinwell@codesourcery.com>
7111
7112         * config/arm/cortex-r4.md: New.
7113         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
7114         insn attributes.
7115         * config/arm/arm.md: Include cortex-r4.md.
7116         (insn): Add smmls, sdiv and udiv values.
7117         (generic_sched): Don't use generic scheduling for Cortex-R4.
7118         (arm_issue_rate): New function.
7119         (TARGET_SCHED_ISSUE_RATE): Define.
7120
7121 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
7122
7123         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
7124
7125 2008-03-10  Richard Guenther  <rguenther@suse.de>
7126
7127         * tree-ssa-pre.c (get_sccvn_value): Simplify.
7128         (compute_avail): Do not add stmt uses to AVAIL_OUT.
7129
7130 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
7131
7132         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
7133         Set default to true.
7134
7135 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7136
7137         * c.opt (Wsynth): Deprecate.
7138         * doc/invoke.texi (Option Summary, Warning Options): Document
7139         -Wno-format-contains-nul.
7140
7141 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
7142
7143         PR target/35496
7144         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
7145         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
7146
7147 2008-03-09  Ira Rosen  <irar@il.ibm.com>
7148
7149         * config/rs6000/rs6000.c (builtin_description): Rename vector
7150         left shift operations.
7151         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
7152         (altivec_vsl<VI_char>): Rename to ...
7153         (ashl<mode>3): ... new name.
7154         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
7155         gen_ashlv4si3.
7156         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
7157
7158 2008-03-08  Richard Guenther  <rguenther@suse.de>
7159
7160         * coverage.h (tree_coverage_counter_addr): Declare.
7161         * coverage.c (tree_coverage_counter_addr): New function.
7162         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
7163         before using again.
7164         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
7165         (tree_gen_one_value_profiler): Likewise.
7166         (tree_gen_ic_profiler): Likewise.
7167         (tree_gen_average_profiler): Likewise.
7168         (tree_gen_ior_profiler): Likewise.
7169
7170 2008-03-08  Richard Guenther  <rguenther@suse.de>
7171
7172         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
7173         (vn_binary_op_insert): Likewise.
7174         (vn_unary_op_lookup): Likewise.
7175         (vn_unary_op_insert): Likewise.
7176         (vn_nary_op_lookup): Declare.
7177         (vn_nary_op_insert): Likewise.
7178         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
7179         and binary hashes, use a single obstack for unary_op_pool
7180         and binary_op_pool.
7181         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
7182         a single struct vn_nary_op_s.  Store tree code length and
7183         a variable number of operands.
7184         (struct vn_reference_op_struct): Remove unused op2.
7185         (vn_reference_op_eq): Do not compare op2.
7186         (vn_reference_op_compute_hash): Do not compute hash of op2.
7187         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
7188         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
7189         with vn_nary_op_compute_hash.
7190         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
7191         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
7192         vn_nary_op_lookup.
7193         (vn_unary_op_insert, vn_binary_op_insert): Replace with
7194         vn_nary_op_insert.
7195         (visit_unary_op): Call nary functions.
7196         (visit_binary_op): Likewise.
7197         (process_scc): Adjust for struct vn_tables_s changes.
7198         (allocate_vn_table): Likewise.
7199         (free_vn_table): Likewise.
7200         * tree-vn.c (vn_add): Call nary functions.
7201         (vn_lookup): Likewise.
7202
7203 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
7204
7205         PR target/35498
7206         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
7207         wdst back after sync_compare_and_swapqhi_internal.
7208
7209 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
7210
7211         PR target/22152
7212         * config/i386/i386-modes.def (V1DI): New vector mode.
7213         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
7214         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
7215         (MMXMODE248): Ditto.
7216         (MMXMODE): Add V1DI mode.
7217         (mmxvecsize): Change DI mode to V1DI mode.
7218         ("mov<mode>): Use MMXMODEI8 mode iterator.
7219         ("*mov<mode>_internal_rex64"): Ditto.
7220         ("*mov<mode>_internal"): Ditto.
7221         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
7222         ("mmx_sub<mode>3"): Ditto.
7223         ("mmx_adddi3"): Remove insn pattern.
7224         ("mmx_subdi3"): Ditto.
7225         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
7226         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
7227         ("mmx_ashl<mode>3"): Ditto.
7228         ("mmx_lshrdi3"): Remove insn pattern.
7229         ("mmx_ashldi3"): Ditto.
7230         * config/i386/i386.c (classify_argument): Handle V1DImode.
7231         (function_arg_advance_32): Ditto.
7232         (function_arg_32): Ditto.
7233         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
7234         mmx_addv1di3 insn pattern.
7235         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
7236         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
7237         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
7238         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
7239         Remove definitions of built-in functions.
7240         (V1DI_type_node): New node.
7241         (v1di_ftype_v1di_int): Ditto.
7242         (v1di_ftype_v1di_v1di): Ditto.
7243         (v2si_ftype_v2si_si): Ditto.
7244         (v4hi_ftype_v4hi_di): Remove node.
7245         (v2si_ftype_v2si_di): Ditto.
7246         (ix86_init_mmx_sse_builtins): Handle V1DImode.
7247         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
7248         Redefine builtins using def_builtin_const with *_ftype_*_int node.
7249         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
7250         Add new builtins using def_builtin_const.
7251         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
7252         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
7253         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
7254         * config/i386/mmintrin.h (__v1di): New typedef.
7255         (_mm_add_si64): Cast arguments to __v1di type.
7256         (_mm_sub_si64): Ditto.
7257         (_mm_sll_pi16): Cast __count to __v4hi type.
7258         (_mm_sll_pi32): Cast __count to __v2si type.
7259         (_mm_sll_si64): Cast arguments to __v1di type.
7260         (_mm_srl_pi16): Cast __count to __v4hi type.
7261         (_mm_srl_pi32): Cast __count to __v2si type.
7262         (_mm_srl_si64): Cast arguments to __v1di type.
7263         (_mm_sra_pi16): Cast __count to __v4hi type.
7264         (_mm_sra_pi32): Cast __count to __v2si type.
7265         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
7266         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
7267         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
7268         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
7269         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
7270         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
7271         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
7272         (_mm_srai_pi32): Use __builtin_ia32_psradi.
7273         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
7274         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
7275         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
7276         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
7277
7278 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
7279
7280         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
7281
7282 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
7283
7284         PR target/35373
7285         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
7286         reg+const addressing for Altivec modes.  Don't generate reg+reg
7287         addressing for TFmode or TDmode quantities.
7288
7289 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
7290
7291         * c-common.c (vector_types_convertible_p): Call langhook
7292         instead of comptypes.
7293
7294 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7295
7296         PR tree-opt/35402
7297         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
7298         integral and scalar float variables which have a
7299         NULL DECL_INITIAL.
7300
7301 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
7302
7303         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
7304         dwarf_register_span hook when emitting unwind information for
7305         register-to-memory saves.
7306         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
7307         (rs6000_frame_related): Remove call to spe_synthesize_frame.
7308
7309 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
7310
7311         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
7312         for the same VAR_DECL.
7313
7314 2008-03-06  Tom Tromey  <tromey@redhat.com>
7315
7316         * treelang: Delete.
7317         * doc/standards.texi (Standards): Don't mention treelang.
7318         * doc/invoke.texi (Overall Options): Don't mention treelang.
7319         * doc/install.texi (Prerequisites): Don't mention bison or
7320         treelang.
7321         (Configuration): Don't mention treelang.
7322         (Building): Likewise.
7323         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
7324
7325 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
7326
7327         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
7328         word-extractions out of a multi-word object.
7329
7330 2008-03-06  Richard Guenther  <rguenther@suse.de>
7331
7332         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
7333         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
7334         result type and precision.
7335         * expr.c (get_inner_reference): Set unsignedp based on the result
7336         type of BIT_FIELD_REF.
7337         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
7338         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
7339         (try_instantiate_multiple_fields): Likewise.  Use the correct type
7340         for BIT_FIELD_REF.
7341         (sra_build_assignment): Likewise.
7342         (sra_build_elt_assignment): Likewise.
7343         (sra_explode_bitfield_assignment): Likewise.
7344         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
7345         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
7346         set BIT_FIELD_REF_UNSIGNED.
7347         (vectorizable_load): Likewise.
7348
7349 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
7350
7351         * cse.c (cse_extended_basic_block): Invalidate artificial defs
7352         at bb start.
7353
7354 2008-03-06  Richard Guenther  <rguenther@suse.de>
7355
7356         * alias.c (struct alias_set_entry): Move has_zero_child field
7357         to pack with alias_set.
7358
7359 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
7360
7361         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
7362         32bit host.
7363
7364 2008-03-05  Ian Lance Taylor  <iant@google.com>
7365
7366         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
7367
7368 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
7369
7370         * fwprop.c (update_df): Support width and offset parameters of
7371         df_ref_create.
7372         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
7373         global_conflicts): Change DF_REF_EXTRACT to either
7374         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7375         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7376         * df-scan.c (df_ref_record, df_defs_record,
7377         df_ref_create_structure, df_def_record_1, df_uses_record,
7378         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
7379         df_bb_refs_collect, df_entry_block_defs_collect,
7380         df_exit_block_uses_collect): Support new width and offset fields.
7381         (ref_extract_pool): New storage pool.
7382         (df_free_ref): New function.
7383         (df_reg_chain_unlink, df_free_collection_rec,
7384         df_sort_and_compress_refs): Call df_free_ref.
7385         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
7386         of df_ref_extract.
7387         (df_ref_create_structure): Allocate df_ref_extract if offset and
7388         width fields are used.
7389         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
7390         (df_uses_record): Get offset and width from ZERO_EXTRACT 
7391         and SIGN_EXTRACT.
7392         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
7393         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7394         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7395         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
7396         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7397         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7398         (df_ref_extract): New structure.
7399         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
7400         (df_ref_create): Add width and offset parameters.
7401         
7402 2008-03-05  Richard Guenther  <rguenther@suse.de>
7403
7404         * tree-ssa-structalias.c (get_constraint_for_component_ref):
7405         Use ranges_overlap_p.
7406         (offset_overlaps_with_access): Rename
7407         to ranges_overlap_p and move ...
7408         * tree-flow-inline.h (ranges_overlap_p): ... here.
7409
7410         * tree.h (get_inner_reference, handled_component_p): Update
7411         comments.
7412
7413         * tree.h (record_component_aliases, get_alias_set,
7414         alias_sets_conflict_p, alias_sets_must_conflict_p,
7415         objects_must_conflict_p): Move declarations ...
7416         * alias.h (record_component_aliases, get_alias_set,
7417         alias_sets_conflict_p, alias_sets_must_conflict_p,
7418         objects_must_conflict_p): ... here.
7419         Include coretypes.h.
7420         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
7421
7422 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
7423
7424         * cfg.c: Include tree-flow.h.
7425         (remove_edge_raw): Call redirect_edge_var_map_clear.
7426         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
7427         * tree-flow-inline.h (redirect_edge_var_map_def): New.
7428         (redirect_edge_var_map_result): New.
7429         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
7430         PENDING_STMT use with redirect_edge_var_map_*.
7431         * tree-ssa.c (edge_var_maps): New definition.
7432         (redirect_edge_var_map_add): New.
7433         (redirect_edge_var_map_clear): New.
7434         (redirect_edge_var_map_dup): New.
7435         (redirect_edge_var_map_vector): New.
7436         (redirect_edge_var_map_destroy): New.
7437         (ssa_redirect_edge): Replace PENDING_STMT use with
7438         redirect_edge_var_map_*.
7439         (flush_pending_stmts): Same.
7440         (delete_tree_ssa): Destroy edge var map.
7441         * tree-flow.h (struct _edge_var_map): New.
7442         Define edge_var_map vector type.
7443         Declare redirect_edge_var_map_* prototypes.
7444         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
7445         * tree-cfg.c (reinstall_phi_args): Replace
7446         PENDING_STMT use with redirect_edge_var_map_*.
7447
7448 2008-03-05  Richard Guenther  <rguenther@suse.de>
7449
7450         PR tree-optimization/35472
7451         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
7452         whose single use_stmt has a overlapping set of loaded and
7453         stored symbols as that use_stmt might be a noop assignment then.
7454
7455 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
7456
7457         * gthr-rtems.h: Implement __gthread_mutex_destroy.
7458
7459 2008-03-05  Richard Guenther  <rguenther@suse.de>
7460
7461         PR c++/35336
7462         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
7463         should be constants.
7464         * tree-cfg.c (verify_expr): Verify it.
7465         * fold-const.c (fold_truthop): Remove code generating
7466         BIT_FIELD_REFs of structure bases.
7467         (fold_binary): Likewise.
7468         (fold_ternary): Position and size of BIT_FIELD_REFs are
7469         always host integers.
7470         (make_bit_field_ref): Remove.
7471         (optimize_bit_field_compare): Remove.
7472         (all_ones_mask_p): Remove.
7473
7474 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
7475
7476         PR gcc/33009
7477         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
7478         (split_block_and_df_analyze): New. Split basic block and rebuild
7479         dataflow.
7480         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
7481         SPLIT_BLOCK.
7482         (split_pattern_seq): Likewise.
7483         (erase_matching_seqs): Likewise.
7484         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
7485
7486 2008-03-04  Geoff Keating  <geoffk@apple.com>
7487
7488         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
7489         declaration and code.
7490         (tree_invalid_nonnegative_warnv_p): Likewise.
7491
7492 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
7493
7494         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
7495         examples.  Truncate option-names then causing overfull hbox.
7496
7497 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7498
7499         PR target/35222
7500         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
7501         on hpux10.
7502         * configure: Rebuilt.
7503
7504 2008-03-04  Rafael Espindola  <espindola@google.com>
7505
7506         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
7507         (tree_unary_nonnegative_warnv_p): New.
7508         (tree_binary_nonnegative_warnv_p): New.
7509         (tree_single_nonnegative_warnv_p): New.
7510         (tree_invalid_nonnegative_warnv_p): New.
7511         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
7512
7513 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7514
7515         PR 28322
7516         * opts.c (handle_option): Postpone 'unknown option' errors only for
7517         warning options.
7518
7519 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
7520
7521         PR target/35453
7522         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
7523         (_SIDD_XXX): This.
7524
7525 2008-03-04  Rafael Espindola  <espindola@google.com>
7526
7527         * fold-const.c (tree_unary_nonzero_warnv_p): New.
7528         (tree_binary_nonzero_warnv_p): New.
7529         (tree_single_nonzero_warnv_p): New.
7530         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
7531
7532 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
7533
7534         PR middle-end/35456
7535         * fold-const.c (fold_cond_expr_with_comparison): Prevent
7536         transformations for modes that have signed zeros.
7537         * ifcvt.c (noce_try_abs): Ditto.
7538
7539 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
7540
7541         * config/i386/i386.c (override_options): Force
7542         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
7543
7544 2008-03-04  Jan Hubicka  <jh@suse.cz>
7545
7546         PR c++/35262
7547         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
7548         in last commit.
7549
7550 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
7551
7552         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
7553         label to probe the stack.
7554
7555 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
7556
7557         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
7558         (__gthr_win32_mutex_destroy): Declare.
7559         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
7560         __gthr_win32_mutex_destroy.
7561         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
7562
7563 2008-03-03  Jan Hubicka  <jh@suse.cz>
7564
7565         PR c++/35262
7566         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
7567         aggressive on inlining cold calls.
7568
7569 2008-03-03  Richard Guenther  <rguenther@suse.de>
7570
7571         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
7572         struct copies into the expression table.
7573         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
7574         (try_to_simplify): Likewise.
7575         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
7576         integral and pointer arguments which do not change the
7577         precision to NOP_EXPRs.
7578         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
7579         VIEW_CONVERT_EXPR case.
7580
7581 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
7582
7583         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
7584         defined in a loop at depth 0 is invariant.
7585         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
7586         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
7587         be called at loop depth 0.
7588
7589 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
7590
7591         PR driver/35420
7592         * gcc.c (process_command): Update copyright notice dates.
7593         * gcov.c (print_version): Likewise.
7594         * gcov-dump.c (print_version): Likewise.
7595         * mips-tfile.c (main): Likewise.
7596         * mips-tdump.c (main): Likewise.
7597
7598 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7599
7600         PR 24924
7601         * c-common.c (flag_permissive): Delete.
7602         (constant_expression_warnings): Check flags first.
7603         (constant_expression_error): New.
7604         * c-common.h (flag_permissive): Delete.
7605         (constant_expression_error): Declare.
7606         * flags.h (flag_permissive): Declare. Update description.
7607         * diagnostic.c (pedwarn): Update.
7608         (permerror): New.
7609         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
7610         (permissive_error_kind): New.
7611         * toplev.c (flag_permissive): Define. Update description.
7612         * toplev.h (permissive_error_kind): Declare.
7613         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
7614         (pedwarn_c90): Use pedantic_warning_kind.
7615         * c-opts.c (c_common_post_options): flag_permissive does not affect
7616         flag_pedantic_errors.
7617
7618 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
7619
7620         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
7621         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
7622         __absvsi2, __absvDI2): Use unsigned arithmetic.
7623
7624 2008-03-02  Andi Kleen  <ak@suse.de>
7625             Richard Guenther  <rguenther@suse.de>
7626
7627         * struct-equiv.c: Remove file.
7628         * cfg_cleanup.c (condjump_equiv_p): Remove.
7629         * Makefile.in (OBJS-common): Remove struct-equiv.o.
7630         (struct-equiv.o): Remove rule.
7631         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
7632         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
7633         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
7634
7635 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7636
7637         * ifcvt.c (noce_process_if_block): Try to handle only the then
7638         block if the else block exists but isn't suitable.
7639
7640 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
7641
7642         PR gcc/35063
7643         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
7644         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
7645         regression from previous patch.
7646
7647 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
7648
7649         PR gcc/35063
7650         * gthr.h: Add __gthread_mutex_destroy as a function that must be
7651         implemented.
7652         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
7653         * gthr-single.h (__gthread_mutex_destroy): Likewise.
7654         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
7655         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
7656         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
7657         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
7658         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
7659         (__gthread_mutex_destroy_function): Rename to
7660         __gthread_mutex_destroy.
7661         * gthr-dce.h (__gthread_mutex_destroy): Call
7662         pthread_mutex_destroy.
7663         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
7664         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
7665         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
7666
7667 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7668
7669         * df-scan.c (df_ref_chain_change_bb): Simplify.
7670         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
7671         set_block_for_insn if there's any change.
7672         * df.h ((df_insn_change_bb): Fix prototype.
7673         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
7674         df_insn_change_bb, don't call set_block_for_insn.
7675         * emit-rtl.c (reorder_insns): Likewise.
7676         * haifa-sched.c (move_insn): Likewise.
7677
7678 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7679
7680         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
7681
7682 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7683
7684         * tree-flow-inline.h (next_readonly_imm_use): Return
7685         NULL_USE_OPERAND_P after the end.
7686
7687 2008-03-01  Richard Guenther  <rguenther@suse.de>
7688
7689         PR tree-optimization/35411
7690         * tree-sra.c (sra_build_assignment): Split conversion to
7691         final type to a separate statement if we are not assigning
7692         to a register.
7693
7694 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
7695
7696         * fold-const.c (fold_convertible_p): Correct the logic to follow
7697         that in fold_convert().
7698
7699 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
7700
7701         PR c++/35315
7702         * tree-inline.c (build_duplicate_type): When we make a
7703         duplicate type, make it unique in the canonical types system.
7704
7705 2008-02-29  Tom Tromey  <tromey@redhat.com>
7706
7707         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
7708         input_file_stack_history, input_file_stack_restored): Remove.
7709         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
7710         * input.h (struct file_stack): Remove.
7711         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
7712         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
7713         Likewise.
7714         * diagnostic.h (struct diagnostic_context) <last_module>: Change
7715         type.
7716         (diagnostic_last_module_changed): Add 'map' argument.
7717         (diagnostic_set_last_function): Likewise.
7718         * diagnostic.c (undiagnostic_report_current_module): Iterate using
7719         line map, not input_file_stack.
7720         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
7721
7722 2008-02-29  Paul Brook  <paul@codesourcery.com>
7723
7724         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
7725
7726 2008-02-29  Paul Brook  <paul@codesourcery.com>
7727
7728         * config/arm/ieee754-df.S (muldf3): Use RET macros.
7729
7730 2008-02-29  Richard Guenther  <rguenther@suse.de>
7731
7732         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
7733         vn_lookup_or_add.
7734         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
7735         value for comparing for a store match.
7736         (simplify_unary_expression): Do nothing for SSA_NAMEs.
7737         (try_to_simplify): Do not do a full-blown reference lookup.
7738
7739 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
7740
7741         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
7742         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
7743
7744         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
7745
7746 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
7747
7748         * tree-loop-linear.c (try_interchange_loops): Compare memory access
7749         strides against cache sizes.
7750
7751 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
7752
7753         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
7754         constant to fpul.
7755
7756 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
7757
7758         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
7759         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
7760         is smaller than the original promoted value.
7761         (simplify_subreg): If OP is a SUBREG, try to preserve its
7762         SUBREG_PROMOTED_VAR_P information.
7763
7764 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
7765
7766         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
7767         (VN_INFO_GET): Allocate new objects on the obstack.
7768         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
7769         for rpo_numbers_temp, for consistency.
7770         (free_scc_vn): Free the obstack.
7771
7772 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
7773
7774         * doc/invoke.texi: Document -ftree-loop-distribution.
7775         * tree-loop-distribution.c: New.
7776         * tree-pass.h (pass_loop_distribution): New.
7777         * graphds.h (struct graph): Add htab_t indices.
7778         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
7779         * tree-vectorizer.c (rename_variables_in_loop): Extern.
7780         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
7781         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
7782         * tree-data-ref.c (debug_data_dependence_relations): New.
7783         (dump_data_dependence_relation): Also print data references.
7784         (free_data_ref): Extern.
7785         (same_access_functions): Moved...
7786         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
7787         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
7788         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
7789         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
7790         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
7791         (stmts_from_loop): Skip LABEL_EXPR.
7792         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
7793         New.
7794         (build_rdg): Initialize rdg->indices htab.
7795         (free_rdg, stores_from_loop, ref_base_address,
7796         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
7797         have_similar_memory_accesses_1, ref_base_address_1,
7798         remove_similar_memory_refs): New.
7799         * tree-data-ref.h: Depend on tree-chrec.h.
7800         (debug_data_dependence_relations, free_data_ref): Declared.
7801         (same_access_functions): ... here.
7802         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
7803         New.
7804         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
7805         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
7806         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
7807         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
7808         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
7809         rdg_vertex_for_stmt): Declared.
7810         (struct rdg_edge): Add level.
7811         (RDGE_LEVEL): New.
7812         (free_rdg, stores_from_loop, remove_similar_memory_refs,
7813         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
7814         Declared.
7815         (rdg_has_similar_memory_accesses): New.
7816         * tree-vect-analyze.c: Remove unused static decls.
7817         * lambda.h (dependence_level): New.
7818         * common.opt (ftree-loop-distribution): New.
7819         * tree-flow.h (mark_virtual_ops_in_bb, 
7820         slpeel_tree_duplicate_loop_to_edge_cfg,
7821         rename_variables_in_loop): Declared.
7822         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
7823         (OBJS-common): Add tree-loop-distribution.o.
7824         (tree-loop-distribution.o): New rule.
7825         * tree-cfg.c (mark_virtual_ops_in_bb): New.
7826         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
7827         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
7828
7829 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
7830
7831         PR target/33963
7832         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
7833         other than structures and unions.
7834
7835 2008-02-28  Richard Guenther  <rguenther@suse.de>
7836
7837         Revert:
7838         2008-02-26  Richard Guenther  <rguenther@suse.de>
7839
7840         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
7841         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
7842         (lookup_decl_from_uid): Declare.
7843         (remove_decl_from_map): Likewise.
7844         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
7845         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
7846         (decl_for_uid_map): New global hashtable mapping DECL_UID
7847         to the decl tree.
7848         (init_ttree): Allocate it.
7849         (insert_decl_to_uid_decl_map): New helper function.
7850         (make_node_stat): Insert new decls into the map.
7851         (copy_node_stat): Likewise.
7852         (lookup_decl_from_uid): New function.
7853         (remove_decl_from_map): Likewise.
7854         (print_decl_for_uid_map_statistics): New helper.
7855         (dump_tree_statistics): Call it.
7856
7857         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
7858         (referenced_var_iterator): Adjust.
7859         (FOR_EACH_REFERENCED_VAR): Adjust.
7860         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
7861         (num_referenced_vars): Adjust.
7862         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
7863         (first_referenced_var): Remove.
7864         (end_referenced_vars_p): Likewise.
7865         (next_referenced_var): Likewise.
7866         (referenced_var_iterator_set): New helper function.
7867         * tree-dfa.c (referenced_var_lookup): Adjust.
7868         (referenced_var_check_and_insert): Likewise.
7869         (remove_referenced_var): Likewise.
7870         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
7871         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7872         (verify_call_clobbering): Likewise.
7873         (verify_memory_partitions): Likewise.
7874         (init_tree_ssa): Allocate bitmap instead of hashtable for
7875         referenced_vars.
7876         (delete_tree_ssa): Adjust.
7877         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
7878         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7879         (compute_tag_properties): Likewise.
7880         (set_initial_properties): Likewise.
7881         (find_partition_for): Likewise.
7882         (update_reference_counts): Likewise.
7883         (dump_may_aliases_for): Likewise.
7884         * tree-ssa-operands.c (add_virtual_operand): Likewise.
7885         (add_call_clobber_ops): Likewise.
7886         (add_call_read_ops): Likewise.
7887         (get_asm_expr_operands): Likewise.
7888         * tree-into-ssa.c (dump_decl_set): Likewise.
7889         (update_ssa): Likewise.
7890         * tree-sra.c (scan_function): Likewise.
7891         (decide_instantiations): Likewise.
7892         (scalarize_parms): Likewise.
7893         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
7894         (dsa_named_for): Likewise.
7895         * tree-ssa-structalias.c (update_alias_info): Likewise.
7896         (merge_smts_into): Likewise.
7897
7898 2008-02-27  David Daney  <ddaney@avtrex.com>
7899
7900         PR target/34409
7901         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
7902         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
7903         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
7904         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
7905         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
7906
7907 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
7908
7909         PR target/25477
7910         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
7911         (BUILT_IN_NEXTTOWARD): Remove.
7912         (BUILT_IN_NEXTTOWARDF): Ditto.
7913         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
7914         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
7915
7916 2008-02-27  Tom Tromey  <tromey@redhat.com>
7917
7918         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
7919         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
7920
7921 2008-02-27  Jan Beulich  <jbeulich@novell.com>
7922
7923         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
7924         update the respective field on newdecl.
7925
7926 2008-02-27  Revital Eres  <eres@il.ibm.com>
7927
7928         PR rtl-optimization/34999
7929         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
7930         crossing edges that ends with a call insn.
7931         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
7932         call insn and clear the EDGE_CROSSING flag of the crossing edge
7933         when fixing fallthru edges.
7934
7935 2008-02-27  Richard Guenther  <rguenther@suse.de>
7936
7937         PR middle-end/35390
7938         * fold-const.c (fold_unary): Return the correct argument,
7939         converted to the result type.
7940
7941 2008-02-27  Richard Guenther  <rguenther@suse.de>
7942
7943         PR middle-end/34971
7944         * expr.c (expand_expr_real_1): Assert on rotates that operate
7945         on partial modes.
7946         * fold-const.c (fold_binary): Use the types precision, not the
7947         bitsize of the mode if folding rotate expressions.  Build rotates
7948         only for full modes.
7949
7950 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
7951
7952         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
7953         and CPP_PRAGMA_EOL.
7954         * c-pragma.c (pragma_ns_name): New typedef.
7955         (registered_pp_pragmas): New variable.
7956         (c_pp_lookup_pragma): New function.
7957         (c_register_pragma_1): If flag_preprocess_only, do nothing
7958         for non-expanded pragmas, for expanded ones push pragma's
7959         namespace and name into registered_pp_pragmas vector.
7960         (c_invoke_pragma_handler): Register OpenMP pragmas even when
7961         flag_preprocess_only, don't register GCC pch_preprocess
7962         pragma if flag_preprocess_only.
7963         * c-opts.c (c_common_init): Call init_pragma even if
7964         flag_preprocess_only.
7965         * c-pragma.c (c_pp_lookup_pragma): New prototype.
7966         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
7967         cpp_register_pragma if flag_preprocess_only.
7968
7969 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7970
7971         PR c/28800
7972         * c-parser.c (c_parser_translation_unit): Warn for empty
7973         translation unit, not empty source file.
7974
7975 2008-02-26  Paul Brook  <paul@codesourcery.com>
7976
7977         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
7978         operand for Thumb-2.
7979         * config/arm/arm.h (reg_class): Add CORE_REGS.
7980         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
7981         (BASE_REG_CLASS): Use CORE_REGS.
7982         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
7983         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
7984         (REGNO_OK_FOR_INDEX_P): Exclude SP.
7985         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
7986         ARM_REGNO_OK_FOR_INDEX_P.
7987         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
7988         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
7989         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
7990         (ldm/stm peepholes): Ditto.
7991         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
7992         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
7993         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
7994         * config/arm/constraints.md: Enable "k" constraint on ARM.
7995
7996 2008-02-27  Ben Elliston  <bje@au.ibm.com>
7997
7998         * config/rs6000/rs6000.c: Annotate cache line size field in all
7999         instances of struct processor_costs.
8000
8001 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
8002
8003         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
8004         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
8005         jump_bypass): New counters.
8006         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
8007         * dce.c (gate_ud_dce): Same.
8008         (gate_fast_dce): Same.
8009         * dse.c (gate_dse1): New function.
8010         (gate_dse2): New function.
8011         (gate_dse): Merge results of new gate functions.
8012         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
8013         (gate_handle_jump_bypass): Add dbg_cnt.
8014         (gate_handle_gcse): Add dbg_cnt.
8015         * ifcvt.c (gate_handle_if_conversion): Same.
8016         (gate_handle_if_after_combine): Same.
8017         (gate_handle_if_after_reload): Same.
8018         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
8019
8020 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
8021
8022         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
8023         line sizes.
8024         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
8025
8026 2008-02-26  Jason Merrill  <jason@redhat.com>
8027
8028         PR c++/35315
8029         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
8030         alone if it's the naming decl for the type's main variant.
8031
8032 2008-02-26  Tom Tromey  <tromey@redhat.com>
8033
8034         * system.h (USE_MAPPED_LOCATION): Poison.
8035         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
8036         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
8037         (make_goto_expr_edges): Likewise.
8038         (remove_bb): Likewise.
8039         (execute_warn_function_return): Likewise.
8040         * basic-block.h (struct edge_def) <goto_locus>: Change type to
8041         location_t.
8042         * c-common.c (fname_decl): Remove old location code.
8043         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
8044         location code.
8045         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
8046         variant.
8047         (ASM_INPUT_SOURCE_LOCATION): Likewise.
8048         (gen_rtx_ASM_INPUT): Likewise.
8049         (gen_rtx_ASM_INPUT_loc): Likewise.
8050         (get_rtx_asm_OPERANDS): Remove.
8051         * cfglayout.c (insn_locators_alloc): Remove old location code.
8052         (set_curr_insn_source_location): Likewise.
8053         (curr_insn_locator): Likewise.
8054         * print-tree.c (print_node): Remove old location code.
8055         * tree-mudflap.c (mf_varname_tree): Remove old location code.
8056         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
8057         * cfgexpand.c (expand_gimple_cond_expr): Don't use
8058         location_from_locus.
8059         (construct_exit_block): Remove old location code.
8060         * emit-rtl.c (force_next_line_note): Remove old location code.
8061         * profile.c (branch_prob): Remove old location code.
8062         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
8063         LOC_LINE): Remove old-location variants.
8064         * langhooks.c (lhd_print_error_function): Remove old location
8065         code.
8066         * configure, config.in: Rebuilt.
8067         * configure.ac (--enable-mapped-location): Remove.
8068         * c-decl.c (c_init_decl_processing): Remove old location code.
8069         (finish_function): Likewise.
8070         * recog.c (decode_asm_operands): Remove old location code.
8071         * c-pch.c (c_common_read_pch): Remove old location code.
8072         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
8073         variants.
8074         * gimple-low.c (lower_function_body): Remove old location code.
8075         * toplev.c (unknown_location): Remove.
8076         (push_srcloc): Remove old-location variant.
8077         (process_options): Remove old location code.
8078         (lang_dependent_init): Likewise.
8079         * input.h (UNKNOWN_LOCATION): Move definition.
8080         (location_t): Undeprecate.
8081         (source_locus): Remove.
8082         (location_from_locus): Remove.
8083         (struct location_s): Remove.
8084         Remove all old-location code.
8085         (input_line, input_filename): Remove.
8086         * final.c (final_scan_insn): Remove old location code.
8087         * diagnostic.c (diagnostic_build_prefix): Remove
8088         USE_MAPPED_LOCATION test.
8089         * tree.h (gimple_stmt) <locus>: Now a location_t.
8090         (tree_exp) <locus>: Likewise.
8091         (DECL_IS_BUILTIN): Remove old-location variant.
8092         (annotate_with_file_line, annotate_with_locus): Likewise.
8093         (expr_locus, set_expr_locus): Update.
8094         * tree.c (build1_stat): Remove old location code.
8095         (last_annotated_node): Remove.
8096         (annotate_with_file_line): Remove old-location variant.
8097         (annotate_with_locus): Likewise.
8098         (expr_location): Remove old location code.
8099         (set_expr_location): Likewise.
8100         (expr_has_location): Likewise.
8101         (expr_locus): Likewise.
8102         (set_expr_locus): Likewise.
8103         (expr_filename): Don't use location_from_locus.
8104         (expr_lineno): Likewise.
8105         * rtl-error.c (location_for_asm): Remove old location code.
8106         * c-lex.c (cb_line_change): Remove old location code.
8107         (fe_file_change): Likewise.
8108         (cb_def_pragma): Likewise.
8109         (c_lex_with_flags): Likewise.
8110         * gengtype.c (do_typedef): Don't special-case location types.
8111         (define_location_structures): Remove.
8112         (main): Don't call define_location_structures.
8113         * tree-pretty-print.c (dump_implicit_edges): Remove old location
8114         code.
8115
8116 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8117
8118         PR 26264
8119         * builtins.def (BUILT_IN_STDARG_START): Remove.
8120         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
8121         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
8122         * tree-inline.c (inline_forbidden_p_1): Likewise.
8123         
8124 2008-02-26  Richard Guenther  <rguenther@suse.de>
8125
8126         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8127         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8128         (lookup_decl_from_uid): Declare.
8129         (remove_decl_from_map): Likewise.
8130         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8131         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8132         (decl_for_uid_map): New global hashtable mapping DECL_UID
8133         to the decl tree.
8134         (init_ttree): Allocate it.
8135         (insert_decl_to_uid_decl_map): New helper function.
8136         (make_node_stat): Insert new decls into the map.
8137         (copy_node_stat): Likewise.
8138         (lookup_decl_from_uid): New function.
8139         (remove_decl_from_map): Likewise.
8140         (print_decl_for_uid_map_statistics): New helper.
8141         (dump_tree_statistics): Call it.
8142
8143         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8144         (referenced_var_iterator): Adjust.
8145         (FOR_EACH_REFERENCED_VAR): Adjust.
8146         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8147         (num_referenced_vars): Adjust.
8148         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8149         (first_referenced_var): Remove.
8150         (end_referenced_vars_p): Likewise.
8151         (next_referenced_var): Likewise.
8152         (referenced_var_iterator_set): New helper function.
8153         * tree-dfa.c (referenced_var_lookup): Adjust.
8154         (referenced_var_check_and_insert): Likewise.
8155         (remove_referenced_var): Likewise.
8156         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8157         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8158         (verify_call_clobbering): Likewise.
8159         (verify_memory_partitions): Likewise.
8160         (init_tree_ssa): Allocate bitmap instead of hashtable for
8161         referenced_vars.
8162         (delete_tree_ssa): Adjust.
8163         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8164         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8165         (compute_tag_properties): Likewise.
8166         (set_initial_properties): Likewise.
8167         (find_partition_for): Likewise.
8168         (update_reference_counts): Likewise.
8169         (dump_may_aliases_for): Likewise.
8170         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8171         (add_call_clobber_ops): Likewise.
8172         (add_call_read_ops): Likewise.
8173         (get_asm_expr_operands): Likewise.
8174         * tree-into-ssa.c (dump_decl_set): Likewise.
8175         (update_ssa): Likewise.
8176         * tree-sra.c (scan_function): Likewise.
8177         (decide_instantiations): Likewise.
8178         (scalarize_parms): Likewise.
8179         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8180         (dsa_named_for): Likewise.
8181         * tree-ssa-structalias.c (update_alias_info): Likewise.
8182         (merge_smts_into): Likewise.
8183
8184 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8185
8186         PR 34351
8187         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
8188         * c-opts.c (c_common_handle_option): Wall enables
8189         Wvolatile-register-var.
8190         * common.opt: Move Wvolatile-register-var to...
8191         * c.opt: ...here.
8192         
8193 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8194
8195         * common.opt (Wlarger-than=): New.
8196         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
8197         -Wlarger-than=.
8198         * opts.c (common_handle_option): Handle -Wlarger-than=.
8199         * optc-gen.awk: Likewise.
8200         * opth-gen.awk: Likewise.
8201         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
8202         * tree-optimize.c (tree_rest_of_compilation): Likewise.
8203         
8204 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8205
8206         * c-common.c (match_case_to_enum_1): Add appropriate
8207         OPT_W* parameter to warning.
8208         (c_do_switch_warnings): Likewise.
8209         * c-typeck.c (warning_init): Add one more parameter following
8210         'warning' function.
8211         (push_init_level): Update call to warning_init.
8212         (pop_init_level): Likewise.
8213         (add_pending_init): Likewise.
8214         (output_init_element: Likewise.
8215
8216 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8217
8218         PR 28322
8219         * toplev.c (toplev_main): If there are warnings or error, print
8220         errors for ignored options.
8221         * opts.c (ignored_options): New static variable.
8222         (postpone_unknown_option_error): New.
8223         (print_ignored_options): New.
8224         (handle_option): Postpone errors for unknown -Wno-* options.
8225         * opts.h (print_ignored_options): Declare.
8226         
8227 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
8228
8229         * config/mips/mips.md (loadgp_blockage, blockage): Change type
8230         to "ghost".
8231
8232 2008-02-25  Richard Guenther  <rguenther@suse.de>
8233
8234         Revert:
8235         2008-02-25  Richard Guenther  <rguenther@suse.de>
8236
8237         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8238         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8239         (lookup_decl_from_uid): Declare.
8240         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8241         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8242         (decl_for_uid_map): New global hashtable mapping DECL_UID
8243         to the decl tree.
8244         (init_ttree): Allocate it.
8245         (insert_decl_to_uid_decl_map): New helper function.
8246         (make_node_stat): Insert new decls into the map.
8247         (copy_node_stat): Likewise.
8248         (lookup_decl_from_uid): New function.
8249         (print_decl_for_uid_map_statistics): New helper.
8250         (dump_tree_statistics): Call it.
8251
8252         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8253         (referenced_var_iterator): Adjust.
8254         (FOR_EACH_REFERENCED_VAR): Adjust.
8255         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8256         (num_referenced_vars): Adjust.
8257         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8258         (first_referenced_var): Remove.
8259         (end_referenced_vars_p): Likewise.
8260         (next_referenced_var): Likewise.
8261         (referenced_var_iterator_set): New helper function.
8262         * tree-dfa.c (referenced_var_lookup): Adjust.
8263         (referenced_var_check_and_insert): Likewise.
8264         (remove_referenced_var): Likewise.
8265         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8266         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8267         (verify_call_clobbering): Likewise.
8268         (verify_memory_partitions): Likewise.
8269         (init_tree_ssa): Allocate bitmap instead of hashtable for
8270         referenced_vars.
8271         (delete_tree_ssa): Adjust.
8272         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8273         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8274         (compute_tag_properties): Likewise.
8275         (set_initial_properties): Likewise.
8276         (find_partition_for): Likewise.
8277         (update_reference_counts): Likewise.
8278         (dump_may_aliases_for): Likewise.
8279         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8280         (add_call_clobber_ops): Likewise.
8281         (add_call_read_ops): Likewise.
8282         (get_asm_expr_operands): Likewise.
8283         * tree-into-ssa.c (dump_decl_set): Likewise.
8284         (update_ssa): Likewise.
8285         * tree-sra.c (scan_function): Likewise.
8286         (decide_instantiations): Likewise.
8287         (scalarize_parms): Likewise.
8288         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8289         (dsa_named_for): Likewise.
8290         * tree-ssa-structalias.c (update_alias_info): Likewise.
8291         (merge_smts_into): Likewise.
8292
8293 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
8294
8295         PR fortran/29549
8296         * doc/invoke.texi (-fcx-limited-range): Document new option.
8297         * toplev.c (process_options): Handle -fcx-fortran-rules.
8298         * common.opt: Add documentation for -fcx-fortran-rules.
8299
8300 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
8301
8302         PR c/35162
8303         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
8304         actual behaviour and C99.
8305         
8306 2008-02-26  Ben Elliston  <bje@au.ibm.com>
8307
8308         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
8309         (ASM_CPU_POWER6_SPEC): Likewise.
8310         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
8311         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
8312         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
8313
8314 2008-02-25  Richard Guenther  <rguenther@suse.de>
8315
8316         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8317         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8318         (lookup_decl_from_uid): Declare.
8319         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8320         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8321         (decl_for_uid_map): New global hashtable mapping DECL_UID
8322         to the decl tree.
8323         (init_ttree): Allocate it.
8324         (insert_decl_to_uid_decl_map): New helper function.
8325         (make_node_stat): Insert new decls into the map.
8326         (copy_node_stat): Likewise.
8327         (lookup_decl_from_uid): New function.
8328         (print_decl_for_uid_map_statistics): New helper.
8329         (dump_tree_statistics): Call it.
8330
8331         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8332         (referenced_var_iterator): Adjust.
8333         (FOR_EACH_REFERENCED_VAR): Adjust.
8334         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8335         (num_referenced_vars): Adjust.
8336         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8337         (first_referenced_var): Remove.
8338         (end_referenced_vars_p): Likewise.
8339         (next_referenced_var): Likewise.
8340         (referenced_var_iterator_set): New helper function.
8341         * tree-dfa.c (referenced_var_lookup): Adjust.
8342         (referenced_var_check_and_insert): Likewise.
8343         (remove_referenced_var): Likewise.
8344         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8345         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8346         (verify_call_clobbering): Likewise.
8347         (verify_memory_partitions): Likewise.
8348         (init_tree_ssa): Allocate bitmap instead of hashtable for
8349         referenced_vars.
8350         (delete_tree_ssa): Adjust.
8351         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8352         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8353         (compute_tag_properties): Likewise.
8354         (set_initial_properties): Likewise.
8355         (find_partition_for): Likewise.
8356         (update_reference_counts): Likewise.
8357         (dump_may_aliases_for): Likewise.
8358         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8359         (add_call_clobber_ops): Likewise.
8360         (add_call_read_ops): Likewise.
8361         (get_asm_expr_operands): Likewise.
8362         * tree-into-ssa.c (dump_decl_set): Likewise.
8363         (update_ssa): Likewise.
8364         * tree-sra.c (scan_function): Likewise.
8365         (decide_instantiations): Likewise.
8366         (scalarize_parms): Likewise.
8367         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8368         (dsa_named_for): Likewise.
8369         * tree-ssa-structalias.c (update_alias_info): Likewise.
8370         (merge_smts_into): Likewise.
8371
8372 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
8373
8374         PR target/35258
8375         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
8376         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
8377         * alias.h (nonoverlapping_memrefs_p): Likewise.
8378
8379 2008-02-25  Jan Beulich  <jbeulich@novell.com>
8380
8381         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
8382         * config/i386/netware-libgcc.exp: Add __bswap?i2,
8383         __emultls_get_address, __emultls_register_common,
8384         __floatundi?f, and _Unwind_GetIPInfo.
8385         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
8386         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
8387         (gen_regparm_prefix): Likewise.
8388         (i386_nlm_encode_section_info): Sync with
8389         config/i386/winnt.c:i386_pe_encode_section_info().
8390         (i386_nlm_maybe_mangle_decl_assembler_name): New.
8391         i386_nlm_mangle_decl_assembler_name): New.
8392         (netware_override_options): New.
8393         * config/i386/netware.h (netware_override_options): Declare.
8394         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
8395         (i386_nlm_mangle_decl_assembler_name): Declare.
8396         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
8397
8398 2008-02-25  Ben Elliston  <bje@au.ibm.com>
8399
8400         PR other/32948
8401         * c-decl.c (grokdeclarator): Remove unused local variables
8402         `typedef_type' and `type_as_written'.
8403         * bb-reorder.c
8404         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
8405         unused local variable `has_hot_blocks'.
8406         (fix_crossing_conditional_branches): Remove unused local variable
8407         `prev_bb'.
8408         
8409 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
8410
8411         PR middle-end/19984
8412         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
8413         using DEF_C99_BUILTIN.
8414         (BUILT_IN_NANF): Ditto.
8415         (BUILT_IN_NANL): Ditto.
8416
8417 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
8418             Revital Eres  <eres@il.ibm.com>
8419
8420         * modulo-sched.c (calculate_must_precede_follow): Address TODO
8421         regarding the order of two dependent insns in the same row.
8422
8423 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
8424
8425         * stor-layout.c (layout_decl): Do not bump the alignment of a
8426         bit-field to more than byte alignment if it is packed.
8427
8428 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
8429
8430         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
8431         e300c2 and e300c3.
8432
8433 2008-02-24  Diego Novillo  <dnovillo@google.com>
8434
8435         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
8436
8437         PR 33738
8438         * tree-vrp.c (vrp_evaluate_conditional): With
8439         -Wtype-limits, emit a warning when comparing against a
8440         constant outside the natural range of OP0's type.
8441         * c.opt (Wtype-limits): Move ...
8442         * common.opt (Wtype-limits): ... here.
8443
8444 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
8445
8446         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
8447         * config/rs6000/e300c2c3.md: New file.
8448         * config/rs6000/rs6000.c (processor_costs): Add new costs for
8449         e300c2 and e300c3.
8450         (rs6000_override_options): Add e300c2 and e300c3 cases to
8451         processor_target_table. Do not allow usage of Altivec or Spe
8452         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
8453         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
8454         * config/rs6000/rs6000.h (processor_type): Add
8455         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
8456         (ASM_CPU_SPEC): Add e300c2 and e300c3.
8457         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
8458         and ppce300c3. Include e300c2c3.md.
8459
8460 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
8461
8462         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
8463         instead of TARGET_STRICT_ALIGN.
8464
8465 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
8466
8467         * explow.c (memory_address): Assert that the generated address is
8468         valid.
8469
8470 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
8471
8472         PR target/25477
8473         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
8474         * config/darwin-ppc-ldouble-patch.def: New file.
8475         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
8476         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
8477         SUBTARGET_INIT_BUILTINS if defined.
8478         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
8479         New functions.
8480
8481 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8482
8483         PR rtl-opt/33512
8484         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
8485         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
8486
8487 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8488
8489         PR pch/35027
8490         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
8491         file" warning condtional on -Winvalid-PCH.
8492
8493 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
8494
8495         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
8496
8497 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
8498
8499         PR target/22076
8500         PR target/34256 
8501         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
8502         prevent reload from using MMX registers.
8503         (*mov<mode>_internal): Ditto.
8504         (*movv2sf_internal_rex64): Ditto.
8505         (*movv2sf_internal): Ditto.
8506
8507 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8508
8509         PR documentation/31569
8510         * doc/install.texi2html: Use makeinfo --no-number-sections.
8511
8512 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8513
8514         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
8515         ensure that we can address an entire entity > 8 bytes.  Don't
8516         generate reg+reg addressing for such data.
8517
8518 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8519
8520         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
8521         strings when optimizing for size, unless the target cares about
8522         alignment.
8523
8524 2008-02-22  Tom Tromey  <tromey@redhat.com>
8525
8526         * regclass.c (current_pass): Remove declaration.
8527
8528 2008-02-22  Anatoly Sokolov <aesok@post.ru>
8529
8530         * config/avr/libgcc.S (__RAMPZ__): Define.
8531         (__do_copy_data): Add for devices with 128KB code memory.
8532
8533 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8534
8535         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
8536         Use spe_abi.
8537         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
8538
8539 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
8540
8541         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
8542         GENNONACR_REGS.
8543
8544 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8545
8546         PR c/19999
8547         * c-typeck.c (build_binary_op): Warn about floating point
8548         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
8549
8550 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
8551
8552         PR target/34526
8553         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
8554         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
8555         add vrsave.
8556         (rs6000_override_options): Set altivec_abi as default, not override,
8557         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
8558         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
8559         is used; use new member spe_abi.
8560         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
8561         spe_abi and altivec_abi.
8562
8563 2008-02-22  Tomas Bily  <tbily@suse.cz>
8564
8565         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
8566
8567 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8568
8569         PR bootstrap/35273
8570         * config.build (build_file_translate): Set to `CMD //c' only if
8571         it works.
8572         * Makefile.in (build_file_translate): Improve comment.
8573
8574 2008-02-21  Jan Hubicka  <jh@suse.cz>
8575
8576         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
8577         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
8578         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
8579
8580 2008-02-21  Michael Matz  <matz@suse.de>
8581
8582         PR target/35264
8583         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
8584
8585 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
8586
8587         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
8588         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
8589         as insn constraint.
8590         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
8591         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
8592         SSE_VEC_FLOAT_MODE_P as insn constraint.
8593         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
8594         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
8595         sse4a_movntdf using MODEF mode iterator.
8596         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
8597         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
8598         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
8599         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
8600         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
8601         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
8602         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
8603
8604 2008-02-21  Richard Guenther  <rguenther@suse.de>
8605
8606         * tree.def (PAREN_EXPR): New tree code.
8607         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
8608         and PAREN_EXPR.
8609         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
8610         * expr.c (expand_expr_real_1): Likewise.
8611         * tree-inline.c (estimate_num_insns_1): Likewise.
8612         * tree-complex.c (expand_complex_move): Likewise.
8613         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
8614         as plain x.
8615
8616 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8617
8618         PR target/35225
8619         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
8620
8621 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8622
8623         PR target/35190
8624         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
8625
8626         * config/sh/sh.c (find_barrier): Don't go past
8627         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
8628
8629 2008-02-20  DJ Delorie  <dj@redhat.com>
8630
8631         * config/h8300/h8300.md (insv): Force source operand to be a register.
8632
8633         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
8634         as a jump, not as a plain insn.
8635         
8636 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
8637
8638         * doc/invoke.texi (Warning Options): Add new option
8639         -Wframe-larger-than=.
8640         (-Wframe-larger-than): Document.
8641
8642         * flags.h (warn_frame_larger_than, frame_larger_than_size):
8643         Add declarations for new option variables.
8644
8645         * final.c (final_start_function): Check the frame size
8646         before emission and issue a Wframe-larger-than warning.
8647
8648         * opts.c (warn_frame_larger_than, frame_larger_than_size):
8649         Add definitions for new option variables.
8650         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
8651
8652         * common.opt (Wframe-larger-than=): New option.
8653
8654 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
8655
8656         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
8657         (<sse>_div<mode>3): Ditto.
8658         (<sse>_vmdiv<mode>3): Ditto.
8659         (<sse>_vmsqrt<mode>2): Ditto.
8660         (*smax<mode>3): Ditto.
8661         (sse5_frcz<mode>2): Ditto.
8662         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
8663         as insn constraint.
8664
8665 2008-02-20  Richard Guenther  <rguenther@suse.de>
8666
8667         PR middle-end/35265
8668         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
8669         be happy with INTEGRAL_TYPE_P.
8670
8671 2008-02-20  Richard Guenther  <rguenther@suse.de>
8672
8673         * fold-const.c (split_tree): Associate floatig-point expressions
8674         if flag_associative_math is set.
8675
8676 2008-02-20  Richard Guenther  <rguenther@suse.de>
8677
8678         * tree.h (fold_real_zero_addition_p): Declare.
8679         * fold-const.c (fold_real_zero_addition_p): Export.
8680         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
8681         floating-point operations with zero and one.
8682
8683 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
8684
8685         * doc/install.texi: Correct references to CFLAGS, replacing them
8686         with BOOT_CFLAGS.  Document flags used during bootstrap for
8687         target libraries.
8688                                 
8689 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
8690
8691         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
8692         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
8693         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
8694         insn constraint.
8695         (smin<mode>3): Ditto from similar patterns.
8696         (smax<mode>3): Ditto.
8697         (*ieee_smin<mode>3): Ditto.
8698         (*ieee_smax<mode>3): Ditto.
8699         * config/i386/sse.md (sse): New mode attribute.
8700         (mov<mode>): Macroize expander from movv4sf and movv2df using
8701         SSEMODEF2P mode iterator.
8702         (<sse>_movnt<mode>): Ditto from similar patterns. Use
8703         SSE_VEC_FLOAT_MODE_P as insn constraint.
8704         (storent<mode>): Ditto.
8705         (storent<mode>): Macroize expander from storentsf and storentdf using
8706         MODEF mode iterator.
8707         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
8708         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
8709         (abs<mode>2): Ditto from similar patterns.
8710         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
8711         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
8712         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
8713         (<sse>_vmsqrt<mode>2): Ditto.
8714         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
8715         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
8716         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
8717         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
8718         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
8719         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
8720         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
8721         insn constraint.
8722         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
8723         iterator and SSE_FLOAT_MODE_P as insn constraint.
8724         (<sse>_ucomi): Ditto from similar patterns.
8725         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
8726         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
8727         SSE_VEC_FLOAT_MODE_P as insn constraint.
8728         (vcond<mode>): Ditto from similar patterns.
8729         (and<mode>3, *and<mode>3): Ditto.
8730         (<sse>_nand<mode>3): Ditto.
8731         (ior<mode>3, *ior<mode>3): Ditto.
8732         (xor<mode>3, *xor<mode>3): Ditto.
8733         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
8734         iterator and SSE_FLOAT_MODE_P as insn constraint.
8735         (*nand<mode>3): Ditto from similar patterns.
8736         (*ior<mode>3): Ditto.
8737         (*xor<mode>3): Ditto.
8738
8739 2008-02-20  Ira Rosen  <irar@il.ibm.com>
8740
8741         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
8742         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
8743         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
8744
8745 2008-02-19  Jan Hubicka  <jh@suse.cz>
8746
8747         * predict.c (tree_bb_level_predictions): Remove variable next
8748         mistakely introduced by previous commit.
8749
8750 2008-02-19  Jan Hubicka  <jh@suse.cz>
8751
8752         * predict.c (predict_paths_leading_to): Rewrite.
8753         (predict_paths_for_bb): New.
8754         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
8755
8756 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8757
8758         PR bootstrap/35218
8759         * Makefile.in (build_file_translate): New.
8760         (gcc-vers.texi): Use it for translating $(abs_srcdir).
8761         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
8762         * configure.ac (build_file_translate): Substitute it.
8763         * configure: Regenerate.
8764
8765 2008-02-19  Jan Hubicka  <jh@suse.cz>
8766
8767         PR rtl-optimization/34408
8768         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
8769         invalid sharing.
8770
8771 2008-02-19  Jan Hubicka  <jh@suse.cz>
8772
8773         PR middle-end/28779
8774         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
8775         call_expr.
8776
8777 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
8778
8779         PR Ada/35186
8780         * config/i386/i386-modes.def: Revert the last DI alignment
8781         change until Ada people can look into it.
8782
8783 2008-02-19  Nick Clifton  <nickc@redhat.com>
8784
8785         * opts.c (print_specific_help): Fix typo in --help text.
8786
8787 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
8788
8789         PR target/35239
8790         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
8791         32-bit inline asm without asm alternatives for host GCC < 3.0.
8792
8793 2008-02-19  Richard Guenther  <rguenther@suse.de>
8794
8795         PR tree-optimization/34989
8796         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
8797         Allow propagation to INDIRECT_REF if we can simplify only.
8798
8799 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8800
8801         * c-common.c (warn_for_collisions_1): Use appropriate option when
8802         warning.
8803
8804 2008-02-19  Nick Clifton  <nickc@redhat.com>
8805
8806         PR other/31349
8807         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
8808         (handle_options): Fix indentation.
8809         (print_filtered_help): If no language-specific options were
8810         displayed tell the user how to list all the options supported by
8811         the language's front-end.
8812         (print_specific_help): Fix indentation and remove duplicate line.
8813         (common_handle_option): Handle the -v option.
8814         For --help enable the display of undocumented options if the -v
8815         switch has been included on the command line.
8816         For --help= check for overlaps in the arguments between the option
8817         classes and the language names and issue a warning when they
8818         cannot be disambiguated.
8819         * c.opt (v): Pass on to the common option handler.
8820
8821 2008-02-19  Revital Eres  <eres@il.ibm.com> 
8822
8823         * modulo-sched.c (sms_schedule): Change dump message when
8824         create_ddg function fails.
8825         (try_scheduling_node_in_cycle): Rename row to cycle.
8826         (print_partial_schedule): Rename CYCLE to ROW.
8827
8828 2008-02-19  Christian Bruel  <christian.bruel@st.com>
8829             Zdenek Dvorak  <ook@ucw.cz>
8830
8831         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
8832
8833 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
8834
8835         PR target/33555
8836         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
8837         (*x86_movdicc_0_m1_se): Ditto.
8838
8839 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
8840
8841         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
8842         (CMPtype): Define as __gcc_CMPtype.
8843         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
8844         (CMPtype): Define as __gcc_CMPtype.
8845
8846 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
8847
8848         Support valgrind 3.3 for --enable-checking=valgrind.
8849         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
8850         here.
8851         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
8852         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
8853         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
8854         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
8855         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
8856         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
8857         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
8858         respectively.
8859         * ggc-zone.c: Similar.
8860         * ggc-page.c: Similar.
8861
8862 2008-02-19  Paul Brook  <paul@codesourcery.com>
8863
8864         PR target/35071
8865         * config/arm/ieee754-df.S: Fix do_it typo.
8866         * config/arm/ieee754-sf.S: Fix do_it typo.
8867
8868 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
8869
8870         PR target/35189
8871         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
8872         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
8873         (OPTION_MASK_ISA_SSE_SET): Likewise.
8874         (OPTION_MASK_ISA_SSE2_SET): Likewise.
8875         (OPTION_MASK_ISA_SSE3_SET): Likewise.
8876         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
8877         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
8878         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
8879         (OPTION_MASK_ISA_SSE4_SET): Likewise.
8880         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
8881         (OPTION_MASK_ISA_SSE5_SET): Likewise.
8882         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
8883         (OPTION_MASK_ISA_MMX_UNSET): Updated.
8884         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
8885         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
8886         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
8887         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
8888         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
8889         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
8890         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
8891         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
8892         (OPTION_MASK_ISA_SSE4): Removed.
8893         (ix86_handle_option): Turn on bits in ix86_isa_flags and
8894         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
8895         (override_options): Don't turn on implied SSE/MMX bits in
8896         ix86_isa_flags.
8897
8898 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
8899
8900         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
8901         32bit host.
8902
8903 2008-02-18  Joey Ye  <joey.ye@intel.com>
8904
8905         PR middle-end/34921
8906         * tree-nested.c (insert_field_into_struct): Set type alignment
8907         to field alignment if the former is less than the latter.
8908
8909 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
8910
8911         * BASE-VER: Set to 4.4.0.
8912
8913 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8914
8915         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
8916         * doc/cfg.texi: Likewise.
8917         * doc/extend.texi: Likewise.
8918         * doc/gty.texi: Likewise.
8919         * doc/invoke.texi: Likewise.
8920         * doc/loop.texi: Likewise.
8921         * doc/md.texi: Likewise.
8922         * doc/passes.texi: Likewise.
8923         * doc/rtl.texi: Likewise.
8924         * doc/sourcebuild.texi: Likewise.
8925         * doc/tm.texi: Likewise.
8926         * doc/tree-ssa.texi: Likewise.
8927
8928 2008-02-17  Richard Guenther  <rguenther@suse.de>
8929
8930         PR middle-end/35227
8931         * tree-complex.c (init_parameter_lattice_values): Handle parameters
8932         without default definition.
8933
8934 2008-02-17  Richard Guenther  <rguenther@suse.de>
8935
8936         PR tree-optimization/35231
8937         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
8938         if A | B != 1.
8939
8940 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
8941
8942         Revert:
8943         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
8944         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
8945         libgcc_cmp_return mode.
8946
8947 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8948
8949         PR c/28368
8950         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
8951
8952 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
8953
8954         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
8955         multilibs.
8956
8957 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8958
8959         * doc/c-tree.texi: Use `@.' where appropriate.
8960         * doc/extend.texi: Likewise.
8961         * doc/install.texi: Likewise.
8962         * doc/invoke.texi: Likewise.
8963         * doc/loop.texi: Likewise.
8964         * doc/makefile.texi: Likewise.
8965         * doc/md.texi: Likewise.
8966         * doc/passes.texi: Likewise.
8967         * doc/standards.texi: Likewise.
8968         * doc/tm.texi: Likewise.
8969
8970 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
8971
8972         PR middle-end/35196
8973         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
8974         in entry_bb.
8975         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
8976         rather than in entry_bb.
8977
8978 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
8979
8980         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
8981         libgcc_cmp_return mode.
8982
8983 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
8984
8985         PR middle-end/35130
8986         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
8987         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
8988
8989 2008-02-15  Richard Guenther  <rguenther@suse.de>
8990             Zdenek Dvorak  <ook@ucw.cz>
8991
8992         PR tree-optimization/35164
8993         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
8994         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
8995         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
8996         Only propagate addresses which do not have abnormal SSA_NAMEs
8997         in their operands.
8998
8999 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
9000
9001         PR target/35088
9002         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
9003
9004 2008-02-15  Jan Hubicka  <jh@suse.cz>
9005
9006         PR middle-end/35149
9007         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
9008
9009 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
9010
9011         PR middle-end/34621
9012         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
9013         when calculating alignment_pad.
9014
9015 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
9016
9017         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
9018         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
9019         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
9020         and STACK_BOUNDARY define.
9021
9022 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
9023
9024         PR preprocessor/35061
9025         * c-pragma.c (handle_pragma_pop_macro): Check that
9026         pushed_macro_table has been allocated.
9027
9028 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
9029
9030         PR middle-end/35136
9031         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
9032         (force_gimple_operand): Likewise.
9033         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
9034         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
9035         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
9036         (find_interesting_uses_address): Check addressability and alignment
9037         of the base expression only after substituting bases of IVs into it.
9038
9039 2008-02-14  Michael Matz  <matz@suse.de>
9040
9041         PR target/34930
9042         * function.c (instantiate_virtual_regs_in_insn): Reload address
9043         before falling back to reloading the whole operand.
9044
9045 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
9046
9047         * config/s390/s390.c (s390_mainpool_start): Emit the pool
9048         before the first section switch note.
9049
9050 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9051
9052         * doc/bugreport.texi: Update copyright years.
9053         * doc/c-tree.texi: Likewise.
9054         * doc/cfg.texi: Likewise.
9055         * doc/cpp.texi: Likewise.
9056         * doc/cppinternals.texi: Likewise.
9057         * doc/fragments.texi: Likewise.
9058         * doc/frontends.texi: Likewise.
9059         * doc/gcc.texi: Likewise.
9060         * doc/gty.texi: Likewise.
9061         * doc/hostconfig.texi: Likewise.
9062         * doc/implement-c.texi: Likewise.
9063         * doc/libgcc.texi: Likewise.
9064         * doc/loop.texi: Likewise.
9065         * doc/makefile.texi: Likewise.
9066         * doc/options.texi: Likewise.
9067         * doc/passes.texi: Likewise.
9068         * doc/rtl.texi: Likewise.
9069         * doc/sourcebuild.texi: Likewise.
9070         * doc/standards.texi: Likewise.
9071         * doc/tree-ssa.texi: Likewise.
9072         * doc/trouble.texi: Likewise.
9073
9074         * doc/extend.texi: Use @: or add comma where appropriate.
9075         * doc/invoke.texi: Likewise.
9076         * doc/tm.texi: Likewise.
9077
9078 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
9079
9080         PR target/34393
9081         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
9082         to a reg.
9083
9084 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
9085
9086         * doc/md.texi (clz, ctz): Add reference.
9087         * doc/rtl.texi (clz, ctz): Likewise.
9088
9089 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9090
9091         PR other/35148
9092         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
9093         srcdir.
9094
9095 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
9096
9097         * config/s390/s390.c (struct constant_pool): New field
9098         emit_pool_after added.
9099         (s390_mainpool_start): Set the emit_pool_after flag according
9100         to the section switch notes.
9101         (s390_mainpool_finish): Consider emit_pool_after when emitting
9102         the literal pool at the end of the function.
9103         (s390_chunkify_start): Force literal pool splits at section
9104         switch notes.
9105
9106 2008-02-13  Michael Matz  <matz@suse.de>
9107
9108         PR debug/35065
9109         * var-tracking.c (clobber_variable_part): Correctly traverse the
9110         list.
9111
9112 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9113
9114         PR 29673
9115         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
9116         Add -fdump-ipa-inline.
9117         * tree-dump.c (dump_files): Remove tree-inlined dump.
9118         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
9119         
9120 2008-02-12  Richard Guenther  <rguenther@suse.de>
9121
9122         PR tree-optimization/35171
9123         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
9124         default defs.
9125
9126 2008-02-12  Richard Guenther  <rguenther@suse.de>
9127
9128         PR middle-end/35163
9129         * fold-const.c (fold_widened_comparison): Use get_unwidened in
9130         value-preserving mode.  Disallow final truncation.
9131
9132 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
9133
9134         PR middle-end/35136
9135         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
9136         code from here to...
9137         (force_gimple_operand): ...here.
9138
9139 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
9140
9141         PR c++/35144
9142         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
9143         non-compatible pointers.
9144         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
9145         different FIELD_DECLs, try harder by comparing field offsets, sizes
9146         and types.
9147
9148         PR inline-asm/35160
9149         * function.c (match_asm_constraints_1): Don't replace the same input
9150         multiple times.
9151
9152 2008-02-12  Anatoly Sokolov <aesok@post.ru>
9153
9154         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
9155         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
9156         (expand_epilogue): Restore RAMPZ register.
9157         * config/avr/avr.md (RAMPZ_ADDR): New constant.
9158
9159 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
9160
9161         * config/i386/cygwin.asm: (__alloca): Correct calling
9162         convention and alignment.
9163         (__chkstk): Force 8 byte stack alignment.
9164
9165 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
9166             Richard Guenther  <rguenther@suse.de>
9167
9168         PR tree-optimization/33992
9169         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
9170         the zero we compare against.
9171
9172 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
9173
9174         PR libfortran/35063
9175         * gthr-win32.h (__gthread_mutex_destroy_function): New function
9176         to CloseHandle after unlocking to prevent accumulation of handle
9177         count.
9178
9179 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9180
9181         PR middle_end/34150
9182         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
9183         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
9184         and update LABEL_NUSES during and after reload.
9185
9186 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
9187
9188         PR middle-end/34627
9189         * combine.c (simplify_if_then_else): Make sure the comparison is
9190         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
9191
9192 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
9193
9194         PR bootstrap/35051
9195         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
9196         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
9197         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
9198         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
9199         * tree.h (get_type_static_bounds): Likewise.
9200
9201 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9202
9203         * doc/invoke.texi (Option Summary, C++ Dialect Options)
9204         (Objective-C and Objective-C++ Dialect Options, Warning Options):
9205         Make -Wfoo language annotations match what the compiler outputs.
9206
9207 2008-02-08  Sa Liu  <saliu@de.ibm.com>
9208
9209         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
9210         intrinsics spu_convts, spu_convtu, spu_convtf.
9211
9212 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
9213
9214         * doc/extend.texi (Function Attributes) <noinline>: Mention
9215         asm ("") as method to keep calls.
9216
9217 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9218
9219         PR other/32754
9220         * doc/options.texi (Options): Replace references to opts.sh with
9221         optc-gen.awk.
9222         * opts-common.c: Likewise.
9223         * optc-gen.awk: Likewise.
9224         
9225 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
9226
9227         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
9228
9229 2008-02-07  Richard Henderson  <rth@redhat.com>
9230
9231         PR rtl-opt/33410
9232         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
9233         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
9234         funny mode.
9235
9236 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
9237
9238         PR tree-optimization/35085
9239         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
9240         for operand entry oe2 in addition to operand entry oe3 in order to
9241         expose more opportunities for vectorizer sum reduction.
9242
9243 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9244
9245         PR other/35107
9246         * Makefile.in (LIBS): Remove $(GMPLIBS).
9247         (cc1-dummy, cc1): Add $(GMPLIBS).
9248
9249 2008-02-06  Jan Hubicka  <jh@suse.cz>
9250
9251         PR target/23322
9252         * i386.md (moddf_integer): Do not produce partial memory stalls for
9253         targets where it hurts.
9254
9255 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
9256
9257         PR target/35083
9258         * optabs.c (expand_float): Do not check for decimal modes when
9259         expanding unsigned integer through signed conversion.
9260
9261 2008-02-06  Nick Clifton  <nickc@redhat.com>
9262
9263         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
9264         inside the clobber with a match_operand and duplicated operand
9265         number in the constraint.
9266         (ineqbranchsi): Delete redundant comment.
9267
9268 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
9269
9270         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
9271         builtin_define ("__USE_INIT_FINI__").
9272         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
9273         -msx multilibs.
9274         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
9275
9276 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9277
9278         PR documentation/30330
9279         * doc/invoke.texi (C++ Dialect Options)
9280         (Objective-C and Objective-C++ Dialect Options, Warning Options):
9281         For each warning option -Wfoo that allows -Wno-foo, ensure both
9282         -Wfoo and -Wno-foo are listed in the option index.  Fix index
9283         entry of -Wswitch-default, index -Wnormalized= including the
9284         `=', and -Wlarger-than-@var{len} including @var{len}.
9285
9286 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
9287
9288         * config/i386/i386.md (floatunssisf2): Use
9289         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
9290         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
9291         Macroize expander using MODEF mode iterator.
9292
9293 2008-02-05  Diego Novillo  <dnovillo@google.com>
9294
9295         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
9296
9297         PR 33738
9298         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
9299
9300 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9301
9302         PR other/35070
9303         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
9304
9305 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
9306
9307         PR target/35084
9308         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
9309         to indicate if a message should be generated.
9310         (init_cumulative_args): Updated.
9311         (function_value_32): Likewise.
9312
9313 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
9314
9315         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
9316
9317 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
9318
9319         PR target/35083
9320         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
9321         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
9322
9323 2008-02-04  Diego Novillo  <dnovillo@google.com>
9324
9325         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
9326
9327         PR 33738
9328         * tree-vrp.c (vrp_evaluate_conditional): With
9329         -Wtype-limits, emit a warning when comparing against a
9330         constant outside the natural range of OP0's type.
9331
9332 2008-02-04  Richard Guenther  <rguenther@suse.de>
9333
9334         PR middle-end/33631
9335         * expr.c (count_type_elements): Give for unions instead of
9336         guessing.
9337
9338 2008-02-04  Richard Guenther  <rguenther@suse.de>
9339
9340         PR middle-end/35043
9341         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
9342         to TYPE_DOMAINs base type instead of using bitsizetype here.
9343
9344 2008-02-03  Jason Merrill  <jason@redhat.com>
9345
9346         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
9347
9348 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9349
9350         PR other/29972
9351         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
9352         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
9353         (RS/6000 and PowerPC Options): Fix typos and markup.
9354         * doc/passes.texi (Tree-SSA passes): Likewise.
9355
9356 2008-02-02  Michael Matz  <matz@suse.de>
9357
9358         PR target/35045
9359         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
9360         from record_last_reg_set_info.
9361         (record_last_reg_set_info): Take an RTX argument, iterate over all
9362         constituent hardregs.
9363         (record_last_set_info, record_opr_changes): Change calls to
9364         new signature or to record_last_reg_set_info_regno.
9365
9366 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
9367
9368         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
9369
9370 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
9371
9372         PR rtl-optimization/34773
9373         * reg-notes.def (EQUAL): Mention significance of combination of
9374         REG_EQUAL and REG_RETVAL.
9375         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
9376         insn that has a REG_RETVAL.
9377
9378 2008-02-01  Roger Sayle  <roger@eyesopen.com>
9379
9380         PR bootstrap/33781
9381         * configure.ac (--enable-fixed-point): Disable unless explicitly
9382         requested on IRIX.
9383         * configure: Regenerate.
9384
9385 2008-02-01  Richard Guenther  <rguenther@suse.de>
9386
9387         PR other/35042
9388         * invoke.texi (-finline-limit): Remove no longer true parts
9389         of the documentation.  Note that there is no default value.
9390
9391 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
9392             Mark Mitchell  <mark@codesourcery.com>
9393             Ben Elliston  <bje@au.ibm.com>
9394
9395         PR c/29326
9396         * doc/extend.texi (Other Builtins): Document.
9397
9398 2008-01-31  Tom Browder <tom.browder@gmail.com>
9399
9400         * doc/c-tree.texi (Types): Fix grammar.
9401         (Expression trees): Ditto.
9402         * doc/passes.texi (Tree-SSA passes): Ditto.
9403         
9404         * doc/configterms.texi (Configure Terms): Fix typo.
9405         * doc/cpp.texi (Common Predefined Macros): Ditto.
9406         * doc/md.texi (Machine Constraints): Ditto.
9407         
9408         * doc/makefile.texi (Makefile): Add comma.
9409
9410 2008-01-31  Tom Browder  <tom.browder@gmail.com>
9411             Gerald Pfeifer  <gerald@pfeifer.com>
9412         
9413         * doc/sourcebuild.texi (Front End): Remove references to CVS
9414         and CVSROOT/modules.
9415         (Texinfo Manuals): Replace reference to CVS by one to SVN.
9416         (Back End): Remove reference to CVS.
9417
9418 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
9419
9420         PR target/34900
9421         * config/mips/mips.c (gen_load_const_gp): New function, taking a
9422         comment from...
9423         (mips16_gp_pseudo_reg): ...here.
9424         * config/mips/mips.md (load_const_gp): Replace with...
9425         (load_const_gp_<mode>): ...this :P-based insn.
9426
9427 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9428
9429         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
9430         options. Minor fixes.
9431         (-std): Move reference to standards closer to where language
9432         standards are first mentioned.
9433         
9434 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
9435
9436         PR rtl-optimization/34995
9437         * reload.c (alternative_allows_const_pool_ref): Take an rtx
9438         parameter and return a bool.  If the rtx parameter is nonnull,
9439         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
9440         (find_reloads): Update call accordingly.  Pass the new operand
9441         if it needed no address reloads, otherwise pass null.
9442
9443 2008-01-30  Richard Henderson  <rth@redhat.com>
9444
9445         PR c/34993
9446         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
9447         for unbounded arrays.
9448
9449 2008-01-30  Silvius Rus  <rus@google.com>
9450
9451         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
9452
9453 2008-01-30  Jan Hubicka  <jh@suse.cz>
9454
9455         PR target/34982
9456         * i386.c (init_cumulative_args): Use real function declaration when
9457         calling locally.
9458
9459 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
9460
9461         PR rtl-optimization/34998
9462         * global.c (build_insn_chain): Treat non-subreg_lowpart
9463         SUBREGs of pseudos as clobbering all the words covered by the
9464         SUBREG, not just all the bytes.
9465         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
9466         original df_ref rather than an extract parameter.
9467         (global_conflicts): Update call accordingly.
9468
9469 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
9470
9471         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
9472         the overflow check to make it easier to read.
9473         (__fixtfdi): Change the type of the ll member in union
9474         long_double to UDItype_x.
9475
9476 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
9477
9478         PR middle-end/34969
9479         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
9480         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
9481         * tree-inline.c (fold_marked_statements): Call
9482         cgraph_update_edges_for_call_stmt if folding a call statement.
9483         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
9484         debug_generic_stmt calls, reset it back afterwards.
9485
9486         PR c/35017
9487         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
9488         static decls.
9489         * c-typeck.c (build_external_ref): Don't pedwarn about
9490         static vars in current function's scope.
9491
9492 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
9493
9494         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
9495
9496 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
9497
9498         PR c/35002
9499         * ipa-struct-reorg.c: Fix spelling.
9500         * params.def: Ditto.
9501
9502 2008-01-29  Richard Guenther  <rguenther@suse.de>
9503
9504         PR middle-end/35006
9505         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
9506         field.
9507         * tree-inline.c (remap_type): Increment remapping_type_depth
9508         around remapping types.
9509         (copy_body_r): Only add referenced variables if they are referenced
9510         from code, not types.
9511
9512 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
9513
9514         PR c++/34055
9515         PR c++/34103
9516         PR c++/34219
9517         PR c++/34606
9518         PR c++/34753
9519         PR c++/34754
9520         PR c++/34755
9521         PR c++/34919
9522         PR c++/34961
9523         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
9524         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
9525
9526 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
9527
9528         PR target/34412
9529         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
9530         pointer for tiny stack.
9531
9532 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
9533
9534         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
9535
9536 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
9537
9538         * config/vx-common.h: Fix typo in comment.
9539
9540 2008-01-28  Ian Lance Taylor  <iant@google.com>
9541
9542         PR c++/34862
9543         PR c++/33407
9544         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
9545         coalesce pointers if they have different DECL_NO_TBAA_P values.
9546         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
9547         between variables with different DECL_NO_TBAA_P values.
9548
9549 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
9550
9551         PR 31535
9552         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
9553         are not legitimate small data references on SPE targets.
9554
9555 2008-01-28  David Daney  <ddaney@avtrex.com>
9556
9557         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
9558
9559 2008-01-28  David Daney  <ddaney@avtrex.com>
9560
9561         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
9562
9563 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
9564
9565         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
9566         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
9567         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
9568         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
9569         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
9570         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
9571         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
9572         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
9573
9574 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9575
9576         * basic-block.h (condjump_equiv_p): Fix comment.
9577
9578 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9579
9580         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
9581         print_generic_stmt_indented): Fix comment.
9582
9583 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9584
9585         * configure.ac (__stack_chk_fail): Add detecion for availability
9586         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
9587         * configure: Regenerate.
9588
9589 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
9590
9591         PR middle-end/34688
9592         * final.c (output_addr_const): Handle TRUNCATE.
9593
9594 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
9595
9596         PR target/34711
9597         * tree-ssa-loop-ivopts.c (comp_cost): New type.
9598         (zero_cost, infinite_cost): New constants.
9599         (struct cost_pair): Change type of cost to comp_cost.
9600         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
9601         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
9602         New functions.
9603         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
9604         split_address_cost, ptr_difference_cost, difference_cost,
9605         get_computation_cost_at, get_computation_cost,
9606         determine_use_iv_cost_generic, determine_use_iv_cost_address,
9607         determine_use_iv_cost_condition, determine_use_iv_costs,
9608         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
9609         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
9610         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
9611         Change type of cost to comp_cost.
9612         (determine_iv_cost): Increase cost of non-original ivs, instead
9613         of decreasing the cost of original ones.
9614         (get_address_cost): Indicate the complexity of the addressing mode 
9615         in comp_cost.
9616         (try_add_cand_for): Prefer using ivs not specific to some object.
9617         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
9618
9619 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
9620             Janis Johnson  <janis187@us.ibm.com>
9621
9622         PR target/34814
9623         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
9624         (TARGET_INSTANTIATE_DECLS): Likewise.
9625         * target.h (expand_to_rtl_hook): New target hook.
9626         (instantiate_decls): Likewise.
9627         * function.c (instantiate_decl): Make non-static.  Rename to...
9628         (instantiate_decl_rtl): ... this.
9629         (instantiate_expr): Use instantiate_decl_rtl.
9630         (instantiate_decls_1): Likewise.
9631         (instantiate_decls): Likewise.
9632         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
9633         * function.h (instantiate_decl_rtl): Add prototype.
9634         * cfgexpand.c (target.h): New include.
9635         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
9636         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
9637         (TARGET_INSTANTIATE_DECLS): Likewise.
9638         (TARGET_INITIALIZER): New target hooks added.
9639         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
9640         New prototype.
9641         * config/rs6000/rs6000.c (tree-flow.h): New include.
9642         (machine_function): Add sdmode_stack_slot field.
9643         (rs6000_alloc_sdmode_stack_slot): New function.
9644         (rs6000_instantiate_decls): Likewise.
9645         (rs6000_secondary_memory_needed_rtx): Likewise.
9646         (rs6000_check_sdmode): Likewise.
9647         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
9648         (TARGET_INSTANTIATE_DECLS): Likewise.
9649         (rs6000_hard_regno_mode_ok): Allow SDmode.
9650         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
9651         (rs6000_emit_move): Handle SDmode.
9652         (function_arg_advance): Likewise.
9653         (function_arg): Likewise.
9654         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
9655         SDmode var args for 32-bit compiles.
9656         (rs6000_secondary_reload_class): Handle SDmode.
9657         (rs6000_output_function_epilogue): Likewise.
9658         (rs6000_function_value): Simplify if statement.
9659         (rs6000_libcall_value): Likewise.
9660         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
9661         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
9662         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
9663         (movsd_hardfloat): New define_insn.
9664         (movsd_softfloat): Likewise.
9665         (movsd_store): Likewise.
9666         (movsd_load): Likewise.
9667         (extendsddd2): Likewise.
9668         (extendsdtd2): Likewise.
9669         (truncddsd2): Likewise.
9670         (movdd_hardfloat64): Fixup comment.
9671         (UNSPEC_MOVSD_LOAD): New constant.
9672         (UNSPEC_MOVSD_STORE): Likewise.
9673
9674 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
9675
9676         PR c++/34965
9677         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
9678         TRUTH_XOR_EXPR.
9679         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
9680         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
9681         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
9682         and TRUTH_XOR_EXPR.
9683
9684 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
9685
9686         PR target/34794
9687         * config.gcc: Separate AIX 5.3 from AIX 6.1.
9688         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
9689         __LONGDOUBLE128 too.
9690         * config/rs6000/aix61.h: New file.
9691
9692 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
9693
9694         PR rtl-optimization/34959
9695         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
9696         popcount and parity rtxes the same mode as their operand.
9697         Truncate or extend the result to the return value's mode
9698         if necessary.
9699
9700 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
9701
9702         PR target/34981
9703         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
9704         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
9705         to GOT_VERSION_REGNUM.
9706         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
9707         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
9708         * config/mips/mips.c (mips_emit_call_insn): New function.
9709         (mips_call_tls_get_addr): Call mips_expand_call directly.
9710         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
9711         emit_call_insn.
9712         (mips16_build_call_stub): Likewise.  Return the call insn or null.
9713         (mips_expand_call): Update the call to mips16_build_call_stub
9714         accordingly and a remove redundant condition.  Assert that MIPS16
9715         stubs do not use lazy binding.  Use mips_emit_call_insn and return
9716         the call insn.
9717         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
9718         TARGET_USE_GOT.
9719         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
9720         (mips_avoid_hazard): Remove hazard_set handling.
9721         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
9722         (UNSPEC_RESTORE_GP): ...this.
9723         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
9724         (FAKE_CALL_REGNO): Rename to...
9725         (GOT_VERSION_REGNUM): ...this.
9726         (type): Add "ghost" value.  Add an associated insn reservation.
9727         (hazard_set): Remove.
9728         (exception_receiver): Rename to...
9729         (restore_gp): ...this and update the unspec identifier accordingly.
9730         (exception_receiver, nonlocal_got_receiver): New expanders.
9731         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
9732         FAKE_CALL_REGNO.  Remove hazard_set attribute.
9733         (set_got_version, update_got_version): New patterns.
9734
9735 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
9736
9737         PR target/34970
9738         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
9739
9740 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
9741
9742         PR other/31955
9743         * doc/install.texi2html: Generate gcc-vers.texi.
9744
9745 2008-01-25  DJ Delorie  <dj@redhat.com>
9746
9747         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
9748
9749 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
9750
9751         * config/c4x: Remove directory.
9752         * config.gcc (crx-*, mt-*): Mark obsolete.
9753         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
9754         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
9755         sh-*-rtemscoff*): Remove cases.
9756         * defaults.h (C4X_FLOAT_FORMAT): Remove.
9757         * real.c (encode_c4x_single, decode_c4x_single,
9758         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
9759         c4x_extended_format): Remove.
9760         * real.h (c4x_single_format, c4x_extended_format): Remove.
9761         * doc/extend.texi (interrupt, naked): Remove mention of attributes
9762         on C4x.
9763         (Pragmas): Remove comment about c4x pragmas.
9764         * doc/install.texi (c4x): Remove target-specific instructions.
9765         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
9766         * doc/md.texi (Machine Constraints): Remove C4x documentation.
9767         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
9768         refer to C4x source files as examples.
9769         (C4X_FLOAT_FORMAT): Remove documentation.
9770
9771 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
9772
9773         * config/bfin/bfin.c (override_options): Reorder tests so that
9774         flag_pic gets enabled for -msep-data.
9775
9776 2008-01-25  Richard Guenther  <rguenther@suse.de>
9777
9778         PR middle-end/32244
9779         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
9780         to its bitfield precision if required.
9781
9782 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
9783
9784         PR middle-end/33880
9785         * tree-nested.c (walk_omp_for): New function.
9786         (convert_nonlocal_reference, convert_local_reference): Call
9787         walk_omp_for on OMP_FOR.
9788         (convert_call_expr): Call walk_body on OMP_FOR's
9789         OMP_FOR_PRE_INIT_BODY.
9790
9791 2008-01-25  Richard Guenther  <rguenther@suse.de>
9792
9793         PR tree-optimization/34966
9794         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
9795         default defs and PHI_NODEs we have to insert after the
9796         defining statement.
9797
9798 2008-01-24  Nick Clifton  <nickc@redhat.com>
9799
9800         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
9801         Provide a default definition.
9802         (LIBGCC2_UNITS_PER_WORD): Likewise.
9803
9804         * config/stormy16/stormy16.c: Include df.h for the prototype
9805         for df_regs_ever_live_p.
9806         (xstormy16_expand_builtin_va_start): Convert the stack offset
9807         into a component_ref and then use POINTER_PLUS_EXPR to add it
9808         to the incoming_virtual_args_rtx.
9809         (xstormy16_gimplify_va_arg_expr): Rename to
9810         xstormy16_gimplify_va_arg_expr.
9811         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
9812         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
9813         xstormy16_gimplify_va_arg_expr.
9814         Fix up some formatting issues.
9815
9816         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
9817         Move to predicates.md.
9818         (xs_hi_general_operand): Likewise.
9819         (xs_hi_nonmemory_operand): Likewise.
9820         * config/stormy16/predicates.md:
9821         (xstormy16_carry_plus_operand): New predicate.
9822         (xs_hi_general_operand): New predicate.
9823         (xs_hi_nonmemory_operand): New predicate.
9824         * config/stormy16/stormy16-protos.h:
9825         (xstormy16_carry_plus_operand): Delete prototype.
9826         (xs_hi_general_operand): Likewise.
9827         (xs_hi_nonmemory_operand): Likewise.
9828
9829         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
9830         modifiers as they are no longer needed and they can trigger
9831         reload spill failures.
9832
9833         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
9834         with a match_operand in order to help reload.
9835
9836         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
9837         constraint with 'e' for the 8th alternative as this version of
9838         the mov.w instruction only accepts the lower 8 registers.
9839
9840 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
9841
9842         PR target/34856
9843         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
9844         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
9845         vector elements.
9846
9847 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
9848
9849         PR middle-end/33333
9850         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
9851
9852 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
9853
9854         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
9855         New functions.
9856         (remove_structure): Update allocations list before removing structure.
9857         
9858 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
9859
9860         * ipa-struct-reorg.c (is_safe_cond_expr, 
9861         create_new_stmts_for_cond_expr): Use integer_zerop function,
9862         that recognize not only zero-pointer, but zero-integer too.
9863
9864 2008-01-25  Ben Elliston  <bje@au.ibm.com>
9865
9866         PR other/22232
9867         * fixproto: Escape "." in sed expression that strips leading "./".
9868
9869 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
9870
9871         PR driver/34904
9872         * gcc.c (SWITCH_OK): Removed.
9873         (SWITCH_LIVE): Changed to bit.
9874         (SWITCH_FALSE): Likewise.
9875         (SWITCH_IGNORE): Likewise.
9876         (switchstr): Change live_cond to unsigned int.
9877         (process_command): Replace SWITCH_OK with 0.
9878         (do_self_spec): Likewise.
9879         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
9880         (give_switch): Likewise.
9881         (used_arg): Likewise.
9882         (do_spec_1): Set the SWITCH_IGNORE bit.
9883         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
9884         bits.  Set the SWITCH_LIVE bit.
9885
9886 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
9887
9888         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
9889
9890 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
9891
9892         PR tree-optimization/34472
9893         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
9894         parameter to a "bool *" and set *DATA to false if there is
9895         an unsafe access.  Do not delete the structure here.
9896         (check_cond_exprs): Delete it here instead.
9897         (check_cond_exprs, exclude_cold_structs): Do not increase
9898         I when removing a structure.
9899
9900 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
9901
9902         PR target/34856
9903         * config/i386/i386.c (ix86_expand_vector_init): Consider only
9904         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
9905
9906 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
9907
9908         PR middle-end/34934
9909         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
9910         a fixed vector for stack.
9911
9912 2008-01-24  Ben Elliston  <bje@au.ibm.com>
9913
9914         PR c++/25701
9915         * doc/gcc.texi (Software development): Add a direntry for g++.
9916         
9917 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
9918
9919         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
9920         stale and straggling -fforce-addr comments above.
9921
9922         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
9923         define.
9924         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
9925         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
9926
9927 2008-01-23  Michael Matz  <matz@suse.de>
9928
9929         PR debug/34895
9930         * dwarf2out.c (force_type_die): Use modified_type_die instead of
9931         gen_type_die.
9932
9933 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
9934
9935         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
9936         malloc result type.
9937
9938 2008-01-23 Anatoly Sokolov <aesok@post.ru>
9939
9940         * config/avr/avr.c (avr_current_arch): New variable.
9941         (avr_arch_types): Add 'avr31' and 'avr51' entries.
9942         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
9943         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
9944         (avr_override_options): Init 'avr_current_arch'. 
9945         (base_arch_s): Move from here...
9946         * config/avr/avr.h (base_arch_s): ... here. Add new members 
9947         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
9948         'mega' to 'have_jmp_call'.
9949         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
9950         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
9951         macros.
9952         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
9953         architectures.
9954         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
9955         MULTILIB_MATCHES): (Ditto.).
9956
9957 2008-01-23  Richard Guenther  <rguenther@suse.de>
9958
9959         PR middle-end/31529
9960         * cgraphunit.c (cgraph_reset_node): Always mark the node
9961         not reachable if it is not queued already.
9962
9963 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
9964
9965         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
9966         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
9967         (cputype_selected): New static variable.
9968         (bfin_handle_option): Set it if -mcpu is used.
9969         (override_option): Select default set of workarounds if no cpu type
9970         selected on the command line.
9971         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
9972
9973         From  Michael Frysinger  <michael.frysinger@analog.com>
9974         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
9975         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
9976
9977         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
9978         for bf547, bf523, bf524, and bf526.
9979         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
9980         bf526.
9981         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
9982         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
9983         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
9984         __ADSPBF547__ and __ADSPBF54x__ for bf547.
9985         * doc/invoke.texi (Blackfin Options): Document that
9986         -mcpu now accept bf547, bf523, bf524, and bf526.
9987
9988 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
9989
9990         PR rtl-optimization/34628
9991         * combine.c (try_combine): Stop and undo after the first combination
9992         if an autoincrement side-effect on the first insn has effectively
9993         been lost.
9994
9995 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
9996
9997         PR target/34529
9998         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
9999         Offset addresses are not valid for Altivec or paired float modes.
10000
10001 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
10002
10003         PR c++/34607
10004         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
10005         if DECL_INITIAL (decl) is error_mark_node.
10006
10007         PR c++/34914
10008         * c-common.c (handle_vector_size_attribute): Only allow
10009         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
10010         the same way as pointer, array etc. types.
10011         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
10012
10013         PR c++/34917
10014         * tree.c (build_type_attribute_qual_variant): Call
10015         build_qualified_type if attributes are equal, but quals are not.
10016
10017 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10018
10019         PR 32102
10020         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
10021         * flags.h (warn_strict_aliasing): Remove.
10022         (warn_strict_overflow): Remove.
10023         * opts.c (warn_strict_aliasing): Remove.
10024         (warn_strict_overflow): Remove.
10025         * c-opts.c (c_common_handle_option): -Wall only sets
10026         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
10027         (c_common_post_options): Give default values to -Wstrict-aliasing
10028         and -Wstrict-overflow if they are uninitialized.
10029         * common.opt (Wstrict-aliasing): Specify Var and Init.
10030         (Wstrict-overflow): Likewise.
10031
10032 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
10033
10034         PR rtl-optimization/26854
10035         PR rtl-optimization/34400
10036         PR rtl-optimization/34884
10037         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
10038         DF_RD->gen.
10039         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
10040         (df_rd_bb_info.expanded_lr_out): Deleted
10041         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
10042         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
10043         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
10044         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
10045         Removed code to allocate, initialize or free expanded_lr_out.
10046         (df_rd_bb_local_compute_process_def): Restructured to make more
10047         understandable.
10048         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
10049         sets if the sets are being trimmed.
10050
10051 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
10052
10053         PR bootstrap/32287
10054         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
10055         (as_vers): Likewise.
10056         * configure: Regenerated.
10057
10058 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10059
10060         PR middle-end/33092
10061         * tree-pass.h (pass_build_alias): New pass.
10062         * tree-ssa-alias.c (gate_build_alias): New.
10063         (pass_build_alias): New.
10064         * passes.c (init_optimization_passes): Add pass_build_alias after
10065         pass_create_structure_vars.
10066
10067 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
10068
10069         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
10070         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
10071         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
10072         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
10073         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
10074         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
10075         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
10076         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
10077         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
10078         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
10079         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
10080         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
10081         * config/s390/s390.md (FP_ALL): New mode iterator.
10082         (_d): New mode attribute.
10083         ("*signbit<mode>2>"): Changed mode of first operand.
10084         ("isinf<mode>2"): Changed mode of first operand.
10085         ("*TDC_insn"): Adaptation for DFP modes.
10086
10087 2008-01-22  Ben Elliston  <bje@au.ibm.com>
10088
10089         * tree.c (check_qualified_type): Improve function description.
10090
10091 2008-01-21  Jason Merrill  <jason@redhat.com>
10092
10093         PR c++/34196
10094         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
10095         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
10096         if it is set.
10097
10098 2008-01-21  DJ Delorie  <dj@redhat.com>
10099
10100         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
10101         return zero.
10102
10103 2008-01-21  Richard Guenther  <rguenther@suse.de>
10104
10105         PR middle-end/34856
10106         * tree-cfg.c (verify_expr): Allow all invariant expressions
10107         instead of just constant class ones as reference argument.
10108         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
10109         like any other constant.
10110         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
10111
10112 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
10113
10114         * regmove.c (fixup_match_1): Update call crossed frequencies.
10115
10116 2008-01-21  Richard Guenther  <rguenther@suse.de>
10117
10118         PR c/34885
10119         * tree-inline.c (setup_one_parameter): Deal with mismatched
10120         types using a VIEW_CONVERT_EXPR.
10121
10122 2008-01-21  Alon Dayan  <alond@il.ibm.com>
10123             Olga Golovanevsky  <olga@il.ibm.com>
10124         
10125         PR tree-optimization/34701
10126         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
10127         when the structure size is not a power of 2.
10128
10129 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
10130
10131         * doc/install.texi: Add doc for --enable-checking=df.
10132         
10133 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10134
10135         PR rtl-optimization/34808
10136         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
10137
10138 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
10139
10140         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
10141         input.
10142
10143 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
10144
10145         PR rtl-optimization/26854
10146         PR rtl-optimization/34400
10147         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
10148         DF_RD->gen.
10149         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
10150         (df_rd_bb_info.expanded_lr_out): New.
10151         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
10152         * loop_iv.c (iv_analysis_loop_init): Ditto.
10153         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
10154         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
10155         Added code to allocate, initialize or free expanded_lr_out.
10156         (df_rd_bb_local_compute_process_def): Restructured to make
10157         more understandable.
10158         (df_rd_confluence_n): Add code to do nothing with fake edges and
10159         code to no apply invalidate_by_call sets if the sets are being trimmed.
10160         (df_lr_local_finalize): Renamed to df_lr_finalize.
10161         (df_live_local_finalize): Renamed to df_live_finalize.
10162
10163 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
10164
10165         PR target/34831
10166         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
10167         deciding whether to use reciprocal instructions.
10168
10169 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
10170
10171         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
10172         dwarf2out_note_section_used if cold_text_section is NULL.
10173
10174 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
10175
10176         PR gcov-profile/34610
10177         * tree-cfg.c (make_edges): Mark both outgoing edges from
10178         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
10179         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
10180         from OMP_FOR and OMP_CONTINUE outgoing edges.
10181
10182         * tree-profile.c (tree_profiling): Return early if
10183         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
10184         at the end.
10185         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
10186         from cfun to child_cfun.
10187         * function.h (struct function): Add after_tree_profile bit.
10188
10189 2008-01-19 Anatoly Sokolov <aesok@post.ru>
10190
10191         * config/avr/avr.S (_exit): Disable interrupt.
10192
10193 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
10194             Steven Bosscher  <stevenb.gcc@gmail.com>
10195
10196         PR rtl-optimization/26854
10197         PR rtl-optimization/34400
10198         * df-problems.c (df_live_scratch): New scratch bitmap.
10199         (df_live_alloc): Allocate df_live_scratch when doing df_live.
10200         (df_live_reset): Clear the proper bitmaps.
10201         (df_live_bb_local_compute): Only process the artificial defs once
10202         since the order is not important.
10203         (df_live_init): Init the df_live sets only with the variables
10204         found live by df_lr.
10205         (df_live_transfer_function): Use the df_lr sets to prune the
10206         df_live sets as they are being computed.  
10207         (df_live_free): Free df_live_scratch.
10208
10209 2008-01-18  Ian Lance Taylor  <iant@google.com>
10210
10211         * common.opt: Add fmerge-debug-strings.
10212         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
10213         flag_merge_debug_strings rather than flag_merge_constants.
10214         * doc/invoke.texi (Option Summary): Mention
10215         -fmerge-debug-strings.
10216         (Debugging Options): Document -fmerge-debug-strings.
10217
10218 2008-01-18  Ian Lance Taylor  <iant@google.com>
10219
10220         PR c++/33407
10221         * tree.h (DECL_IS_OPERATOR_NEW): Define.
10222         (struct tree_function_decl): Add new field operator_new_flag.
10223         * tree-inline.c (expand_call_inline): When inlining a call to
10224         operator new, force the return value to go into a variable, and
10225         set DECL_NO_TBAA_P on that variable.
10226         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
10227
10228 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
10229
10230         PR debug/34484
10231         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
10232         DWARF2_DEBUGGING_INFO.
10233         (dwarf2out_note_section_used): Ditto.  Add prototype.
10234         (have_multiple_function_sections, text_section_used,
10235         cold_text_section_used, *cold_text_sections): Move declarations
10236         before their uses.
10237
10238 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
10239
10240         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
10241         field and add signal_ra.
10242         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
10243         assignments to frame state pc.  Move end of stack check after
10244         MD_FALLBACK_FRAME_STATE_FOR.
10245         (uw_update_context_1): Use frame state signal_regs if set, instead
10246         of checking signal_frame flag.
10247         (uw_update_context): Use frame state signal_ra if set.
10248         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
10249         * config/xtensa/linux-unwind.h: New file.
10250
10251 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
10252
10253         * modulo-sched.c (get_sched_window): Fix comment typo.
10254
10255 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
10256
10257         PR tree-optimization/34648
10258         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
10259
10260 2008-01-17  Anatoly Sokolov <aesok@post.ru>
10261
10262         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
10263         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
10264
10265 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
10266
10267         PR rtl-optimization/34400
10268         * df-core.c (df_worklist_dataflow_overeager,
10269         df_worklist_dataflow_doublequeue): New functions.
10270         (df_worklist_dataflow): Two different worklist solvers.
10271         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
10272         New param.
10273
10274 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10275
10276         PR testsuite/34821
10277         * doc/invoke.texi: Document the dependence on pthread for fopenmp
10278         and ftree-parallelize-loops.
10279
10280 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
10281
10282         PR rtl-optimization/34826
10283         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
10284
10285 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
10286
10287         * global.c (find_reg): Mark the eh regs as used if necessary.
10288         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
10289         * ra.h (struct allocno): no_eh_reg field added.  Changed
10290         no_stack_reg type to bitfield.
10291
10292 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
10293
10294         * tree.c (substitute_in_expr): Add missing 'break'.
10295
10296 2008-01-17  Richard Guenther  <rguenther@suse.de>
10297
10298         PR tree-optimization/34825
10299         * tree-ssa-math-opts.c (is_division_by): Do not recognize
10300         x / x as division to handle.
10301
10302 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10303
10304         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
10305         "-pthread" is specified.
10306         * pa-hpux11.h (LIB_SPEC): Likewise.
10307
10308 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
10309             Peter Bergner  <bergner@vnet.ibm.com>
10310
10311         PR rtl-optimization/33796
10312         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
10313
10314 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10315
10316         PR libgfortran/34699
10317         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
10318         static links.
10319         * pa-hpux10.h (LINK_SPEC): Likewise.
10320         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
10321
10322 2008-01-16  Richard Guenther  <rguenther@suse.de>
10323
10324         PR middle-end/32628
10325         * fold-const.c (fold_convert_const_int_from_int): Do not
10326         set overflow if that occured only because of a sign extension
10327         change when converting from/to a sizetype with the same
10328         precision and signedness.
10329
10330 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
10331
10332         PR debug/34249
10333         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
10334         location address to the correct place.  Update copyright year.
10335
10336 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10337
10338         * lambda-code.c (lambda_transform_legal_p): Handle the case of
10339         no dependences in the dependence_relations vector.
10340
10341 2008-01-16  Jan Hubicka  <jh@suse.cz>
10342
10343         PR rtl-optimization/31396
10344         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
10345         * cfg.c (dump_reg_info): Print it.
10346         * regs.h (struct reg_info_t): add freq_calls_crossed.
10347         (REG_FREQ_CALLS_CROSSED): New macro.
10348         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
10349         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
10350         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
10351         regmove_optimize): Update call crossed frequencies.
10352         * local-alloc.c (struct qty): Add freq_calls_crossed.
10353         (alloc_qty): Copute freq_calls_crossed.
10354         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
10355         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
10356         * ra.h (struct allocno): Add freq_calls_crossed.
10357
10358 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10359
10360         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
10361         libgomp when compiling with ftree-parallelize-loops.
10362         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
10363
10364 2008-01-16  Richard Guenther  <rguenther@suse.de>
10365
10366         PR tree-optimization/34769
10367         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
10368         * tree.c (int_cst_value): Instead make this function more
10369         permissive in what it accepts as valid input.  Document this
10370         function always sign-extends the value.
10371
10372 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
10373             Richard Guenther  <rguenther@suse.de>
10374
10375         PR c/34668
10376         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
10377         (gimple_fold_indirect_ref_rhs): ... this.
10378         (gimple_fold_indirect_ref): New function with foldings
10379         that preserve lvalueness.
10380         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
10381         * tree-flow.h (gimple_fold_indirect_ref): Declare.
10382         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
10383         to fold an INDIRECT_REF, fall back to the old use of
10384         fold_indirect_ref_1.
10385
10386 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10387
10388         * tree-data-ref.c (subscript_dependence_tester_1): Call 
10389         free_conflict_function.
10390         (compute_self_dependence): Same.
10391
10392 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
10393
10394         PR debug/34249
10395         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
10396         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
10397         function global.
10398         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
10399         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
10400         for DWARF2_UNWIND_INFO targets.
10401
10402 2008-01-16  Richard Guenther  <rguenther@suse.de>
10403
10404         PR c/34768
10405         * c-typeck.c (common_pointer_type): Do not merge inconsistent
10406         type qualifiers for function types.
10407
10408 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
10409
10410         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
10411         loop_iterator li from previous commit.
10412
10413 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
10414
10415         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
10416
10417 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
10418
10419         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
10420         (parallelize_loops): Don't parallelize irreducible components.
10421
10422 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10423
10424         PR c++/24924
10425         * c-opts (c_common_post_options): Do not enable CPP
10426         flag_pedantic_errors by default.
10427         
10428 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
10429
10430         PR rtl-optimization/31944
10431         * cse.c (remove_pseudo_from_table): New function.
10432         (merge_equiv_classes): Use above function to remove pseudo-registers.
10433         (invalidate): Likewise.
10434
10435 2008-01-13  Richard Guenther  <rguenther@suse.de>
10436
10437         PR middle-end/34601
10438         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
10439         instead of TYPE_MODE to deal with calls from expand_one_error_var.
10440
10441 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
10442
10443         * gcse.c (cprop_jump): Call validate_unshare_change instead of
10444         validate_change to unshare the source of the PC set.
10445
10446 2008-01-12  Jan Hubicka  <jh@suse.cz>
10447
10448         PR middle-end/32135
10449         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
10450         references above array bounds.  This might trigger bounds checks for
10451         pointers to arrays.
10452
10453 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
10454
10455         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
10456         new_replaceable_dependencies.
10457
10458 2008-01-12  Doug Kwan  <dougkwan@google.com>
10459
10460         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
10461         instead of OPT_Wreturn_type in warning due to ignored return type
10462         qualifiers.
10463         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
10464         options included in -Wextra.
10465         * c.opt: New option -Wignored_qualifiers.
10466         * doc/invoke.texi (Warning Options, -Wextra): Add new option
10467         -Wignore_qualifiers.
10468         (-Wignored-qualifiers): Document.
10469         (-Wreturn-type): Remove description of functionality now handled
10470         by -Wignored-qualifiers.
10471
10472 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
10473
10474         PR ada/33788
10475         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
10476         NOP_EXPR if it is between integral types with the same precision.
10477
10478 2008-01-12  Jan Hubicka  <jh@suse.cz>
10479
10480         PR other/28023
10481         * invoke.texi (max-inline-recursive-depth): Fix default value.
10482
10483 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
10484
10485         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
10486         correct type.
10487
10488 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
10489         
10490         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
10491         
10492 2008-01-11  James E. Wilson  <wilson@specifix.com>
10493
10494         PR target/26015
10495         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
10496
10497 2008-01-11  Anatoly Sokolov <aesok@post.ru>
10498
10499         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
10500         save/restore frame pointer register and don't use 'call-prologues' 
10501         optimization in function with "OS_task" attribute.
10502
10503 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
10504
10505         PR middle-end/31309
10506         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
10507         when copying to memory.
10508
10509 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
10510
10511         PR rtl-optimization/30905
10512         * cfgcleanup.c: Include dce.h
10513         (crossjumps_occured): New global variable.
10514         (try_crossjump_bb): Exit loop after finding a fallthru edge.
10515         If something changed, set crossjumps_occured to true.
10516         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
10517         Don't add/remove fake edges to exit here...
10518         (cleanup_cfg): ...but do it here, when crossjumping.
10519         Run a fast DCE when successful crossjumps occured in the latest
10520         iteration of try_optimize_cfg.
10521
10522 2008-01-11  Richard Guenther  <rguenther@suse.de>
10523
10524         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
10525         (struct vn_unary_op_s): Likewise.
10526         (vn_reference_insert): Free old reference on hash collision.
10527
10528 2008-01-10  Raksit Ashok  <raksit@google.com>
10529
10530         PR rtl-optimization/27971
10531         * combine.c (find_split_point): Split PLUS expressions which are
10532         inside a MEM rtx, and whose first operand is complex.
10533
10534 2008-01-10  DJ Delorie  <dj@redhat.com>
10535
10536         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
10537         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
10538         (m32c_hard_regno_ok): Call the underlying function.
10539
10540 2008-01-10  Richard Guenther  <rguenther@suse.de>
10541
10542         PR middle-end/34683
10543         * tree-cfg.c (tree_merge_blocks): Do not go through the
10544         full-blown folding and stmt updating path if we just deal
10545         with virtual operands.
10546         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
10547         test for abnormal SSA_NAMEs.
10548
10549 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
10550
10551         PR middle-end/34641
10552         * reload.c (push_reload): Add assertions.  All constants from
10553         reg_equiv_constant should have been used for replacing the respective
10554         pseudo earlier.
10555         (find_reloads_address): Invoke find_reloads_address_part for
10556         constant taken from the reg_equiv_constant array.
10557
10558 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
10559
10560         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
10561         field (valnum) the first in the struct.  Replace bools with
10562         unit bit fields.
10563
10564 2008-01-10  Richard Guenther  <rguenther@suse.de>
10565
10566         PR tree-optimization/34651
10567         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
10568         types and ordering for masking and converting.
10569
10570 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
10571
10572         PR tree-optimization/34017
10573         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
10574         also for PHI_NODE expressions.
10575
10576 2008-01-09  Jan Hubicka  <jh@suse.cz>
10577
10578         PR tree-optimization/34708
10579         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
10580         based on number of case labels.
10581         (init_inline_once): Remove switch_cost.
10582         * tree-inline.h (eni_weights_d): Remove switch_cost.
10583
10584 2008-01-09  Richard Guenther  <rguenther@suse.de>
10585         Andrew Pinski  <andrew_pinski@playstation.sony.com>
10586
10587         PR middle-end/30132
10588         * gimplify.c (gimplify_cond_expr): Do not create an addressable
10589         temporary if an rvalue is ok or an lvalue is not required.
10590
10591 2008-01-09  Richard Guenther  <rguenther@suse.de>
10592
10593         PR middle-end/34458
10594         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
10595         adjust return type.
10596
10597 2008-01-09  Richard Guenther  <rguenther@suse.de>
10598
10599         PR middle-end/34679
10600         * tree.c (host_integerp): Check for sizetype only if the
10601         type is an integer type.
10602
10603 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
10604
10605         PR debug/26364
10606         * opts.c (decode_options): Disable inlining of functions called
10607         once if not in unit-at-a-time mode.
10608
10609 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
10610
10611         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
10612
10613 2008-01-08  Richard Guenther  <rguenther@suse.de>
10614
10615         PR middle-end/31863
10616         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
10617         out early if the result will be unused.
10618
10619 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
10620
10621         PR target/34709
10622         Revert:
10623
10624         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
10625         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
10626         for TARGET_RECIP.       
10627         
10628 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
10629         
10630         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
10631         for vectorization tuned.
10632         
10633 2008-01-08  Richard Guenther  <rguenther@suse.de>
10634
10635         PR tree-optimization/34683
10636         * tree-ssa-operands.c (operand_build_cmp): Export.
10637         * tree-ssa-operands.h (operand_build_cmp): Declare.
10638         * tree-vn.c (vuses_compare): Remove.
10639         (sort_vuses): Use operand_build_cmp.
10640         (sort_vuses_heap): Likewise.
10641         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
10642         to re-use old VEC if available.  Do not sort already sorted VUSEs.
10643         (vdefs_to_vec): Do not sort already sorted VDEFs.
10644
10645 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
10646
10647         PR middle-end/34694
10648         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
10649
10650 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
10651
10652         PR target/34702
10653         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
10654         limitations of reciprocal sequences on x86 targets.
10655
10656 2008-01-08  Richard Guenther  <rguenther@suse.de>
10657
10658         PR tree-optimization/34683
10659         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
10660
10661 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
10662
10663         PR target/34622
10664         * config/darwin.c (darwin_mergeable_string_section): Don't use
10665         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
10666
10667 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
10668
10669         PR target/34682
10670         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
10671         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
10672         predicates of op0 and op1 to register_operand.
10673         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
10674         expander using X87MODEF mode iterator.  Change predicates of
10675         op0 and op1 to register_operand.
10676         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
10677         corresponding patterns and macroize using MODEF macro.  Change
10678         predicates of op0 and op1 to register_operand and remove
10679         "m" constraint. Disparage "r" alternative with "!".
10680         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
10681         macroize using X87MODEF macro.  Change predicates of op0 and op1
10682         to register_operand and remove "m" constraint.  Disparage "r"
10683         alternative with "!".
10684         (absneg splitter with memory operands): Remove.
10685         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
10686         patterns and macroize using X87MODEF mode iterator.
10687         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
10688         Change predicate of op1 to register_operand.
10689         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
10690         for memory operands.
10691
10692 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
10693
10694         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
10695
10696 2008-01-07  Richard Guenther  <rguenther@suse.de>
10697
10698         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
10699         fields.
10700
10701 2008-01-07  Richard Guenther  <rguenther@suse.de>
10702
10703         PR tree-optimization/34683
10704         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
10705         VOPs of the needed size to save memory.  Use VEC_quick_push
10706         to save compile-time.
10707         (vdefs_to_vec): Likewise.
10708
10709 2008-01-07  Sa Liu  <saliu@de.ibm.com>
10710
10711         * config/spu/spu.md (divdf3): Genetate inline code for double
10712         division.  The implementation doesn't handle INF or NAN, therefore it
10713         only applies when -ffinite-math-only is given.
10714
10715 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
10716
10717         PR libstdc++/34680
10718         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
10719         * doc/cpp.texi ([Common Predefined Macros]): Document.
10720
10721 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
10722
10723         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
10724         order to use commutative addition instead of subtraction.
10725
10726 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10727             Mircea Namolaru  <namolaru@il.ibm.com>
10728             Vladimir Yanovsky  <yanov@il.ibm.com>
10729             Revital Eres  <eres@il.ibm.com>
10730
10731         PR tree-optimization/34263
10732         * tree-outof-ssa.c (process_single_block_loop_latch,
10733         contains_tree_r): New functions.
10734         (analyze_edges_for_bb): Call process_single_block_loop_latch
10735         function to empty single-basic-block latch block if possible.
10736
10737 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
10738
10739         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
10740         for TARGET_RECIP.
10741         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
10742
10743 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
10744
10745         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
10746
10747 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
10748
10749         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
10750
10751 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
10752
10753         PR tree-optimization/34618
10754         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
10755         flag from T.
10756
10757 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
10758
10759         PR target/34673
10760         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
10761         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
10762         Update copyright year.
10763
10764         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
10765         Update copyright year.
10766         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
10767         using NR fixup.
10768
10769 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
10770
10771         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
10772         edge does not point to current bb before changing need_assert.
10773
10774 2008-01-04  Richard Guenther  <rguenther@suse.de>
10775
10776         PR middle-end/34029
10777         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
10778         for verifying purposes if they are is_gimple_min_invariant.
10779
10780 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
10781
10782         PR tree-optimization/34448
10783         PR tree-optimization/34465
10784         * gimplify.c (gimplify_init_constructor): Add new parameter
10785         notify_temp_creation.  Use it.
10786         (gimplify_modify_expr_rhs): Take volatiles into account when
10787         optimizing constructors.
10788         Do not optimize constructors if gimplify_init_constructor will dump to
10789         memory.
10790         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
10791         * gcc.c-torture/compile/pr34448.c: New.
10792
10793 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
10794
10795         PR gcov-profile/34609
10796         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
10797         return_slot if result is TREE_ADDRESSABLE.
10798
10799 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
10800
10801         * config/mips/mips.md (sqrt_condition): Tweak comment.
10802         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
10803
10804 2008-01-03  Tom Tromey  <tromey@redhat.com>
10805
10806         PR c/34457
10807         * c-common.c (c_type_hash): Handle VLAs.
10808
10809 2008-01-03  Jan Hubicka  <jh@suse.cz>
10810
10811         PR tree-optimization/31081
10812         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
10813         0 when inlining and not inlining to first basic block.
10814         (remap_decl): When var is initialized to 0, don't set default_def.
10815         (expand_call_inline): Set entry_bb.
10816         * tree-inline.h (copy_body_data): Add entry_bb.
10817
10818 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
10819
10820         PR c++/34619
10821         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
10822         before returning.
10823
10824         PR tree-optimization/29484
10825         * tree-inline.c (inline_forbidden_p_2): New function.
10826         (inline_forbidden_p): Disallow inlining if some static var
10827         has an address of a local LABEL_DECL in its initializer.
10828         * doc/extend.texi (Labels as Values): Document &&foo behaviour
10829         vs. inlining.
10830
10831 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
10832
10833         PR tree-optimization/34635
10834         * tree-data-ref.c (add_other_self_distances): Make sure that the
10835         evolution step is constant.
10836
10837 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
10838
10839         PR middle-end/34608
10840         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
10841
10842 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
10843
10844         * tree-sra.c (scalarize_init): Insert the generate_element_init
10845         statements after the generate_element_zero statements.
10846
10847 2008-01-02  Richard Guenther  <rguenther@suse.de>
10848
10849         PR middle-end/34093
10850         PR middle-end/31976
10851         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
10852         for very large number of operands instead of ICEing.
10853
10854 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
10855
10856         PR target/34013
10857         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
10858         while stack probing.
10859
10860 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
10861
10862         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
10863         in C++0x mode.
10864
10865 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
10866
10867         PR libmudflap/26442
10868         * tree-mudflap.c (mx_register_decls): Guard warning by
10869         !DECL_ARTIFICIAL check.
10870
10871 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
10872
10873         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
10874         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
10875         sse5_perm<mode>): Fix constraints.