OSDN Git Service

2008-05-28 Andreas Krebbel <krebbel1@de.ibm.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
2
3         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
4         letters defined.
5
6         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
7         s390_contiguous_bitmask_p, s390_symref_operand_p,
8         s390_check_symref_alignment, s390_reload_larl_operand,
9         s390_reload_symref_address): New functions.
10         (s390_branch_condition_mnemonic): Support compare and branch
11         instructions.
12         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
13         and 'W' constraints.
14         (s390_secondary_reload): Add secondary reloads for unaligned
15         symbol refs or symbol refs to floating point or QI/TI mode
16         integer values.
17         (legitimate_address_p): Accept symbol references as addresses.
18         (s390_expand_insv): Use rotate and insert selected bits
19         instruction for insv when building for z10.
20         (print_operand_address): Handle symbol ref addresses.
21         (print_operand): Output modifier 'c' added for signed byte
22         values.
23         (s390_encode_section_info): Mark symbol refs with
24         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
25
26         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
27         (length attribute): RRF, RRR have 4 byte length.
28         (FPALL, INTALL): New mode iterators added.
29         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
30         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
31         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
32         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
33         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
34         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
35         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
36         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
37         instructions.
38         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
39         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
40         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
41         reload<INTALL:mode><P:mode>_toreg_z10,
42         reload<FPALL:mode><P:mode>_tomem_z10,
43         reload<FPALL:mode><P:mode>_toreg_z10,
44         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
45         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
46         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
47         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
48         definition.
49         (movmem, clrmem, cmpmem): New splitters added.
50
51         * config/s390/predicates.md (larl_operand): Use
52         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
53         SYMBOL_REF_ALIGN1_P.
54         (s390_signed_integer_comparison,
55         s390_unsigned_integer_comparison): New predicates.
56
57         * config/s390/s390-protos.h (s390_check_symref_alignment,
58         s390_contiguous_bitmask_p, s390_reload_larl_operand,
59         s390_reload_symref_address,
60         s390_compare_and_branch_condition_mask): Prototypes added.
61
62         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
63         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
64         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
65
66 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
67
68         * config/s390/s390.c (z10_cost): New cost function for z10.
69         (s390_handle_arch_option, override_options): Support
70         -march=z10 switch.
71         (s390_issue_rate): Adjust issue rate for z10.
72         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
73         (processor_flags): Add PF_Z10.
74         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
75         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
76         * gcc/config.gcc: Add z10.
77
78 2008-05-28  Richard Guenther  <rguenther@suse.de>
79
80         PR tree-optimization/36291
81         * tree-flow. h (struct gimple_df): Remove var_anns member.
82         * tree-flow-inline.h (gimple_var_anns): Remove.
83         (var_ann): Simplify.
84         * tree-dfa.c (create_var_ann): Simplify.
85         (remove_referenced_var): Clear alias info from var_anns of globals.
86         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
87         (delete_tree_ssa): Clear alias info from var_anns of globals.
88         Do not free var_anns.
89         (var_ann_eq): Remove.
90         (var_ann_hash): Likewise.
91
92 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
93
94         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
95         and loongson2f entries.
96         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
97         * config/mips/mips.h (processor_type): Add Loongson-2E
98         and Loongson-2F entries.
99         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
100         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
101         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
102         * doc/invoke.texi (MIPS Options): Document loongson2e
103         and loongson2f processor names.
104
105 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
106
107         PR target/35767
108         PR target/35771
109         * config/i386/i386.c (ix86_function_arg_boundary): Use
110         alignment of canonical type.
111         (ix86_expand_vector_move): Check unaligned memory access for
112         all SSE modes.
113
114 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
115
116         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
117         Moved to the front of file.
118
119 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
120             H.J. Lu  <hongjiu.lu@intel.com>
121
122         * dwarf2out.c (current_fde): New.
123         (add_cfi): Use it.
124         (lookup_cfa:): Likewise.
125         (dwarf2out_end_epilogue): Likewise.
126         (dwarf2out_note_section_used): Likewise.
127
128 2008-05-27  Michael Matz  <matz@suse.de>
129
130         PR c++/27975
131         * c.opt (Wenum-compare): New warning option.
132         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
133
134 2008-05-27  Michael Matz  <matz@suse.de>
135
136         PR middle-end/36326
137         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
138         non-BLKmode types.
139         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
140         into memory as tail calls.
141
142 2008-05-27  Richard Guenther  <rguenther@suse.de>
143
144         PR tree-optimization/36339
145         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
146         pointers cause all addressable variables to be call clobbered.
147
148 2008-05-27  Richard Guenther  <rguenther@suse.de>
149
150         PR tree-optimization/36245
151         * tree-ssa-address.c (add_to_parts): Deal with non-pointer
152         bases.
153
154 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
155
156         * config/s390/s390.md: Replace all occurences of the 'm'
157         constraint with 'RT'.
158
159 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
160
161         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
162         definitions added.
163         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
164         "*movdi_64".
165         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
166         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
167         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
168
169 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
170
171         * reload.c: (find_reloads): Skip alternatives according to the
172         "enabled" attribute. Constify the constraint variable.
173         * recog.c (get_attr_enabled): Add default implementation.
174         (extract_insn): Set the alternative_enabled_p array
175         in the recog_data struct.
176         (preprocess_constraints, constrain_operands): Skip
177         alternatives according to the "enabled" attribute
178         * recog.h (struct recog_data): New field alternative_enabled_p.
179         (skip_alternative): New inline function.
180         * regclass.c: (record_operand_costs): Check the "enabled"
181         attribute.
182         (record_reg_classes): Skip alternative according to the
183         "enabled" attribute.
184
185         * doc/md.texi: Add documention for the "enabled" attribute.
186
187 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
188
189         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
190         * postreload.c (reload_cse_simplify_operands): Replace 'm'
191         constraint with TARGET_MEM_CONSTRAINT.
192         * recog.c (asm_operand_ok, preprocess_constraints,
193         constrain_operands): Likewise.
194         * regclass.c (record_reg_classes): Likewise.
195         * reload.c (find_reloads, alternative_allows_const_pool_ref):
196         Likewise.
197         * reload1.c (maybe_fix_stack_asms): Likewise.
198         * stmt.c (parse_output_constraint, parse_input_constraint):
199         Likewise.
200         * recog.h: Adjust comment.
201         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
202         * genoutput.c (note_constraint): Don't emit error for 'm'
203         constraint.
204         * doc/md.texi: Add a note to description of 'm' constraint.
205         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
206
207 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
208
209         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
210         that the bitfield is of integral type before testing its precision.
211
212 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
213             Sa Liu  <saliu@de.ibm.com> 
214
215         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
216         __modti3, __udivti3, __umodti3 and __udivmodti4.
217         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
218         that implement TImode mul and div functions.
219         * config/spu/multi3.c: New. Implement __multi3.
220         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
221         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
222         functions on SPU.
223
224 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
225
226         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
227         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
228         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
229         tls_sysv_suffix): New mode and mode attribute iterators.
230         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
231         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
232         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
233         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
234         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
235         iterators.
236
237 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
238
239         PR tree-optimization/36329
240         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
241         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
242         * cgraphbuild.c (initialize_inline_failed): Use the latter
243         macro in lieu of the former.
244         * ipa-inline.c (cgraph_mark_inline): Likewise.
245         (cgraph_decide_inlining_of_small_function): Likewise.
246         (cgraph_decide_inlining): Likewise.
247         (cgraph_decide_inlining_incrementally): Likewise.
248
249 2008-05-26  Tristan Gingold  <gingold@adacore.com>
250             Anatoly Sokolov  <aesok@post.ru>
251
252         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
253         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
254         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
255         optimization for 'avr6' architecture.
256
257 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
258
259         PR target/34932
260         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
261
262 2008-05-26  Richard Guenther  <rguenther@suse.de>
263
264         * tree-ssa-sccvn.c (expr_has_constants): Declare.
265         (visit_reference_op_load): Initialize VN_INFO->has_constants
266         properly.
267
268 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
269
270         PR middle-end/36253
271         * caller-save.c (insert_restore): Verify alignment of spill
272         space.
273         (insert_save): Likewise.
274
275         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
276
277         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
278         (STACK_SLOT_ALIGNMENT): Likewise.
279
280         * function.c (LOCAL_ALIGNMENT): Removed.
281         (get_stack_local_alignment): New.
282         (assign_stack_local): Use it.  Set alignment on stack slot.
283         (assign_stack_temp_for_type): Use get_stack_local_alignment.
284
285         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
286         (STACK_SLOT_ALIGNMENT): New.
287
288         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
289         stack slot in XFmode.
290
291         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
292
293 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
294
295         PR/36321
296         * config/i386/i386.md (allocate_stack_worker_64): Make sure
297         argument operand in rax isn't removed.
298
299 2008-05-26  Richard Guenther  <rguenther@suse.de>
300
301         PR middle-end/36300
302         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
303         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
304
305 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
306
307         PR bootstrap/36331
308         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
309
310 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
311
312         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
313         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
314
315 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
316
317          * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
318         build a trampoline if we don't want one.
319         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
320         return zero for nested functions if we don't want a trampoline.
321
322 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
323
324         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
325
326 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
327
328         PR fortran/18428
329         * c.opt: Removed undocumented option '-lang-fortran'.
330         * c-common.h: Removed global variable 'lang_fortran'.
331         * c-opts.c (c_common_handle_option): Removed code to handle
332         option '-lang-fortran'. Updated includes.
333         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
334         definition of '__GFORTRAN__'.
335         (define__GNUC__): Reimplemented to use BASEVER and
336         cpp_define_formatted.
337         (builtin_define_with_value_n): Removed.
338         * c-incpath.h: Renamed to ...
339         * incpath.h: ... this.
340         * c-incpath.c: Renamed to ...
341         * incpath.c: ... this. Updated includes.
342         * fix-header.c: Updated includes.
343         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
344         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
345         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
346
347 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
348
349         * tree.h: Update the table of flags used on tree nodes.
350         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
351         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
352         (FORCED_LABEL): Add access check.
353         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
354         (ASM_INPUT_P): Likewise.
355         (ASM_VOLATILE_P): Likewise.
356         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
357         (OMP_SECTION_LAST): Access private_flag directly.
358         (OMP_RETURN_NOWAIT): Likewise.
359         (OMP_PARALLEL_COMBINED): Likewise.
360         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
361         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
362         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
363         deprecated_flag directly.
364
365 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
366
367         * final.c (frame_pointer_needed): Removed.
368         * flags.h (frame_pointer_needed): Likewise.
369
370         * function.h (rtl_data): Add frame_pointer_needed.
371         (frame_pointer_needed): New.
372
373 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
374
375         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
376
377 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
378
379         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
380         SRC is a REG.
381
382 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
383
384         * c-common.c (strip_array_types): Move function to..
385         * tree.c: ..here.
386         (get_inner_array_type): Delete.
387         * c-common.h (strip_array_types): Move declaration to..
388         * tree.h: ..here.
389         (get_inner_array_type): Delete.
390         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
391         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
392         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
393         * config/pa/pa.c (emit_move_sequence): Likewise.
394
395 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
396
397         * config/i386/i386.md (*sse_prologue_save_insn): Set length
398         attribute to 34.
399
400 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
401
402         * function.c: Include target hook for nonlocal_goto frame value.
403
404 2008-05-24  Richard Guenther  <rguenther@suse.de>
405
406         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that
407         a scalar variable can be only accessed through a pointer
408         or a union.
409
410 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
411
412         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
413         * doc/extend.texi: Likewise.
414
415 2008-05-23  DJ Delorie  <dj@redhat.com>
416
417         * config/m32c/jump.md (untyped_call): Add.
418
419         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
420         for A24 to PSImode.
421         (m32c_address_cost): Detail costs for indirect offsets.
422
423 2008-05-23  Rafael Espindola  <espindola@google.com>
424
425         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
426         if a node is a SUBREG.
427         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
428         is a SUBREG.
429
430 2008-05-23  Paul Brook  <paul@codesourcery.com>
431             Carlos O'Donell  <carlos@codesourcery.com>
432
433         * doc/extend.texi: Clarify use of __attribute__((naked)).
434         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
435         * target.h (gcc_target): Add allocate_stack_slots_for_args.
436         * function.c (use_register_for_decl): Use
437         targetm.calls.allocate_stack_slots_for_args.
438         * target-def.h (TARGET_CALLS): Add 
439         TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
440         * config/arm/arm.c (arm_allocate_stack_slots_for_args): 
441         New function.
442         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
443
444 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
445
446         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
447
448 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
449
450         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
451         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
452         is only rounded once.
453
454 2008-05-23  Richard Guenther  <rguenther@suse.de>
455
456         * tree-ssa-operands.c (mark_difference_for_renaming): Use
457         bitmap_xor.
458
459 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
460             Jakub Jelinek  <jakub@redhat.com>
461
462         PR target/36079
463         * configure.ac: Handle --enable-cld.
464         * configure: Regenerated.
465         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
466         * config/i386/i386.h (struct machine_function): Add needs_cld field.
467         (ix86_current_function_needs_cld): New define.
468         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
469         (cld): New isns pattern.
470         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
471         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
472         * config/i386/i386.opt (mcld): New option.
473         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
474         TARGET_CLD and ix86_current_function_needs_cld.
475         (override_options): Use -mcld by default for 32-bit code if
476         USE_IX86_CLD.
477
478         * doc/install.texi (Options specification): Document --enable-cld.
479         * doc/invoke.texi (Machine Dependent Options)
480         [i386 and x86-64 Options]: Add -mcld option.
481         (Intel 386 and AMD x86-64 Options): Document -mcld option.
482
483 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
484         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
485         (return_in_memory_64): Likewise.
486         (return_in_memory_ms_64): Likewise.
487
488 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
489
490         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
491         * builtins.c (fold_builtin_fpclassify): New.
492         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
493         * builtins.def (BUILT_IN_FPCLASSIFY): New.
494         * c-common.c (handle_type_generic_attribute): Adjust to accept
495         fixed arguments before an elipsis.
496         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
497         * doc/extend.texi: Document __builtin_fpclassify.
498
499 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
500
501         * omp-low.c (gate_expand_omp_ssa): Remove.
502         (pass_expand_omp_ssa): Remove.
503         (gate_expand_omp): Do not check for flag_openmp_ssa.
504         * common.opt (-fopenmp-ssa): Remove.
505         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
506
507 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
508
509         * config/sh/sh.opt (mfixed-range): New option.
510         * config/sh/sh-protos.h (sh_fix_range): Declare.
511         * config/sh/sh.c (sh_fix_range): New function.
512         * config/sh/sh.h (sh_fixed_range_str): Declare.
513         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
514         is not empty.
515         * doc/invoke.texi (SH Options): Document -mfixed-range.
516
517 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
518
519         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
520         it before the redeclaration.
521
522 2008-05-22  Anatoly Sokolov <aesok@post.ru>
523
524         * config/avr/avr.c (get_sequence_length): Add new function.
525         (expand_prologue, expand_epilogue): Remove duplicate code.
526
527 2008-05-22  Rafael Espindola  <espindola@google.com>
528
529         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
530         sharing.
531
532 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
533
534         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
535         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
536
537         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
538         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
539         (vect_update_misalignment_for_peel): Likewise.
540         (vector_alignment_reachable_p): Likewise.
541         * tree-vect-transform.c (vectorizable_load): Likewise.
542         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
543         (get_vectype_for_scalar_type): Pass mode of scalar_type
544         to UNITS_PER_SIMD_WORD.
545
546         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
547         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
548         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
549         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
550         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
551
552 2008-05-22  Ira Rosen  <irar@il.ibm.com>
553
554         PR tree-optimization/36293
555         * tree-vect-transform.c (vect_transform_strided_load): Don't check
556         if the first load must be skipped because of a gap.
557
558 2008-05-22  Richard Guenther  <rguenther@suse.de>
559
560         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
561         more cases of offset disambiguation that is possible if
562         strict-aliasing rules apply.
563         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
564         for basic offset and type-based disambiguation.
565
566 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
567
568         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
569         ix86_expand_vector_set on V16QImode for SSE4.1.
570
571 2008-05-21  Tom Tromey  <tromey@redhat.com>
572
573         * c.opt (Wimport): Mark as undocumented.
574         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
575         -Wno-import.
576         (Warning Options): Likewise.
577         * doc/cppopts.texi: Don't mention -Wimport.
578
579 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
580
581         PR tree-optimization/36287
582         PR tree-optimization/36286
583         * lambda-code.c (build_access_matrix): Do not use the loop->num
584         for computing the number of induction variables: use the loop depth
585         instead.
586
587 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
588
589         PR/36280
590         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
591         option -f(no-)leading-underscore.
592
593 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
594
595         * config/i386/i386.c (ix86_expand_vector_init_general): Use
596         GET_MODE_NUNITS (mode).
597
598 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
599
600         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
601         (-mmulhw): Add 464 to description.
602         (-mdlmzb): Likewise.
603         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
604         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
605         464fp entries.
606         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
607         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
608         * config/rs6000/rs6000.md: Update comments for 464.
609
610 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
611
612         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
613
614 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
615
616         * config/i386/sse.md (vec_extractv4sf): Removed.
617         (vec_extractv2df): Likewise.
618         (vec_extractv2di): Likewise.
619         (vec_extractv4si): Likewise.
620         (vec_extractv8hi): Likewise.
621         (vec_extractv16qi): Likewise.
622         (vec_extract<mode>): New.
623
624 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
625
626         * config/i386/sse.md (vec_setv4sf): Removed.
627         (vec_setv2df): Likewise.
628         (vec_setv2di): Likewise.
629         (vec_setv4si): Likewise.
630         (vec_setv8hi): Likewise.
631         (vec_setv16qi): Likewise.
632         (vec_set<mode>): New.
633
634 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
635
636         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
637         goto for vec_concat and vec_interleave.
638
639 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
640
641         * config/i386/sse.md (vec_initv4sf): Removed.
642         (vec_initv2df): Likewise.
643         (vec_initv2di): Likewise.
644         (vec_initv4si): Likewise.
645         (vec_initv8hi): Likewise.
646         (vec_initv16qi): Likewise.
647         (vec_init<mode>): New.
648
649 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
650
651         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
652
653 2008-05-21  Tom Tromey  <tromey@redhat.com>
654
655         * ggc-zone.c (lookup_page_table_if_allocated): New function.
656         (zone_find_object_offset): Likewise.
657         (gt_ggc_m_S): Likewise.
658         (highest_bit): Likewise.
659         * ggc-page.c (gt_ggc_m_S): New function.
660         * stringpool.c (string_stack): Remove.
661         (init_stringpool): Update.
662         (ggc_alloc_string): Use ggc_alloc.
663         (maybe_delete_ident): New function.
664         (ggc_purge_stringpool): Likewise.
665         (gt_ggc_m_S): Remove.
666         * ggc-common.c (ggc_protect_identifiers): New global.
667         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
668         ggc_protect_identifiers.
669         * ggc.h (ggc_protect_identifiers): Declare.
670         (gt_ggc_m_S): Update.
671         (ggc_purge_stringpool): Declare.
672         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
673         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
674         special case.
675         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
676
677 2008-05-21  David S. Miller  <davem@davemloft.net>
678
679         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
680         tmake_file.
681
682 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
683
684         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
685         once finished.
686
687 2008-05-20  David Daney  <ddaney@avtrex.com>
688
689         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
690         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
691         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
692         UNSPEC_UPDATE_GOT_VERSION): Renumber.
693         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
694         (atomic_hiqi_op): New define_code_iterator.
695         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
696         mips_expand_compare_and_swap_12.
697         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
698         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
699         (sync_<optab><mode>, sync_old_<optab><mode>,
700         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
701         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
702         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
703         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
704         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
705         (test_and_set_12): New insn.
706         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
707         sync_new_<optab><mode>, sync_old_nand<mode>,
708         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
709         clobber to operand 0 for SI and DI mode insns.
710         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
711         mips_gen_fn_4): New typedefs.
712         (mips_gen_fn_ptrs): Define new union type.
713         (mips_expand_compare_and_swap_12): Remove declaration.
714         (mips_expand_atomic_qihi): Declare function.
715         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
716         (mips_expand_atomic_qihi): ... this.  Use new generator function
717         parameter.
718         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
719         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
720         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP,
721         MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
722         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
723         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
724         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
725         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
726         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
727         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
728         MIPS_SYNC_EXCHANGE_12_ZERO_OP,
729         MIPS_SYNC_EXCHANGE_12_NONZERO_OP): New macros.
730
731 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
732
733         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
734         the missing break.
735
736 2008-05-20  Anatoly Sokolov <aesok@post.ru>
737
738         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
739         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
740         (avr_attribute_table): Add 'OS_main' function attribute.
741         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
742         functions with 'OS_main' attribute.
743
744 2008-05-20  Richard Guenther  <rguenther@suse.de>
745
746         PR tree-optimization/35204
747         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
748         helper, split out from ...
749         (DFS): ... here.  Make the DFS walk non-recursive.
750
751 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
752             Jan Sjodin  <jan.sjodin@amd.com>
753
754         PR tree-optimization/36181
755         * tree-parloops.c (loop_has_vector_phi_nodes): New.
756         (parallelize_loops): Don't parallelize when the loop has vector
757         phi nodes.
758
759 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
760             Sebastian Pop  <sebastian.pop@amd.com>
761
762         * tree-loop-linear.c (gather_interchange_stats): Look in the access
763         matrix, and never look at the tree representation of the memory
764         accesses.
765         (linear_transform_loops): Computes parameters and access matrices.
766         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
767         when fails.
768         (access_matrix_get_index_for_parameter): New.
769         * tree-data-ref.h (struct access_matrix): New.
770         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
771         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
772         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
773         am_vector_index_for_loop): New.
774         (struct data_reference): Add field access_matrix.
775         (DR_ACCESS_MATRIX): New.
776         (compute_data_dependences_for_loop): Update declaration.
777         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
778         * lambda.h (lambda_vector_vec_p): Declared.
779         * lambda-code.c: Depend on pointer-set.h.
780         (lambda_collect_parameters_from_af, lambda_collect_parameters,
781         av_for_af_base, av_for_af, build_access_matrix,
782         lambda_compute_access_matrices): New.
783         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
784
785 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
786
787         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
788         $SOURCEDIR/include.
789
790 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
791             Sebastian Pop  <sebastian.pop@amd.com>
792
793         PR tree-optimization/36206
794         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
795         FOLD_CONVERSIONS.
796         (instantiate_scev_1): Rename flags to fold_conversions.
797         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
798         outeside instantiation_loop.
799         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
800         (evolution_function_is_affine_or_constant_p): Removed.
801         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
802         instantiate_scev.
803         (analyze_siv_subscript): Pass in the loop nest number.
804         Call evolution_function_is_affine_in_loop instead of 
805         evolution_function_is_affine_p.
806         (analyze_overlapping_iterations): Pass in the loop nest number.
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-chrec.h (chrec_fold_op): New.
813         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
814         and other trees.
815
816 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
817
818         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
819         (DIRS_EQ): New.
820         (remove_duplicates): Do not set inode on non-inode systems.
821         Use DIRS_EQ.
822
823 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
824
825         * config.gcc (tm_file): Update comments about relative pathnames.
826
827 2008-05-20  Richard Guenther  <rguenther@suse.de>
828
829         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
830         * tree-ssa-sccvn.c (process_scc): Likewise.
831         * tree-ssa-sink.c (execute_sink_code): Likewise.
832         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
833         * tree-vrp.c (process_assert_insertions): Likewise.
834         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
835         (perform_tree_ssa_dce): Likewise.
836         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
837         (dump_dominator_optimization_stats): Likewise.
838         * tree-vectorizer.c (vectorize_loops): Likewise.
839
840 2008-05-20  Richard Guenther  <rguenther@suse.de>
841
842         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
843
844 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
845
846         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
847         (ix86_i386elf_return_in_memory): Likewise.
848         (ix86_i386interix_return_in_memory): Likewise.
849         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
850         (SUBTARGET_RETURN_IN_MEMORY): New.
851         * config/i386/i386elf.h: Likewise.
852         * config/i386/ptx4-i.h: Likewise.
853         * config/i386/sol2-10.h: Likewise.
854         * config/i386/sysv4.h: Likewise.
855         * config/i386/vx-common.h: Likewise.
856         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
857         * config/i386/i386.c (ix86_return_in_memory): Made static and
858         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
859         (ix86_i386elf_return_in_memory): Removed.
860         (ix86_i386interix_return_in_memory): Removed.
861         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
862         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
863
864 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
865
866         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
867
868 2008-05-19  Xinliang David Li  <davidxl@google.com>
869
870         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
871         * opts.c: Ditto.
872         * common.opt: Ditto.
873         * doc/invoke.texi: Ditto.
874
875 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
876
877         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
878         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
879
880 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
881
882         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
883         sizes of operand array from 8/4 to 4/2.
884         (ix86_expand_vector_init_general): Change size of operand array
885         from 32 to 16.  Remove op0, op1 and half_mode.
886
887 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
888
889         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
890         (ix86_expand_vector_init_interleave): Likewise.
891         (ix86_expand_vector_init_general): Use them.  Assert word_mode
892         == SImode when n_words == 4.
893
894 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
895
896         * config/i386/i386.c (ix86_secondary_reload): New static function.
897         (TARGET_SECONDARY_RELOAD): New define.
898         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
899         * config/i386/i386.md (reload_outqi): Remove.
900
901 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
902
903         PR middle-end/35509
904         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
905         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
906         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
907         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
908         (fold_builtin_1): Likewise.
909         * builtins.def (BUILT_IN_ISINF_SIGN): New.
910         c-common.c (check_builtin_function_arguments): Handle
911         BUILT_IN_ISINF_SIGN.
912         * doc/extend.texi: Document __builtin_isinf_sign.
913         * fold-const.c (operand_equal_p): Handle COND_EXPR.
914
915 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
916
917         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
918         EH cleanup at the end of the pass, search for those that have been
919         turned into forwarder blocks and do the cleanup on their successor.
920
921 2008-05-18  Richard Guenther  <rguenther@suse.de>
922
923         * tree-cfg.c (verify_gimple_expr): Allow conversions from
924         pointers to sizetype and vice versa.
925
926 2008-05-18 Xinliang David Li   <davidxl@google.com>
927
928         * gcc/tree-ssa-dce.c: Coding style fix.
929         (check_pow): Documentation comment. 
930         (check_log): Documenation comment. Coding style fix.
931         (is_unnecessary_except_errno_call): Ditto.
932         (gen_conditions_for_pow): Ditto.
933         (gen_conditions_for_log): Ditto.
934         (gen_shrink_wrap_conditions): Ditto.
935         (shrink_wrap_one_built_in_calls): Ditto.
936         * gcc/doc/invoke.texi: Better documentation string.
937         * ChangeLog: Fix wrong change log entries from 
938         May 17 checkin on function call DCE.
939
940 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
941
942         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
943
944 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
945
946         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
947         * df-problems.c (simulation routines): Fixed block comment to
948         properly say how to add forwards scanning functions.
949         
950 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
951
952         * tree-inline.c (setup_one_parameter): Remove dead code.
953
954 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
955
956         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
957         a BIT_AND_EXPR only for an INTEGER_TYPE.
958
959 2008-05-17 Xinliang David Li   <davidxl@google.com>
960
961         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
962         (check_pow, check_log, is_unnecessary_except_errno_call): New 
963         functions to check for eliminating math functions that are pure 
964         except for setting errno.
965         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
966         general condition expressions for shrink-wrapping pow/log calls.
967         (gen_shrink_wrap_conditions): Ditto.
968         (shrink_wrap_one_built_in_call): Ditto.
969         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
970         (mark_operand_necessary): If debugging, output if OP is necessary.
971         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
972         unnecessary.
973         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
974         opt level >= 2.
975         * gcc/common.opt: New user flag -ftree-builtin-dce.
976         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
977
978 2008-05-16  David S. Miller  <davem@davemloft.net>
979
980         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
981         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
982
983 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
984
985         PR target/36246
986         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
987
988 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
989
990         * ifcvt.c (dead_or_predicable): Rename
991         df_simulate_one_insn_backwards to df_simulate_one_insn.
992         * recog.c (peephole2_optimize): Ditto.
993         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
994         Ditto.
995         * df.h: Rename df_simulate_one_insn_backwards to
996         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
997         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
998         scanning of defs and uses.
999         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
1000         (df_simulate_one_insn_forwards): Removed.
1001
1002 2008-05-16  Doug Kwan  <dougkwan@google.com>
1003
1004         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
1005         QNaN & SNaN.
1006         (real_from_string): Handle NaNs and Inf as approriate.
1007
1008 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
1009
1010         * doc/gty.texi (Source Files Containing Type Information): Note
1011         that headers should appear first in the gtfiles list.
1012
1013 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1014
1015         * tree.def (COND_EXEC): Properly documented this code.
1016
1017 2008-05-16  Diego Novillo  <dnovillo@google.com>
1018
1019         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
1020         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
1021         the new field.
1022
1023 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1024
1025         * tree-ssa-dse (max_stmt_uid): Removed.
1026         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
1027         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
1028         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
1029         * function.h (cfun.last_stmt_uid): New field.
1030         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
1031         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
1032         New functions.
1033         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
1034         (create_stmt_ann): Initialize the ann->uid field.
1035         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
1036         with new calls.
1037         * tree-flow.h (renumber_gimple_stmt_uids): New function.
1038
1039 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
1040
1041         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
1042         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
1043         (init_empty_tree_cfg): Call it.
1044
1045 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1046
1047         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
1048         Update all users.
1049
1050 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1051
1052         * doc/invoke.text (-fdump-tree-*-verbose): New option.
1053         * tree-dump.c (dump_options): New verbose option.
1054         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
1055         Add verbose dump.
1056         * tree-pass.h (TDF_VERBOSE): New dump flag.
1057         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
1058         (tree-flow.h): Added include.
1059         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
1060
1061 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
1062
1063         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
1064
1065         From Jie Zhang  <jie.zhang@analog.com>
1066         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1067         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
1068         mcpu=bf561-none and mcpu=bf561-0.2.
1069         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1070         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
1071         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1072         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
1073         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
1074         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
1075         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
1076         option.
1077         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
1078         (cputype_selected): Remove.
1079         (bfin_handle_option): Don't use cputype_selected.
1080         (override_options): When no mcpu option, enable all workarounds.
1081         Don't use bfin_workarounds.
1082         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
1083         processor type.
1084         (DEFAULT_CPU_TYPE): Don't define.
1085
1086 2008-05-16  Richard Guenther  <rguenther@suse.de>
1087
1088         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
1089         on deletion of the last stmt.
1090
1091 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
1092
1093         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
1094         V8HImode for SSE2 and V16QImode for SSE4.1.
1095
1096 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
1097
1098         * cgraph.h (compute_inline_parameters): Made public.
1099         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
1100         variable_generate_summary, function_write_summary,
1101         variable_write_summary, variable_read_summary.  Added generate_summary,
1102         write_summary, read_summary.
1103         * cgraphunit.c (cgraph_process_new_functions): Changed call from
1104         pass_ipa_inline.function_generate_summary, to
1105         compute_inline_parameters. 
1106         * ipa-inline.c (compute_inline_parameters): Made public and added
1107         node parameter.
1108         (compute_inline_parameters_for_current): New function.
1109         (pass_inline_param): Now calls compute_inline_parameters_for_current.
1110         (inline_generate_summary): Removed parameter and made to loop over
1111         all cgraph nodes.
1112         (pass_ipa_inline): Updated for new IPA_PASS structure.
1113         * passes.c (execute_ipa_summary_passes): Now is called once per
1114         pass rather than once per node*pass.
1115         
1116 2008-05-15  Anatoly Sokolov <aesok@post.ru>
1117
1118         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
1119         avr_have_mul_p, avr_asm_only_p): Remove variables.
1120         (avr_override_options): Remove initialization of removed variables.
1121         (avr_file_start):  Convert removed variables to fields of 
1122         'struct base_arch_s *avr_current_arch'. 
1123         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
1124         (AVR_HAVE_MUL): (Ditto.).
1125         (AVR_HAVE_MOVW): (Ditto.).
1126         (AVR_HAVE_LPMX): (Ditto.). 
1127         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
1128         avr_asm_only_p): Remove declaration.
1129
1130 2008-05-15  Diego Novillo  <dnovillo@google.com>
1131
1132         * config/arm/arm.c (arm_return_in_memory): Fix return type.
1133         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
1134
1135 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
1136
1137         PR middle-end/36194
1138         * combine.c (check_conversion): Rename back to check_promoted_subreg.
1139         Don't call record_truncated_value from here.
1140         (record_truncated_value): Turn it into a for_each_rtx callback.
1141         (record_truncated_values): New function.
1142         (combine_instructions): Call note_uses with record_truncated_values.
1143         Change name of check_conversion to check_promoted_subreg. 
1144
1145 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
1146
1147         * doc/sourcebuild.texi: Document support for torture tests.
1148
1149 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
1150
1151         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
1152         to alternative 4 of operand 2.
1153
1154 2008-05-15  Richard Guenther  <rguenther@suse.de>
1155
1156         * tree-pass.h (current_pass): Declare.
1157         (get_pass_for_id): Likewise.
1158         * passes.c (passes_by_id, passes_by_id_size): New globals.
1159         (set_pass_for_id): New function.
1160         (get_pass_for_id): Likewise.
1161         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
1162         (execute_function_todo): Flush per function statistics.
1163         * toplev.c (compile_file): Init statistics.
1164         (general_init): Do early statistics initialization.
1165         (finalize): Finish statistics.
1166         * statistics.h (statistics_early_init): Declare.
1167         (statistics_init): Likewise.
1168         (statistics_fini): Likewise.
1169         (statistics_fini_pass): Likewise.
1170         (statistics_counter_event): Likewise.
1171         (statistics_histogram_event): Likewise.
1172         * statistics.c: New file.
1173         * Makefile.in (OBJS-common): Add statistics.o.
1174         (statistics.o): Add dependencies.
1175         * doc/invoke.texi (-fdump-statistics): Document.
1176
1177         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
1178         (insert): Likewise.
1179         (execute_pre): Use statistics_counter_event.
1180         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
1181         (substitute_and_fold): Increment it.  Use statistics_counter_event.
1182
1183 2008-05-15  Diego Novillo  <dnovillo@google.com>
1184
1185         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
1186
1187         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
1188         * tree-ssa-alias.c (new_type_alias): Remove references to
1189         sub-variables from comment.
1190         * tree-ssa-operands.c (swap_tree_operands): Likewise.
1191
1192 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
1193
1194         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
1195         attribute to 1 only for insertps alternative.
1196
1197 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1198
1199         * config/bfin/bfin.md (loadbytes): New pattern.
1200         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
1201         (bfin_init_builtins): Initialize it.
1202         (bdesc_1arg): Add it.
1203
1204 2008-05-15  Sa Liu  <saliu@de.ibm.com>
1205
1206         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
1207         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
1208         * testsuite/lib/target-supports.exp: Add
1209         check_effective_target_fortran_integer_16.
1210
1211 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1212
1213         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
1214         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
1215         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
1216         (TARGET_RETURN_IN_MEMORY): Define.
1217
1218 2008-05-15  Richard Guenther  <rguenther@suse.de>
1219
1220         PR middle-end/36244
1221         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
1222         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
1223         represent unmodifiable vars.
1224
1225 2008-05-15  Richard Guenther  <rguenther@suse.de>
1226
1227         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
1228         INDIRECT_REF and TARGET_MEM_REF.
1229         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
1230         TARGET_MEM_REF.
1231
1232 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
1233             H.J. Lu  <hongjiu.lu@intel.com>
1234
1235         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
1236         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
1237         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
1238         insn alternatives.  Add missing alternatives.
1239         (*vec_concatv2di_rex64_sse4_1): Likewise.
1240         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
1241         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
1242         Require TARGET_SSE.
1243
1244 2008-05-15  Richard Guenther  <rguenther@suse.de>
1245
1246         PR tree-optimization/36009
1247         PR tree-optimization/36204
1248         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
1249         (determine_invariantness_stmt): Record the loop a store is
1250         always executed in.
1251         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
1252         dependency.
1253
1254 2008-05-15  Richard Guenther  <rguenther@suse.de>
1255
1256         PR tree-optimization/34330
1257         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
1258         through the pointer will alias the SMT.
1259
1260 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
1261
1262         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
1263
1264 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
1265
1266         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
1267
1268 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1269             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
1270
1271         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
1272         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
1273         (vashl_optab): New optab for vector/vector shifts.
1274         (vashr_optab): Ditto.
1275         (vlshr_optab): Ditto.
1276         (vrotl_optab): Ditto.
1277         (vrotr_optab): Ditto.
1278         (optab_subtype): New enum for optab_for_tree_code call.
1279         (optab_for_tree_code): Add enum optab_subtype argument.
1280
1281         * optabs.c (optab_for_tree_code): Take an additional argument to
1282         distinguish between a vector shift by a scalar and vector shift by
1283         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
1284         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
1285         vector shift by a vector.
1286         (expand_widen_pattern_expr): Pass additional argument to
1287         optab_for_tree_code.
1288
1289         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
1290         vrotl_optab, vrotr_optab.
1291
1292         * expr.c (expand_expr_real_1): Update calls to
1293         optab_for_tree_code to distinguish between vector shifted by a
1294         scalar and vector shifted by a vector.
1295         * tree-vectorizer.c (supportable_widening_operation): Ditto.
1296         (supportable_narrowing_operation): Ditto.
1297         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
1298         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
1299         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
1300         (vect_create_epilog_for_reduction): Ditto.
1301         (vectorizable_reduction): Ditto.
1302         (vectorizable_operation): Ditto.
1303         (vect_strided_store_supported): Ditto.
1304         (vect_strided_load_supported): Ditto.
1305         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
1306         * expmed.c (expand_shift): Ditto.
1307
1308         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
1309         scalar type.
1310         (ashr@var{m}3): Ditto.
1311         (vashl@var{m}3): Document new vector/vector shift standard name.
1312         (vashr@var{m}3): Ditto.
1313         (vlshr@var{m}3): Ditto.
1314         (vrotl@var{m}3): Ditto.
1315         (vrotr@var{m}3): Ditto.
1316
1317         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
1318         (PPERM_INVERT): Ditto.
1319         (PPERM_REVERSE): Ditto.
1320         (PPERM_REV_INV): Ditto.
1321         (PPERM_ZERO): Ditto.
1322         (PPERM_ONES): Ditto.
1323         (PPERM_SIGN): Ditto.
1324         (PPERM_INV_SIGN): Ditto.
1325         (PPERM_SRC1): Ditto.
1326         (PPERM_SRC2): Ditto.
1327
1328         * config/i386/sse.md (mulv2di3): Add SSE5 support.
1329         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
1330         allows a memory operand to be the value being added, and split it
1331         to improve vectorization.
1332         (sse5_pmacsdqh_mem): Ditto.
1333         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
1334         (sse5_mulv2div2di3_high): Ditto.
1335         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
1336         (vec_pack_trunc_v4si): Ditto.
1337         (vec_pack_trunc_v2di): Ditto.
1338         (sse5_pcmov_<mode>): Remove code that tried to use use
1339         andps/andnps instead of pcmov.
1340         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
1341         pmacsdqh instructions.
1342         (vec_widen_smult_lo_v4si): Ditto.
1343
1344         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
1345         (PPERM_INVERT): Ditto.
1346         (PPERM_REVERSE): Ditto.
1347         (PPERM_REV_INV): Ditto.
1348         (PPERM_ZERO): Ditto.
1349         (PPERM_ONES): Ditto.
1350         (PPERM_SIGN): Ditto.
1351         (PPERM_INV_SIGN): Ditto.
1352         (PPERM_SRC1): Ditto.
1353         (PPERM_SRC2): Ditto.
1354         (ix86_expand_sse_movcc): Move the SSE5 test after the if
1355         true/false tests.
1356         (ix86_expand_int_vcond): If SSE5 generate all possible integer
1357         comparisons.
1358         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
1359         says ignore whether the last reference is a memory operand.
1360
1361 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1362             Paolo Bonzini <bonzini at gnu dot org>
1363
1364         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
1365         shift patterns.
1366
1367         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
1368         (vlshr<mode>3): Rename from vlshr<mode>3.
1369         (vashr<mode>3): Rename from vashr<mode>3.
1370         (mulv4sf3): Change the names of vector shift patterns.
1371         (mulv4si3): Ditto.
1372         (negv4sf2): Ditt.
1373
1374         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
1375         shift insns.
1376
1377         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
1378         (SI_SHLHI): Ditto.
1379         (SI_SHL): Ditto.
1380         (SI_SHLI): Ditto.
1381         (SI_ROTH): Ditto.
1382         (SI_ROTHI): Ditto.
1383         (SI_ROT): Ditto.
1384         (SI_ROTI): Ditto.
1385         (SPU_RL_0): Ditto.
1386         (SPU_RL_1): Ditto.
1387         (SPU_RL_2): Ditto.
1388         (SPU_RL_3): Ditto.
1389         (SPU_RL_4): Ditto.
1390         (SPU_RL_5): Ditto.
1391         (SPU_RL_6): Ditto.
1392         (SPU_RL_7): Ditto.
1393         (SPU_SL_0): Ditto.
1394         (SPU_SL_1): Ditto.
1395         (SPU_SL_2): Ditto.
1396         (SPU_SL_3): Ditto.
1397         (SPU_SL_4): Ditto.
1398         (SPU_SL_5): Ditto.
1399         (SPU_SL_6): Ditto.
1400         (SPU_SL_7): Ditto.
1401
1402         * config/spu/spu.md (v): New iterator macro to add v for vector types.
1403         (floatunssidf2_internal): Change vector/vector shift names.
1404         (floatunsdidf2_internal): Ditto.
1405         (mulv8hi3): Ditto.
1406         (ashrdi3): Ditto.
1407         (ashrti3): Ditto.
1408         (cgt_df): Ditto.
1409         (cgt_v2df): Ditto.
1410         (dftsv): Ditto.
1411         (vashl<mode>3): Rename from ashl<mode>3.
1412         (vashr<mode>3): Rename from ashr<mode>3.
1413         (vlshr<mode>3): Rename from lshr<mode>3.
1414         (vrotl<mode>3): Rename from rotl<mode>3.
1415
1416 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1417
1418         PR target/36224
1419         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
1420         multiply gives the wrong value when doing widening multiplies.
1421         (vec_widen_smult_lo_v4si): Ditto.
1422
1423 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
1424
1425         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
1426         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
1427         emit_library_call_value. 
1428         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
1429         * tree.h (ECF_LIBCALL_BLOCK): Removed.
1430         * calls.c (initialize_argument_information, precompute_arguments, 
1431         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
1432         (precompute_arguments): Removed flags parameter.
1433         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
1434         
1435 2008-05-14  Richard Guenther  <rguenther@suse.de>
1436
1437         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
1438         Make sure to register the store if the use is a PHI_NODE.
1439
1440 2008-05-14  Olivier Hainque  <hainque@adacore.com>
1441
1442         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
1443         memory if the component is to be referenced in BLKmode according
1444         to get_inner_reference.
1445
1446 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
1447
1448         * calls.c (emit_library_call_value_1): Restore code clearing
1449         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
1450
1451 2008-05-14  Olivier Hainque  <hainque@adacore.com>
1452             Nicolas Roche  <roche@adacore.com>
1453
1454         * configure.ac: Add support for a "gcc_subdir" variable in
1455         config-lang.in, to denote a subdirectory where the language/GCC
1456         integration files are to be found.
1457         * configure: Regenerate.
1458
1459 2008-05-14  Ira Rosen  <irar@il.ibm.com>
1460
1461         PR tree-optimization/36098
1462         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
1463         value for the first load in the group in case of a gap.
1464         (vect_build_slp_tree): Check that there are no gaps in loads.
1465
1466 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
1467
1468         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
1469         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
1470         expand_copysign_bit, ): Change call to emit_no_conflict_block to
1471         emit_insn and remove unneeded code to construct extra args.
1472         (emit_no_conflict_block): Removed.
1473         * optabls.h: (emit_no_conflict_block): Removed.
1474         * cse.c (cse_extended_basic_block): Remove search for
1475         REG_NO_CONFLICT note.
1476         * global.c: Removed incorrect comment added in revision 117.
1477         * expr.c (convert_move): Change call to emit_no_conflict_block to
1478         emit_insn.
1479         * recog.c: Change comments so that they do not mention
1480         REG_NO_CONFLICT.
1481         * local_alloc.c (combine_regs): Removed last parameter.
1482         (no_conflict_p): Removed.
1483         (block_alloc): Removed note, no_conflict_combined_regno and set
1484         local vars. Removed all code to process REG_NO_CONFLICT blocks.
1485         (combine_regs): Removed already_dead and code to look for
1486         REG_NO_CONFLICT notes.
1487         * lower_subreg (remove_retval_note): Removed code to look for
1488         REG_NO_CONFLICT block.
1489         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
1490         (resolve_clobber): Remove code to process libcalls that have
1491         REG_NO_CONFLICT notes.
1492         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
1493         case.
1494         * combine.c (can_combine_p, distribute_notes):  Removed
1495         REG_NO_CONFLICT case.
1496         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
1497         to emit_insns.
1498         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
1499         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
1500         Ditto.
1501         * reg-notes.def (NO_CONFLICT): Removed.
1502
1503 2008-05-14  David S. Miller  <davem@davemloft.net>
1504
1505         * config/sparc/sparc.c (sparc_profile_hook): If
1506         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
1507         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
1508         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
1509
1510 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
1511
1512         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
1513
1514 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
1515
1516         PR target/36222
1517         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
1518         and op1 expansion before vector concat to have less live pseudos.
1519
1520 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
1521
1522         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
1523         ix86_expand_vector_set if supported.
1524
1525 2008-05-13  Diego Novillo  <dnovillo@google.com>
1526             Kenneth Zadeck  <zadeck@naturalbridge.com>
1527
1528         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
1529
1530         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
1531         phinodes_print_statistics, init_ssanames, fini_ssanames,
1532         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
1533         release_ssa_name, release_defs, replace_ssa_name_symbol,
1534         ssanames_print_statistics): Move ...
1535         * tree-flow.h: ... here.
1536         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
1537         Use FN instead of cfun.
1538         (make_ssa_name_fn): Rename from make_ssa_name.
1539         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
1540         * tree-flow-inline.h (make_ssa_name): Move from
1541         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
1542         * omp-low.c (expand_omp_parallel):
1543         * tree-flow-inline.h (redirect_edge_var_map_result):
1544         * tree-ssa.c (init_tree_ssa): Add argument FN.
1545         Use it instead of cfun.  Update all users.
1546
1547 2008-05-13  Tom Tromey  <tromey@redhat.com>
1548
1549         PR preprocessor/22168:
1550         * doc/cpp.texi (Top): Update menu.
1551         (Alternatives to Wrapper #ifndef): New node.
1552         (Other Directives): Document deprecation.
1553         (Obsolete Features): Remove menu.
1554         (Assertions): Merge node into Obsolete Features.
1555         (Obsolete once-only headers): Move earlier; rename to Alternatives
1556         to Wrapper #ifndef.
1557         * doc/cppopts.texi: Update.
1558         * c.opt (Wdeprecated): Enable for C and ObjC.
1559         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
1560         (C++ Dialect Options): Move -Wno-deprecated from here to...
1561         (Warning Options): ... here.
1562
1563 2008-05-13  Richard Guenther  <rguenther@suse.de>
1564
1565         PR middle-end/36227
1566         * fold-const.c (fold_sign_changed_comparison): Do not allow
1567         changes in pointer-ness.
1568
1569 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
1570
1571         PR target/24713
1572         * config/sh/sh.c (sh_expand_prologue): Don't clear
1573         RTX_FRAME_RELATED_P for push insns.
1574
1575 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
1576
1577         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
1578
1579 2008-05-12  Anatoly Sokolov <aesok@post.ru>
1580
1581         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
1582         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
1583         Use 'machine->is_leaf' instead of 'leaf_func_p'.
1584
1585 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
1586
1587         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
1588         (*vec_concatv4sf_sse): This.
1589         (*sse2_concatv2si): Renamed to ...
1590         (*vec_concatv2si_sse2): This.
1591         (*sse1_concatv2si): Renamed to ...
1592         (*vec_concatv2si_sse): This.
1593         (*vec_concatv2di_rex): Renamed to ...
1594         (*vec_concatv2di_rex64): This.
1595         (*vec_concatv2si_sse4_1): New.
1596         (*vec_concatv2di_rex64_sse4_1): Likewise.
1597
1598 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
1599
1600         PR rtl-optimization/36111
1601         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
1602         that was created for swappable operands.
1603
1604 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
1605
1606         PR ada/36001
1607         * Makefile.in: Substitute GNATMAKE and GNATBIND.
1608         * configure.ac: Add call to ACX_PROG_GNAT.
1609
1610 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
1611
1612         * optc-gen.awk: Fix comment typo.
1613
1614 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1615
1616         * pretty-print.c (pp_integer_with_precision): Use
1617         HOST_LONG_LONG_FORMAT.
1618
1619 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
1620
1621         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
1622                 
1623 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
1624
1625         * config/i386/i386.c (bdesc_ptest): Removed.
1626         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
1627         (bdesc_args): Add __builtin_ia32_ptestz128,
1628         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
1629         (ix86_init_mmx_sse_builtins): Updated.
1630         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
1631         (ix86_expand_builtin): Updated.
1632
1633 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
1634
1635         * tree-cfg.c (valid_fixed_convert_types_p): New function.
1636         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
1637
1638 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
1639
1640         * value-prof.c (interesting_stringop_to_profile): Do not
1641         return early for BUILT_IN_MEMPCPY.
1642
1643 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
1644
1645         * calls.c (expand_call): Don't use callgraph to increase
1646         preferred_stack_boundary.
1647
1648         * cgraph.h (cgraph_rtl_info): Use unsigned on
1649         preferred_incoming_stack_boundary.
1650
1651         * final.c (rest_of_clean_state): Use unsigned on
1652         preferred_stack_boundary.
1653
1654 2008-05-09  Tom Tromey  <tromey@redhat.com>
1655
1656         PR preprocessor/22231:
1657         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
1658         proceeding.
1659
1660 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
1661
1662         PR tree-optimization/36129
1663         * tree-ssa-ccp.c: Include value-prof.h.
1664         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
1665         built-in function was folded to a constant.
1666         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
1667
1668 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
1669             Sebastian Pop  <sebastian.pop@amd.com>
1670
1671         * tree-scalar-evolution.c: Document instantiate_scev.
1672         (instantiate_parameters_1): Renamed instantiate_scev_1.
1673         Don't use the same loop for instantiation_loop and evolution_loop.
1674         (instantiate_scev): New.
1675         (instantiate_parameters): Moved...
1676         (resolve_mixers): Update call to instantiate_scev_1 to pass the
1677         same loop twice.  Maintains the semantics for this function.
1678         * tree-scalar-evolution.h (instantiate_scev): Declare.
1679         (instantiate_parameters): ...here.  Now static inline.
1680         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
1681         instead of resolve_mixers.
1682
1683 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
1684
1685         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
1686
1687 2008-05-09  Tomas Bily  <tbily@suse.cz>
1688
1689         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
1690         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
1691         * tree-ssa-structalias.c (get_constraint_for): Likewise.
1692         * c-common.c (c_common_truthvalue_conversion): Likewise.
1693         * tree-object-size.c (compute_object_offset): Likewise.
1694         * tree-inline.c (estimate_num_insns_1): Likewise.
1695         * varasm.c (const_hash_1, compare_constant, copy_constant)
1696         (compute_reloc_for_constant, output_addressed_constants)
1697         (initializer_constant_valid_p): Likewise.
1698         * c-omp.c (check_omp_for_incr_expr): Likewise.
1699         * gimplify.c (gimplify_expr): Likewise.
1700         * c-typeck.c (c_finish_return): Likewise.
1701         * tree-vectorizer.c (supportable_widening_operation)
1702         (supportable_narrowing_operation): Likewise.
1703         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
1704         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
1705         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
1706         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
1707         (descr_info_loc): Likewise.
1708         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
1709         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
1710         (fold_unary): Likewise.
1711         * builtins.c (get_pointer_alignment): Likewise.
1712         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
1713         (instantiate_parameters_1): Likewise.
1714         * tree.c (expr_align, stabilize_reference): Likewise.
1715         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
1716         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
1717         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
1718         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
1719         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
1720         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
1721         Likewise.
1722         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
1723         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
1724         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
1725         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
1726         (forward_propagate_comparison)
1727         (tree_ssa_forward_propagate_single_use_vars): Likewise.
1728         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
1729         * emit-rtl.c (component_ref_for_mem_expr)
1730         (set_mem_attributes_minus_bitpos): Likewise.
1731         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
1732         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
1733         Likewise.
1734         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
1735         (build_function_call, pointer_diff, build_compound_expr)
1736         (c_finish_return): Likewise.
1737         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
1738         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
1739         Likewise.
1740         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
1741         * expr.c (is_aligning_offset): Likewise.
1742         * tree-ssa-alias.c (is_escape_site): Likewise.
1743         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
1744         (check_all_va_list_escapes): Likewise.
1745         * tree-ssa-loop-ivopts.c (determine_base_object)
1746         (determine_common_wider_type): Likewise.
1747         * dojump.c (do_jump): Likewise.
1748         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
1749         * tree-gimple.c (is_gimple_cast): Likewise.
1750         * fold-const.c (decode_field_reference, )
1751         (fold_sign_changed_comparison, fold_unary, fold_comparison)
1752         (fold_binary): Likewise.
1753         * tree-ssa-alias-warnings.c (find_alias_site_helper)
1754         (already_warned_in_frontend_p): Likewise.
1755         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
1756         * tree.c (really_constant_p, get_unwidened): Likewise.
1757         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
1758         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
1759         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
1760         Likewise.
1761         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
1762         CONVERT_EXPR_P.
1763         (CONVERT_EXPR_P): Define.
1764         (CASE_CONVERT): Define.
1765         
1766 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
1767
1768         PR middle-end/36117
1769         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
1770         (delete_unmarked_insns): When deleting a call, call
1771         delete_unreachable_blocks.
1772         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
1773         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
1774
1775 2008-05-08  Richard Guenther  <rguenther@suse.de>
1776
1777         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
1778         (-ftree-salias): Likewise.
1779         (salias-max-implicit-fields): Remove param documentation.
1780         (salias-max-array-elements): Likewise.
1781         * tree-pass.h (pass_create_structure_vars): Remove.
1782         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
1783         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
1784         * tree-ssa-alias.c (create_structure_vars): Remove.
1785         (gate_structure_vars): Likewise.
1786         (pass_create_structure_vars): Likewise.
1787         (gate_build_alias): Likewise.
1788         (pass_build_alias): Adjust to run always and dump the function.
1789         * common.opt (ftree-salias): Hide.
1790         * passes.c (init_optimization_passes): Remove
1791         pass_create_structure_vars, adjust comment.
1792         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
1793         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
1794         * opts.c (decode_options): Do not set flag_tree_salias.
1795         (common_handle_option): Add OPT_ftree_salias to the backward
1796         compatibility section.
1797
1798 2008-05-08  Richard Guenther  <rguenther@suse.de>
1799
1800         * tree-flow-inline.h (var_can_have_subvars): Move ...
1801         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
1802         * tree-flow.h (var_can_have_subvars): Remove.
1803         (push_fields_onto_fieldstack): Remove.
1804         (sort_fieldstack): Likewise.
1805         (struct fieldoff): Move ...
1806         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
1807         alias_set and base_for_components fields.
1808         (sort_fieldstack): Make static.
1809         (push_fields_onto_fieldstack): Likewise.  Remove code that
1810         handles anything but RECORD_TYPEs.  Remove alias_set and
1811         base_for_components handling.
1812         (create_variable_info_for): Adjust.
1813
1814 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
1815
1816         * common.opt (Wframe-larger-than=): Shorten the help message
1817         to one line.
1818         * doc/invoke.texi (Wframe-larger-than=): Add more description.
1819
1820 2008-05-08  Rafael Espindola  <espindola@google.com>
1821
1822         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
1823         trap.
1824         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
1825         trap and that both operands are gimple values.
1826         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
1827         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
1828         is a fp operation.
1829
1830 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
1831
1832         * read-rtl.c (join_c_conditions): Return the first string if the
1833         two strings are equal.
1834
1835 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
1836
1837         * gensupport.h (pred_data): Add a "num_codes" field.
1838         (add_predicate_code): Declare.
1839         * gensupport.c (add_predicate_code): New function.
1840         (std_pred_table): Add an "allows_const_p" field.
1841         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
1842         Remove the (incomplete) list of such codes from the codes field.
1843         (init_predicate_table): Use add_predicate_code.  Add all
1844         RTX_CONST_OBJs if allows_const_p is true.
1845         * genrecog.c (process_define_predicate): Use add_predicate_code.
1846
1847 2008-05-08  David Daney  <ddaney@avtrex.com>
1848             Richard Sandiford  <rsandifo@nildram.co.uk>
1849         
1850         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
1851         special case of constant zero operands.
1852         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
1853         old and new values.  Special case constant zero values.
1854         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
1855         fails.
1856         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
1857         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
1858
1859 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
1860
1861         PR target/36090
1862         * simplify-rtx.c (simplify_plus_minus): Create CONST of
1863         similar RTX_CONST_OBJ before CONST_INT.
1864
1865 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
1866
1867         * stmt.c (expand_stack_restore): Change sa mode if needed.
1868
1869 2008-05-08  Richard Guenther  <rguenther@suse.de>
1870
1871         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
1872         return type to bool.
1873         (ix86_sol10_return_in_memory): Likewise.
1874         (ix86_i386elf_return_in_memory): Likewise.
1875         (ix86_i386interix_return_in_memory): Likewise.
1876         * config/i386/i386.c (ix86_return_in_memory): Likewise.
1877         (ix86_sol10_return_in_memory): Likewise.
1878         (ix86_i386elf_return_in_memory): Likewise.
1879         (ix86_i386interix_return_in_memory): Likewise.
1880
1881 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
1882
1883         PR bootstrap/36180
1884         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
1885         fndecl argument.
1886         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
1887         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
1888         declared in front.
1889
1890 2008-05-08  Richard Guenther  <rguenther@suse.de>
1891
1892         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
1893         * tree-data-ref.h (struct dr_alias): Remove subvars field.
1894         (DR_SUBVARS): Remove.
1895         * tree-dfa.c (dump_subvars_for): Remove.
1896         (debug_subvars_for): Likewise.
1897         (dump_variable): Do not dump subvars.
1898         (remove_referenced_var): Do not remove subvars.
1899         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
1900         (lookup_subvars_for_var): Remove.
1901         (get_subvars_for_var): Likewise.
1902         (get_subvars_at): Likewise.
1903         (get_first_overlapping_subvar): Likewise.
1904         (overlap_subvar): Likewise.
1905         * tree-flow.h (subvar_t): Remove.
1906         (struct var_ann_d): Remove subvars field.
1907         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
1908         argument.  Remove special handling of SFTs.
1909         (compute_tag_properties): Likewise.
1910         (set_initial_properties): Likewise.
1911         (compute_call_clobbered): Likewise.
1912         (count_mem_refs): Likewise.
1913         (compute_memory_partitions): Likewise.
1914         (compute_flow_insensitive_aliasing): Likewise.
1915         (setup_pointers_and_addressables): Likewise.
1916         (new_type_alias): Likewise.
1917         (struct used_part): Remove.
1918         (used_portions): Likewise.
1919         (struct used_part_map): Likewise.
1920         (used_part_map_eq): Likewise.
1921         (used_part_map_hash): Likewise.
1922         (free_used_part_map): Likewise.
1923         (up_lookup): Likewise.
1924         (up_insert): Likewise.
1925         (get_or_create_used_part_for): Likewise.
1926         (create_sft): Likewise.
1927         (create_overlap_variables_for): Likewise.
1928         (find_used_portions): Likewise.
1929         (create_structure_vars): Likewise.
1930         * tree.def (STRUCT_FIELD_TAG): Remove.
1931         * tree.h (MTAG_P): Adjust.
1932         (struct tree_memory_tag): Remove base_for_components and
1933         unpartitionable flags.
1934         (struct tree_struct_field_tag): Remove.
1935         (SFT_PARENT_VAR): Likewise.
1936         (SFT_OFFSET): Likewise.
1937         (SFT_SIZE): Likewise.
1938         (SFT_NONADDRESSABLE_P): Likewise.
1939         (SFT_ALIAS_SET): Likewise.
1940         (SFT_UNPARTITIONABLE_P): Likewise.
1941         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
1942         (union tree_node): Remove sft field.
1943         * alias.c (get_alias_set): Remove special handling of SFTs.
1944         * print-tree.c (print_node): Remove handling of SFTs.
1945         * tree-dump.c (dequeue_and_dump): Likewise.
1946         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
1947         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
1948         * tree-predcom.c (set_alias_info): Do not set subvars.
1949         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
1950         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
1951         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
1952         (add_vars_for_offset): Remove.
1953         (add_virtual_operand): Remove special handling of SFTs.
1954         (add_call_clobber_ops): Likewise.
1955         (add_call_read_ops): Likewise.
1956         (get_asm_expr_operands): Likewise.
1957         (get_modify_stmt_operands): Likewise.
1958         (get_expr_operands): Likewise.
1959         (add_to_addressable_set): Likewise.
1960         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
1961         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
1962         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
1963         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
1964         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
1965         (tree_node_structure): Likewise.
1966         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
1967         handling of SFTs.
1968         (find_what_p_points_to): Likewise.
1969
1970 2008-05-08  Sa Liu  <saliu@de.ibm.com>
1971
1972         * config/spu/spu.md: Fixed subti3 pattern.
1973
1974 2008-05-08  Richard Guenther  <rguenther@suse.de>
1975
1976         PR middle-end/36154
1977         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
1978         sure to create a representative for trailing arrays for PTA.
1979
1980 2008-05-08  Richard Guenther  <rguenther@suse.de>
1981
1982         PR middle-end/36172
1983         * fold-const.c (operand_equal_p): Two objects which types
1984         differ in pointerness are not equal.
1985
1986 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
1987
1988         * calls.c (compute_argument_block_size): Add argument tree fndecl.
1989         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
1990         (emit_library_call_value_1): Add new variable fndecl initialized by
1991         NULL_TREE. It should be the decl type of orgfun, but this information
1992         seems not to be available here, so it uses the default calling abi.
1993         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
1994         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
1995         by TARGET_RETURN_IN_MEMORY.
1996         * config/i386/i386-interix.h: Likewise.
1997         * config/i386/i386.h: Likewise.
1998         * config/i386/i386elf.h: Likewise.
1999         * config/i386/ptx4-i.h: Likewise.
2000         * config/i386/sol2-10.h: Likewise.
2001         * config/i386/sysv4.h: Likewise.
2002         * config/i386/vx-common.h: Likewise.
2003         * config/cris/cris.h: Removed #if 0 clause.
2004         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
2005         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
2006         argument.
2007         (ix86_sol10_return_in_memory): Likewise.
2008         (ix86_i386elf_return_in_memory): New.
2009         (ix86_i386interix_return_in_memory): New.
2010         * config/mt/mt-protos.h (mt_return_in_memory): New.
2011         * config/mt/mt.c: Likewise.
2012         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
2013         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
2014         * config/bfin/bfin.h: Likewise.
2015         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
2016         argument.
2017         * config/bfin/bfin.c: Likewise.
2018         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
2019         * config/alpha/unicosmk.h: Likewise.
2020         * config/i386/cygming.h: Likewise.
2021         * config/iq2000/iq2000.h: Likewise.
2022         * config/mips/mips.h: Likewise.
2023         * config/mn10300/mn10300.h: Likewise.
2024         * config/rs6000/rs6000.h: Likewise.
2025         * config/score/score.h: Likewise.
2026         * config/spu/spu.h: Likewise.
2027         * config/v850/v850.h: Likewise.
2028         * defaults.h: Likewise.
2029         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
2030         * expr.c (emit_block_move): Adjust use of
2031         OUTGOING_REG_PARM_STACK_SPACE.
2032         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
2033         OUTGOING_REG_PARM_STACK_SPACE.
2034         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
2035
2036 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
2037
2038         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
2039         on OMP_RETURN for OMP_FOR.
2040
2041         PR debug/35896
2042         * dwarf2out.c (dw_expand_expr, common_check): Removed.
2043         (fortran_common): New function.
2044         (gen_variable_die): Call fortran_common instead of common_check,
2045         adjust for it returning tree instead of rtx.  Formatting.
2046
2047 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
2048
2049         PR rtl/7335
2050         PR rtl/33826
2051         * see.c (see_copy_insn): Copy new pure const attributes for new call.
2052         * c-decl.c (merge_decls): Ditto.
2053         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
2054         to RTL_CONST_OR_PURE_CALL_P.
2055         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
2056         Initialized DECL_LOOPING_CONST_PURE.
2057         (process_call_operands): Set tree_side_effects properly.
2058         * tree.h (TREE_READONLY_DECL_P): Removed.
2059         (DECL_IS_PURE): Renamed to DECL_PURE_P.
2060         (DECL_LOOPING_OR_CONST_P): New macro.
2061         (struct tree_function_decl): Added looping_const_or_pure_p.
2062         (ECF_*) Renumbered.
2063         (ECF_LOOPING_OR_CONST_P): New macro.
2064         * rtlanal.c (pure_const_p): Removed.
2065         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
2066         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
2067         to RTL_CONST_CALL_P.
2068         * ipa-pure-const.c (pure_const_state_e): Added looping field.
2069         (check_decl, check_tree, check_call, scan_function): Initialize
2070         looping.
2071         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
2072         (static_execute): Set looping true for recursive functions.
2073         Undo setting state to IPA_NEITHER for recursive functions.
2074         * cse.c (cse_insn): 
2075         * ifcvt.c (noce_can_store_speculate_p): Changed
2076         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
2077         RTL_CONST_OR_PURE_CALL_P.
2078         * dse.c (scan_insn): Ditto.
2079         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
2080         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
2081         RTL_CONST_OR_PURE_CALL_P.
2082         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
2083         pure_call_p to RTL_CONST_CALL_P.
2084         * gimplify.c (gimplify_call_expr): Clear side effects for
2085         non-looping pure and constant calls.
2086         * calls.c (emit_call_1): Set rtl flags from ecf flags.
2087         (flags_from_decl_or_type): Set ecf flags from decl flags.
2088         (initialize_argument_information): Turn off
2089         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
2090         Change const to pure if callee_copies is true rather than just
2091         turning off const.
2092         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
2093         way of marking pure calls.
2094         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
2095         Remove hack that was supposed to fix pr7335 and remove old
2096         way of marking pure calls.
2097         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
2098         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
2099         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
2100         RTL_CONST_OR_PURE_CALL_P.
2101         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
2102         * loop-invariant.c (find_exits, find_invariant_bb): Changed
2103         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
2104         * sched-deps.c (schedule_analyze): Ditto.
2105         * rtl.h (struct rtx_def): Use call field, unchanging field, and
2106         return_val field of calls to represent pure and const function info.
2107         (CONST_OR_PURE_CALL_P): Deleted macro.
2108         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
2109         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
2110         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
2111         TREE_READONLY.
2112         * tree-optimize.c (execute_fixup_cfg): Added test for
2113         ECF_LOOPING_CONST_OR_PURE.
2114         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
2115         DECL_PURE_P.
2116         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
2117         effects for looping pure or const calls.
2118         (verify_gimple_expr): Added verification code. 
2119         * config/alpha/alpha.c (alpha_legitimize_address,
2120         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
2121         RTL_CONST_CALL_P.
2122         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
2123         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
2124         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
2125         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
2126         RTL_CONST_OR_PURE_CALL_P.
2127         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
2128         and const calls to be deleted.
2129
2130 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
2131
2132         PR target/35714
2133         * config/i386/mmx.md (mmx_subv2sf3): New expander.
2134         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
2135         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
2136         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2137         to handle nonimmediate operands.
2138         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
2139         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
2140         to handle nonimmediate operands.
2141         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
2142         (mmx_pmulhrwv4hi3): New expander.  Use
2143         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2144         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
2145         (sse2_umulv1siv1di3): New expander.  Use
2146         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2147         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
2148         (mmx_eq<mode>3): New expander.  Use
2149         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2150         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
2151         (mmx_uavgv8qi3): New expander.  Use
2152         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2153         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
2154         (mmx_uavgv4hi3): New expander.  Use
2155         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2156
2157         * config/i386/sse.md
2158         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
2159         to handle nonimmediate operands.
2160         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
2161         to handle nonimmediate operands.
2162         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
2163         to handle nonimmediate operands.
2164         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
2165         to handle nonimmediate operands.
2166         (sse2_unpckhpd_exp): New expander.  Use
2167         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2168         (sse2_unpcklpd_exp): New expander.  Use
2169         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2170         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
2171         to handle nonimmediate operands.
2172         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
2173         to handle nonimmediate operands.
2174         (*sse2_<plusminus_insn><mode>3): Rename from
2175         sse2_<plusminus_insn><mode>3 insn pattern.
2176         (sse2_<plusminus_insn><mode>3): New expander.  Use
2177         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2178         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
2179         (sse2_umulv2siv2di3): New expander.  Use
2180         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2181         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
2182         (sse4_1_mulv2siv2di3): New expander.  Use
2183         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2184         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
2185         (sse2_pmaddwd): New expander.  Use
2186         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2187         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
2188         (sse2_eq<mode>3): New expander.  Use
2189         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2190         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
2191         (sse4_1_eqv2di3): New expander.  Use
2192         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2193         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2194         (sse2_uavgv16qi3): New expander.  Use
2195         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2196         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2197         (sse2_uavgv16qi3): New expander.  Use
2198         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2199         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
2200         (sse2_uavgv8hi3): New expander.  Use
2201         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2202         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
2203         (ssse3_pmulhrswv8hi3): New expander.  Use
2204         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2205         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
2206         (ssse3_pmulhrswv4hi3): New expander.  Use
2207         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2208
2209         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
2210         (<sse>_vmmul<mode>3): Ditto.
2211         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
2212         (divv2df3): Ditto.
2213         (ssse3_pmaddubsw128): Use register_operand for operand 1.
2214         (ssse3_pmaddubsw): Ditto.
2215
2216         * config/i386/i386.c (struct_builtin_description)
2217         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
2218         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
2219         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
2220         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
2221         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
2222         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
2223         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
2224         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
2225         (ix86_fixup_binary_operands): Assert that src1
2226         and src2 must have the same mode when swapped.
2227         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
2228         and ix86_binary_operator_ok.  Do not force operands in registers
2229         when optimizing.
2230
2231 2008-05-07  Jan Hubicka  <jh@suse.cz>
2232
2233         * cgraph.c (dump_cgraph_node): Update.
2234         * cgraph.h (cgraph_local_info): Break out inline summary.
2235         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
2236         hook.
2237         * ipa-inline (inline_summary): New accestor function.
2238         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
2239         cgraph_decide_inlining, compute_inline_parameters): Update.
2240         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
2241
2242 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
2243
2244         Cleanup ColdFire scheduling support and add V4 pipeline model.
2245
2246         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
2247         (define_attr cpu): Add cfv4 value.
2248         (define_attr type, define_attr type1): Merge into a single 'type'
2249         attribute.  Update all uses.
2250         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
2251         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
2252         Update all uses.
2253         (define_attr opx_mem, define_attr opy_mem): Remove.
2254         (define_attr op_mem): Clean up, update comment.
2255         (define_attr size): Use specific values instead of general int.
2256         (define_attr guess, define_attr split): Remove.  Update all uses.
2257         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
2258         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
2259         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
2260         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
2261         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
2262         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
2263         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
2264         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
2265         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
2266         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
2267         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
2268         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
2269         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
2270         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
2271         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
2272         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
2273         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
2274         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
2275         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
2276         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
2277         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
2278         Update or set attributes.
2279         (stack_tie): New fake instruction.
2280
2281         * config/m68k/m68k.h (TUNE_CFV4): New macro.
2282         (m68k_sched_attr_size): Update declaration.
2283         (m68k_sched_attr_type2): Remove.
2284         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
2285         Declare new bypass predicates.
2286
2287         * config/m68k/m68k.c (m68k_sched_issue_rate,
2288         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
2289         implementations.
2290         (TARGET_SCHED_ISSUE_RATE,
2291         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
2292         (override_options): Handle scheduling for ColdFire V4 core.
2293         (m68k_expand_prologue): Emit stack_tie.
2294         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
2295         'OP_TYPE_FPN'.  Update all uses.
2296         (sched_guess_p): Remove.
2297         (sched_address_type): Handle symbolic addresses.
2298         (sched_get_operand): New static function.
2299         (sched_operand_type): Merge into sched_attr_op_type.
2300         (sched_attr_op_type): Handle FP registers, handle quick constants,
2301         update.
2302         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
2303         (m68k_sched_attr_size): Update.  Move logic to ...
2304         (sched_get_attr_size_int): New static function.
2305         (sched_get_opxy_mem_type): New static function.
2306         (m68k_sched_attr_op_mem): Update.
2307         (m68k_sched_attr_type2): Remove.
2308         (sched_cfv4_bypass_data): New static variable.
2309         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
2310         (m68k_sched_issue_rate): Implement scheduler hook.
2311         (struct _sched_ib: enabled_p): New field.
2312         (m68k_sched_variable_issue): Update.  Handle V4.
2313         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
2314         sched_dump_class_func_t, sched_dump_split_class,
2315         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
2316         sched_dump_dfa_class, m68k_sched_dump): Remove.
2317         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
2318         hook.
2319         (m68k_sched_init_global): Remove statisctics dumping, introduce
2320         sanity check that all instructions have pipeline reservations.  Handle
2321         ColdFire V4 core.
2322         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
2323         Handle ColdFire V4 core.
2324         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
2325         New static functions.
2326         (m68k_sched_address_bypass_p): New bypass predicate.
2327         (sched_get_indexed_address_scale): New static function.
2328         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
2329
2330         * cf.md: Update comments.
2331         (define_attr type2): Remove.  Use 'type' attribute instead.
2332         Update all uses.
2333         (cf_ib): Rename to cfv123_ib.  Update all uses.
2334         (cf_oep): Rename to cfv123_oep.  Update all uses.
2335         (cf_chr): Rename to cfv123_chr.  Update all uses.
2336         (cf_mem): Rename to cfv123_mem.  Update all uses.
2337         (cf_mac): Move to more appropriate place.
2338         (cfv123_guess): New automaton and cpu_unit.
2339         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
2340         Update uses of 'size' attribute.  Handle before reload scheduling.
2341         (cfv123_guess): New dummy reservation for unhandled instructions.
2342         (cfv4_*): Pipeline description of ColdFire V4 core.
2343         (ignore): New reservation to handle 'ignore' type.
2344
2345 2008-05-07  Ian Lance Taylor  <iant@google.com>
2346
2347         PR middle-end/36013
2348         * gimplify.c (find_single_pointer_decl_1): Don't look through
2349         indirections.
2350         (find_single_pointer_decl): Adjust comments.
2351
2352 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
2353
2354         PR middle-end/36137
2355         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
2356         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
2357
2358         PR middle-end/36106
2359         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
2360         integral type rather than floating point, then VIEW_CONVERT_EXPR
2361         to the floating point type.
2362
2363 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
2364
2365         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
2366         TFmode op0 to register.
2367
2368 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
2369
2370         * c-decl.c (grokdeclarator): Comment typo.
2371
2372 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
2373
2374         * tree-flow.h: Remove prototype for computed_goto_p.
2375         * tree-cfg.c (computed_goto_p): Make static.
2376
2377 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
2378
2379         PR target/35657
2380         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
2381         (contains_aligned_value_p): This.  Handle _Decimal128.
2382         (ix86_function_arg_boundary): Only align _Decimal128 to its
2383         natural boundary and handle it properly.
2384
2385 2008-05-06  Martin Jambor  <mjambor@suse.cz>
2386
2387         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
2388         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
2389         (ipcp_method_set_orig_node): Removed.
2390         (ipcp_cval_get_cvalue_type): Removed.
2391         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
2392         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
2393         (ipcp_cval_set_cvalue_type): Removed.
2394         (ipcp_cval_get_cvalue): Removed.
2395         (ipcp_cval_set_cvalue): Removed.
2396         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
2397         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
2398         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
2399         (ipcp_cval_meet): Renamed to ipa_lattice_meet
2400         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
2401         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
2402         (ipcp_get_ith_lattice): Changed parameters.
2403         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
2404         (ipcp_lattice_from_jfunc): Changed parameters.
2405         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
2406         (ipcp_method_cval_print): Added temporary variable info.
2407         (ipcp_redirect): Removed already unused local variable caller.
2408         (ipcp_redirect): New temporary variable orig_callee_info
2409         (ipcp_redirect): Removed newly unused local variable callee.
2410         (ipcp_redirect): Removed (a bit confusing) local variable type.
2411         (ipcp_insert_stage): Added local variable info.
2412         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
2413         renamed too
2414         (ipcp_formal_create): Removed.
2415         (ipcp_method_cval_set): Removed.
2416         (ipcp_propagate_stage): Renamed lattice variables.
2417         (ipcp_method_cval_set_cvalue_type): Removed.
2418         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
2419         (ipcp_print_all_lattices): Changed printed strings to refer to 
2420         lattices rather than cvals.
2421         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
2422         (ipcp_propagate_const): Changed formal parameters.
2423         (build_const_val): Changed formal parameters.
2424         (ipcp_insert_stage): Removed useless variable cvalue
2425         (build_const_val): Changed formal parameters.
2426         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
2427         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
2428         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
2429         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
2430         (ipcp_print_func_profile_counts): Changed string from "method" to 
2431         "function"
2432         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
2433         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
2434         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
2435         (ipcp_structures_print): Renamed to ipcp_print_all_structures
2436         (ipcp_profile_print): Renamed to ipcp_print_profile_data
2437         (ipcp_lat_is_const): Changed parameters and made inline.
2438         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
2439         (ipcp_redirect): Renamed to ipcp_need_redirect_p
2440         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
2441         the predicate condition directly
2442         (ipcp_propagate_stage): Added local variable args. Removed local
2443         variable callee.  (Both are mere code simplifications.)
2444         (ipcp_method_dont_insert_const): Renamed to
2445         ipcp_node_not_modifiable_p.
2446         (ipcp_node_not_modifiable_p): Made inline.
2447         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
2448         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
2449         (ipcp_print_all_lattices): Removed variable cvalue
2450         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
2451         Updated comments.
2452
2453 2008-05-06  Olivier Hainque  <hainque@adacore.com>
2454
2455         * tree-sra.c (try_instantiate_multiple_fields): Early return
2456         if field has POINTER_TYPE.
2457
2458 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
2459
2460         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
2461         by using 'q' specifier for instruction.
2462         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
2463
2464 2008-05-06  Anatoly Sokolov <aesok@post.ru>
2465
2466         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
2467         Change mode of zero_extract from QImode to HImode.
2468         (sign bit tests peepholes): (Ditto.).
2469
2470 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
2471
2472         * config/i386/mmx.md: Remove double backslashes from asm templates.
2473         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
2474         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2475         to handle nonimmediate operands.
2476         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
2477         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2478         to handle nonimmediate operands.
2479         (*mmx_<code>v2sf3_finite): New insn pattern.
2480         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
2481         (mmx_<code>v2sf3): New expander.  Use
2482         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2483         (mmx_<plusminus_insn><mode>3): New expander.  Use
2484         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2485         (*mmx_<plusminus_insn><mode>3): New insn pattern.
2486         (mmx_add<mode>3): Removed.
2487         (mmx_ssadd<mode>3): Ditto.
2488         (mmx_usadd<mode>3): Ditto.
2489         (mmx_sub<mode>3): Ditto.
2490         (mmx_sssub<mode>3): Ditto.
2491         (mmx_ussub<mode>3): Ditto.
2492         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
2493         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
2494         to handle nonimmediate operands.
2495         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
2496         insn pattern.
2497         (mmx_smulv4hi3_highpart): New expander.  Use
2498         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2499         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
2500         insn pattern.
2501         (mmx_umulv4hi3_highpart): New expander.  Use
2502         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2503         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
2504         (mmx_<code>v4hi3): New expander.  Use
2505         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2506         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
2507         (mmx_<code>v8qi3): New expander.  Use
2508         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2509         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
2510         (mmx_<code><mode>3): New expander.  Use
2511         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2512
2513 2008-05-05  Jan Hubicka  <jh@suse.cz>
2514
2515         PR tree-optimization/36118
2516         * passes.c (pass_init_dump_file): Fix dump header.
2517
2518 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2519
2520         PR middle-end/36141
2521         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
2522         VCE for function decls.
2523
2524 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2525
2526         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
2527
2528 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2529
2530         * config/i386/i386.md (sat_plusminus): New.
2531         (plusminus_insn): Likewise.
2532         (plusminus_mnemonic): Likewise.
2533         (addsub): Removed.
2534         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
2535         (*<addsub><mode>3_cc_overflow): Renamed to ...
2536         (*<plusminus_insn><mode>3_cc_overflow): This.
2537         (*<addsub>si3_zext_cc_overflow): Renamed to ...
2538         (*<plusminus_insn>si3_zext_cc_overflow): This.
2539
2540         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
2541         (<plusminus_insn><mode>3): This.
2542         (*<addsub><mode>3): Renamed to ...
2543         (*<plusminus_insn><mode>3): This.
2544         (<sse>_vm<addsub><mode>3): Renamed to ...
2545         (<sse>_vm<plusminus_insn><mode>3): This.
2546         (sse3_h<addsub>v4sf3): Renamed to ...
2547         (sse3_h<plusminus_insn>v4sf3): This.
2548         (sse3_h<addsub>v2df3): Renamed to ...
2549         (sse3_h<plusminus_insn>v2df3): This.
2550         (<plusminus_insn><mode>3): New.
2551         (*<plusminus_insn><mode>3): Likewise.
2552         (sse2_<plusminus_insn><mode>3): Likewise.
2553         (add<mode>): Removed.
2554         (*add<mode>3): Likewise.
2555         (sse2_ssadd<mode>3): Likewise.
2556         (sse2_usadd<mode>3): Likewise.
2557         (sub<mode>3): Likewise.
2558         (*sub<mode>3): Likewise.
2559         (sse2_sssub<mode>3): Likewise.
2560         (sse2_ussub<mode>3): Likewise.
2561
2562 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
2563
2564         * gthr-single.h: Add in required interface elements as per gthr.h.
2565         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
2566         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
2567         Generalize UNUSED macro. 
2568         (__gthread_once): Add.
2569         (__gthread_key_create): Add.
2570         (__gthread_key_delete): Add.
2571         (__gthread_getspecific): Add.
2572         (__gthread_setspecific): Add.
2573         
2574 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
2575
2576         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
2577         the same size types for the indirect reference on the rhs, then
2578         create a VCE.
2579
2580 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
2581
2582         * config/i386/i386.md
2583         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
2584         one insn template instead of template series.
2585         (*xordi_1_rex64): Ditto.
2586         (*xordi_2_rex64): Ditto.
2587
2588 2008-05-05  Ira Rosen  <irar@il.ibm.com>
2589
2590         PR tree-optimization/36119
2591         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
2592         in case of SLP.
2593
2594 2008-06-04  Jan Hubicka  <jh@suse.cz>
2595
2596         tree-optimization/36100
2597         * tree-pass.h (pass_O0_always_inline): Declare.
2598         * ipa-inline.c (inline_transform): Remove dead code.
2599         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
2600         pass_O0_always_inline): New.
2601         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
2602
2603 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
2604
2605         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
2606         mnemonic in this_param move for TARGET_64BIT.
2607
2608 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
2609
2610         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
2611         (*strmovsi_rex_1): Ditto.
2612         (*strsetsi_1): Ditto.
2613         (*strsetsi_rex_1): Ditto.
2614
2615         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
2616         adddicc expanders using SWI mode iterator.
2617
2618 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
2619
2620         PR target/36121
2621         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
2622         argument handling.
2623
2624 2008-05-04  David S. Miller  <davem@davemloft.net>
2625
2626         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
2627         (sparc*-*-linux*): Use linux.h in tm_file.
2628         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
2629         compiler defaulting to 32-bit.
2630         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
2631         no longer needed.
2632         * config/sparc/linux.h: Remove definitions now obtained
2633         properly from linux.h
2634         * config/sparc/linux64.h: Likewise.
2635         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
2636         don't want this setting for 32-bit builds in a biarch compiler.
2637         * doc/install.texi: Add sparc-linux to list of targets
2638         supporting --enable-targets=all.
2639
2640 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
2641
2642         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
2643
2644 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
2645
2646         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
2647         after V4SI_FTYPE_V8HI.
2648         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
2649         case V4SI_FTYPE_V2DF.
2650
2651 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
2652
2653         * doc/invoke.texi (max-flow-memory-locations): Removed.
2654         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
2655         
2656 2008-05-03  Richard Guenther  <rguenther@suse.de>
2657
2658         PR middle-end/34973
2659         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
2660
2661 2008-05-02  David S. Miller  <davem@davemloft.net>
2662
2663         * config.gcc (need_64bit_hwint): Document libcpp dependency.
2664
2665 2008-05-02  Simon Baldwin <simonb@google.com>
2666
2667         PR bootstrap/36108
2668         * c-common.h (warn_array_subscript_range): Removed.
2669         * c-common.c (warn_array_subscript_range): Ditto.
2670         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
2671         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
2672
2673 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
2674
2675         * config/i386/i386.c (ix86_special_builtin_type): New.
2676         (bdesc_special_args): Likewise.
2677         (ix86_expand_special_args_builtin): Likewise.
2678         (ix86_init_mmx_sse_builtins): Updated.
2679         (ix86_expand_builtin): Updated.
2680         (ix86_expand_store_builtin): Removed.
2681         (ix86_expand_unop_builtin): Likewise.
2682
2683         * config/i386/mm3dnow.h (__v2sf): Moved to ...
2684         * config/i386/mmintrin.h (__v2sf): Here.
2685
2686         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
2687         const __v2sf.
2688         (_mm_loadl_pi): Likewise.
2689         (_mm_storeh_pi): Replace __v2si with __v2sf.
2690         (_mm_storel_pi): Likewise.
2691
2692         * doc/extend.texi: Correct __builtin_ia32_loadhps,
2693         __builtin_ia32_loadlps, __builtin_ia32_storehps,
2694         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
2695         __builtin_ia32_loadlpd.
2696
2697 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
2698
2699         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
2700         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
2701         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
2702         (ix86_init_mmx_sse_builtins): Updated.
2703         (ix86_expand_args_builtin): Likewise.
2704         (ix86_expand_builtin): Likewise.
2705         (ix86_expand_unop1_builtin): Renamed to ...
2706         (ix86_expand_unop_vec_merge_builtin): This.
2707
2708 2008-05-01  Jan Hubicka  <jh@suse.cz>
2709
2710         PR bootstrap/36100
2711         * ipa-inline.c (inline_generate_summary): Make static.
2712         (inline_transform): Do not call inlining at -O0; make static.
2713         * passes.c (execute_todo): Add sanity check.
2714         (execute_one_ipa_transform_pass): Execute proper flags.
2715
2716 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
2717
2718         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
2719         (DECL_NONADDRESSABLE_P): Likewise.
2720         * alias.c (record_component_aliases): Fix comment.
2721
2722 2008-05-01  Simon Baldwin <simonb@google.com>
2723
2724         * c-common.h (warn_array_subscript_range): New function.
2725         * c-common.c (warn_array_subscript_range): Ditto.
2726         * tree-vrp.c (check_array_ref): Corrected code to agree with
2727         comment, ignoring only arrays of size 0 or size 1.
2728         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
2729
2730 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2731
2732         * config/i386/i386.c (ix86_builtin_type): Replace
2733         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
2734         (bdesc_args): Updated.
2735         (ix86_init_mmx_sse_builtins): Likewise.
2736         (ix86_expand_args_builtin): Likewise.
2737
2738         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
2739         with __v1di.
2740
2741         * doc/extend.texi: Correct __builtin_ia32_palignr.
2742
2743 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2744
2745         PR target/36095
2746         * config/i386/i386.c (bdesc_crc32): Removed.
2747         (ix86_expand_crc32): Likewise.
2748         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
2749         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
2750         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
2751         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
2752         UINT_FTYPE_UINT_UCHAR.
2753         (bdesc_args): Updated. Add crc32 builtins.
2754         (ix86_init_mmx_sse_builtins): Updated.
2755         (ix86_expand_args_builtin): Updated to support subreg.
2756
2757         * doc/extend.texi: Correct __builtin_ia32_crc32di.
2758
2759 2008-05-01  Jan Hubicka  <jh@suse.cz>
2760
2761         * tree-pass.h (opt_pass): Add IPA_PASS.
2762         (varpool_node, cgraph_node): Forward declare.
2763         (ipa_opt_pass): Define.
2764         (pass_ipa_inline): Turn into ipa_opt_pass.
2765         (pass_apply_inline): Remove.
2766         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
2767         (apply_inline): Turn into ....
2768         (inline_transform): ... this one.
2769         (inline_generate_summary): New function.
2770         (pass_apply_inline): Remove.
2771         * function.h (ipa_opt_pass): Forward declare structure; typedef;
2772         vector.
2773         (struct function): Add ipa_transforms_to_apply.
2774         * passes.c (register_one_dump_file): Work on IPA_PASS.
2775         (init_optimization_passes): Remove pass_inline_parameters and
2776         pass_apply_inline.
2777         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
2778         (execute_one_pass) ... here; apply transforms when possible.
2779         (add_ipa_transform_pass, execute_ipa_summary_asses,
2780         execute_one_ipa_transform_pass): New.
2781         (execute_ipa_pass_list): Update for IPA_PASS type.
2782
2783 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2784
2785         * config/i386/i386.c (ix86_builtin_type): Add
2786         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
2787         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
2788         (bdesc_args): Add SSE4a builtins.
2789         (ix86_init_mmx_sse_builtins): Updated.
2790         (ix86_expand_args_builtin): Likewise.
2791         (ix86_expand_builtin): Likewise.
2792
2793 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2794
2795         * config/i386/i386.c (ix86_builtin_type): Add
2796         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
2797         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
2798         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
2799         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
2800         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
2801         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
2802         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
2803         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
2804         and DI_FTYPE_DI_DI_INT.
2805         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
2806         (ix86_init_mmx_sse_builtins): Updated.
2807         (ix86_expand_args_builtin): Likewise.
2808         (ix86_expand_builtin): Likewise.
2809         (ix86_expand_binop_imm_builtin): Removed.
2810
2811         * doc/extend.texi: Correct __builtin_ia32_palignr128.
2812
2813 2008-04-30  Richard Guenther  <rguenther@suse.de>
2814
2815         PR tree-optimization/32921
2816         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
2817
2818 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
2819
2820         * config/arm/arm.c (arm_unwind_emit): Use
2821         crtl->all_throwers_are_sibcalls instead of
2822         cfun->all_throwers_are_sibcalls.
2823         (arm_output_fn_unwind): Likewise.
2824         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
2825         instead of cfun->uses_pic_offset_table.
2826         (frv_expand_prologue): Likewise.
2827         (frv_frame_pointer_required): Likewise.
2828         (frv_expand_fdpic_call): Likewise.
2829         (frv_emit_movsi): Likewise.
2830         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
2831         cfun->returns_pcc_struct instead of
2832         current_function_returns_pcc_struct.
2833         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
2834         instead of cfun->calls_eh_return.
2835         (m32c_pushm_popm): Likewise.
2836         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
2837         "extern" declaration.
2838
2839 2008-04-30  Richard Guenther  <rguenther@suse.de>
2840
2841         PR tree-optimization/21636
2842         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
2843         constant address.
2844         (evaluate_stmt): Print the likely value.
2845         (ccp_visit_stmt): Avoid excessive vertical spacing.
2846
2847 2008-04-30  Rafael Espindola  <espindola@google.com>
2848
2849         * builtins.c (fold_call_expr): Return realret.
2850         * tree-ssa-threadedge.c
2851         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
2852         __builtin_object_size.
2853
2854 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
2855
2856         * gcc.c (wrapper_string): New variable.
2857         (insert_wrapper): New function.
2858         (execute): New option -wrapper.
2859         * doc/invoke.texi (Overall Options): New driver option -wrapper.
2860
2861 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
2862
2863         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
2864         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
2865         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
2866         from...
2867         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
2868         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
2869         config/rs6000/e500crtres64gprctr.asm,
2870         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
2871         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
2872         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
2873         config/rs6000/e500crtsav64gprctr.asm,
2874         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
2875         config/rs6000/e500crtsavg64gprctr.asm: New files.
2876         * config/rs6000/t-ppccomm: Add build rules for new files.
2877         (LIB2FUNCS_STATIC_EXTRA): Add new files.
2878         * config/rs6000/t-netbsd: Add build rules for new files.
2879         (LIB2FUNCS_STATIC_EXTRA): New variable.
2880         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
2881         (CRTSAVRES_DEFAULT_SPEC): Likewise.
2882         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
2883
2884 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
2885
2886         * config/i386/i386.c (ix86_builtin_type): Add
2887         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
2888         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
2889         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
2890         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
2891         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
2892         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
2893         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
2894         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
2895         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
2896         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
2897         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
2898         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
2899         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
2900         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
2901         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
2902         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
2903         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
2904         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
2905         V1DI_FTYPE_V2SI_V2SI.
2906         (bdesc_2arg): Moved to ...
2907         (bdesc_args): Here.
2908         (ix86_init_mmx_sse_builtins): Updated.
2909         (ix86_expand_args_builtin): Updated.  Take a pointer
2910         to const struct builtin_description.  Handle comparison
2911         builtin functions.
2912         (ix86_expand_sse_compare): Take a new argument for swapping operands.
2913         (ix86_expand_builtin): Updated.
2914
2915         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
2916         (ssse3_pmaddubsw128): This.
2917         (ssse3_pmaddubswv4hi3): Renamed to ...
2918         (ssse3_pmaddubsw): This.
2919
2920         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
2921         (__builtin_ia32_packssdw128): Likewise.
2922         (__builtin_ia32_packuswb128): Likewise.
2923         (__builtin_ia32_pmaddubsw): Likewise.
2924         (__builtin_ia32_pmaddubsw128): Likewise.
2925
2926 2008-04-30  Richard Guenther  <rguenther@suse.de>
2927
2928         PR tree-optimization/14847
2929         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
2930         (recognize_bits_test): Use it.
2931         (recognize_single_bit_test): Likewise.
2932
2933 2008-04-30  Martin Jambor  <mjambor@suse.cz>
2934
2935         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
2936         instead of setting number of formal parameters to zero.
2937         (ipcp_init_stage): Do not set the number of actual parameters to zero 
2938         either.
2939         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
2940         which are called with variable number of arguments.
2941         (ipcp_insert_stage): Explicitely skipping all nodes which are
2942         called with variable number of arguments.
2943         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
2944         number of parameters.
2945
2946         * ipa-prop.h (struct ipa_node_params): Added flag
2947         called_with_var_arguments
2948         (ipa_set_param_count): Added.  Changed sole setter to use it.
2949         (ipa_get_param_count): Added.  All readers of param_count
2950         converted to use it instead.
2951         (ipa_set_called_with_variable_arg): Added.
2952         (ipa_is_called_with_var_arguments): Added.
2953         (ipa_get_ith_param): Added.  All readers of param_decls converted
2954         to use it instead.
2955         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
2956         changed to use it. 
2957         (ipa_get_cs_argument_count): Added, all readers of argument_count
2958         changed to cal it.
2959         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
2960         to use it.
2961         
2962         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
2963         (struct ipcp_lattice): Renamed cval_type to type
2964         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
2965
2966         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
2967         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
2968         (ipcp_insert_stage): Changed the type of variable cvalue to tree
2969         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
2970         (build_const_val): Changed the type of parameter cvalue to tree
2971         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
2972         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
2973         
2974         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
2975         constant 
2976
2977         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
2978         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
2979         (ipa_add_method): Renamed to ipa_push_func_to_list
2980         (ipa_remove_method): Renamed to ipa_pop_func_from_list
2981         (ipa_callsite_param_count): Removed.
2982         (ipa_callsite_param_count_set): Removed.
2983         (ipa_callsite_param): Removed.
2984         (ipa_callsite_callee): Removed.
2985         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
2986         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
2987         (ipa_method_formal_count): Removed.
2988         (ipa_method_formal_count_set): Removed.
2989         (ipa_method_get_tree): Removed.
2990         (ipa_method_tree_map_create): Removed.
2991         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
2992         (ipa_create_param_decls_array): Creates the array itself
2993         (ipa_create_param_decls_array): Temporary variable info instead of 
2994         a few dereferences.
2995         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
2996         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
2997         (get_type): Removed.
2998         (ipa_jf_get_info_type): Removed.
2999         (ipa_node_create): Renamed to ipa_create_node_params
3000         (ipa_free): Renamed to ipa_free_all_node_params
3001         (ipa_nodes_create): Renamed to ipa_create_all_node_params
3002         (ipa_edges_create): Renamed to ipa_create_all_edge_args
3003         (ipa_edges_free): Renamed to ipa_free_all_edge_args
3004         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
3005         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
3006         ipa_free_all_edge_args
3007         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
3008         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
3009         (ipa_create_methodlist_node): Removed.
3010         (ipa_methodlist_method): Removed.
3011         (ipa_methodlist_method_set): Removed.
3012         (ipa_methodlist_next_method): Removed.
3013         (ipa_methodlist_next_method_set): Removed.
3014         (ipa_method_is_modified): Removed.
3015         (ipa_method_modify_create): Removed.
3016         (ipa_method_modify_init): Temporary variable info instead of a few 
3017         dereferences.
3018         (ipa_detect_param_modifications): Temporary variable info instead of 
3019         a few dereferences.
3020         (ipa_compute_jump_functions): Temporary variable info instead of 
3021         a few dereferences.
3022         (ipa_method_modify_set): Removed.
3023         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
3024         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
3025         than craph_node as the first parameter.
3026         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
3027         (ipa_method_modify_init): Removed.
3028         (ipa_compute_jump_functions): Added a temp variable instead of 
3029         repeatadly dereferencing the cgraph_edge.aux pointer
3030         (ipa_callsite_param_set_type): Removed.
3031         (ipa_compute_jump_functions): i renamed to index and moved to 
3032         an inner block
3033         (ipa_callsite_param_set_info_type_formal): Removed.
3034         (ipa_callsite_param_set_info_type): Removed.
3035         (ipa_callsite_param_map_create): Removed.
3036         (ipa_callsite_tree): Removed.
3037         (ipa_callsite_caller): Removed.
3038         (ipa_pop_func_from_list): return_method removed to return_func
3039
3040         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
3041         prefixed all values with IPA_. Changed all users.
3042         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
3043         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
3044         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
3045         (union parameter_info): Renamed to jump_func_value.
3046         (union jump_func_value): Renamed value to constant
3047         (struct ipa_jump_func): Renamed info_type to value
3048         (struct ipa_node): Renamed to ipa_node_params
3049         (struct ipa_node_params): Renamed ipa_arg_num to param_count
3050         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
3051         (struct ipa_node_params): Renamed ipa_mod to modified_flags
3052         (struct ipa_edge): Renamed to ipa_edge_args
3053         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
3054         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
3055         (struct ipa_methodlist): Renamed to ipa_func_list
3056         (struct ipa_func_list): method_p renamed to node, next_method
3057         renamed to next
3058         (ipa_methodlist_p): Removed, switched all users to struct pointer
3059         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
3060
3061 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
3062
3063         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
3064         (rs6000_emit_epilogue): Use backchain to restore only when we
3065         have a large frame.  Make use of frame pointer to restore if we
3066         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
3067
3068 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
3069
3070         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
3071         Add mode to zero_extract.
3072         (sign bit tests peepholes): (Ditto.).
3073
3074 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
3075
3076         * config/i386/i386.c (ix86_builtins): Replace Prescott New
3077         Instructions in comments with SSE3.
3078         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
3079         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
3080         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
3081         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
3082         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
3083         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
3084         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
3085         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
3086         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
3087         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
3088         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
3089         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
3090         (bdesc_sse_args): Renamed to ...
3091         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
3092         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
3093         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
3094         IX86_BUILTIN_FABSQ.
3095         (bdesc_1arg): Moved to ...
3096         (bdesc_args): Here.
3097         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
3098         Instructions in comments with SSE3.
3099         (ix86_expand_sse_operands_builtin): Renamed to ...
3100         (ix86_expand_args_builtin): This.  Updated.
3101         (ix86_expand_unop1_builtin): Update comments.
3102         (ix86_expand_builtin): Updated.
3103
3104 2008-04-29  Richard Guenther  <rguenther@suse.de>
3105
3106         PR tree-optimization/36078
3107         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
3108         Update virtual SSA form after cleaning up the CFG.
3109
3110 2008-04-29  Richard Guenther  <rguenther@suse.de>
3111
3112         PR middle-end/15255
3113         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
3114
3115 2008-04-29  Richard Guenther  <rguenther@suse.de>
3116
3117         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
3118         (compute_may_aliases): Do not call finalize_ref_all_pointers.
3119         (compute_flow_insensitive_aliasing): Do not treat
3120         PTR_IS_REF_ALL pointers special.
3121         (get_smt_for): Likewise.
3122         (may_alias_p): Re-structure.
3123         (is_escape_site): A ref-all pointer conversion is not an escape site.
3124         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
3125         PTR_IS_REF_ALL pointers special.
3126         * tree-ssa-structalias.h (struct alias_info): Remove
3127         ref_all_symbol_mem_tag field.
3128         (PTR_IS_REF_ALL): Remove.
3129
3130 2008-04-29  Richard Guenther  <rguenther@suse.de>
3131
3132         PR middle-end/36077
3133         * fold-const.c (extract_muldiv_1): In combining division constants
3134         make sure to never overflow.
3135
3136 2008-04-29  Nick Clifton  <nickc@redhat.com>
3137
3138         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
3139
3140 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3141
3142         PR bootstrap/35169
3143         * optc-gen.awk: Work around HP-UX/IA awk bug.
3144
3145 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
3146
3147         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
3148         2008-04-25 commit.
3149
3150 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
3151
3152         PR target/36073
3153         * config/i386/i386.md
3154         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
3155         Change operand 1 predicate to nonimmediate_operand.
3156
3157 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
3158
3159         PR debug/36060
3160         * dwarf2out.c (struct die_struct): Mark as chain_circular through
3161         die_sub field.
3162         * gengtype.c (walk_type, write_func_for_structure): Handle
3163         chain_circular.
3164         * doc/gty.texi: Document chain_circular.
3165
3166 2008-04-28  Richard Guenther  <rguenther@suse.de>
3167
3168         PR tree-optimization/36066
3169         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
3170         SCEV and loop.
3171
3172 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
3173
3174         PR target/36064
3175         * config/i386/i386.md
3176         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
3177         Use match_scratch instead of match_operand for operands 3 and 4.
3178
3179 2008-04-27  Richard Guenther  <rguenther@suse.de>
3180
3181         PR tree-optimization/18754
3182         PR tree-optimization/34223
3183         * tree-pass.h (pass_complete_unrolli): Declare.
3184         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
3185         loop size before and after unconditionally of UL_NO_GROWTH in effect.
3186         Rewrite loop into loop closed SSA form if it is not already.
3187         (tree_unroll_loops_completely): Re-structure to iterate over
3188         innermost loops with intermediate CFG cleanups.
3189         Unroll outermost loops only if requested or the code does not grow
3190         doing so.
3191         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
3192         loops are available.
3193         (tree_vectorize): Instead do so here.
3194         (tree_complete_unroll): Also unroll outermost loops.
3195         (tree_complete_unroll_inner): New function.
3196         (gate_tree_complete_unroll_inner): Likewise.
3197         (pass_complete_unrolli): New pass.
3198         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
3199         uses outside of the loop.
3200         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
3201         form if it is available.  
3202         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
3203         * passes.c (init_optimization_passes): Schedule complete inner
3204         loop unrolling pass before the first CCP pass after final inlining.
3205
3206 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
3207
3208         * targhooks.h (default_emutls_var_fields,
3209         default_emutls_var_init): Declare.
3210         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
3211         * target.h (struct gcc_target): Add struct emutls member.
3212         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
3213         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
3214         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
3215         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
3216         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
3217         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
3218         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
3219         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
3220         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
3221         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
3222         emit debug information.
3223         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
3224         * varasm.c: Include targhooks.h.
3225         (emutls_object_section, emutls_tmpl_section): New.
3226         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
3227         (EMUTLS_SEPARATOR): New.
3228         (prefix_name): New.
3229         (get_emutls_object_name): New.
3230         (default_emutls_var_fields): New, broken out of ...
3231         (get_emutls_object_type): ... here.  Adjust to use target hooks.
3232         (get_emutls_init_templ_addr): Adjust to use target hooks.
3233         (emutls_decl): Adjust to use target hooks.
3234         (emutls_finish): Likewise.
3235         (default_emutls_var_init): New, broken out of ...
3236         (assemble_variable): ... here.  Adjust to use target hooks.
3237         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
3238         SECCAT_EMUTLS_TMPL.
3239         * c-common.c (handle_section_attribute): Prevent overriding
3240         sections for emulated tls with special sections.
3241         * config/i386/i386.c (x86_64_elf_select_section): Add
3242         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
3243         (x86_64_elf_unique_section): Likewise.
3244         * config/vxworks.c: Include tree.h.
3245         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
3246         (vxworks_override_options): Set TLS scheme.
3247         * doc/tm.texi (Emulated TLS): New node.
3248
3249 2008-04-26  Simon Baldwin <simonb@google.com>
3250
3251         PR c/35652
3252         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
3253         with propagated string constants.
3254
3255 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
3256
3257         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
3258         constraint for operand 2 when operand 0 is memory operand.
3259         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
3260         operand 0 is memory operand.
3261         (fix_trunc<mode>_i387_with_temp): Ditto.
3262         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
3263         operand 2 when operand 1 is memory operand.
3264         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
3265         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
3266         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
3267         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
3268         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
3269         operands 2,3 and 4 when operand 1 is memory operand.
3270         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
3271         is memory operand.
3272         (fistdi2_floor_with_temp): Ditto.
3273         (fist<mode>2_floor_with_temp): Ditto.
3274         (fistdi2_ceil_with_temp): Ditto.
3275         (fist<mode>2_ceil_with_temp): Ditto.
3276         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
3277
3278 2008-04-26  David Daney  <ddaney@avtrex.com>
3279
3280         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
3281         unspec_volitile.
3282         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
3283         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
3284         UNSPEC_UPDATE_GOT_VERSION): Renumber.
3285         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
3286         (compare_and_swap_12): New insn.
3287         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
3288         * config/mips/mips.c (mips_force_binary): New function.
3289         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
3290         (mips_expand_compare_and_swap_12): New function.
3291         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
3292
3293 2008-04-25  Jan Hubicka  <jh@suse.cz>
3294
3295         PR testsuite/35843
3296         * cfgexpand.c (pass_expand): Turn into RTL pass.
3297         * passes.c (execute_one_pass): Do pass typechecking after execution.
3298         * tree-pass.h (pass_expand): Turn into RTL pass.
3299
3300         * function.h (struct rtl_data): Move here fields
3301         accesses_prior_frames, calls_eh_return, saves_all_registers,
3302         has_nonlocal_goto, has_asm_statement, is_thunk,
3303         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
3304         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
3305         arg_pointer_save_area_init from struct function; turn into bool.
3306         (struct function): Move
3307         calls_eh_return, saves_all_registers, has_nonlocal_goto,
3308         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
3309         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
3310         tail_call_emit, arg_pointer_save_area_init
3311         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
3312         (current_function_returns_struct, current_function_returns_pcc_struct,
3313         current_function_calls_setjmp, current_function_calls_alloca,
3314         current_function_accesses_prior_frames,
3315         current_function_calls_eh_return, current_function_is_thunk,
3316         current_function_stdarg, current_function_profile,
3317         current_function_limit_stack, current_function_uses_pic_offset_table,
3318         current_function_uses_const_pool, current_function_has_nonlocal_label,
3319         current_function_saves_all_registers,
3320         current_function_has_nonlocal_goto,
3321         current_function_has_asm_statement): Remove accesor macros.
3322         * ra-conflict.c (global_conflicts): Update.
3323         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
3324         (suitable_for_tail_call_opt_p): Update.
3325         * builtins.c (expand_builtin_return_addr): Update.
3326         (expand_builtin_setjmp_setup): Update.
3327         (expand_builtin_nonlocal_goto): Update.
3328         * final.c (final_start_function): Update.
3329         (profile_function): Update.
3330         (leaf_function_p): Update.
3331         (only_leaf_regs_used): Update.
3332         * df-scan.c (df_get_exit_block_use_set): Update.
3333         * dojump.c (clear_pending_stack_adjust): Update.
3334         * tree-stdarg.c (gate_optimize_stdarg): Update.
3335         * gimple-low.c (lower_function_body): Update.
3336         * global.c (compute_regsets): Update.
3337         (global_alloc): Update.
3338         * dwarf2out.c (dwarf2out_begin_prologue): Update.
3339         * expr.c (expand_assignment): Update.
3340         * dse.c (dse_step0): Update.
3341         (dse_step1): Update.
3342         * c-decl.c (store_parm_decls): Update.
3343         * local-alloc.c (combine_regs): Update.
3344         (find_free_reg): Update.
3345         * function.c (assign_parms_augmented_arg_list): Update.
3346         (assign_parm_find_data_types): Update.
3347         (assign_parms): Update.
3348         (allocate_struct_function): Update.
3349         (expand_function_start): Update.
3350         (expand_function_end): Update.
3351         (get_arg_pointer_save_area): Update.
3352         (thread_prologue_and_epilogue_insns): Update.
3353         (rest_of_match_asm_constraints): Update.
3354         * stor-layout.c (variable_size): Update.
3355         * gcse.c (gcse_main): Update.
3356         (bypass_jumps): Update.
3357         * gimplify.c (gimplify_function_tree): Update.
3358         * calls.c (emit_call_1): Update.
3359         (expand_call): Update.
3360         * bt-load.c (compute_defs_uses_and_gen): Update.
3361         * except.c (sjlj_assign_call_site_values): Update.
3362         (sjlj_emit_function_enter): Update.
3363         (can_throw_external): Update.
3364         (set_nothrow_function_flags): Update.
3365         (expand_builtin_unwind_init): Update.
3366         (expand_eh_return): Update.
3367         (convert_to_eh_region_ranges): Update.
3368         (output_function_exception_table): Update.
3369         * emit-rtl.c (gen_tmp_stack_mem): Update.
3370         * cfgexpand.c (expand_used_vars): Update.
3371         (tree_expand_cfg): Update.
3372         * cfgcleanup.c (rest_of_handle_jump): Update.
3373         * explow.c (allocate_dynamic_stack_space): Update.
3374         * varasm.c (assemble_start_function): Update.
3375         (force_const_mem): Update.
3376         (mark_constant_pool): Update.
3377         * tree-optimize.c (tree_rest_of_compilation): Update.
3378         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
3379         * tree-cfg.c (notice_special_calls): Update.
3380         (is_ctrl_altering_stmt): Update.
3381         (tree_can_make_abnormal_goto): Update.
3382         (tree_purge_dead_abnormal_call_edges): Update.
3383         * config/alpha/predicates.md: Update.
3384         * config/alpha/alpha.c (alpha_sa_mask): Update.
3385         (alpha_sa_size): Update.
3386         (alpha_does_function_need_gp): Update.
3387         (alpha_expand_prologue): Update.
3388         (alpha_start_function): Update.
3389         (alpha_output_function_end_prologue): Update.
3390         (alpha_expand_epilogue): Update.
3391         * config/frv/frv.c (frv_stack_info): Update.
3392         (frv_expand_epilogue): Update.
3393         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
3394         (s390_register_info): Update.
3395         (s390_frame_info): Update.
3396         (s390_init_frame_layout): Update.
3397         (s390_can_eliminate): Update.
3398         (save_gprs): Update.
3399         * config/spu/spu.c (spu_split_immediate): Update.
3400         (need_to_save_reg): Update.
3401         (spu_expand_prologue): Update.
3402         (spu_expand_epilogue): Update.
3403         * config/sparc/sparc.md: Update.
3404         * config/sparc/sparc.c (eligible_for_return_delay): Update.
3405         (sparc_tls_got): Update.
3406         (legitimize_pic_address): Update.
3407         (sparc_emit_call_insn): Update.
3408         (sparc_expand_prologue): Update.
3409         (output_return): Update.
3410         (print_operand): Update.
3411         (sparc_function_ok_for_sibcall): Update.
3412         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
3413         * config/m32r/m32r.md: Update.
3414         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
3415         (m32r_compute_frame_size): Update.
3416         (m32r_expand_prologue): Update.
3417         (m32r_expand_epilogue): Update.
3418         (m32r_legitimize_pic_address): Update.
3419         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
3420         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
3421         * config/i386/i386.c (ix86_frame_pointer_required): Update.
3422         (gen_push): Update.
3423         (ix86_save_reg): Update.
3424         (ix86_compute_frame_layout): Update.
3425         (ix86_expand_prologue): Update.
3426         (ix86_expand_epilogue): Update.
3427         * config/sh/sh.c (output_stack_adjust): Update.
3428         (calc_live_regs): Update.
3429         (sh5_schedule_saves): Update.
3430         (sh_expand_prologue): Update.
3431         (sh_expand_epilogue): Update.
3432         (sh_setup_incoming_varargs): Update.
3433         (sh_allocate_initial_value): Update.
3434         (sh_get_pr_initial_val): Update.
3435         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
3436         * config/sh/sh.md (label:): Update.
3437         * config/avr/avr.c (out_movhi_mr_r): Update.
3438         * config/crx/crx.h (enum): Update.
3439         * config/xtensa/xtensa.h (along): Update.
3440         * config/stormy16/stormy16.c Update.
3441         (xstormy16_compute_stack_layout): Update.
3442         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
3443         (fr30_expand_prologue): Update.
3444         * config/cris/cris.c (cris_conditional_register_usage): Update.
3445         (cris_reg_saved_in_regsave_area): Update.
3446         (cris_initial_frame_pointer_offset): Update.
3447         (cris_simple_epilogue): Update.
3448         (cris_expand_prologue): Update.
3449         (cris_expand_epilogue): Update.
3450         (cris_expand_pic_call_address): Update.
3451         (cris_asm_output_symbol_ref): Update.
3452         (cris_asm_output_label_ref): Update.
3453         * config/cris/cris.md Update.
3454         * config/iq2000/iq2000.c (compute_frame_size): Update.
3455         (iq2000_expand_epilogue): Update.
3456         * config/mt/mt.h (save_direction): Update.
3457         * config/mn10300/mn10300.c (mn10300_function_value): Update.
3458         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
3459         (ia64_secondary_reload_class): Update.
3460         * config/m68k/m68k.c (m68k_save_reg): Update.
3461         (m68k_expand_prologue): Update.
3462         (m68k_expand_epilogue): Update.
3463         (legitimize_pic_address): Update.
3464         * config/rs6000/rs6000.c (rs6000_got_register): Update.
3465         (first_reg_to_save): Update.
3466         (first_altivec_reg_to_save): Update.
3467         (compute_vrsave_mask): Update.
3468         (compute_save_world_info): Update.
3469         (rs6000_stack_info): Update.
3470         (spe_func_has_64bit_regs_p): Update.
3471         (rs6000_ra_ever_killed): Update.
3472         (rs6000_emit_eh_reg_restore): Update.
3473         (rs6000_emit_allocate_stack): Update.
3474         (rs6000_emit_prologue): Update.
3475         (rs6000_emit_epilogue): Update.
3476         (rs6000_output_function_epilogue): Update.
3477         (output_profile_hook): Update.
3478         (rs6000_elf_declare_function_name): Update.
3479         * config/rs6000/rs6000.h (rs6000_args): Update.
3480         * config/rs6000/rs6000.md: Update.
3481         * config/mcore/mcore.c (mcore_expand_prolog): Update.
3482         * config/arc/arc.c (arc_output_function_epilogue): Update.
3483         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
3484         * config/darwin.c (machopic_function_base_name): Update.
3485         * config/score/score3.c (score3_compute_frame_size): Update.
3486         (rpush): Update.
3487         (rpop): Update.
3488         (score3_epilogue): Update.
3489         * config/score/score7.c (score7_compute_frame_size): Update.
3490         (score7_prologue): Update.
3491         (score7_epilogue): Update.
3492         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
3493         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
3494         * config/arm/arm.c (use_return_insn): Update.
3495         (require_pic_register): Update.
3496         (arm_load_pic_register): Update.
3497         (arm_compute_save_reg0_reg12_mask): Update.
3498         (arm_compute_save_reg_mask): Update.
3499         (thumb1_compute_save_reg_mask): Update.
3500         (output_return_instruction): Update.
3501         (arm_output_function_prologue): Update.
3502         (arm_output_epilogue): Update.
3503         (arm_get_frame_offsets): Update.
3504         (arm_expand_prologue): Update.
3505         (thumb_pushpop): Update.
3506         (thumb_exit): Update.
3507         (thumb1_expand_prologue): Update.
3508         (thumb1_expand_epilogue): Update.
3509         (arm_unwind_emit): Update.
3510         (arm_output_fn_unwind): Update.
3511         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
3512         * config/arm/arm.md: Update.
3513         * config/pa/pa.md: Update.
3514         * config/pa/pa.c (legitimize_pic_address): Update.
3515         (compute_frame_size): Update.
3516         (hppa_expand_prologue): Update.
3517         (hppa_expand_epilogue): Update.
3518         (borx_reg_operand): Update.
3519         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
3520         (HARD_REGNO_RENAME_OK): Update.
3521         * config/mips/mips.c (mips_global_pointer): Update.
3522         (mips_save_reg_p): Update.
3523         (mips_compute_frame_info): Update.
3524         (mips_frame_pointer_required): Update.
3525         (mips_expand_prologue): Update.
3526         (mips_expand_epilogue): Update.
3527         (mips_can_use_return_insn): Update.
3528         (mips_reorg_process_insns): Update.
3529         * config/v850/v850.c (compute_register_save_size): Update.
3530         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
3531         * config/mmix/mmix.c (along): Update.
3532         (mmix_expand_epilogue): Update.
3533         * config/bfin/bfin.c (legitimize_pic_address): Update.
3534         (must_save_p): Update.
3535         (stack_frame_needed_p): Update.
3536         (add_to_reg): Update.
3537         (bfin_expand_prologue): Update.
3538         * stmt.c (expand_asm_operands): Update.
3539         * reload1.c (reload): Update.
3540         (init_elim_table): Update.
3541
3542 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
3543         
3544         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
3545         
3546 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
3547
3548         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
3549         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
3550         (mov<mode>): Removed.
3551         (*movv4sf_internal): Likewise.
3552         (*movv2df_internal): Likewise.
3553
3554 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
3555
3556         * config.gcc (crx-*-elf): Remove deprecation.
3557
3558 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
3559
3560         * config/i386/cygming-crtend.c (register_frame_ctor): Register
3561         __gcc_deregister_frame with atexit.
3562         (deregister_frame_dtor): Remove.
3563
3564 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
3565             Nathan Sidwell  <nathan@codesourcery.com>
3566
3567         * config/rs6000/rs6000.opt (mspe): Remove Var property.
3568         (misel): Likewise.
3569         * config/rs6000/rs6000.h (rs6000_spe): Declare.
3570         (rs6000_isel): Likewise.
3571         * config/rs6000/rs6000.c (rs6000_spe): New variable.
3572         (rs6000_isel): New variable.
3573         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
3574
3575 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3576
3577         PR c++/35758
3578         * c-common.c (handle_vector_size_attribute): Call
3579         lang_hooks.types.reconstruct_complex_type instead of
3580         reconstruct_complex_type.
3581         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
3582         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
3583         * langhooks.h (struct lang_hooks_for_types): Add
3584         reconstruct_complex_type hook.
3585         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
3586         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
3587
3588 2008-04-24  Richard Guenther  <rguenther@suse.de>
3589
3590         * c-common.h (check_builtin_function_arguments): Declare.
3591         * c-common.c (validate_nargs): New function.
3592         (check_builtin_function_arguments): Likewise.
3593         * c-typeck.c (build_function_call): Call
3594         check_builtin_function_arguments.
3595         * builtins.c (fold_builtin_classify): Remove error reporting code.
3596         (fold_builtin_unordered_cmp): Likewise.
3597         (fold_builtin_1): Likewise.
3598         (fold_builtin_n): Likewise.
3599
3600 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3601
3602         PR tree-optimization/36008
3603         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
3604         the original op1, rather than delta by step.
3605
3606 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
3607             Sebastian Pop  <sebastian.pop@amd.com>
3608
3609         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
3610         eliminate_local_variables_stmt, eliminate_local_variables,
3611         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
3612         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
3613         of code delimited by two edges in the CFG.
3614         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
3615         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
3616         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
3617         the case of parallelisation of reductions.
3618         (expr_invariant_in_region_p): New.
3619
3620         * tree-flow.h (gather_blocks_in_sese_region): Declared.
3621         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
3622
3623 2008-04-24  Ira Rosen  <irar@il.ibm.com>
3624             Richard Guenther  <rguenther@suse.de>
3625
3626         PR tree-optimization/36034
3627         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
3628         incapable of dealing with loads with gaps.
3629
3630 2008-04-24  Rafael Espindola  <espindola@google.com>
3631
3632         * tree-flow.h (vrp_evaluate_conditional): Change signature.
3633         * tree-ssa-propagate.c (fold_predicate_in): Update call to
3634         vrp_evaluate_conditional.
3635         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
3636         (vrp_evaluate_conditional): Split the cond argument.
3637         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
3638         (simplify_stmt_for_jump_threading): Update call to
3639         vrp_evaluate_conditional.
3640
3641 2008-04-24  Ira Rosen  <irar@il.ibm.com>
3642
3643         PR tree-optimization/35982
3644         * tree-vect-analyze.c (vect_check_interleaving): Check that the
3645         interleaved data-refs are of the same type.
3646
3647 2008-04-24  Danny Smith  <dannysmith@users.net>
3648
3649         * c-format.c (check_format_info_main): Use strncmp rather than a
3650         magic prefix to handle multichar length specs.
3651         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
3652         Don't prefix "I64" and "I32" with '\0'.
3653
3654 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3655
3656         PR target/36015
3657         * config/i386/i386.c (init_cumulative_args): Don't pass anything
3658         in registers for -m32 only if stdarg_p (fntype).
3659
3660 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
3661
3662         PR rtl-optimization/36006
3663         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
3664         temp to op0 in order to avoid invalid rtx sharing.
3665
3666 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
3667
3668         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
3669         check TREE_INVARIANT.
3670         * tree-gimple.c (is_gimple_address): New.
3671         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
3672         * tree-gimple.h (is_gimple_address): New.
3673         * tree.h (decl_address_invariant_p): New.
3674         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
3675         (build_string): Likewise.
3676         (decl_address_invariant_p): New, from is_gimple_invariant_address.
3677         (tree_invariant_p_1): Likewise.
3678         (save_expr): Use it.
3679         (tree_invariant_p): New.
3680         (skip_simple_arithmetic): Use it.
3681         (stabilize_reference_1): Use it.
3682         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
3683         simplify.
3684         (build1_stat): Drop code to compute TREE_INVARIANT.
3685         (build2_stat): Drop code to compute TREE_INVARIANT.
3686         (build3_stat): Drop code to compute TREE_INVARIANT.
3687         (build4_stat): Drop code to compute TREE_INVARIANT.
3688         (build5_stat): Drop code to compute TREE_INVARIANT.
3689         (build7_stat): Drop code to compute TREE_INVARIANT.
3690         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
3691         * tree.h (struct tree_base): Remove invariant_flag.
3692         (TREE_INVARIANT): Remove.
3693         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
3694         (fold_builtin_expect): Check TREE_CONSTANT.
3695         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
3696         * c-tree.h (c_expr_to_decl): Drop third parameter.
3697         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
3698         (build_c_cast): Don't set TREE_INVARIANT.
3699         (pop_init_level): Don't set TREE_INVARIANT.
3700         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
3701         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
3702         TREE_CONSTANT.
3703         (gimplify_init_constructor): Don't set TREE_INVARIANT.
3704         (gimplify_addr_expr): Adjust comment.
3705         * tree-mudflap.c (mf_build_string):
3706         * print-tree.c (print_node): Don't print TREE_INVARIANT.
3707         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
3708         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
3709         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
3710         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
3711         * langhooks.h (struct lang_hooks): Drop third parameter from
3712         expr_to_decl.
3713
3714 2008-04-23  Richard Guenther  <rguenther@suse.de>
3715
3716         PR tree-optimization/27799
3717         PR tree-optimization/32921
3718         PR tree-optimization/32624
3719         * tree-ssa-structalias.c (merge_smts_into): Only merge the
3720         SMTs aliases and the tag itself into the solution.
3721         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
3722         merge the points-to solution back into the SMT aliases.
3723         (may_alias_p): Use alias_set_subset_of instead of
3724         aliases_conflict_p.  A pointer which points to
3725         memory with alias set zero may access any variable.
3726
3727 2008-04-23  Richard Guenther  <rguenther@suse.de>
3728
3729         * alias.c (alias_set_subset_of): Correctly handle asking
3730         if zero is a subset of an alias set with zero child.
3731         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
3732         (compute_flow_insensitive_aliasing): Correctly walk all
3733         pointers.  Do not unnecessarily union sets.
3734
3735 2008-04-23  Richard Guenther  <rguenther@suse.de>
3736
3737         PR middle-end/36021
3738         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
3739
3740 2008-04-22  Tomas Bily  <tbily@suse.cz>
3741
3742         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
3743         unreachable case.
3744         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
3745         NON_LVALUE_EXPR.
3746         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
3747         * tree-ssa-structalias.c (get_constraint_for): Likewise.
3748         * tree-inline.c (estimate_num_insns_1): Likewise.
3749         * varasm.c (const_hash_1, compare_constant, copy_constant)
3750         (compute_reloc_for_constant, output_addressed_constants): Likewise.
3751         * emit-rtl.c (component_ref_for_mem_expr)
3752         (set_mem_attributes_minus_bitpos): Likewise.
3753         * expr.c (highest_pow2_factor, expand_expr_real_1, )
3754         (is_aligning_offset): Likewise.
3755         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
3756         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
3757         * dojump.c (do_jump): Likewise.
3758         * builtins.c (get_pointer_alignment, get_memory_rtx)
3759         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
3760         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
3761
3762 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
3763
3764         PR rtl-optimization/36017
3765         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
3766         expanding the library call.
3767
3768 2008-04-22  Ian Lance Taylor  <iant@google.com>
3769
3770         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
3771         than size_in_bytes.
3772
3773 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
3774
3775         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
3776         of LR/CTR moves for Power6.
3777
3778 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
3779
3780         PR middle-end/36003
3781         * passes.c (init_optimization_passes): Remove
3782         pass_fast_rtl_byte_dce.
3783         
3784 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
3785
3786         PR target/29096
3787         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
3788         builtin functions to generate faster code.
3789         (_mm_cvtpu16_ps): Ditto.
3790         (_mm_cvtpi32x2_ps): Ditto.
3791
3792 2008-04-22  Nick Clifton  <nickc@redhat.com>
3793
3794         * common.opt (ftree-loop-distribution): Add Optimization
3795         attribute.
3796
3797         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
3798         (frv_expand_builtin_va_start): Likewise.
3799
3800         * config/arm/arm.c (thumb_find_work_register): Fix location of
3801         argument register count.
3802
3803 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
3804
3805         Support scheduling for ColdFire V1 and V3 microarchitecture.
3806         Improve scheduling of multiplication instructions.
3807
3808         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
3809         (mac): New instruction attribute.
3810         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
3811         (m68k_sched_mac): New variable.
3812         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
3813         Handle cfv1 and cfv3.
3814         (max_insn_size): New static variable.
3815         (struct _sched_ib): New type.
3816         (sched_ib): New static variable.
3817         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
3818         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
3819         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
3820         Update.
3821         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
3822         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
3823         new variables.  Update.
3824         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
3825         Add modeling of cfv3 instruction buffer.  Update.
3826         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
3827         * config/m68k/m68k.h (TUNE_CFV3): New macro.
3828         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
3829         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
3830         a particular reservation applies to.
3831         (type2): Reorganize attribute values.  Rename alu to alu_reg,
3832         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
3833         to mul_l and mul_w.
3834         (cf_ib_*): Simplify description of instruction buffer.
3835         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
3836         (cf_mem): Split into cf_mem1 and cf_mem2.
3837         (cf_v2_move_??): Rename to cfv12_alu_??.
3838         (cf_v2_move_l_??): Rename to cfv12_omove_??.
3839         (cf_v2_mul_??): Remove reservations.
3840         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
3841         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
3842         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
3843         appropriate place.
3844         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
3845         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
3846         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
3847         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
3848         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
3849         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
3850         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
3851         expansions of the above reservations for instructions of sizes
3852         1, 2 and 3 words.
3853
3854 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
3855
3856         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
3857
3858 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
3859
3860         * coverage.c: Include tree-pass.h.
3861         (coverage_counter_alloc): Print da_file_name to the dump file.
3862
3863 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
3864
3865         * sbitmap.c (sbitmap_range_empty_p): New function.
3866         * sbitmap.h (sbitmap_range_empty_p): New function.
3867         * bitmap.h: Now includes obstack.h.
3868
3869 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
3870             Kenneth Zadeck  <zadeck@naturalbridge.com>
3871
3872         * dbgcnt.def (ra_byte_scan): Added.
3873         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
3874         when the last hit happens for a counter.  
3875         * timevar.def (TV_DF_BYTE_LR): New variable.
3876         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
3877         * passes.c (pass_fast_rtl_byte_dce): New pass.
3878         * fwprop.c (update_df): Added mode to call df_ref_create.
3879         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
3880         DF_REF_EXTRACT_OFFSET.
3881         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
3882         DF_BYTE_LR_OUT, df_byte_lr): New macro.
3883         (df_mm): New enum.
3884         (df_ref_extract): Added mode field.
3885         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
3886         DF_REF_EXTRACT_OFFSET.
3887         (DF_REF_EXTRACT_MODE): New macro.
3888         (df_byte_lr_bb_info): New structure.
3889         (df_print_byte_regset, df_compute_accessed_bytes, 
3890         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
3891         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
3892         df_byte_lr_simulate_uses,
3893         df_byte_lr_simulate_artificial_refs_at_top,
3894         df_byte_lr_simulate_artificial_refs_at_end,
3895         df_compute_accessed_bytes): New function.
3896         (df_ref_create): Add parameter.
3897         (df_byte_lr_get_bb_info): New inline function.
3898         * df-scan.c (df_ref_record, df_uses_record,
3899         df_ref_create_structure): Added mode parameter.
3900         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
3901         df_defs_record, df_uses_record, df_get_conditional_uses,
3902         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
3903         df_entry_block_defs_collect, df_exit_block_uses_collect):
3904         Added mode parameter to calls to df_ref_record, df_uses_record,
3905         df_ref_create_structure.
3906         (df_ref_equal_p, df_ref_compare): Added test for modes.
3907         (df_ref_create_structure): Added code to set mode.  Renamed
3908         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
3909         DF_REF_EXTRACT_OFFSET.
3910         * df-core.c (df_print_byte_regset): New function.
3911         * df-byte-scan.c: New file.
3912         * df-problems.c (df_rd_transfer_function): Removed unnecessary
3913         calls to BITMAP_FREE.  
3914         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
3915         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
3916         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
3917         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
3918         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
3919         df_byte_lr_local_compute, df_byte_lr_init,
3920         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
3921         df_byte_lr_transfer_function, df_byte_lr_free, 
3922         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
3923         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
3924         df_byte_lr_simulate_uses,
3925         df_byte_lr_simulate_artificial_refs_at_top,
3926         df_byte_lr_simulate_artificial_refs_at_end): New function.
3927         * dce.c (byte_dce_process_block): New function.
3928         (dce_process_block): au is now passed in rather than computed
3929         locally.  Changed loops that look at artificial defs to not look
3930         for conditional or partial ones, because there never are any.  
3931         (fast_dce): Now is able to drive byte_dce_process_block or 
3932         dce_process_block depending on the kind of dce being done.
3933         (rest_of_handle_fast_dce): Add parameter to fast_dce.
3934         (rest_of_handle_fast_byte_dce): New function.
3935         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
3936         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
3937
3938 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
3939
3940         PR fortran/35019
3941         * gcc.h: Added fortran options that take arguments to
3942         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
3943         macros.
3944
3945 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
3946
3947         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
3948         scalarization if on the LHS and not a full access.
3949
3950 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3951
3952         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
3953
3954 2008-04-18  Rafael Espindola  <espindola@google.com>
3955
3956         * tree-vrp.c (find_case_label_index): Fix the binary search.
3957         (find_case_label_range): New.
3958         (vrp_visit_switch_stmt): Use find_case_label_range.
3959         (simplify_switch_using_ranges): Use find_case_label_range.
3960
3961 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
3962
3963         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
3964         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
3965
3966 2008-04-18  Tom Tromey  <tromey@redhat.com>
3967
3968         PR libcpp/15500:
3969         * doc/cpp.texi (Implementation-defined behavior): Mention
3970         -finput-charset.
3971
3972 2008-04-18  Ian Lance Taylor  <iant@google.com>
3973
3974         * fold-const.c (pointer_may_wrap_p): New static function.
3975         (fold_comparison): Add another test for pointer overflow.  Use
3976         pointer_may_wrap_p to disable some false positives.
3977
3978 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
3979           
3980         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
3981         (fname_as_string): Match updated cpp_interpret_string prototype.
3982         (fix_string_type): Support char16_t* and char32_t*.
3983         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
3984         derivative) nodes.  Register as builtin if C++0x.
3985         (c_parse_error): Support CPP_CHAR{16,32}.
3986         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
3987         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
3988         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
3989         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
3990         CTI_CHAR32_ARRAY_TYPE>: New elements.
3991         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
3992         char32_type_node, signed_char32_type_node, char16_array_type_node,
3993         char32_array_type_node): New defines.
3994         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
3995         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
3996         (lex_string): Support CPP_STRING{16,32}, match updated
3997         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
3998         (lex_charconst): Support CPP_CHAR{16,32}.
3999         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
4000         and CPP_STRING{16,32}.
4001
4002 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
4003
4004         PR bootstrap/35457
4005         * aclocal.m4: Regenerate.
4006         * configure: Regenerate.
4007
4008 2008-04-18  Jan Hubicka  <jh@suse.cz>
4009
4010         * except.c (dw2_size_of_call_site_table,
4011         sjlj_size_of_call_site_table): Use vector API for call_site_record.
4012
4013         * cgraphbuild.c (build_cgraph_edges): Update.
4014         * tree-pass.h: Update comment.
4015         * final.c (leaf_function_p): Update.
4016         (leaf_renumber_regs): Update.
4017         (rest_of_clean_state): Update.
4018         * omp-low.c (expand_omp_parallel): Update.
4019         * ipa-reference.c (analyze_function): Update.
4020         * reorg.c (find_end_label): Update.
4021         (optimize_skip): Update.
4022         (fill_simple_delay_slots): Update.
4023         (fill_simple_delay_slots): Update.
4024         (make_return_insns): Update.
4025         (dbr_schedule): Update.
4026         * gimple-low.c (record_vars_into): Update.
4027         * cfgbuild.c (make_edges): Update.
4028         * function.c (assign_stack_local): Update.
4029         (assign_parm_adjust_stack_rtl): Update.
4030         (locate_and_pad_parm): Update.
4031         (allocate_struct_function): Do not initialize stack_alignment_needed
4032         and preferred_stack_boundary here.
4033         (stack_protect_prologue): Update.
4034         (stack_protect_epilogue): Update.
4035         (expand_function_start): Initialize stack_alignment_needed,
4036         preferred_stack_boundary and max_jumptable_ents.
4037         (expand_function_end): Update.
4038         (free_after_compilation): Do not NULLify epilogue_delay_list.
4039         * function.h (struct rtl_data): Add stack_protect_guard,
4040         stack_alignment_needed,
4041         preferred_stack_boundary, epilogue_delay_list.
4042         (struct function): Remove value_histograms, stack_alignment_needed,
4043         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
4044         last_label_uid,
4045         unexpanded_var_list, stack_protect_guard.
4046         (current_function_epilogue_delay_list): Remove.
4047         * ipa-type-escape.c (analyze_function): Update.
4048         * gimplify.c (pop_gimplify_context): Update comment.
4049         * calls.c (expand_call): Update.
4050         (emit_library_call_value_1): Update.
4051         * except.c (set_nothrow_function_flags): Update.
4052         * cfgexpand.c (get_decl_align_unit): Update.
4053         (create_stack_guard): Update.
4054         (estimated_stack_frame_size): Update.
4055         (expand_used_vars): Update.
4056         (tree_expand_cfg): Free histogram earliers, init expansion variables.
4057         * explow.c (allocate_dynamic_stack_space): Update.
4058         * tree-ssa-live.c (remove_unused_locals): Update.
4059         * varasm.c (mark_constant_pool): Update.
4060         * tree-inline.c (remap_decls): Update.
4061         (initialize_cfun): Update.
4062         (declare_return_variable): Update.
4063         (inline_forbidden_p): Update.
4064         (expand_call_inline): Update.
4065         (declare_inline_vars): Update.
4066         (tree_function_versioning): Update.
4067         * tree-flow.h (value_histograms): New.
4068         (VALUE_HISTOGRAMS): New macro.
4069         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
4070         last_label_uid.
4071         * tree-cfg.c (set_bb_for_stmt): Update.
4072         (replace_by_duplicate_decl): Update.
4073         (move_block_to_fn): Update.
4074         (new_label_mapper): Update.
4075         (dump_function_to_file): Update.
4076         * ipa-struct-reorg.c (build_data_structure): Update.
4077         * cfgrtl.c (print_rtl_with_bb): Update.
4078         * reload1.c (reload): Update.
4079         (reload): Update.
4080         * config/i386/i386.c (setup_incoming_varargs_64,
4081         ix86_compute_frame_layout): Update.
4082         * config/arc/arc.c (arc_output_function_epilogue): Update.
4083
4084 2008-04-18  Marius Strobl <marius@FreeBSD.org>
4085
4086         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
4087         for FreeBSD as well.
4088         * gthr-posix95.h: Likewise.
4089
4090 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
4091
4092         PR rtl-optimization/35838
4093         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
4094         out the byte offset of the first subreg.
4095
4096 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
4097
4098         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
4099         to split_ti instead of three separate calls with single member arrays.
4100         (subti3 splitter): Ditto.
4101         (adddi3 splitter): Ditto with split_di.
4102         (subdi3 splitter): Ditto.
4103         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
4104         two separate calls with single member arrays.  Swap match_dup
4105         operands 1 and 2 to better fit into the array.
4106         (negdi2 splitter): Ditto with split_di.
4107         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
4108         two separate calls with single member arrays.  Swap match_dup operands
4109         6 and 7 to better fit into the array.
4110
4111 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
4112
4113         * config/i386/i386.c (sse_builtin_type): New.
4114         (bdesc_sse_args): Likewise.
4115         (bdesc_sse_3arg): Removed.
4116         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
4117         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
4118         IX86_BUILTIN_ROUNDPS.
4119         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
4120         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
4121         IX86_BUILTIN_ROUNDPS.
4122         (ix86_expand_sse_4_operands_builtin): Removed.
4123         (ix86_expand_sse_operands_builtin): New.
4124         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
4125         and CODE_FOR_sse4_1_roundps.
4126         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
4127         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
4128
4129 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
4130
4131         PR target/35907
4132         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
4133         regs before frame pop when needed.  If use_backchain_to_restore_sp
4134         then load backchain into a temp reg to restore vr and vrsave.  Add
4135         code to restore vr after frame pop if possible.
4136
4137 2008-04-17  Richard Guenther  <rguenther@suse.de>
4138
4139         * tree-vn.c (expressions_equal_p): Do not check type
4140         equality or compatibility before calling operand_equal_p.
4141         * fold-const.c (operand_equal_p): Check equivalence of
4142         integer constants before bailing out due to signedness or
4143         precision differences.
4144         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
4145         spurious differences in type qualification.  Ignore types
4146         for COMPONENT_REFs at all.
4147
4148 2008-04-17  Christian Bruel  <christian.bruel@st.com>
4149
4150         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
4151         msw_skip comparison.
4152         
4153 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
4154
4155         PR c/35739
4156         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
4157         reg type.
4158
4159         PR tree-optimization/35899
4160         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
4161         rather than TREE_OPERAND.
4162
4163 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
4164
4165         PR target/35944
4166         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
4167         temporary registers.  Change operand predicate to general_operand.
4168         (remainderxf3): Ditto.
4169
4170 2008-04-16  Richard Guenther  <rguenther@suse.de>
4171
4172         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
4173         * tree-affine.c (aff_combination_expand): Look through some
4174         conversions.
4175
4176 2008-04-15  Doug Kwan  <dougkwan@google.com>
4177
4178         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
4179         for hex printing.
4180         * tree-pretty-print.c (dump_generic_node): Ditto.
4181         * final.c (output_addr_const): Ditto.
4182         * dwarf2out.c (output_cfi): Ditto.
4183         * c-pretty-print.c (pp_c_integer_constant): Ditto.
4184         * print-rtl.c (print_rtx): Ditto.
4185         * print-tree.c (print_node_brief, print_node): Ditto.
4186         * c-common.c (match_case_to_enum_1): Ditto.
4187         * sched-vis.c (print_value): Ditto.
4188         * config/i386/i386.c (print_operand): Cast to long unsigned int
4189         for hex printing.
4190
4191 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
4192         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
4193         MS Windows VirtualProtect function.
4194
4195 2008-04-15  Jan Hubicka  <jh@suse.cz>
4196
4197         * gengtype.c (write_root): Param_is argument is OK.
4198         * expr.c (expand_expr_real_1): Update call of get_exception_*.
4199         * function.h: Include varray.h
4200         (rtl_eh): New stucture based on except.c one.
4201         (call_site_record): New forward declaration and vector type.
4202         * calls.c (emit_call_1): Do not call
4203         note_current_region_may_contain_throw.
4204         * except.c (eh_status): Remove cur_region, try_region since they are
4205         unused.
4206         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
4207         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
4208         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
4209         Remove call_site_data_used, call_site_data_size.
4210         Turn call_site_record into vector in function.h.
4211         (note_current_region_may_contain_throw): Remove.
4212         (get_exception_pointer, get_exception_filter): Do not take struct
4213         function argument; update.
4214         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
4215         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
4216         build_post_landing_pads, dw2_build_landing_pads,
4217         sjlj_assign_call_site_values, sjlj_mark_call_sites,
4218         sjlj_emit_function_enter, sjlj_emit_function_enter, 
4219         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
4220         sjlj_build_landing_pads, finish_eh_generation,
4221         remove_exception_handler_label, remove_eh_handler,
4222         maybe_remove_eh_handler, add_reachable_handler,
4223         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
4224         add_action_record, collect_one_action_chain, add_call_site,
4225         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
4226         sjlj_output_call_site_table, output_function_exception_table,
4227         * except.h (note_current_region_may_contain_throw): Remove
4228         (get_exception_pointer, get_exception_filter): Do not take struct
4229         function argument.
4230         * Makefile.in (GTFILES): Put varargs before struct function.
4231
4232 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4233
4234         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
4235         punt for STRING_CST.
4236         (get_constraint_for): Deal with STRING_CST here instead.
4237
4238 2008-04-15  Richard Guenther  <rguenther@suse.de>
4239
4240         * tree-ssa-propagate.c (substitute_and_fold): Substitute
4241         statements in a basic-block with a backward walk.  Do not
4242         substitute into dead statements but instead remove those.
4243
4244 2008-04-15  Richard Guenther  <rguenther@suse.de>
4245
4246         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
4247         to zero, thus disable creation of SFTs.
4248
4249 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4250
4251         * tree-predcom.c (suitable_reference_p): Return false if the
4252         reference can throw.
4253
4254 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
4255
4256         PR c/35751
4257         * c-decl.c (finish_decl): If extern or static var has variable
4258         size, set TREE_TYPE (decl) to error_mark_node.
4259
4260 2008-04-15  Rafael Espindola  <espindola@google.com>
4261
4262         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
4263         variable arg1.
4264
4265 2008-04-15  Richard Guenther  <rguenther@suse.de>
4266
4267         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
4268         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
4269         (visit_reference_op_load): Do walk vuse-vdef chains on
4270         vn_reference_lookup.
4271         (visit_reference_op_store): But do not here.
4272         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
4273         vn_reference_lookup.
4274         (vn_lookup_with_vuses): But do so here.
4275
4276 2008-04-14  Ian Lance Taylor  <iant@google.com>
4277
4278         * fold-const.c (fold_overflow_warning): Remove assertion.
4279
4280 2008-04-15  Ben Elliston  <bje@au.ibm.com>
4281
4282         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
4283         temp1 local variables.
4284
4285 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
4286
4287         PR target/35661
4288         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
4289         ".text.unlikely" section as executable.
4290
4291 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
4292
4293         * config/ia64/ia64.c (rtx_needs_barrier): Handle
4294         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
4295         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
4296         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
4297         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
4298         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
4299         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
4300
4301 2008-04-14  Ian Lance Taylor  <iant@google.com>
4302
4303         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
4304         * fold-const.c (fold_comparison): If appropriate, test
4305         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
4306         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
4307         reassociating a pointer type.
4308         * doc/invoke.texi (Optimize Options): Document that
4309         -fstrict-overflow applies to pointer wraparound.
4310
4311 2008-04-13  Jan Hubicka  <jh@suse.cz>
4312
4313         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
4314
4315 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
4316
4317         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
4318         we are going to "save the world".
4319
4320 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
4321
4322         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
4323         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
4324         operand 0 constraint, not "=".
4325
4326 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
4327
4328         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
4329
4330 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
4331
4332         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
4333         of size of positions_needed * CHAR_BIT.
4334
4335 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
4336
4337         PR middle-end/35897
4338         * dse.c (store_info): Change positions_needed to unsigned
4339         HOST_WIDE_INT.
4340         (lowpart_bitmask): New.
4341         (record_store): Cast to unsigned HOST_WIDE_INT for
4342         positions_needed.  Assert width <= size of positions_needed *
4343         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
4344         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
4345         lowpart_bitmask to set mask.
4346
4347 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
4348
4349         * config/bfin/constraints.md: New file.
4350         * config/bfin/bfin.md: Include it.
4351         (adddi3): Use satisfies_constraint functions instead of the old macros.
4352         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
4353         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
4354         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
4355         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
4356         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
4357         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
4358         EXTRA_CONSTRAINT): Delete.
4359         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
4360         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
4361         of the old macros.
4362         * config/bfin/bfin.c: Include "tm-constrs.h".
4363         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
4364         Use satisfies_constraint functions instead of the old macros.
4365         * doc/md.texi (Blackfin Constraints): Update file name reference.
4366
4367 2008-04-11  Richard Guenther  <rguenther@suse.de>
4368
4369         PR tree-optimization/35869
4370         * tree-vrp.c (execute_vrp): Move switch statement update after
4371         jump threading.  Schedule another cfg cleanup run.
4372
4373 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
4374
4375         PR c/35744
4376         * attribs.c (decl_attributes): Return early on errorneous node.
4377
4378 2008-04-10  Oleg Ryjkov  <olegr@google.com>
4379
4380         * tree.h (struct tree_base): Added a new flag default_def_flag.
4381         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
4382
4383 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4384
4385         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
4386
4387 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4388
4389         PR target/35768
4390         * pa.md: Define mode iterator P.  Define mode attribute dwc.
4391         (dcacheflush): Update pattern to use iterator P and attribute dwc.
4392         (icacheflush): Likewise.
4393         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
4394         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
4395
4396 2008-04-11  Ben Elliston  <bje@au.ibm.com>
4397
4398         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
4399
4400 2008-04-10  Rafael Espindola  <espindola@google.com>
4401
4402         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
4403         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
4404         (extract_range_from_expr): The same.
4405
4406 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
4407
4408         * config/mips/mips.md (GPR2): New mode iterator.
4409         (seq): Add comment.
4410         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
4411         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
4412         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
4413         Rewrite these to take two modes, the mode of comparison and the
4414         mode of the destination.
4415         * config/mips/mips.c (mips_expand_scc): Instead of having
4416         paradoxical subreg as destination, expand "narrowing" scc if mode
4417         of comparison is SI and target is requested in DI mode.
4418         (mips_emit_int_order_test): Update comment.  Make mode of
4419         comparison match CMP0 rather than TARGET.  When creating inverse
4420         target use mode of TARGET.
4421
4422 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
4423
4424         * gcov-dump.c (tag_summary): Only print summaries for the first
4425         GCOV_COUNTERS_SUMMABLE counters.
4426
4427 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
4428
4429         * config/i386/i386.md (absneg): New code iterator.
4430         (absnegprefix): New code attribute.
4431         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
4432         patterns using absneg code iterator.
4433         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
4434         using absneg code iterator.
4435         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
4436         *neg<mode>2 patterns using absneg code iterator.
4437         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
4438         *negextendsfdf2 patterns using absneg code iterator.
4439         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
4440         *negextendsfxf2 patterns using absneg code iterator.
4441         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
4442         *negextendsfdf2 patterns using absneg code iterator.
4443         * config/i386/sse.md (<code><mode>2): Macroize expander from
4444         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
4445
4446 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
4447
4448         * config/s390/s390.h: Remove the remains of the recent search
4449         & replace action of current_function_outgoing_args_size.
4450
4451 2008-04-10  Ira Rosen  <irar@il.ibm.com>
4452
4453         PR tree-optimization/35821
4454         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
4455         NEW_STMT_LIST is not NULL.
4456
4457 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
4458
4459         PR libstdc++/35597
4460         * toplev.c (process_options): Remove -ffunction-sections debugging
4461         warning.
4462
4463 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
4464
4465         PR middle-end/PR28690
4466         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
4467         than gen_rtx_fmt_ee to perform more canonicalizations.
4468
4469 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4470
4471         PR driver/35665
4472         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
4473
4474 2008-04-09  Richard Guenther  <rguenther@suse.de>
4475
4476         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
4477         (dump_function_to_file): Dump function arguments with types.
4478
4479 2008-04-08  Richard Guenther  <rguenther@suse.de>
4480
4481         * fold-const.c (fold_widened_comparison): Do not allow
4482         sign-changes that change the result.
4483
4484 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
4485
4486         PR target/35839
4487         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
4488         kinds of indirect references.
4489
4490 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
4491
4492         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
4493         GNU Fortran language string.
4494
4495 2008-04-08  Rafael Espindola  <espindola@google.com>
4496
4497         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
4498         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
4499         * tree.h (tree_call_nonnegative_warnv_p): New.
4500
4501 2008-04-08  Jan Hubicka  <jh@suse.cz>
4502
4503         * function.c (free_after_compilation): Clear out regno_reg_rtx
4504         pointer.
4505
4506 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
4507
4508         Revert
4509         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
4510
4511         PR middle-end/PR28690
4512         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
4513         same precedence as REG_POINTER and MEM_POINTER operands.
4514
4515 2008-04-08  Richard Guenther  <rguenther@suse.de>
4516
4517         PR middle-end/35834
4518         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
4519         for adding index to base.
4520
4521 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
4522
4523         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
4524         (MINGW_ENABLE_EXECUTE_STACK): New.
4525         (IN_LIBGCC2): For libgcc include windows.h file for
4526         function declarations.
4527
4528 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
4529
4530         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
4531         and tem2 if tem1 is not a REG or MULT.
4532
4533 2008-04-08  Jan Hubicka  <jh@suse.cz>
4534
4535         * function.h (incomming_args): Break out of struct function.
4536         (function_subsections): Break out of struct function.
4537         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
4538         return_rtx and hard_reg_initial_vals from struct function.
4539         Kill inl_max_label_num.
4540         (current_function_pops_args, current_function_args_info,
4541         current_function_args_size, current_function_args_size,
4542         current_function_pretend_args_size,
4543         current_function_outgoing_args_size,
4544         current_function_internal_arg_pointer, current_function_return_rtx):
4545         Kill compatibility accestor macros.
4546         * builtins.c (expand_builtin_apply_args_1): Update.
4547         (expand_builtin_next_arg): Update.
4548         * df-scan.c (df_get_call_refs): Update.
4549         * dbxout.c (dbxout_function_end): Update.
4550         * dwarf2out.c (dwarf2out_switch_text_section): Update.
4551         (output_line_info): Update.
4552         (secname_for_decl): Update.
4553         (dwarf2out_var_location): Update.
4554         * function.c (free_after_compilation): Update.
4555         (assign_parm_find_stack_rtl): Update.
4556         (assign_parms): Update.
4557         (expand_dummy_function_end): Update.
4558         (expand_function_end): Update.
4559         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
4560         (expand_call): Update.
4561         (emit_library_call_value_1): Update.
4562         (store_one_arg): Update.
4563         * varasm.c (initialize_cold_section_name): Update.
4564         (unlikely_text_section): Update.
4565         (unlikely_text_section_p): Update.
4566         (assemble_start_function): Update.
4567         (assemble_end_function): Update.
4568         (default_section_type_flags): Update.
4569         (switch_to_section): Update.
4570         * integrate.c (set_decl_abstract_flags): Update.
4571         (get_hard_reg_initial_val): Update.
4572         (has_hard_reg_initial_val): Update.
4573         (allocate_initial_values): Update.
4574         * resource.c (init_resource_info): Update.
4575         * config/alpha/alpha.c (NUM_ARGS): Update.
4576         (direct_return): Update.
4577         (alpha_va_start): Update.
4578         (alpha_sa_size): Update.
4579         (alpha_initial_elimination_offset): Update.
4580         (alpha_expand_prologue): Update.
4581         (alpha_start_function): Update.
4582         (alpha_expand_epilogue): Update.
4583         (unicosmk_initial_elimination_offset):
4584         * config/alpha/alpha.md (call expander): Update.
4585         * config/s390/s390.c (s390_register_info): Update.
4586         (s390_register_info): Update.
4587         (s390_frame_info): Update.
4588         (s390_initial_elimination_offset): Update.
4589         (s390_build_builtin_va_list): Update.
4590         (s390_va_start): Update.
4591         * config/spu/spu.c (direct_return): Update.
4592         (spu_expand_prologue): Update.
4593         (spu_initial_elimination_offset): Update.
4594         (spu_build_builtin_va_list): Update.
4595         (spu_va_start): Update.
4596         * config/sparc/sparc.c (sparc_init_modes): Update.
4597         (sparc_compute_frame_size): Update.
4598         (function_value): Update.
4599         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
4600         * config/i386/i386.md (return expander): Update.
4601         * config/i386/i386.c (ix86_va_start): Update.
4602         (ix86_can_use_return_insn_p): Update.
4603         (ix86_compute_frame_layout): Update.
4604         (ix86_expand_epilogue): Update.
4605         * config/sh/sh.c (output_stack_adjust): Update.
4606         (calc_live_regs): Update.
4607         (sh_expand_prologue): Update.
4608         (sh_builtin_saveregs): Update.
4609         (sh_va_start): Update.
4610         (initial_elimination_offset): Update.
4611         (sh_allocate_initial_value): Update.
4612         (sh_function_ok_for_sibcall): Update.
4613         (sh_get_pr_initial_val): Update.
4614         * config/sh/sh.md (return expander): Update.
4615         * config/avr/avr.c (frame_pointer_required_p): UPdate.
4616         * config/crx/crx.c (crx_compute_frame): UPdate.
4617         (crx_initial_elimination_offset): UPdate.
4618         * config/xtensa/xtensa.c (compute_frame_size): Update
4619         (xtensa_builtin_saveregs): Update.
4620         (xtensa_va_start): Update.
4621         (order_regs_for_local_alloc): Update.
4622         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
4623         (xstormy16_expand_builtin_va_start): Update.
4624         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
4625         * config/m68hc11/m68hc11.md (return expanders): Update.
4626         * config/m68hc11/m68hc11.c (expand_prologue): Update.
4627         (expand_epilogue): Update.
4628         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
4629         (cris_simple_epilogue): Update.
4630         (cris_expand_prologue): Update.
4631         (cris_expand_epilogue): Update.
4632         * config/iq2000/iq2000.c (iq2000_va_start): Update.
4633         (compute_frame_size): Update.
4634         * config/mt/mt.c (mt_compute_frame_size): Update.
4635         * config/mn10300/mn10300.c (expand_prologue): Update.
4636         (expand_epilogue): Update.
4637         (initial_offset): Update.
4638         (mn10300_builtin_saveregs):
4639         * config/mn10300/mn10300.md (return expander): Update.
4640         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
4641         (ia64_initial_elimination_offset): Update.
4642         (ia64_initial_elimination_offset): Update.
4643         (ia64_expand_prologue): Update.
4644         * config/m68k/m68k.md (return expander): Update.
4645         * config/rs6000/rs6000.c (rs6000_va_start): Update.
4646         (rs6000_stack_info): Update.
4647         * config/mcore/mcore.c (layout_mcore_frame): Update.
4648         (mcore_expand_prolog): Update.
4649         * config/arc/arc.c (arc_compute_frame_size): Update.
4650         * config/score/score3.c (score3_compute_frame_size): Update.
4651         * config/score/score7.c (score7_compute_frame_size): Update.
4652         * config/arm/arm.c (use_return_insn): Update.
4653         (thumb_find_work_register): Update.
4654         (arm_compute_save_reg_mask): Update.
4655         (arm_output_function_prologue): Update.
4656         (arm_output_epilogue): Update.
4657         (arm_size_return_regs): Update.
4658         (arm_get_frame_offsets): Update.
4659         (arm_expand_prologue): Update.
4660         (thumb_exit): Update.
4661         (thumb_unexpanded_epilogue): Update.
4662         (thumb1_output_function_prologue): Update.
4663         * config/pa/pa.md (return expander): Update.
4664         * config/pa/pa.c (compute_frame_size): Update.
4665         (hppa_builtin_saveregs): Update.
4666         * config/mips/mips.c (mips_va_start): Update.
4667         (mips16_build_function_stub): Update.
4668         (mips_compute_frame_info): Update.
4669         (mips_restore_gp): Update.
4670         (mips_output_function_prologue): Update.
4671         (mips_expand_prologue): Update.
4672         * config/v850/v850.c (compute_frame_size): Update.
4673         (expand_prologue): * config/mmix/mmix.c (along): update.
4674         (mmix_initial_elimination_offset): update.
4675         (mmix_reorg): update.
4676         (mmix_use_simple_return): update.
4677         (mmix_expand_prologue): update.
4678         (mmix_expand_epilogue): Update.
4679         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
4680         (emit_link_insn): Update.
4681
4682 2008-04-08  Anatoly Sokolov <aesok@post.ru>
4683
4684         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
4685         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
4686         instructions.
4687         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
4688         atmega103 device.
4689
4690 2008-04-07  Jan Hubicka  <jh@suse.cz>
4691
4692         * function.h (rtl): Rename to x_rtl.
4693         (crtl): New define.
4694         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
4695         frame_offset, stack_check_probe_note, arg_pointer_save_area,
4696         used_temp_slots avail_temp_slots, temp_slot_level,
4697         nonlocal_goto_handler_labels): Update accesstors.
4698         (rtl): New global variable.
4699         (struct function): Move some fileds to rtl_data.
4700         (get_arg_pointer_save_area): Update prototype.
4701         * builtins.c (expand_builtin_setjmp_receiver): Update call of
4702         get_arg_pointer_save_area.
4703         * expr.c (init_expr): Update
4704         * function.c (get_frame_size): Update
4705         (assign_stack_local): Update
4706         (expand_function_end): Update.
4707         (get_art_pointer_save_area): Update
4708         * function.h 
4709         * emit-rtl.c (rtl): Declare.
4710         (regno_reg_rtx): Declare.
4711         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
4712         Update.
4713         (gen_reg_rtx): Update.
4714         * varasm.c (n_deferred_constatns): Update accestor.
4715         (init_varasm_status): Do not allocate varasm_status.
4716         (force_const_mem, get_pool_size, output_constant_pool): Update.
4717         * stmt.c (force_label_rtx): Do not use x_ prefixes.
4718         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
4719         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
4720         * sparc/sparc.h (INIT_EXPANDERS): Update.
4721         * ia64/ia64.h (INIT_EXPANDERS): Update.
4722
4723 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
4724
4725         * reload.c (push_secondary_reload): Add missing break to for loop.
4726
4727 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
4728
4729         PR middle-end/PR28690
4730         * rtlanal.c: Update copyright years.
4731         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
4732         as REG_POINTER and MEM_POINTER operands.
4733         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
4734         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
4735         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
4736         * gcse.c: Update copyright years.
4737         (pre_delete): Call gen_reg_rtx_and_attrs.
4738         (hoist_code): Likewise.
4739         (build_store_vectors): Likewise.
4740         (delete_store): Likewise.
4741         * loop-invariant.c (move_invariant_reg): Likewise.
4742         Update copyright years.
4743
4744 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
4745
4746         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
4747         control string instead of quoted.
4748
4749 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
4750
4751         * doc/rtl.texi: Rewrite of subreg section.
4752
4753 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
4754
4755         PR/35842
4756         * config/i386/i386.c (legitimize_pic_address): Add treating
4757         of dllimport SYM_REF's.
4758         (legitimize_dllimport_symbol): Add prototype.
4759
4760 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
4761
4762         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
4763         reference in constructor with non self-referential type.
4764
4765 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
4766
4767         Removal of Return with Depressed Stack Pointer support
4768         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
4769         (ECF_SP_DEPRESSED): Likewise.
4770         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
4771         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
4772         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4773         (expand_call): Do not test ECF_SP_DEPRESSED.
4774         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4775         * function.c (keep_stack_depressed): Delete.
4776         (handle_epilogue_set): Likewise.
4777         (update_epilogue_consts): Likewise.
4778         (emit_equiv_load): Likewise.
4779         (thread_prologue_and_epilogue_insns): Remove support for Return with
4780         Depressed Stack Pointer.
4781         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4782
4783 2008-04-06  Richard Guenther  <rguenther@suse.de>
4784
4785         PR tree-optimization/35400
4786         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
4787         information from SSA_NAMEs.
4788
4789 2008-04-06  Anatoly Sokolov <aesok@post.ru>
4790
4791         * config/avr/avr.h (avr_mega_p): Remove declaration.
4792         (AVR_MEGA): Remove macro.
4793         * config/avr/avr.c (avr_mega_p): Remove variable.
4794         (avr_override_options): Remove inicializion of avr_mega_p.
4795         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
4796         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
4797         (avr_jump_mode): (Ditto.).
4798         (avr_output_progmem_section_asm_op): (Ditto.).
4799         (avr_asm_init_sections): (Ditto.).
4800         (avr_asm_init_sections): (Ditto.).
4801         (avr_rtx_costs): (Ditto.).
4802         * config/avr/avr.md: (Ditto.).
4803         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
4804         '__AVR_MEGA__'.
4805
4806 2008-04-06  Richard Guenther  <rguenther@suse.de>
4807
4808         PR tree-optimization/35842
4809         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
4810         is_gimple_invariant_address.
4811
4812 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
4813
4814         * gcc.c (default_compilers): Sync Fortran extensions list with
4815         that in fortran/lang-specs.h.
4816         * doc/invoke.texi: Likewise.
4817         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
4818         * dwarf2out.c (gen_compile_unit_die): Likewise.
4819
4820 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
4821
4822         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
4823
4824 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
4825
4826         PR target/12329
4827         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
4828         attribute is used for nested functions.
4829
4830 2008-04-05  Jan Hubicka  <jh@suse.cz>
4831
4832         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
4833
4834         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
4835         letter argument.
4836         (dump_files): Update.
4837         (enable_rtl_dump_file): Do not accept letter argument.
4838         * tree-pass.h (dump_file_info): Remove letter argument.
4839         * toplev.c (decode_d_option): Update -da handling.
4840         * toplev.h (enable_rtl_dump_file): Update prototype.
4841         * passes.c (register_one_dump_file): Do not accept IPA argument; work
4842         it out based on pass type.
4843         (register_dump_files_1): Likewise.
4844         (init_optimization_passes): Update register_one_dump_file calls.
4845         (execute_one_pass): Sanity check that IPA passes are called at IPA
4846         level and RTL passes at RTL level.
4847         (execute_pass_list): IPA pass can not be after or subpass of
4848         GIMPLE/RTL pass.
4849         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
4850         disallov RTL subpasses of IPA subpasses.
4851
4852 2008-04-05  Ben Elliston  <bje@au.ibm.com>
4853
4854         * tree-cfg.c (need_fake_edge_p): Return false for calls to
4855         builtins that return exactly once and do not throw. Cache call to
4856         call_expr_flags.
4857
4858 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
4859
4860         PR rtl-optimization/34916
4861         PR middle-end/35519
4862         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
4863         between instruction pairs.
4864
4865 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
4866
4867         * doc/invoke.texi: Document -mbitops for SH.
4868         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
4869         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
4870         * config/sh/sh.c (print_operand): Add %t operand code.
4871         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
4872         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
4873         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
4874         (extendqihi2): Likewise.
4875         (movqi_i): Likewise.
4876         (insv): Use bset, bclr and bst instructions for SH2A if possible.
4877         (extv): Use bld instruction for SH2A if possible.
4878         (extzv): Likewise.
4879         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
4880         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
4881         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
4882         (bset.b, bclr.b): Define peepholes.
4883         * config/sh/sh.opt (mbitops): New option.
4884
4885 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
4886
4887         PR target/35620
4888         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
4889         and view convert expression.
4890
4891 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
4892
4893         PR target/35364
4894         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
4895
4896 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
4897
4898         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
4899
4900         * config/i386/cpuid.h (bit_AES): New.
4901         (bit_PCLMUL): Likewise.
4902
4903         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
4904         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
4905         SSE2 if AES or PCLMUL is enabled.
4906         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
4907         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
4908         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
4909         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
4910         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
4911         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
4912         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
4913         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
4914         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
4915         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
4916         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
4917         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
4918         __builtin_ia32_aeskeygenassist128 and
4919         __builtin_ia32_pclmulqdq128.
4920         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
4921         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
4922         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
4923
4924         * config/i386/i386.h (TARGET_AES): New.
4925         (TARGET_PCLMUL): Likewise.
4926         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
4927
4928         * config/i386/i386.md (UNSPEC_AESENC): New.
4929         (UNSPEC_AESENCLAST): Likewise.
4930         (UNSPEC_AESDEC): Likewise.
4931         (UNSPEC_AESDECLAST): Likewise.
4932         (UNSPEC_AESIMC): Likewise.
4933         (UNSPEC_AESKEYGENASSIST): Likewise.
4934         (UNSPEC_PCLMUL): Likewise.
4935
4936         * config/i386/i386.opt (maes): New.
4937         (mpclmul): Likewise.
4938
4939         * config/i386/sse.md (aesenc): New pattern.
4940         (aesenclast): Likewise.
4941         (aesdec): Likewise.
4942         (aesdeclast): Likewise.
4943         (aesimc): Likewise.
4944         (aeskeygenassist): Likewise.
4945         (pclmulqdq): Likewise.
4946
4947         * config/i386/wmmintrin.h: New.
4948
4949         * doc/extend.texi: Document AES and PCLMUL built-in function.
4950
4951         * doc/invoke.texi: Document -maes and -mpclmul.
4952
4953 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
4954
4955         * function.c (free_after_parsing): Replace with
4956         cxx_push_function_context from C++ front-end.
4957         (allocate_struct_function): Don't call langhook.
4958         * langhooks.h (struct lang_hooks_for_functions): Delete.
4959         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
4960         member "function".
4961         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
4962         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
4963         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4964         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
4965         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
4966         remove LANG_HOOKS_FUNCTION_INITIALIZER.
4967         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
4968
4969         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
4970         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
4971         
4972 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
4973
4974         PR c/35440
4975         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
4976         for all types.
4977
4978 2008-04-04  Richard Guenther  <rguenther@suse.de>
4979
4980         PR middle-end/35823
4981         * fold-const.c (optimize_minmax_comparison): Use the correct
4982         type for the constant in the simplified comparison.
4983
4984 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
4985
4986         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
4987         Pass L2 size as "--param l2-cache-size" to the compiler.
4988         (decode_l2_cache): New function to decode L2 cache parameters using
4989         0x8000006 extended cpuid function.
4990         (detect_caches_amd): Determine parameters of L2 cache using
4991         decode_l2_caches function.
4992         (decode_caches_intel): Decode L2 cache parameters.
4993         (detect_caches_intel): Determine L2 cache parameters using
4994         decode_caches_intel and decode_l2_caches functions.
4995
4996 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
4997
4998         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
4999         secondary input reload for subword loads from the constant pool.
5000
5001 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
5002
5003         PR target/35713
5004         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
5005           constants of the appropriate size for runtime calculations.
5006
5007         PR c/35712
5008         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
5009           decimal-float literal constant zero.
5010
5011 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
5012
5013         PR c/35738
5014         * c-parser.c (c_parser_omp_atomic): Call
5015         default_function_array_conversion on the RHS.
5016
5017         PR middle-end/35818
5018         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
5019         call is_variable_sized if decl has incomplete type.
5020
5021 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
5022
5023         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
5024
5025 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
5026
5027         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
5028         iterators.
5029         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
5030         (sgt<u>): Merge sgt and sgtu into new expander.
5031         (sgt, sgtu): Remove expanders.
5032         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
5033         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
5034         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
5035         *sgtu_<mode>_mips16 into new pattern.
5036         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
5037         (sge<u>): Merge sge and sgeu into new expander.
5038         (sge, sgeu): Remove expanders.
5039         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
5040         new pattern.
5041         (*sge_<mode>, second *sge_<mode>): Remove patterns.
5042         (slt<u>): Merge slt and sltu into new expander.
5043         (slt, sltu): Remove expanders.
5044         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
5045         (*slt_<mode>, *sltu_<mode>): Remove patterns.
5046         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
5047         *sltu_<mode>_mips16 into new pattern.
5048         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
5049         (sle<u>): Merge sle and sleu into new expander.
5050         (sle, sleu): Remove expanders.
5051         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
5052         (*sle_<mode>, *sleu_<mode>): Remove patterns.
5053         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
5054         *sleu_<mode>_mips16 into new pattern.
5055         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
5056
5057 2008-04-03  Jan Hubicka  <jh@suse.cz>
5058
5059         PR tree-optimization/35795
5060         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
5061         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
5062         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
5063         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
5064         * score/score3.c (score3_output_mi_thunk): Likewise.
5065         * score/score7.c (score7_output_mi_thunk): Likewise.
5066         * mips/mips.c (mips_output_mi_thunk): Likewise.
5067
5068 2008-04-03  Richard Guenther  <rguenther@suse.de>
5069
5070         * tree-vrp.c (extract_range_from_unary_expr): Handle all
5071         conversions.  Simplify code.
5072
5073 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
5074
5075         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
5076
5077 2008-04-03  Tom Tromey  <tromey@redhat.com>
5078             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5079
5080         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
5081         * config/bfin/t-bfin-linux (generated_files): Add
5082         linux-sysroot-suffix.h.
5083         * doc/install.texi (Prerequisites): Require make 3.80.
5084         * doc/sourcebuild.texi (Front End Directory): Document new
5085         variable.
5086         * Makefile.in (generated_files): New variable.
5087         (ALL_HOST_OBJS): New variable.
5088         ($(ALL_HOST_OBJS)): New target.
5089
5090 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
5091
5092         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
5093         (remap_block): Call id->transform_lang_insert_block instead
5094         of langhook.
5095         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
5096         Set id.transform_lang_insert_block to NULL.
5097         (clone_body): Move to cp/optimize.c
5098         * tree-inline.h (struct copy_body_data): Change
5099         transform_lang_insert_block to function pointer.
5100         (copy_generic_body, copy_decl_no_change): Export.
5101         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
5102         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
5103         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
5104
5105         * c-tree.h (insert_block): Kill.
5106         * c-decl.c (insert_block): Kill.
5107
5108 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
5109
5110         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
5111         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
5112         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
5113         argument.
5114         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
5115         argument, call {push,pop}_function_context from here.
5116         * c-parser.c: Use c_{push,pop}_function_context.
5117
5118         * function.c (push_function_context_to): Move meat ...
5119         (push_function_context): ... here.  Simplify.
5120         * function.c (pop_function_context_from): Move meat ...
5121         (pop_function_context): ... here.  Simplify.
5122         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
5123         leave_nested).
5124         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
5125         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
5126         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
5127         * tree.h (push_function_context_to, pop_function_context_from): Remove.
5128
5129 2008-04-03  Ben Elliston  <bje@au.ibm.com>
5130
5131         * expmed.c (extract_force_align_mem_bit_field): Remove.
5132
5133 2008-04-03  Richard Guenther  <rguenther@suse.de>
5134
5135         PR middle-end/35800
5136         * expr.h (try_casesi): Adjust prototype.
5137         * expr.c (try_casesi): Take fallback label as extra parameter.
5138         Use that for gen_casesi if default_label is NULL.
5139         * stmt.c (expand_case): Pass fallback label to try_casesi,
5140         make sure to fill gaps with a fallback label if default_label
5141         is not present.
5142
5143 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
5144
5145         PR target/35801
5146         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
5147
5148 2008-04-03  Ben Elliston  <bje@au.ibm.com>
5149
5150         * expmed.c (extract_split_bit_field): Remove if (0) code.
5151         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
5152         (do_ds_constraint): Likewise.
5153
5154 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
5155
5156         * doc/cppopts.texi (-dU): Document.
5157         * c-common.h (flag_dump_macros): Update comment.
5158         * c-opts.c (handle_OPT_d): Handle -dU.
5159         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
5160         dump_queued_macros, cb_used_define, cb_used_undef): New.
5161         (init_pp_output): Handle -dU.
5162         (cb_line_change): Call dump_queued_macros.
5163         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
5164
5165 2008-04-02  Anatoly Sokolov <aesok@post.ru>
5166
5167         * config/avr/predicates.md (io_address_operand): New predicate. 
5168         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
5169         * config/avr/avr.c (avr_io_address_p): Remove function.
5170         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
5171         'avr_io_address_p' function.
5172         (out_movhi_r_mr): (Ditto.).
5173         (out_movqi_mr_r): (Ditto.).
5174         (out_movhi_mr_r): (Ditto.).
5175         (avr_address_cost): (Ditto.).
5176
5177 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
5178
5179         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
5180         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
5181         in 32bit mode when XMM registers are available to avoid store
5182         forwarding stalls.
5183         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
5184         corresponding post-reload splitters.
5185
5186 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5187
5188         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
5189         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
5190         __builtin_ia32_roundss.
5191         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
5192         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
5193         __builtin_ia32_roundss.
5194         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
5195         IX86_BUILTIN_SHUFPD here.
5196
5197 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5198
5199         * config/i386/i386.md (plogic): New.
5200         (plogicprefix): Likewise.
5201
5202         * config/i386/mmx.md (mmx_<code><mode>3): New.
5203         (mmx_and<mode>3): Removed.
5204         (mmx_ior<mode>3): Likewise.
5205         (mmx_xor<mode>3): Likewise.
5206
5207         * config/i386/sse.md (<code><mode>3): New.
5208         (*<code><mode>3): Likewise.
5209         (*<code><mode>3): Likewise.
5210         (<code><mode>3): Likewise.
5211         (*sse_<code><mode>3): Likewise.
5212         (*sse2_<code><mode>3): Likewise.
5213         (<code>tf3): Likewise.
5214         (*<code>tf3): Likewise.
5215         (and<mode>3): Likewise.
5216         (*and<mode>3): Likewise.
5217         (ior<mode>3): Removed.
5218         (*ior<mode>3): Likewise.
5219         (xor<mode>3): Likewise.
5220         (*xor<mode>3): Likewise.
5221         (*and<mode>3): Likewise.
5222         (*ior<mode>3): Likewise.
5223         (*xor<mode>3): Likewise.
5224         (and<mode>3): Likewise.
5225         (*sse_and<mode>3): Likewise.
5226         (*sse2_and<mode>3): Likewise.
5227         (andtf3): Likewise.
5228         (*andtf3): Likewise.
5229         (ior<mode>3): Likewise.
5230         (*sse_ior<mode>3): Likewise.
5231         (*sse2_ior<mode>3): Likewise.
5232         (iortf3): Likewise.
5233         (*iortf3): Likewise.
5234         (xor<mode>3): Likewise.
5235         (*sse_xor<mode>3): Likewise.
5236         (*sse2_xor<mode>3): Likewise.
5237         (xortf3): Likewise.
5238         (*xortf3): Likewise.
5239
5240 2008-04-02  Richard Guenther  <rguenther@suse.de>
5241
5242         PR tree-optimization/14495
5243         PR tree-optimization/34793
5244         * tree-vrp.c (struct switch_update): New structure.
5245         (to_remove_edges, to_update_switch_stmts): New VECs.
5246         (simplify_switch_using_ranges): New function.  Remove not taken
5247         case labels and edges.
5248         (simplify_stmt_using_ranges): Call it.
5249         (identify_jump_threads): Mark edges we have queued for removal
5250         so we don't thread them.
5251         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
5252         case label vector.
5253         * tree-cfg.c (group_case_labels): Deal with missing default label.
5254         (tree_verify_flow_info): Allow missing default label.
5255         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
5256         (emit_case_nodes): Likewise.
5257         (expand_case): Do not rely on the default label to be present.
5258         * expr.c (try_casesi): Deal with NULL default_label.
5259         (do_tablejump): Likewise.
5260
5261 2008-04-02  Richard Guenther  <rguenther@suse.de>
5262
5263         PR tree-optimization/14495
5264         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
5265         SWITCH_EXPR here ...
5266         (vrp_visit_switch_stmt): ... but here (new function).
5267         (find_case_label_index): New helper function.
5268         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
5269
5270 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5271
5272         * fwprop.c: Fix ISO-C99ism.
5273
5274 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5275
5276         PR bootstrap/35752
5277         * Makefile.in (objdir): Set it here.
5278         * configure.ac: Not here.  Find dynamic linker characteristics.
5279         * exec-tool.in: Use them.
5280         * aclocal.m4: Regenerate.
5281         * configure: Regenerate.
5282
5283 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5284
5285         * expr.c (expand_var): Delete it.
5286         * expr.h (expand_var): Delete prototype.
5287         * function.c (expand_function_start): Use expand_decl instead.
5288         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
5289         langhook.
5290
5291 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
5292
5293         PR rtl-optimization/35542
5294         * fwprop.c (forward_propagate_and_simplify): Replace
5295         loc_reg_mentioned_in_p with reg_mentioned_p.
5296
5297 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5298
5299         PR rtl-optimization/35281
5300         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
5301         (propagate_rtx_1): Handle PR_HANDLE_MEM.
5302         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
5303         (varying_mem_p): Move above propagate_rtx.
5304         (all_uses_available_at): Do not check MEMs.
5305
5306 2008-04-02  Rafael Espindola  <espindola@google.com>
5307
5308         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
5309         (register_edge_assert_for_2): Split the cond argument.
5310         (register_edge_assert_for_1): Adjust for the change in
5311         register_edge_assert_for_2.
5312         (register_edge_assert_for): Split the cond argument.
5313         (find_switch_asserts): Adjust for the change in
5314         register_edge_assert_for.
5315
5316 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
5317
5318         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
5319         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
5320         offsets for 64-bit mingw.
5321         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
5322         abi for x86_64-pc-mingw.
5323
5324 2008-04-02  Richard Guenther  <rguenther@suse.de>
5325
5326         * tree-vrp.c (extract_range_from_assert): Make sure to not
5327         produce range min/max with TREE_OVERFOW set.
5328         If merging a anti-range and a range keep the anti-range if
5329         the range covers all values of the type.
5330         (register_edge_assert_for_2): Only allow sign-changing
5331         conversions in detecting canonical range checks.  Also
5332         register an assert for the unsigned name if useful.
5333
5334         PR tree-optimization/35787
5335         * tree-vrp.c (vrp_val_max): New function.
5336         (vrp_val_min): Likewise.
5337         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
5338         (vrp_val_is_min): Likewise.
5339         (supports_overflow_infinity): Use vrp_val_{min,max}.
5340         (negative_overflow_infinity): Likewise.
5341         (positive_overflow_infinity): Likewise.
5342         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
5343         (is_positive_overflow_infinity): Likewise.
5344         (is_overflow_infinity): Likewise.
5345         (avoid_overflow_infinity): Use vrp_val_{min,max} and
5346         vrp_val_is_{min,max}.
5347         (set_and_canonicalize_value_range): Canonicalize anti-ranges
5348         to ranges if possible.  Avoid empty ranges.
5349
5350 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5351
5352         PR middle-end/35705
5353         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
5354         the expression is a function address.
5355
5356 2008-04-01  George Helffrich  <george@gcc.gnu.org>
5357
5358         PR fortran/35154, fortran/23057
5359         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
5360         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
5361         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
5362         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
5363         in common.
5364         (dbxout_syms): Check for COMMON-based symbol and wrap in
5365         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
5366         in bracket for efficiency.
5367
5368         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
5369         using DW_TAG_common_block + member offset.
5370         (add_pubname_string): New function.
5371         (dw_expand_expr): New function to find block name and offset for
5372         COMMON var.
5373         (common_check): New function to check whether symbol in Fortran COMMON.
5374         (gen_variable_die): If COMMON, use DW_TAG_common_block.
5375
5376 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
5377
5378         PR c/35436
5379         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
5380
5381 2008-04-02  Ben Elliston  <bje@au.ibm.com>
5382
5383         * config/v850/v850.md (casesi): Remove if (0) code.
5384         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
5385         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
5386
5387 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
5388
5389         * config/i386/i386.md (rex64suffix): New mode attribute.
5390         (floathi<mode>2): Disable expander for SSE math.
5391         (*floathi<mode>2_1): New insn insn_and_split pattern.
5392         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
5393         corresponding post-reload splitters.
5394         (*floathi<mode>2_i387): New macroized insn pattern.
5395         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
5396         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
5397         insn_and_split pattern.
5398         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
5399         New macroized instruction patterns and corresponding post-reload
5400         splitters.
5401         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
5402         and corresponding post-reload splitters.
5403         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
5404         New macroized instruction patterns.
5405         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
5406         macroized instruction patterns and corresponding post-reload splitters.
5407         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
5408         corresponding post-reload splitters.
5409         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
5410         New macroized instruction patterns.
5411         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
5412         corresponding post-reload splitters.
5413         (*floatsi<mode>2_i387): New macroized instruction patterns.
5414
5415 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
5416
5417         * config/i386/i386.md (smaxmin): New.
5418         (umaxmin): Likewise.
5419         (maxminiprefix): Likewise.
5420         (maxminfprefix): Likewise.
5421         (<code><mode>3): Likewise.
5422         (smin<mode>3): Removed.
5423         (smax<mode>3): Likewise.
5424
5425         * config/i386/mmx.md (mmx_<code>v2sf3): New.
5426         (mmx_<code>v4hi3): Likewise.
5427         (mmx_<code>v8qi3): Likewise.
5428         (mmx_smaxv2sf3): Removed.
5429         (mmx_sminv2sf3): Likewise.
5430         (mmx_umaxv8qi3): Likewise.
5431         (mmx_smaxv4hi3): Likewise.
5432         (mmx_uminv8qi3): Likewise.
5433         (mmx_sminv4hi3): Likewise.
5434
5435         * config/i386/sse.md (<addsub><mode>3): New.
5436         (*<addsub><mode>3): Likewise.
5437         (<sse>_vm<addsub><mode>3): Likewise.
5438         (<maxmin><mode>3): Likewise.
5439         (*<maxmin><mode>3_finite): Likewise.
5440         (*<maxmin><mode>3): Likewise.
5441         (<sse>_vm<maxmin><mode>3): Likewise.
5442         (sse3_h<addsub>v4sf3): Likewise.
5443         (sse3_h<addsub>v2df3): Likewise.
5444         (<maxmin>v16qi3): Likewise.
5445         (*<maxmin>v16qi3): Likewise.
5446         (<maxmin>v8hi3): Likewise.
5447         (*<maxmin>v8hi3): Likewise.
5448         (*sse4_1_<maxmin><mode>3): Likewise.
5449         (*sse4_1_<maxmin><mode>3): Likewise.
5450         (add<mode>3): Removed.
5451         (*add<mode>3): Likewise.
5452         (<sse>_vmadd<mode>3): Likewise.
5453         (sub<mode>3): Likewise.
5454         (*sub<mode>3): Likewise.
5455         (<sse>_vmsub<mode>3): Likewise.
5456         (smin<mode>3): Likewise.
5457         (*smin<mode>3_finite): Likewise.
5458         (*smin<mode>3): Likewise.
5459         (<sse>_vmsmin<mode>3): Likewise.
5460         (smax<mode>3): Likewise.
5461         (*smax<mode>3_finite): Likewise.
5462         (*smax<mode>3): Likewise.
5463         (<sse>_vmsmax<mode>3): Likewise.
5464         (sse3_haddv4sf3): Likewise.
5465         (sse3_haddv2df3): Likewise.
5466         (sse3_hsubv4sf3): Likewise.
5467         (sse3_hsubv2df3): Likewise.
5468         (umaxv16qi3): Likewise.
5469         (*umaxv16qi3): Likewise.
5470         (smaxv8hi3): Likewise.
5471         (*smaxv8hi3): Likewise.
5472         (*sse4_1_smax<mode>3): Likewise.
5473         (*sse4_1_umax<mode>3): Likewise.
5474         (uminv16qi3): Likewise.
5475         (*uminv16qi3): Likewise.
5476         (sminv8hi3): Likewise.
5477         (*sminv8hi3): Likewise.
5478         (*sse4_1_smin<mode>3): Likewise.
5479         (*sse4_1_umin<mode>3): Likewise.
5480
5481 2008-04-01  Rafael Espindola  <espindola@google.com>
5482
5483         * tree-cfg.c (verify_expr): remove in_phi.
5484         (verify_stmt): Don't call walk_tree with verify_expr. Use
5485         is_gimple_min_invariant instead of is_gimple_val.
5486
5487 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
5488
5489         * doc/include/gpl_v3.texi: Update for manpage generation.
5490         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
5491         gpl.texi.
5492         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
5493         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
5494         gpl_v3.texi instead of gpl.texi.
5495         (gpl.pod): New.
5496
5497 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
5498
5499         PR pch/13675
5500         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
5501
5502 2008-04-01  Rafael Espindola  <espindola@google.com>
5503
5504         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
5505         (extract_code_and_val_from_cond): Use
5506         extract_code_and_val_from_cond_with_ops.
5507
5508 2008-04-01  Jan Hubicka  <jh@suse.cz>
5509
5510         * function.c (free_after_compilation): Free epilogue_delay_list.
5511         (prepare_function_start): Assert that previous compilation was freed.
5512
5513 2008-04-01  Jan Hubicka  <jh@suse.cz>
5514             Jim Wilson  <wilson@tuliptree.org>
5515             Andreas Tobler <andreast@gcc.gnu.org>
5516
5517         PR middle-end/35781
5518         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
5519         rtl.emit instead cfun->emit.
5520         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
5521         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
5522
5523 2008-04-01  Ben Elliston  <bje@au.ibm.com>
5524
5525         * doc/c-tree.texi (Function Basics): Fix grammatical error.
5526
5527 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
5528
5529         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
5530         New options
5531         (fprofile-use): Add var flag_profile_use
5532         * coverage.c (coverage_begin_output): Do not open a gcno file for
5533         output only if -ftest-coverage is set.
5534         Do not add getpwd() to gcda file path.
5535         (build_gcov_info): Check the new flag
5536         flag_profile_datafile_relative_path.
5537         (coverage_init): Use profile_data_prefix.
5538         Read profile counter only if flag_profile_use is set.
5539         * opts.c (common_handle_option): New option fprofile-use=,
5540         fprofile-dir=, fprofile-generate=.
5541         * toplev.c (profile_data_prefix): New variable definition.
5542         * toplev.h (profile_data_prefix): New declaration.
5543         * doc/invoke.tex (Option Summary, Optimization Options):
5544         Add new options.
5545
5546 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
5547
5548         * varasm.c (output_constant_pool_1): In LABEL_REF check,
5549         use tmp consistently.
5550
5551         PR target/35695
5552         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
5553         * config/ia64/ia64.c (rtx_needs_barrier): Handle
5554         UNSPEC_FR_RECIP_APPROX_RES.
5555         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
5556
5557 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
5558
5559         PR c/35750
5560         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
5561
5562 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5563
5564         PR middle-end/30186
5565         * fold-const.c (fold_indirect_ref_1): Support accessing non first
5566         element of the vector via a pointer.
5567
5568 2008-03-31  Ian Lance Taylor  <iant@google.com>
5569
5570         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
5571
5572 2008-03-31  Jan Hubicka  <jh@suse.cz>
5573
5574         * builtins.c (expand_builtin_setjmp_receiver): Update call of
5575         get_arg_pointer_save_area.
5576         * expr.c (init_expr): Just clear out rtl.expr.
5577         * function.c (free_after_compilation): Clear out whole RTL structure.
5578         (get_func_frame_size): Merge into ...
5579         (get_frame_size): ... this one.
5580         (assign_stack_local_1): Merge into ...
5581         (assign_stack_local): ... this one.
5582         (expand_function_end): Update call of get_arg_pointer_save_area.
5583         (get_art_pointer_save_area): Remove cfun argument.
5584         * function.h (emit_status): regno_pointer_align does not need length
5585         attribute. Move x_regno_reg_rtx to ...
5586         (regno_reg_rtx): ... new global array.
5587         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
5588         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
5589         apply_args_value, forced_labels, stack_pointer_delta):
5590         Update accestors.
5591         (struct varasm_status): Move here from varasm.c
5592         (struct rtl_data): New. Move here some fields from struct function.
5593         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
5594         frame_offset, stack_check_probe_note, arg_pointer_save_area,
5595         used_temp_slots avail_temp_slots, temp_slot_level,
5596         nonlocal_goto_handler_labels): Update accesstors.
5597         (rtl): New global variable.
5598         (struct function): Move some fileds to rtl_data.
5599         (get_arg_pointer_save_area): Update prototype.
5600         * emit-rtl.c (rtl): Declare.
5601         (regno_reg_rtx): Declare.
5602         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
5603         Update.
5604         (gen_reg_rtx): Update.
5605         (init_virtual_regs): Do not tate emit_status argument.
5606         (init_emit): Do not allocate emit.
5607         * varasm.c (varasm_statuc): Move to function.h.
5608         (n_deferred_constatns): Update accestor.
5609         (init_varasm_status): Do not allocate varasm_status.
5610         (force_const_mem, get_pool_size, output_constant_pool): Update.
5611         * stmt.c (force_label_rtx): Do not use x_ prefixes.
5612         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
5613
5614 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
5615
5616         PR rtl-optimization/35729
5617         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
5618         references.
5619
5620 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
5621
5622         PR target/32000
5623         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
5624         load/store if memory is unaligned.
5625         (*movti_rex64): Likewise.
5626
5627         * config/i386/predicates.md (misaligned_operand): New.
5628
5629 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
5630
5631         PR tree-opt/35431
5632         * tree-ssa-phiopt.c (conditional_replacement): Return early for
5633         complex types.
5634
5635 2008-03-31  Jan Beulich  <jbeulich@novell.com>
5636
5637         * config/ia64/constraints.md: Add 'j' constraint.
5638         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
5639         (movdi_internal): Likewise.
5640
5641 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
5642
5643         PR c/35748
5644         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
5645
5646 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
5647
5648         PR target/35757
5649         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
5650         proper error message for the third argument on blendpd and
5651         blendps.
5652
5653         * config/i386/sse.md (blendbits): New.
5654         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
5655
5656 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
5657
5658         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
5659
5660 2008-03-30  Richard Guenther  <rguenther@suse.de>
5661
5662         PR middle-end/31023
5663         * fold-const.c (fold_sign_changed_comparison): Do leave
5664         conversions to base-types alone.
5665
5666 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5667
5668         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
5669         the link register if one altivec register is be saved.
5670
5671 2008-03-30  Ben Elliston  <bje@au.ibm.com>
5672
5673         * final.c (final_scan_insn): Remove if (0) code.
5674
5675 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
5676
5677         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
5678
5679 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
5680
5681         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
5682         of V4SFmode to ix86_binary_operator_ok.
5683
5684 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
5685
5686         * config/i386/i386.c (override_options): Initialize
5687         ix86_veclib_handler to ix86_veclibabi_svml when
5688         -mveclibabi=svml is used.
5689         (ix86_veclibabi_svml): New function for SVML ABI style
5690         vectorization support.
5691         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
5692
5693 2008-03-28  Rafael Espindola  <espindola@google.com>
5694
5695         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
5696         (tree_binary_nonnegative_warnv_p): Make it public.
5697         (tree_single_nonnegative_warnv_p): Make it public.
5698         (tree_invalid_nonnegative_warnv_p): Make it public.
5699         (tree_unary_nonzero_warnv_p): Make it public.
5700         (tree_binary_nonzero_warnv_p): Make it public
5701         (tree_single_nonzero_warnv_p): Make it public.
5702         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
5703         (extract_range_from_binary_expr): Split the expr argument.
5704         (extract_range_from_unary_expr): Split the expr argument.
5705         (extract_range_from_comparison): Split the expr argument.
5706         (extract_range_from_expr): Use the new aux functions.
5707         (vrp_evaluate_conditional_warnv): Use
5708         vrp_evaluate_conditional_warnv_with_ops.
5709         * tree.h (tree_unary_nonzero_warnv_p): Declare.
5710         (tree_binary_nonzero_warnv_p): Declare.
5711         (tree_single_nonzero_warnv_p): Declare.
5712         (tree_expr_nonzero_warnv_p): Declare.
5713         (tree_unary_nonnegative_warnv_p): Declare.
5714         (tree_binary_nonnegative_warnv_p): Declare.
5715         (tree_single_nonnegative_warnv_p): Declare.
5716         (tree_invalid_nonnegative_warnv_p): Declare.
5717
5718 2008-03-28  Richard Guenther  <rguenther@suse.de>
5719
5720         PR tree-optimization/30317
5721         PR tree-optimization/30911
5722         PR tree-optimization/34793
5723         * tree-vrp.c (set_and_canonicalize_value_range): New function.
5724         (struct assert_locus_d): New member EXPR.
5725         (register_new_assert_for): Add EXPR parameter to support
5726         ASSERT_EXPR <name, expr OP limit>.
5727         (register_edge_assert_for_1): Adjust callers.
5728         (find_assert_locations): Likewise.
5729         (process_assert_insertions_for): Build condition from expression.
5730         (extract_range_from_assert): Handle ASSERT_EXPRs
5731         of the form ASSERT_EXPR <name, expr OP limit>.
5732         (register_edge_assert_for_2): New helper registering
5733         asserts for comparisons.  Recognize range tests of the form
5734         (unsigned)i - CST1 OP CST2.
5735         (register_edge_assert_for_1): Use it.
5736         (register_edge_assert_for): Likewise.
5737         (needs_overflow_infinity): Integer sub-types
5738         do not need overflow infinities.
5739         (vrp_val_is_max): The extreme values of integer sub-types
5740         are those of the base type.
5741         (vrp_val_is_min): Likewise.
5742         * tree.def (ASSERT_EXPR): Document extra allowed conditional
5743         expressions.
5744
5745 2008-03-28  Nick Clifton  <nickc@redhat.com>
5746
5747         PR target/31110
5748         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
5749         Return GENERAL_REGS for stack adjustment reloads.
5750
5751 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5752
5753         PR target/31334
5754         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
5755         const_vector when all the vectors are constant.
5756
5757 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
5758
5759         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
5760         comparisons.
5761         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
5762         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
5763         (scc_sf): New.
5764         (s<code>_sf): Use new scc_sf attribute for opcode names.
5765
5766 2008-03-27  Tom Tromey  <tromey@redhat.com>
5767
5768         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
5769         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
5770         config/spu/t-spu-elf, config/i386/t-interix,
5771         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
5772         config/i386/x-darwin, config/i386/x-mingw32,
5773         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
5774         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
5775         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
5776         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
5777         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
5778         config/rs6000/x-darwin, config/rs6000/t-rs6000,
5779         config/score/t-score-elf, config/arm/t-strongarm-pe,
5780         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
5781         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
5782         Revert automatic dependency patch.
5783
5784 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5785
5786         PR target/35657
5787         * config/i386/i386.c (ix86_function_arg_boundary): Align
5788         decimal floating point to its natural boundary.
5789
5790 2008-03-27  Richard Guenther  <rguenther@suse.de>
5791
5792         PR middle-end/35716
5793         * fold-const.c (fold_comparison): Restrict distinct decl
5794         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
5795         solely rely on operand_equal_p.
5796
5797 2008-03-27  Richard Guenther  <rguenther@suse.de>
5798
5799         PR c/32511
5800         * c-common.c (handle_weak_attribute): Reject combination of
5801         weak and inline.
5802
5803 2008-03-27  Richard Guenther  <rguenther@suse.de>
5804
5805         PR tree-optimization/32810
5806         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
5807         conversions from DECL_INITIAL.
5808         (fold_const_aggregate_ref): Likewise from constructor elements.
5809
5810 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
5811
5812         * tree-affine.h (aff_combination_expand): Declare.
5813         (get_inner_reference_aff): Likewise.
5814         * tree-affine.c (aff_combination_expand): Split out from
5815         tree_to_aff_combination_expand.
5816         (get_inner_reference_aff): New function.
5817         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
5818         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
5819         (struct lim_aux_data): sm_done field removed.
5820         (mem_ref_loc_p, mem_ref_locs_p): New types.
5821         (struct mem_ref): Added id, stored, accesses_in_loop,
5822         indep_loop, dep_loop, indep_ref, dep_ref fields.
5823         Removed is_stored, locs and next fields.
5824         (memory_accesses): New variable.
5825         (movement_possibility): Do not allow moving statements
5826         that store to memory.
5827         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
5828         New functions.
5829         (determine_max_movement): For statements with memory references,
5830         find the outermost loop in that the reference is independent.
5831         (move_computations_stmt): Mark the virtual operands for renaming.
5832         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
5833         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
5834         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
5835         add_vop_ref_mapping, create_vop_ref_mapping_loop,
5836         create_vop_ref_mapping, analyze_memory_references,
5837         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
5838         get_all_locs_in_loop, ref_always_accessed_p,
5839         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
5840         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
5841         store_motion_loop, store_motion): New functions.
5842         (struct vop_to_refs_elt): New type.
5843         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
5844         memref_hash, memref_eq, hoist_memory_references): Rewritten.
5845         (schedule_sm): Replaced by...
5846         (execute_sm): ... this.
5847         (determine_lsm_ref, hoist_memory_references,
5848         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
5849         find_more_ref_vops, free_mem_ref, free_mem_refs,
5850         determine_lsm_loop, determine_lsm): Removed.
5851         (tree_ssa_lim_finalize): Free data structures used by store motion.
5852         (tree_ssa_lim): Call analyze_memory_references.  Use
5853         store_motion instead of determine_lsm.
5854
5855 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
5856
5857         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
5858         rename tmake_file to m68hc11/t-m68hc11.
5859         (mcore): Set inhibit_libc to true.
5860         * config.host (alpha*-dec-*vms*): Set extra_programs.
5861         (interix3*): Don't use host_xmake_file.
5862         * configure.ac: Let config.gcc override inhibit_libc.
5863         * configure: Regenerate.
5864
5865         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
5866         * config/t-openbsd-thread: Remove commented out lines.
5867         
5868         * config/x-interix: Remove.
5869
5870         * config/m68hc11/t-m68hc11-gas: Rename to...
5871         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
5872
5873         * config/mcore/t-mcore: Remove T_CFLAGS.
5874         * config/mcore/t-mcore-pe: Likewise.
5875
5876 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
5877
5878         * configure.ac: Replace custom __GNU_SOURCE test with
5879         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
5880         * aclocal.m4: Regenerate.
5881         * configure: Regenerate.
5882         * config.in: Regenerate.
5883
5884 2008-03-27  Richard Guenther  <rguenther@suse.de>
5885
5886         * fold-const.c (target.h): Include.
5887         (fold_comparison): Fold comparison of addresses of decls
5888         that bind locally or of constants.  Consolidate address folding code.
5889         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
5890         results from fold_binary_to_constant.
5891         (compare_values_warnv): Likewise.
5892
5893 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
5894
5895         PR middle-end/35429
5896         * fold-const.c (fold_truthop): Check for integeral types when folding
5897         a == 0 && b == 0 and a != 0 || b != 0 .
5898
5899 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
5900
5901         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
5902
5903 2008-03-26  Andreas Schwab  <schwab@suse.de>
5904
5905         * doc/invoke.texi: Fix use of @item vs. @itemx.
5906
5907 2008-03-26  Tom Tromey  <tromey@redhat.com>
5908
5909         * Makefile.in (build/gensupport.o, build/print-rtl.o,
5910         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
5911         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
5912         build/gencodes.o, build/genconditions.o, build/genconfig.o,
5913         build/genconstants.o, build/genemit.o, build/genextract.o,
5914         build/genflags.o, build/genmddeps.o, build/genopinit.o,
5915         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
5916         options.h.
5917
5918 2008-03-26  Richard Guenther  <rguenther@suse.de>
5919
5920         Revert
5921         2008-03-26  Richard Guenther  <rguenther@suse.de>
5922
5923         * fold-const.c (target.h): Include.
5924         (fold_comparison): Fold comparison of addresses of two decls
5925         that bind locally.  Consolidate address folding code.
5926
5927 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5928
5929         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
5930         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
5931         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
5932         dconstsqrt2, dconstthird, dconste and/or dconst10.
5933         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
5934         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
5935         dconstsqrt2, dconste): Delete.
5936         (init_emit_once): Likewise.  Simplify initializing dconstm1.
5937         Constify variable.
5938         * real.c (get_real_const): New.
5939         * real.h (dconst3, dconst10, dconstm2, dconstthird,
5940         dconstsqrt2, dconste): Delete.
5941         (real_value_const, get_real_const): New.
5942
5943 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
5944
5945         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
5946
5947         * config/i386/i386.c (ix86_function_arg_boundary): Check
5948         BIGGEST_ALIGNMENT instead of 128.
5949         (setup_incoming_varargs_64): Likewise.
5950
5951 2008-03-26  Tom Tromey  <tromey@redhat.com>
5952
5953         * Makefile.in (DEPFILES): Add missing '/'.
5954
5955 2008-03-26  Richard Guenther  <rguenther@suse.de>
5956
5957         * fold-const.c (target.h): Include.
5958         (fold_comparison): Fold comparison of addresses of two decls
5959         that bind locally.  Consolidate address folding code.
5960
5961 2008-03-26  Nick Clifton  <nickc@redhat.com>
5962
5963         PR target/31232
5964         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
5965         not allow INT+INT as a legitimate addressing mode.
5966
5967 2008-03-26  Richard Guenther  <rguenther@suse.de>
5968
5969         * tree-flow.h (widen_bitfield): Remove declaration.
5970         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
5971         (widen_bitfield): Remove function.
5972         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
5973         code.
5974
5975 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5976
5977         PR target/31558
5978         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
5979         error_mark_node's.
5980
5981 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
5982
5983         PR rtl-optimization/35232
5984         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
5985         (forget_old_reloads_1, forget_marked_reloads): Don't clear
5986         reg_reloaded_call_part_clobbered here.
5987         (reload_regs_reach_end_p): New function.
5988         (reload_reg_rtx_for_input): New variable.
5989         (reload_reg_rtx_for_output): Likewise.
5990         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
5991         when reassigning a pseudo register.  Load reloadreg from 
5992         reload_reg_rtx_for_input, moving the mode and register
5993         calculation to...
5994         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
5995         instead of the original when deciding whether an input reload
5996         would be a no-op or whether an output reload can be deleted.
5997         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
5998         when setting up new_spill_reg_store.  Load it from
5999         reload_reg_rtx_for_output, moving the mode and register
6000         calculation to...
6001         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
6002         instead of the original when deciding whether an output reload
6003         would be a no-op.  Do the same when modifying insn notes.
6004         Use rtx_equal_p instead of == to compare the registers.
6005         (inherit_piecemeal_p): Take a mode and two register numbers
6006         as argument.
6007         (emit_reload_insns): Clear new_spill_reg_store for every hard
6008         register in the reload register.  Remove spill registers
6009         from reg_reloaded_valid before considering whether to record
6010         inheritance information for them.  Use reload_reg_rtx_for_output
6011         instead of reg_rtx when recording output reloads.  Use
6012         reload_reg_rtx_for_input instead of reg_rtx when recording
6013         input reloads.  Set or clear reg_reloaded_call_part_clobbered
6014         at the same time as setting reg_reloaded_valid.
6015         (delete_output_reload): Add a new_reload_reg parameter and use it
6016         instead of rld[j].reg_rtx.
6017         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
6018         calls accordingly.
6019
6020 2008-03-25  Tom Tromey  <tromey@redhat.com>
6021
6022         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
6023         (build/genattr.o): Likewise.
6024         (build/genattrtab.o): Likewise.
6025         (build/gencodes.o): Likewise.
6026         (build/genconfig.o): Likewise.
6027         (build/genconstants.o): Likewise.
6028         (build/genemit.o): Likewise.
6029         (build/genextract.o): Likewise.
6030         (build/genflags.o): Likewise.
6031
6032 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
6033         
6034         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
6035         instead of size_int for integer types.
6036         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
6037         to match type of MINUS_EXPR.
6038         
6039 2008-03-25  Tom Tromey  <tromey@redhat.com>
6040
6041         * configure: Rebuilt.
6042         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
6043         Makefile.
6044
6045 2008-03-25  Tom Tromey  <tromey@redhat.com>
6046
6047         * config/x-solaris (host-solaris.o): Update.
6048         * config/x-linux (host-linux.o): Update.
6049         * config/x-hpux (host-hpux.o): Update.
6050         * config/x-darwin (host-darwin.o): Update.
6051         * config/v850/t-v850e (v850-c.o): Update.
6052         * config/v850/t-v850 (v850-c.o): Update.
6053         * config/t-vxworks (vxworks.o): Update.
6054         * config/t-sol2 (sol2-c.o, sol2.o): Update.
6055         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
6056         * config/spu/t-spu-elf (spu-c.o): Update.
6057         (spu.o): Remove.
6058         * config/sh/t-symbian (sh-c.o): Update.
6059         (symbian.o): Update.
6060         * config/sh/t-sh (sh-c.o): Update.
6061         * config/score/t-score-elf (score7.o, score3.o): Update.
6062         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
6063         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
6064         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
6065         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
6066         (rs6000.o): Remove.
6067         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
6068         * config/m32c/t-m32c (m32c-pragma.o): Update.
6069         * config/ia64/t-ia64 (ia64-c.o): Update.
6070         * config/i386/x-mingw32 (host-mingw32.o): Update.
6071         * config/i386/x-i386 (driver-i386.o): Update.
6072         * config/i386/x-darwin (host-i386-darwin.o): Update.
6073         * config/i386/x-cygwin (host-cygwin.o): Update.
6074         * config/i386/t-nwld (nwld.o): Update.
6075         * config/i386/t-netware (netware.o): Update.
6076         * config/i386/t-interix (winnt.o): Update.
6077         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
6078         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
6079         msformat-c.o): Update.
6080         * config/bfin/t-bfin-linux (generated_files): Add
6081         linux-sysroot-suffix.h.
6082         * config/arm/t-wince-pe (pe.o): Update.
6083         * config/arm/t-strongarm-pe (pe.o): Update.
6084         * config/arm/t-pe (pe.o): Update.
6085         * config/arm/t-arm (arm-c.o): Update.
6086         * doc/install.texi (Prerequisites): Require make 3.80.
6087         * Makefile.in: Remove .o targets.
6088         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
6089         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
6090         (simple_generated_h, simple_generated_c): Move earlier.
6091         (generated_files): New variable.
6092         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
6093         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
6094         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
6095         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
6096         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
6097         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
6098         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
6099         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
6100         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
6101         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
6102         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
6103         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
6104         (.c.o): Remove.
6105         (COMPILE.base, COMPILE): New variables.
6106         (%.o): New pattern rule.
6107         (ALL_HOST_OBJS): New variable.
6108         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
6109         (dummy-checksum.o, cc1-checksum.o): Remove.
6110         (DRIVER_SHLIB): New variable.
6111         (DRIVER_DEFINES): Use it.
6112         (gencondmd.c): Move out of build/.
6113         (s-conditions): Update.
6114         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
6115         (ALL_BUILD_OBJS): Likewise.
6116         (build/%.o): Use BUILDCOMPILE.
6117         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
6118         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
6119         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
6120         build/gencheck.o, build/gencodes.o, build/genconditions.o,
6121         build/genconfig.o, build/genconstants.o, build/genemit.o,
6122         build/genextract.o, build/genflags.o, build/genmddeps.o,
6123         build/genopinit.o, build/genoutput.o, build/genpeep.o,
6124         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
6125         build/gen-protos.o, build/scan.o, build/fix-header.o,
6126         build/scan-decls.o): Simplify.
6127         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
6128         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
6129         prefix.o, toplev.o): Reduce to variable setting.
6130         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
6131         ($(out_object_file), gcc-options.o): New targets.
6132         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
6133         * configure: Rebuilt.
6134         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
6135         * doc/sourcebuild.texi (Front End Directory): Document new variable.
6136
6137 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
6138
6139         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
6140         complain when we hit an error, return ERROR_MARK_NODE.
6141
6142 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6143
6144         * config/sh/constraints.md (Pso, Psz): New constraints.
6145         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
6146         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
6147
6148 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6149
6150         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
6151         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
6152
6153 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6154
6155         * config/sh/sh.md (prefetch): Add condition for SH2A target.
6156         (prefetch_sh2a): New.   
6157
6158 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
6159             Naveen.H.S  <naveen.hs@kpitcummins.com>
6160
6161         * config/sh/constraints.md (I28): New constraint.
6162         * config/sh/sh.c (broken_move): Add support for movi20s.
6163         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
6164
6165 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
6166             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
6167             Naveen.H.S  <naveen.hs@kpitcummins.com>
6168
6169         * config/sh/sh.c (SH_ATTRIBUTES): Define.
6170         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
6171         (print_operand): Handle resbank in %@ operand code.
6172         (sh_encode_section_info): New.
6173         (push_regs): Add conditions for resbank.
6174         (sh_expand_epilogue): Likewise.
6175         (sh_insert_attributes): Likewise.
6176         (sh_attribute_table): Likewise.
6177         (sh_handle_resbank_handler_attribute): New.
6178         (sh2a_handle_function_vector_handler_attribute): New.
6179         (sh2a_is_function_vector_call): New.
6180         (sh2a_get_function_vector_number): New.
6181         (sh2a_function_vector_p): New.
6182         (sh_cfun_resbank_handler_p): New.
6183         * config/sh/sh.md (calli): Emit jsr/n if possible.
6184         (calli_tbr_rel): New.
6185         (calli_pcrel): Emit jsr/n if possible.
6186         (return_i): Emit rts/n if possible.
6187         (call_valuei_tbr_rel): New.
6188         (call_valuei_pcrel): Add condition for SH2A target.
6189         (call_value): Likewise.
6190         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
6191         (sh2a_get_function_vector_number): Likewise.
6192         (sh2a_is_function_vector_call): Likewise.
6193         * doc/extend.texi: Document TBR relative addressing of SH2A.
6194         (resbank): Add description for SH2A.
6195
6196 2008-03-24  Richard Guenther  <rguenther@suse.de>
6197
6198         PR c/22371
6199         * gimplify.c (gimplify_modify_expr): For frontend type-correct
6200         pointer assignments change conversions according to middle-end rules.
6201         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
6202         * configure.ac: Include type checking in yes.
6203         * configure: Regenerate.
6204
6205 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6206
6207         * diagnostic.c (diagnostic_count_diagnostic): Delete.
6208         (diagnostic_report_diagnostic): Update. Handle ICEs here.
6209         
6210 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
6211
6212         * gthr-vxworks.h (UNUSED): Define.
6213
6214 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
6215
6216         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
6217
6218 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
6219
6220         * doc/extend.texi (Function Attributes): Add missing comma in the
6221         example of the "alloc_size" attribute.
6222         
6223 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
6224
6225         Revert:
6226         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
6227
6228         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
6229         32bit host.
6230
6231         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
6232
6233         PR target/35496
6234         * stor-layout.c (update_alignment_for_field): Set minimum alignment
6235         of the underlying type of a MS bitfield layout to the natural
6236         alignment of the type.
6237
6238         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
6239
6240         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
6241         to their natural alignment to avoid store forwarding stalls.
6242
6243 2008-03-22  Richard Guenther  <rguenther@suse.de>
6244
6245         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
6246         For PHI nodes verify the address is invariant.
6247         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
6248         (get_symbol_constant_value): Use is_gimple_min_invariant.
6249         (maybe_fold_stmt_indirect): Likewise.
6250
6251 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
6252
6253         PR rtl-optimization/33927
6254         * Makefile.in (dse.o): Depend on $(TM_P_H).
6255         * expr.h (extract_low_bits): Declare.
6256         * expmed.c (extract_low_bits): New function.
6257         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
6258         * dse.c: Include tm_p.h.
6259         (find_shift_sequence): Remove the read_reg argument and return the
6260         read value.  Emit the instructions instead of returning them.
6261         Iterate on new_mode rather than calculating it each time.
6262         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
6263         source to NEW_MODE and extract_low_bits to convert the shifted
6264         value to READ_MODE.
6265         (replace_read): Allow the load and store to have different mode
6266         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
6267         or extraction instructions before trying the replacement.  Update
6268         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
6269
6270 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
6271
6272         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
6273         to their natural alignment to avoid store forwarding stalls.
6274
6275 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6276
6277         PR target/27946
6278         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
6279         encouraging but not allowing gprs for input;
6280         change the input constraint to !f#r.
6281         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
6282         gprs for output;
6283         change the output constraint to !f#r.
6284
6285 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
6286
6287         PR target/13958
6288         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
6289         corresponding post-reload splitters.
6290         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
6291         when x87 FP math is selected.
6292         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
6293         New function prototype.
6294         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
6295         unreachable function to ease macroization of insn patterns.
6296
6297 2008-03-21  Martin Jambor  <mjambor@suse.cz>
6298
6299         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
6300         reference dumps if ddr is NULL or dependence is unknown.
6301
6302 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6303
6304         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
6305         unsigned extension into account.
6306         (ATOMIC_COMPARE_AND_SWAP): Likewise.
6307         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
6308         Do computations on a scratch register.
6309
6310 2008-03-21  Richard Guenther  <rguenther@suse.de>
6311
6312         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
6313         Use is_gimple_min_invariant instead of TREE_INVARIANT.
6314         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
6315         * tree-ssa-dom.c (record_equality): Likewise.
6316         * tree-inline.c (copy_body_r): Likewise.
6317         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
6318         TREE_INVARIANT.
6319
6320 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6321
6322         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
6323         as 'delete_unused' argument.
6324
6325 2008-03-20  Richard Guenther  <rguenther@suse.de>
6326
6327         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
6328         special casing of constant qualifiers.
6329         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
6330         care about them in general.
6331         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
6332         regardless of their type.
6333         (fold_stmt_r): Forcefully fold *& if we end up with that.
6334
6335 2008-03-20  Paul Brook  <paul@codesourcery.com>
6336
6337         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
6338         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
6339         linker flags.
6340         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
6341         definition.
6342         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
6343         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
6344
6345 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
6346
6347         * common.opt (Wmudflap): New option.
6348         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
6349         (mx_register_decls): Likewise.
6350         (mudflap_finish_file): Likewise.
6351         * doc/invoke.texi: Document -Wno-mudflap.
6352
6353 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
6354
6355         * c-format.c (replace_format_name_to_system_name): New.
6356         (cmp_attribs): New.
6357         (convert_format_name_to_system_name): New.
6358         (decode_format_attr): Add use of convert_format_name_to_system_name.
6359         (format_types_orig): Add gnu_ prefix to names.
6360         (check_format_info_main): Special treating of \0 escaped names for
6361         supporting multi-character format specifiers as I32, I64.
6362         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
6363         (gnu_target_overrides_format_attributes): New.
6364         * c-format.h: Add structure target_ovr_attr to hold
6365         system specific formatter names.
6366         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
6367         msformat-c.o file to c_target_objs and cxx_target_objs.
6368         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
6369         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
6370         (TARGET_N_FORMAT_TYPES): New.
6371         * config/i386/msformat-c.c: New.
6372         * config/i386/t-cygming: Add build rule for msformat-c.o.
6373         * doc/extend.texi: Add new format names gnu_* and ms_* and
6374         further details.
6375         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
6376
6377 2008-03-20  Ira Rosen  <irar@il.ibm.com>
6378
6379         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
6380         optimizations turned on under -O3.
6381         (ftree-vectorize): Add that the flag is turned on with -O3.
6382
6383 2008-03-20  Ben Elliston  <bje@au.ibm.com>
6384
6385         * regmove.c (try_auto_increment): Fix spelling error in comment.
6386         * final.c (final_scan_insn): Likewise.
6387
6388 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
6389
6390         PR target/14552
6391         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
6392         allocator preferences for "y" and "r" class registers.
6393         ("*mov<mode>_internal"): Ditto.
6394         ("*movv2sf_internal_rex64"): Ditto.
6395         ("*movv2sf_internal"): Ditto.
6396
6397 2008-03-19  Michael Matz  <matz@suse.de>
6398
6399         PR middle-end/35616
6400         * calls.c (expand_call): Check overlap of arguments with call
6401         address for sibcalls.
6402
6403 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
6404
6405         PR target/35496
6406         * stor-layout.c (update_alignment_for_field): Set minimum alignment
6407         of the underlying type of a MS bitfield layout to the natural
6408         alignment of the type.
6409
6410 2008-03-19  Jan Hubicka  <jh@suse.cz>
6411
6412         PR other/35094
6413         * toplev.c (decode_d_option): Handle all CPP flags.
6414         * tree-vrp.c: Update tree_pass descriptors.
6415         * regrename.c: Update tree_pass descriptors.
6416         * fwprop.c: Update tree_pass descriptors.
6417         * doc/invoke.texi: Remove documentation of dropped -d? flags.
6418         * tree-into-ssa.c: Update tree_pass descriptors.
6419         * tree-dump.c: Update tree_pass descriptors.
6420         * tree-complex.c: Update tree_pass descriptors.
6421         * tree-dump.h: Update tree_pass descriptors.
6422         * see.c: Update tree_pass descriptors.
6423         * cgraphbuild.c: Update tree_pass descriptors.
6424         * tracer.c: Update tree_pass descriptors.
6425         * tree-loop-distribution.c: Update tree_pass descriptors.
6426         * cgraph.c: Update tree_pass descriptors.
6427         * postreload-gcse.c: Update tree_pass descriptors.
6428         * postreload.c: Update tree_pass descriptors.
6429         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
6430         * tree-tailcall.c: Update tree_pass descriptors.
6431         * tree-pass.h (tree_opt_pass): Rename to ...
6432         (opt_pass) ... this one; add "type" field and remove letter field.
6433         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
6434         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
6435         all_lowering_passes): Update declaration.
6436         * ipa-cp.c: Update tree_pass descriptors.
6437         * final.c: Update tree_pass descriptors.
6438         * omp-low.c: Update tree_pass descriptors.
6439         * tree-ssa-dse.c: Update tree_pass descriptors.
6440         * ipa-reference.c: Update tree_pass descriptors.
6441         * tree-ssa-uncprop.c: Update tree_pass descriptors.
6442         * auto-inc-dec.c: Update tree_pass descriptors.
6443         * reorg.c: Update tree_pass descriptors.
6444         * cgraphunit.c: Update tree_pass descriptors.
6445         * tree-ssa-copyrename.c: Update tree_pass descriptors.
6446         * tree-ssa-ccp.c: Update tree_pass descriptors.
6447         * df-core.c: Update tree_pass descriptors.
6448         * mode-switching.c: Update tree_pass descriptors.
6449         * tree-nomudflap.c: Update tree_pass descriptors.
6450         * modulo-sched.c: Update tree_pass descriptors.
6451         * ipa-pure-const.c: Update tree_pass descriptors.
6452         * cse.c: Update tree_pass descriptors.
6453         * web.c: Update tree_pass descriptors.
6454         * tree-stdarg.c: Update tree_pass descriptors.
6455         * tree-ssa-math-opts.c: Update tree_pass descriptors.
6456         * tree-ssa-dom.c: Update tree_pass descriptors.
6457         * tree-nrv.c: Update tree_pass descriptors.
6458         * tree-ssa-alias.c: Update tree_pass descriptors.
6459         * loop-init.c: Update tree_pass descriptors.
6460         * gimple-low.c: Update tree_pass descriptors.
6461         * ipa-inline.c: Update tree_pass descriptors.
6462         * tree-ssa-sink.c: Update tree_pass descriptors.
6463         * global.c: Update tree_pass descriptors.
6464         * ifcvt.c: Update tree_pass descriptors.
6465         * jump.c: Update tree_pass descriptors.
6466         * predict.c: Update tree_pass descriptors.
6467         * tree-ssa-loop.c: Update tree_pass descriptors.
6468         * recog.c: Update tree_pass descriptors.
6469         * dse.c: Update tree_pass descriptors.
6470         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
6471         * tree-eh.c: Update tree_pass descriptors.
6472         * regmove.c: Update tree_pass descriptors.
6473         * local-alloc.c
6474         * function.c: Update tree_pass descriptors.
6475         * tree-vectorizer.c: Update tree_pass descriptors.
6476         * gcse.c: Update tree_pass descriptors.
6477         * ipa-type-escape.c: Update tree_pass descriptors.
6478         * tree-if-conv.c: Update tree_pass descriptors.
6479         * init-regs.c: Update tree_pass descriptors.
6480         * ipa.c: Update tree_pass descriptors.
6481         * tree-ssa-phiopt.c: Update tree_pass descriptors.
6482         * rtl-factoring.c: Update tree_pass descriptors.
6483         * lower-subreg.c: Update tree_pass descriptors.
6484         * bt-load.c: Update tree_pass descriptors.
6485         * tree-dfa.c: Update tree_pass descriptors.
6486         * except.c: Update tree_pass descriptors.
6487         * emit-rtl.c: Update tree_pass descriptors.
6488         * cfgexpand.c: Update tree_pass descriptors.
6489         * tree-cfgcleanup.c: Update tree_pass descriptors.
6490         * cfgcleanup.c: Update tree_pass descriptors.
6491         * tree-ssa-pre.c: Update tree_pass descriptors.
6492         * tree-sra.c: Update tree_pass descriptors.
6493         * tree-mudflap.c: Update tree_pass descriptors.
6494         * tree-ssa-copy.c: Update tree_pass descriptors.
6495         * cfglayout.c: Update tree_pass descriptors.
6496         * tree-ssa-forwprop.c: Update tree_pass descriptors.
6497         * tree-ssa-dce.c: Update tree_pass descriptors.
6498         * tree-ssa.c: Update tree_pass descriptors.
6499         * regclass.c: Update tree_pass descriptors.
6500         * integrate.c: Update tree_pass descriptors.
6501         * tree-optimize.c: Update tree_pass descriptors.
6502         * tree-ssa-phiprop.c: Update tree_pass descriptors.
6503         * tree-object-size.c: Update tree_pass descriptors.
6504         * combine.c: Update tree_pass descriptors.
6505         * tree-outof-ssa.c: Update tree_pass descriptors.
6506         * bb-reorder.c: Update tree_pass descriptors.
6507         * stack-ptr-mod.c: Update tree_pass descriptors.
6508         * var-tracking.c: Update tree_pass descriptors.
6509         * tree-profile.c: Update tree_pass descriptors.
6510         * tree-vect-generic.c: Update tree_pass descriptors.
6511         * reg-stack.c: Update tree_pass descriptors.
6512         * sched-rgn.c: Update tree_pass descriptors.
6513         * tree-ssa-structalias.c: Update tree_pass descriptors.
6514         * tree-cfg.c: Update tree_pass descriptors.
6515         * passes.c (current_pass): Update declaration.
6516         (finish_optimization_passes): Update.
6517         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
6518         (register_one_dump_file, register_dump_files_1, next_pass_1):
6519         Update arguments.
6520         (init_optimization_passes): Update handling of new types.
6521         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
6522         * ipa-struct-reorg.c: Update tree_pass descriptors.
6523         * tree-ssa-reassoc.c: Update tree_pass descriptors.
6524         * combine-stack-adj.c: Update tree_pass descriptors.
6525         * cfgrtl.c: Update tree_pass descriptors.
6526         * dce.c: Update tree_pass descriptors.
6527         * tree-ssanames.c: Update tree_pass descriptors.
6528
6529 2008-03-19  Richard Guenther  <rguenther@suse.de>
6530
6531         PR middle-end/35609
6532         * tree-ssa.c (walk_data): New structure.
6533         (warn_uninitialized_var): If not always_executed warn with "maybe"
6534         instead of "is".
6535         (execute_early_warn_uninitialized): Compute post-dominators.
6536         Initialize always_executed before processing each basic block.
6537
6538 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
6539
6540         PR target/35504
6541         * config/i386/i386.c (x86_this_parameter): Calculate correct location
6542         of "this" pointer when "regparm = N" or "fastcall" is in effect.
6543
6544 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6545
6546         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
6547
6548 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
6549
6550         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
6551         is true.
6552         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
6553         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
6554         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
6555         target after ignore has been set, and move there also the commputation
6556         of subtarget and original_target.
6557         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
6558         (LANG_HOOKS_INITIALIZER): Remove it.
6559         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
6560
6561 2008-03-18  Richard Guenther  <rguenther@suse.de>
6562
6563         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
6564         found an expression with constants, note that in the VN for the lhs.
6565         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
6566         fold them to constants if possible.  Run cleanup_cfg if done so.
6567         (execute_pre): Return todo.
6568         (do_pre): Likewise.
6569         (execute_fre): Likewise.
6570         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
6571         of constants.
6572         (get_prop_source_stmt): Look through pointer conversions.
6573
6574 2008-03-18  Jan Hubicka  <jh@suse.cz>
6575
6576         * tree-pretty-print.c: Include predict.h.
6577         (dump_generic_node): Dump predictor.
6578         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
6579         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
6580         * gimple-low.c (lower_stmt): Likewise.
6581         * expr.c (expand_expr_real): Likewise.
6582         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
6583         them.
6584         (build_predict_expr, build_predict_expr): New.
6585         * predict.h (predictor_name, build_predict_expr): Update.
6586         * c-typeck.c (c_finish_bc_stmt): Add prediction.
6587         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
6588         * predict.def (PRED_CONTINUE): Update hitrate.
6589         * tree.def (PREDICT_EXPR): Define.
6590         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
6591         do not handle BIND_EXPR.
6592         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
6593         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
6594         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
6595         operands.
6596
6597 2008-03-18  Michael Matz  <matz@suse.de>
6598
6599         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
6600
6601 2008-03-18  Richard Guenther  <rguenther@suse.de>
6602
6603         * tree-gimple.h (is_gimple_invariant_address): Declare.
6604         (is_gimple_constant): Likewise.
6605         * tree-gimple.c (is_gimple_constant): New function.
6606         (is_gimple_invariant_address): Likewise.
6607         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
6608         and is_gimple_invariant_address.
6609         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
6610         previous change.
6611         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
6612         an addressable base.
6613
6614 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
6615
6616         PR middle-end/35611
6617         * gimplify.c (gimplify_expr): Gimplify second operand of
6618         OMP_ATOMIC_LOAD.
6619
6620 2008-03-17  Richard Guenther  <rguenther@suse.de>
6621
6622         PR tree-optimization/19637
6623         * fold-const.c (fold_unary): Remove restrictions of removing
6624         intermediate pointer-conversions (P2)(P1)P0.
6625         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
6626         conversion to void pointer.
6627         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
6628
6629 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
6630
6631         PR debug/31510
6632         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
6633         emulated thread local variables.
6634
6635 2008-03-16  Richard Guenther  <rguenther@suse.de>
6636
6637         PR middle-end/35607
6638         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
6639         expand TREE_INVARIANT operations that are not gimple invariant.
6640
6641 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
6642
6643         * doc/extend.texi (Alignment): Say that the ABI controls
6644         the __alignof__ for non-strict-alignment targets rather
6645         than being a recommendation.
6646
6647 2008-03-15  Paul Brook  <paul@codesourcery.com>
6648
6649         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
6650         annotations.
6651         (arm_output_fn_unwind): Mark functions that can not be unwound.
6652
6653 2008-03-15  Paul Brook  <paul@codesourcery.com>
6654
6655         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
6656         extension instructions.
6657
6658 2008-03-15  Richard Guenther  <rguenther@suse.de>
6659
6660         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
6661         and fold constant aggregate refs.
6662         (fold_const_aggregate_ref): Handle string constants
6663         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
6664         (evaluate_stmt): Simplify now that ccp_fold folds constant
6665         aggregate refs.
6666
6667 2008-03-15  Paul Brook  <paul@codesourcery.com>
6668
6669         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
6670         (extzv): Use gen_extzv_t2.
6671         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
6672
6673 2008-03-15  Richard Guenther  <rguenther@suse.de>
6674
6675         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
6676         (fold_const_aggregate_ref): Likewise.
6677         (get_value): Return NULL if we don't have any values.
6678         (ccp_finalize): Set const_val to NULL after freeing it.
6679         * tree-flow.h (get_symbol_constant_value): Declare.
6680         (fold_const_aggregate_ref): Likewise.
6681         * tree-ssa-sccvn.c (try_to_simplify): Use them.
6682
6683 2008-03-15  Richard Guenther  <rguenther@suse.de>
6684
6685         PR middle-end/35593
6686         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
6687         to not produce negative array indices if not allowed.  Add
6688         parameter to indicate that.
6689         (maybe_fold_offset_to_component_ref): Allow negative array
6690         indices only for the first member of a structure.
6691         (maybe_fold_offset_to_reference): Allow negative array indices.
6692         (maybe_fold_stmt_addition): Likewise.
6693
6694 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
6695             Anatoly Sokolov <aesok@post.ru>
6696
6697         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
6698         (avr_arch): Add ARCH_AVR6.
6699         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
6700         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
6701         instead of fixed value 2.
6702         (print_operand_address): Use gs() asm specifier instead of pm().
6703         (avr_assemble_integer): (Ditto.).
6704         (avr_output_addr_vec_elt): (Ditto.).
6705         (print_operand): Handle "!" code.
6706         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
6707         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
6708         (AVR_HAVE_EIJMP_EICALL): Define.
6709         (AVR_3_BYTE_PC): Redefine.
6710         (AVR_2_BYTE_PC): (Ditto.).
6711         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
6712         (LINK_SPEC): Add atmega2560 and atmega2561.
6713         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
6714         (crtm2561.o).
6715         * config/avr/avr.md (call_insn): Use eicall instead of icall 
6716         for 3 byte PC devices.
6717         (call_value_insn): (Ditto.).
6718         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
6719         (indirect_jump): Use only for for 2 byte PC devices.
6720         (*tablejump): (Ditto.).
6721         (*indirect_jump_avr6): Add insn.
6722         (*tablejump_rjmp): Don't use for 3 byte PC devices.
6723         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
6724         instead of ijmp for 3 byte PC devices.
6725         (__tablejump2__): (Ditto.).
6726         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
6727         (MULITLIB_DIRNAMES): (Ditto.). 
6728         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
6729
6730 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
6731
6732         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
6733         "sse2_umulsidi3".  Use V1DI mode for operand 0.
6734         ("mmx_psadbw"): Use V1DI mode for operand 0.
6735         * config/i386/i386-modes.def (V1SI): New vector mode.
6736         * config/i386/i386.c (struct builtin_description)
6737         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
6738         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
6739         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
6740         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
6741         v1di_ftype_v8qi_v8qi type.
6742         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
6743
6744         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
6745         __builtin_ia32_pmuludq]: Fix the mode of return value.
6746
6747 2008-03-15  Richard Guenther  <rguenther@suse.de>
6748
6749         PR middle-end/35595
6750         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
6751         being a PHI_NODE.
6752
6753 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
6754         
6755         * doc/invoke.texi (Option Summary, Xtensa Options): Document
6756         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
6757         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
6758         unless TARGET_SERIALIZE_VOLATILE is enabled.
6759         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
6760         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
6761         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
6762
6763 2008-03-14  Richard Guenther  <rguenther@suse.de>
6764
6765         PR tree-optimization/34172
6766         * tree-flow.h (refs_may_alias_p): Declare.
6767         (get_single_def_stmt): Likewise.
6768         (get_single_def_stmt_from_phi): Likewise.
6769         (get_single_def_stmt_with_phi): Likewise.
6770         * tree-dfa.c (refs_may_alias_p): New function.
6771         (get_single_def_stmt): Likewise.
6772         (get_single_def_stmt_from_phi): Likewise.
6773         (get_single_def_stmt_with_phi): Likewise.
6774         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
6775         (vn_reference_lookup_1): New helper function.
6776         (vn_reference_lookup): Walk the virtual use-def chain to
6777         continue searching for a match if the def does not alias the
6778         reference we are looking for.
6779
6780 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
6781
6782         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
6783         archive and Perzl.  Update The Written Word listing.
6784
6785 2008-03-14  Richard Guenther  <rguenther@suse.de>
6786
6787         PR tree-optimization/34043
6788         PR tree-optimization/33989
6789         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
6790         when doing FRE.
6791         (bitmap_find_leader): Use extra argument to verify dominance
6792         relationship inside a basic-block.
6793         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
6794         (find_leader_in_sets): Adjust.
6795         (create_component_ref_by_pieces): Take extra argument for
6796         dominance check, handle lookup failures.
6797         (find_or_generate_expression): Likewise.
6798         (create_expression_by_pieces): Likewise.
6799         (insert_into_preds_of_block): Adjust.
6800         (create_value_expr_from): If asked for, verify all operands
6801         are in the blocks AVAIL_OUT set.
6802         (make_values_for_stmt): Check for SSA_NAMEs that are life
6803         over an abnormal edge.
6804         (compute_avail): Remove such check.
6805         (do_SCCVN_insertion): New function.
6806         (eliminate): If we do not find a leader suitable for replacement
6807         insert a replacement expression from SCCVN if available.
6808         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
6809         (struct vn_ssa_aux): Add needs_insertion flag.
6810         * tree-ssa-sccvn.c (may_insert): New global flag.
6811         (copy_reference_ops_from_ref): Value-number union member access
6812         based on its size, not type and member if insertion is allowed.
6813         (visit_reference_op_load): For a weak match from union type
6814         punning lookup a view-converted value and insert a SSA_NAME
6815         for that value if that is not found.
6816         (visit_use): Make dumps shorter.  Do not disallow value numbering
6817         SSA_NAMEs that are life over an abnormal edge to constants.
6818         (free_scc_vn): Release inserted SSA_NAMEs.
6819         (run_scc_vn): New flag to specify whether insertion is allowed.
6820         Process SSA_NAMEs in forward order.
6821         * tree-ssa-loop-im.c (for_each_index): Handle invariant
6822         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
6823         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
6824         pointer type to/from integral types that do not change the
6825         precision to regular conversions.
6826
6827 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
6828
6829         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
6830         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
6831         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
6832         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
6833         input arguments and the mode of return value.  Built-in functions
6834         that operate on whole 64-bit MMX register now use V1DI mode.
6835
6836 2008-03-13  Alon Dayan  <alond@il.ibm.com>
6837             Olga Golovanevsky  <olga@il.ibm.com>
6838
6839         PR tree-optimization/35041
6840         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
6841         to locate the right position in a statement.
6842
6843 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
6844
6845         PR target/34000
6846         PR target/35553
6847         * config/i386/xmmintrin.h:  Change all static inline functions to
6848         extern inline and add __gnu_inline__ attribute.
6849         * config/i386/bmintrin.h: Ditto.
6850         * config/i386/smmintrin.h: Ditto.
6851         * config/i386/tmmintrin.h: Ditto.
6852         * config/i386/mmintrin-common.h: Ditto.
6853         * config/i386/ammintrin.h: Ditto.
6854         * config/i386/emmintrin.h: Ditto.
6855         * config/i386/pmmintrin.h: Ditto.
6856         * config/i386/mmintrin.h: Ditto.
6857         * config/i386/mm3dnow.h: Ditto.
6858
6859 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
6860
6861         PR middle-end/35185
6862         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
6863         (lower_omp_2): New function.
6864         (lower_omp_1, lower_omp): Rewritten.
6865
6866 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
6867
6868         PR 35054
6869         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
6870         with the phrase "Microsoft Windows compilers".
6871         (Push/Pop Macro Pragmas): New subsection. Document
6872         #pragma push_macro and pragma pop_macro.
6873
6874 2008-03-12  Paul Brook  <paul@codesourcery.com>
6875
6876         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
6877
6878 2008-03-12  Paul Brook  <paul@codesourcery.com>
6879
6880         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
6881         (thumb2_alusi3_short): Exclude PLUS and MINUS.
6882         (thumb2_addsi_shortim): Rename ...
6883         (thumb2_addsi_short): ... to this.  Allow register operands.
6884         (thumb2_subsi_short): New pattern.
6885         (thumb2_one_cmplsi2_short,
6886         thumb2_negsi2_short): New patterns and peepholes.
6887
6888 2008-03-12  Paul Brook  <paul@codesourcery.com>
6889
6890         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
6891
6892 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
6893
6894         * config/i386/i386.md (int_cond): New code iterator.
6895         (fp_cond): Ditto.
6896         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
6897         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
6898         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
6899         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
6900         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
6901         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
6902         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
6903         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
6904
6905 2008-03-12  Paul Brook  <paul@codesourcery.com>
6906
6907         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
6908         instead of {arm,thumb}_compute_save_reg_mask.
6909         (output_return_instruction): Ditto.
6910         (thumb_unexpanded_epilogue): Ditto.
6911         (thumb1_expand_prologue): Ditto.
6912         (thumb1_output_function_prologue): Ditto.
6913         (arm_set_return_address): Ditto.
6914         (thumb_set_return_address): Ditto.
6915         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
6916         regs to achieve stack alignment.
6917         (thumb1_compute_save_reg_mask): Fix compiler warning.
6918         (arm_output_epilogue): Use offsets->saved_regs_mask.
6919         Adjust stack pointer by poping call clobered registers.
6920         (arm_expand_prologue): Use offsets->saved_regs_mask.
6921         Adjust stack pointer by pushing extra registers.
6922         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
6923
6924 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
6925
6926         PR tree-opt/35422
6927         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
6928         conversion to the operands of a multiplication.
6929
6930 2008-03-12  Richard Guenther  <rguenther@suse.de>
6931
6932         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
6933         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
6934         * timevar.def (TV_TREE_PHIPROP): Add.
6935         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
6936         pass description.  Use TV_TREE_PHIPROP.
6937         * tree-ssa-forwprop.c: Remove phiprop code.
6938
6939 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
6940
6941         PR middle-end/35549
6942         * omp-low.c (maybe_lookup_decl): Constify first argument.
6943         (use_pointer_for_field): Change last argument from bool to
6944         omp_context *.  Disallow shared copy-in/out in nested
6945         parallel if decl is shared in outer parallel too.
6946         (build_outer_var_ref, scan_sharing_clauses,
6947         lower_rec_input_clauses, lower_copyprivate_clauses,
6948         lower_send_clauses, lower_send_shared_vars): Adjust callers.
6949
6950 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
6951             Ira Rosen  <irar@il.ibm.com>
6952
6953         * tree-vectorizer.c (free_stmt_vec_info): New function.
6954         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
6955         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
6956         * tree-vectorizer.h (free_stmt_vec_info): Declare.
6957         * tree-vect-transform.c (vectorizable_conversion): Free
6958         vec_oprnds0 if it was allocated.
6959         (vect_permute_store_chain): Remove unused VECs.
6960         (vectorizable_store): Free VECs that are allocated in the..
6961         function.
6962         (vect_transform_strided_load, vectorizable_load): Likewise.
6963         (vect_remove_stores): Simplify the code.
6964         (vect_transform_loop): Move code to vect_remove_stores().
6965         Call vect_remove_stores() and free_stmt_vec_info().
6966
6967 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6968
6969         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
6970         TARGET_HPUX.  Revise comment.
6971         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
6972         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
6973         Use sr4 variant of `be' instruction when not generating PIC code.
6974         (attr_length_call): Adjust for above change.
6975
6976 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6977
6978         * ipa-reference.c (static_execute): Remove module_statics_const and
6979         associated setting code.
6980
6981 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
6982
6983         PR target/35540
6984         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
6985         predicate for operand 1.
6986         (paritysi2_cmp): Use register_operand predicate for operand 2.
6987         Use earlyclobber modifier for operand 1.  Remove support for
6988         memory operands.
6989         (paritydi2_cmp): Use register_operand predicate for operand 3.
6990         Use earlyclobber modifier for operand 1.  Remove support for
6991         memory operands.
6992
6993 2008-03-11  Paul Brook  <paul@codesourcery.com>
6994             Vladimir Prus  <vladimir@codesourcery.com>
6995
6996         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
6997         (arm_compute_save_reg0_reg12_mask): Always
6998         check if register 11 must be saved.  Always safe hard frame pointer
6999         when frame_pointer_needeed.
7000         (arm_compute_save_reg_mask): Save IP and PC
7001         only with apcs frames.
7002         (arm_output_epilogue): Adjust Thumb2 codepath to
7003         be also invoked and work for ARM non-apcs frames.
7004         (arm_expand_prologue): Don't bother saving IP
7005         for non-apcs frame, since it's not clobbered by
7006         prologue code.  Implement non-apcs frame
7007         layout.
7008
7009 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
7010
7011         PR rtl-optimization/35281
7012         * expr.c (convert_move): Use a new pseudo for the intermediate
7013         from_mode->word_mode result.
7014
7015 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
7016
7017         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
7018         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
7019         * toplev.c (compile_file): Don't call it.
7020
7021 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
7022
7023         PR middle-end/35526
7024         * expr.c (store_expr): Call emit_block_move if the mode
7025         of "temp" RTX is BLKmode.
7026
7027 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7028             Richard Guenther  <rguenther@suse.de>
7029
7030         PR tree-optimization/31358
7031         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
7032         the step with a NULL_TREE.
7033         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
7034         to sizetype if type is a pointer type.
7035         (add_candidate_1): Don't convert the base and step to
7036         the generic type if the orginal type is a pointer type.
7037         (add_iv_value_candidates): Use sizetype for the step
7038         if type is a pointer type.
7039         (cand_value_at): Likewise.
7040         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
7041         for pointer types.
7042         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
7043         Don't convert the tem affine to the type.
7044         (add_elt_to_tree): Use sizetype for the step if a pointer.
7045         Use POINTER_PLUS_EXPR for pointers.
7046         (aff_combination_to_tree): Use sizetype for the step if a
7047         pointer.
7048
7049 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
7050
7051         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
7052         Remove commutativity hint.
7053
7054 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
7055
7056         PR c/35438
7057         PR c/35439
7058         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
7059         errorneous type.  Check that v is a VAR_DECL.
7060
7061         PR middle-end/35099
7062         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
7063
7064 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
7065
7066         PR tree-optimization/35494
7067         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
7068         may be overriden at link and run time.
7069
7070 2008-03-10  Richard Guenther  <rguenther@suse.de>
7071
7072         PR tree-optimization/34677
7073         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
7074         (poolify_tree): Likewise.
7075         (modify_expr_template): Likewise.
7076         (poolify_modify_stmt): Likewise.
7077         (insert_fake_stores): Handle all component-ref style stores
7078         in addition to INDIRECT_REF.  Also handle complex types.
7079         Do not poolify the inserted load.
7080         (realify_fake_stores): Do not rebuild the tree but only
7081         make it a SSA_NAME copy.
7082         (init_pre): Remove initialzation of modify_expr_template.
7083         Do not allocate modify_expr_node_pool.
7084         (fini_pre): Do not free modify_expr_node_pool.
7085
7086 2008-03-10  Paul Brook  <paul@codesourcery.com>
7087
7088         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
7089         to avoid conflicts.
7090
7091 2008-03-10  Paul Brook  <paul@codesourcery.com>
7092             Mark Shinwell  <shinwell@codesourcery.com>
7093
7094         * config/arm/cortex-r4.md: New.
7095         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
7096         insn attributes.
7097         * config/arm/arm.md: Include cortex-r4.md.
7098         (insn): Add smmls, sdiv and udiv values.
7099         (generic_sched): Don't use generic scheduling for Cortex-R4.
7100         (arm_issue_rate): New function.
7101         (TARGET_SCHED_ISSUE_RATE): Define.
7102
7103 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
7104
7105         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
7106
7107 2008-03-10  Richard Guenther  <rguenther@suse.de>
7108
7109         * tree-ssa-pre.c (get_sccvn_value): Simplify.
7110         (compute_avail): Do not add stmt uses to AVAIL_OUT.
7111
7112 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
7113
7114         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
7115         Set default to true.
7116
7117 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7118
7119         * c.opt (Wsynth): Deprecate.
7120         * doc/invoke.texi (Option Summary, Warning Options): Document
7121         -Wno-format-contains-nul.
7122
7123 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
7124
7125         PR target/35496
7126         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
7127         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
7128
7129 2008-03-09  Ira Rosen  <irar@il.ibm.com>
7130
7131         * config/rs6000/rs6000.c (builtin_description): Rename vector
7132         left shift operations.
7133         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
7134         (altivec_vsl<VI_char>): Rename to ...
7135         (ashl<mode>3): ... new name.
7136         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
7137         gen_ashlv4si3.
7138         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
7139
7140 2008-03-08  Richard Guenther  <rguenther@suse.de>
7141
7142         * coverage.h (tree_coverage_counter_addr): Declare.
7143         * coverage.c (tree_coverage_counter_addr): New function.
7144         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
7145         before using again.
7146         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
7147         (tree_gen_one_value_profiler): Likewise.
7148         (tree_gen_ic_profiler): Likewise.
7149         (tree_gen_average_profiler): Likewise.
7150         (tree_gen_ior_profiler): Likewise.
7151
7152 2008-03-08  Richard Guenther  <rguenther@suse.de>
7153
7154         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
7155         (vn_binary_op_insert): Likewise.
7156         (vn_unary_op_lookup): Likewise.
7157         (vn_unary_op_insert): Likewise.
7158         (vn_nary_op_lookup): Declare.
7159         (vn_nary_op_insert): Likewise.
7160         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
7161         and binary hashes, use a single obstack for unary_op_pool
7162         and binary_op_pool.
7163         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
7164         a single struct vn_nary_op_s.  Store tree code length and
7165         a variable number of operands.
7166         (struct vn_reference_op_struct): Remove unused op2.
7167         (vn_reference_op_eq): Do not compare op2.
7168         (vn_reference_op_compute_hash): Do not compute hash of op2.
7169         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
7170         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
7171         with vn_nary_op_compute_hash.
7172         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
7173         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
7174         vn_nary_op_lookup.
7175         (vn_unary_op_insert, vn_binary_op_insert): Replace with
7176         vn_nary_op_insert.
7177         (visit_unary_op): Call nary functions.
7178         (visit_binary_op): Likewise.
7179         (process_scc): Adjust for struct vn_tables_s changes.
7180         (allocate_vn_table): Likewise.
7181         (free_vn_table): Likewise.
7182         * tree-vn.c (vn_add): Call nary functions.
7183         (vn_lookup): Likewise.
7184
7185 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
7186
7187         PR target/35498
7188         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
7189         wdst back after sync_compare_and_swapqhi_internal.
7190
7191 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
7192
7193         PR target/22152
7194         * config/i386/i386-modes.def (V1DI): New vector mode.
7195         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
7196         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
7197         (MMXMODE248): Ditto.
7198         (MMXMODE): Add V1DI mode.
7199         (mmxvecsize): Change DI mode to V1DI mode.
7200         ("mov<mode>): Use MMXMODEI8 mode iterator.
7201         ("*mov<mode>_internal_rex64"): Ditto.
7202         ("*mov<mode>_internal"): Ditto.
7203         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
7204         ("mmx_sub<mode>3"): Ditto.
7205         ("mmx_adddi3"): Remove insn pattern.
7206         ("mmx_subdi3"): Ditto.
7207         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
7208         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
7209         ("mmx_ashl<mode>3"): Ditto.
7210         ("mmx_lshrdi3"): Remove insn pattern.
7211         ("mmx_ashldi3"): Ditto.
7212         * config/i386/i386.c (classify_argument): Handle V1DImode.
7213         (function_arg_advance_32): Ditto.
7214         (function_arg_32): Ditto.
7215         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
7216         mmx_addv1di3 insn pattern.
7217         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
7218         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
7219         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
7220         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
7221         Remove definitions of built-in functions.
7222         (V1DI_type_node): New node.
7223         (v1di_ftype_v1di_int): Ditto.
7224         (v1di_ftype_v1di_v1di): Ditto.
7225         (v2si_ftype_v2si_si): Ditto.
7226         (v4hi_ftype_v4hi_di): Remove node.
7227         (v2si_ftype_v2si_di): Ditto.
7228         (ix86_init_mmx_sse_builtins): Handle V1DImode.
7229         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
7230         Redefine builtins using def_builtin_const with *_ftype_*_int node.
7231         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
7232         Add new builtins using def_builtin_const.
7233         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
7234         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
7235         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
7236         * config/i386/mmintrin.h (__v1di): New typedef.
7237         (_mm_add_si64): Cast arguments to __v1di type.
7238         (_mm_sub_si64): Ditto.
7239         (_mm_sll_pi16): Cast __count to __v4hi type.
7240         (_mm_sll_pi32): Cast __count to __v2si type.
7241         (_mm_sll_si64): Cast arguments to __v1di type.
7242         (_mm_srl_pi16): Cast __count to __v4hi type.
7243         (_mm_srl_pi32): Cast __count to __v2si type.
7244         (_mm_srl_si64): Cast arguments to __v1di type.
7245         (_mm_sra_pi16): Cast __count to __v4hi type.
7246         (_mm_sra_pi32): Cast __count to __v2si type.
7247         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
7248         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
7249         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
7250         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
7251         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
7252         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
7253         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
7254         (_mm_srai_pi32): Use __builtin_ia32_psradi.
7255         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
7256         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
7257         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
7258         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
7259
7260 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
7261
7262         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
7263
7264 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
7265
7266         PR target/35373
7267         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
7268         reg+const addressing for Altivec modes.  Don't generate reg+reg
7269         addressing for TFmode or TDmode quantities.
7270
7271 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
7272
7273         * c-common.c (vector_types_convertible_p): Call langhook
7274         instead of comptypes.
7275
7276 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7277
7278         PR tree-opt/35402
7279         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
7280         integral and scalar float variables which have a
7281         NULL DECL_INITIAL.
7282
7283 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
7284
7285         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
7286         dwarf_register_span hook when emitting unwind information for
7287         register-to-memory saves.
7288         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
7289         (rs6000_frame_related): Remove call to spe_synthesize_frame.
7290
7291 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
7292
7293         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
7294         for the same VAR_DECL.
7295
7296 2008-03-06  Tom Tromey  <tromey@redhat.com>
7297
7298         * treelang: Delete.
7299         * doc/standards.texi (Standards): Don't mention treelang.
7300         * doc/invoke.texi (Overall Options): Don't mention treelang.
7301         * doc/install.texi (Prerequisites): Don't mention bison or
7302         treelang.
7303         (Configuration): Don't mention treelang.
7304         (Building): Likewise.
7305         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
7306
7307 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
7308
7309         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
7310         word-extractions out of a multi-word object.
7311
7312 2008-03-06  Richard Guenther  <rguenther@suse.de>
7313
7314         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
7315         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
7316         result type and precision.
7317         * expr.c (get_inner_reference): Set unsignedp based on the result
7318         type of BIT_FIELD_REF.
7319         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
7320         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
7321         (try_instantiate_multiple_fields): Likewise.  Use the correct type
7322         for BIT_FIELD_REF.
7323         (sra_build_assignment): Likewise.
7324         (sra_build_elt_assignment): Likewise.
7325         (sra_explode_bitfield_assignment): Likewise.
7326         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
7327         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
7328         set BIT_FIELD_REF_UNSIGNED.
7329         (vectorizable_load): Likewise.
7330
7331 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
7332
7333         * cse.c (cse_extended_basic_block): Invalidate artificial defs
7334         at bb start.
7335
7336 2008-03-06  Richard Guenther  <rguenther@suse.de>
7337
7338         * alias.c (struct alias_set_entry): Move has_zero_child field
7339         to pack with alias_set.
7340
7341 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
7342
7343         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
7344         32bit host.
7345
7346 2008-03-05  Ian Lance Taylor  <iant@google.com>
7347
7348         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
7349
7350 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
7351
7352         * fwprop.c (update_df): Support width and offset parameters of
7353         df_ref_create.
7354         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
7355         global_conflicts): Change DF_REF_EXTRACT to either
7356         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7357         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7358         * df-scan.c (df_ref_record, df_defs_record,
7359         df_ref_create_structure, df_def_record_1, df_uses_record,
7360         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
7361         df_bb_refs_collect, df_entry_block_defs_collect,
7362         df_exit_block_uses_collect): Support new width and offset fields.
7363         (ref_extract_pool): New storage pool.
7364         (df_free_ref): New function.
7365         (df_reg_chain_unlink, df_free_collection_rec,
7366         df_sort_and_compress_refs): Call df_free_ref.
7367         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
7368         of df_ref_extract.
7369         (df_ref_create_structure): Allocate df_ref_extract if offset and
7370         width fields are used.
7371         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
7372         (df_uses_record): Get offset and width from ZERO_EXTRACT 
7373         and SIGN_EXTRACT.
7374         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
7375         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7376         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7377         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
7378         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7379         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7380         (df_ref_extract): New structure.
7381         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
7382         (df_ref_create): Add width and offset parameters.
7383         
7384 2008-03-05  Richard Guenther  <rguenther@suse.de>
7385
7386         * tree-ssa-structalias.c (get_constraint_for_component_ref):
7387         Use ranges_overlap_p.
7388         (offset_overlaps_with_access): Rename
7389         to ranges_overlap_p and move ...
7390         * tree-flow-inline.h (ranges_overlap_p): ... here.
7391
7392         * tree.h (get_inner_reference, handled_component_p): Update
7393         comments.
7394
7395         * tree.h (record_component_aliases, get_alias_set,
7396         alias_sets_conflict_p, alias_sets_must_conflict_p,
7397         objects_must_conflict_p): Move declarations ...
7398         * alias.h (record_component_aliases, get_alias_set,
7399         alias_sets_conflict_p, alias_sets_must_conflict_p,
7400         objects_must_conflict_p): ... here.
7401         Include coretypes.h.
7402         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
7403
7404 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
7405
7406         * cfg.c: Include tree-flow.h.
7407         (remove_edge_raw): Call redirect_edge_var_map_clear.
7408         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
7409         * tree-flow-inline.h (redirect_edge_var_map_def): New.
7410         (redirect_edge_var_map_result): New.
7411         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
7412         PENDING_STMT use with redirect_edge_var_map_*.
7413         * tree-ssa.c (edge_var_maps): New definition.
7414         (redirect_edge_var_map_add): New.
7415         (redirect_edge_var_map_clear): New.
7416         (redirect_edge_var_map_dup): New.
7417         (redirect_edge_var_map_vector): New.
7418         (redirect_edge_var_map_destroy): New.
7419         (ssa_redirect_edge): Replace PENDING_STMT use with
7420         redirect_edge_var_map_*.
7421         (flush_pending_stmts): Same.
7422         (delete_tree_ssa): Destroy edge var map.
7423         * tree-flow.h (struct _edge_var_map): New.
7424         Define edge_var_map vector type.
7425         Declare redirect_edge_var_map_* prototypes.
7426         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
7427         * tree-cfg.c (reinstall_phi_args): Replace
7428         PENDING_STMT use with redirect_edge_var_map_*.
7429
7430 2008-03-05  Richard Guenther  <rguenther@suse.de>
7431
7432         PR tree-optimization/35472
7433         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
7434         whose single use_stmt has a overlapping set of loaded and
7435         stored symbols as that use_stmt might be a noop assignment then.
7436
7437 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
7438
7439         * gthr-rtems.h: Implement __gthread_mutex_destroy.
7440
7441 2008-03-05  Richard Guenther  <rguenther@suse.de>
7442
7443         PR c++/35336
7444         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
7445         should be constants.
7446         * tree-cfg.c (verify_expr): Verify it.
7447         * fold-const.c (fold_truthop): Remove code generating
7448         BIT_FIELD_REFs of structure bases.
7449         (fold_binary): Likewise.
7450         (fold_ternary): Position and size of BIT_FIELD_REFs are
7451         always host integers.
7452         (make_bit_field_ref): Remove.
7453         (optimize_bit_field_compare): Remove.
7454         (all_ones_mask_p): Remove.
7455
7456 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
7457
7458         PR gcc/33009
7459         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
7460         (split_block_and_df_analyze): New. Split basic block and rebuild
7461         dataflow.
7462         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
7463         SPLIT_BLOCK.
7464         (split_pattern_seq): Likewise.
7465         (erase_matching_seqs): Likewise.
7466         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
7467
7468 2008-03-04  Geoff Keating  <geoffk@apple.com>
7469
7470         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
7471         declaration and code.
7472         (tree_invalid_nonnegative_warnv_p): Likewise.
7473
7474 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
7475
7476         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
7477         examples.  Truncate option-names then causing overfull hbox.
7478
7479 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7480
7481         PR target/35222
7482         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
7483         on hpux10.
7484         * configure: Rebuilt.
7485
7486 2008-03-04  Rafael Espindola  <espindola@google.com>
7487
7488         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
7489         (tree_unary_nonnegative_warnv_p): New.
7490         (tree_binary_nonnegative_warnv_p): New.
7491         (tree_single_nonnegative_warnv_p): New.
7492         (tree_invalid_nonnegative_warnv_p): New.
7493         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
7494
7495 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7496
7497         PR 28322
7498         * opts.c (handle_option): Postpone 'unknown option' errors only for
7499         warning options.
7500
7501 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
7502
7503         PR target/35453
7504         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
7505         (_SIDD_XXX): This.
7506
7507 2008-03-04  Rafael Espindola  <espindola@google.com>
7508
7509         * fold-const.c (tree_unary_nonzero_warnv_p): New.
7510         (tree_binary_nonzero_warnv_p): New.
7511         (tree_single_nonzero_warnv_p): New.
7512         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
7513
7514 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
7515
7516         PR middle-end/35456
7517         * fold-const.c (fold_cond_expr_with_comparison): Prevent
7518         transformations for modes that have signed zeros.
7519         * ifcvt.c (noce_try_abs): Ditto.
7520
7521 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
7522
7523         * config/i386/i386.c (override_options): Force
7524         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
7525
7526 2008-03-04  Jan Hubicka  <jh@suse.cz>
7527
7528         PR c++/35262
7529         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
7530         in last commit.
7531
7532 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
7533
7534         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
7535         label to probe the stack.
7536
7537 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
7538
7539         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
7540         (__gthr_win32_mutex_destroy): Declare.
7541         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
7542         __gthr_win32_mutex_destroy.
7543         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
7544
7545 2008-03-03  Jan Hubicka  <jh@suse.cz>
7546
7547         PR c++/35262
7548         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
7549         aggressive on inlining cold calls.
7550
7551 2008-03-03  Richard Guenther  <rguenther@suse.de>
7552
7553         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
7554         struct copies into the expression table.
7555         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
7556         (try_to_simplify): Likewise.
7557         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
7558         integral and pointer arguments which do not change the
7559         precision to NOP_EXPRs.
7560         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
7561         VIEW_CONVERT_EXPR case.
7562
7563 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
7564
7565         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
7566         defined in a loop at depth 0 is invariant.
7567         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
7568         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
7569         be called at loop depth 0.
7570
7571 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
7572
7573         PR driver/35420
7574         * gcc.c (process_command): Update copyright notice dates.
7575         * gcov.c (print_version): Likewise.
7576         * gcov-dump.c (print_version): Likewise.
7577         * mips-tfile.c (main): Likewise.
7578         * mips-tdump.c (main): Likewise.
7579
7580 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7581
7582         PR 24924
7583         * c-common.c (flag_permissive): Delete.
7584         (constant_expression_warnings): Check flags first.
7585         (constant_expression_error): New.
7586         * c-common.h (flag_permissive): Delete.
7587         (constant_expression_error): Declare.
7588         * flags.h (flag_permissive): Declare. Update description.
7589         * diagnostic.c (pedwarn): Update.
7590         (permerror): New.
7591         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
7592         (permissive_error_kind): New.
7593         * toplev.c (flag_permissive): Define. Update description.
7594         * toplev.h (permissive_error_kind): Declare.
7595         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
7596         (pedwarn_c90): Use pedantic_warning_kind.
7597         * c-opts.c (c_common_post_options): flag_permissive does not affect
7598         flag_pedantic_errors.
7599
7600 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
7601
7602         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
7603         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
7604         __absvsi2, __absvDI2): Use unsigned arithmetic.
7605
7606 2008-03-02  Andi Kleen  <ak@suse.de>
7607             Richard Guenther  <rguenther@suse.de>
7608
7609         * struct-equiv.c: Remove file.
7610         * cfg_cleanup.c (condjump_equiv_p): Remove.
7611         * Makefile.in (OBJS-common): Remove struct-equiv.o.
7612         (struct-equiv.o): Remove rule.
7613         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
7614         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
7615         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
7616
7617 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7618
7619         * ifcvt.c (noce_process_if_block): Try to handle only the then
7620         block if the else block exists but isn't suitable.
7621
7622 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
7623
7624         PR gcc/35063
7625         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
7626         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
7627         regression from previous patch.
7628
7629 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
7630
7631         PR gcc/35063
7632         * gthr.h: Add __gthread_mutex_destroy as a function that must be
7633         implemented.
7634         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
7635         * gthr-single.h (__gthread_mutex_destroy): Likewise.
7636         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
7637         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
7638         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
7639         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
7640         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
7641         (__gthread_mutex_destroy_function): Rename to
7642         __gthread_mutex_destroy.
7643         * gthr-dce.h (__gthread_mutex_destroy): Call
7644         pthread_mutex_destroy.
7645         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
7646         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
7647         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
7648
7649 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7650
7651         * df-scan.c (df_ref_chain_change_bb): Simplify.
7652         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
7653         set_block_for_insn if there's any change.
7654         * df.h ((df_insn_change_bb): Fix prototype.
7655         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
7656         df_insn_change_bb, don't call set_block_for_insn.
7657         * emit-rtl.c (reorder_insns): Likewise.
7658         * haifa-sched.c (move_insn): Likewise.
7659
7660 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7661
7662         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
7663
7664 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7665
7666         * tree-flow-inline.h (next_readonly_imm_use): Return
7667         NULL_USE_OPERAND_P after the end.
7668
7669 2008-03-01  Richard Guenther  <rguenther@suse.de>
7670
7671         PR tree-optimization/35411
7672         * tree-sra.c (sra_build_assignment): Split conversion to
7673         final type to a separate statement if we are not assigning
7674         to a register.
7675
7676 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
7677
7678         * fold-const.c (fold_convertible_p): Correct the logic to follow
7679         that in fold_convert().
7680
7681 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
7682
7683         PR c++/35315
7684         * tree-inline.c (build_duplicate_type): When we make a
7685         duplicate type, make it unique in the canonical types system.
7686
7687 2008-02-29  Tom Tromey  <tromey@redhat.com>
7688
7689         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
7690         input_file_stack_history, input_file_stack_restored): Remove.
7691         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
7692         * input.h (struct file_stack): Remove.
7693         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
7694         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
7695         Likewise.
7696         * diagnostic.h (struct diagnostic_context) <last_module>: Change
7697         type.
7698         (diagnostic_last_module_changed): Add 'map' argument.
7699         (diagnostic_set_last_function): Likewise.
7700         * diagnostic.c (undiagnostic_report_current_module): Iterate using
7701         line map, not input_file_stack.
7702         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
7703
7704 2008-02-29  Paul Brook  <paul@codesourcery.com>
7705
7706         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
7707
7708 2008-02-29  Paul Brook  <paul@codesourcery.com>
7709
7710         * config/arm/ieee754-df.S (muldf3): Use RET macros.
7711
7712 2008-02-29  Richard Guenther  <rguenther@suse.de>
7713
7714         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
7715         vn_lookup_or_add.
7716         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
7717         value for comparing for a store match.
7718         (simplify_unary_expression): Do nothing for SSA_NAMEs.
7719         (try_to_simplify): Do not do a full-blown reference lookup.
7720
7721 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
7722
7723         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
7724         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
7725
7726         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
7727
7728 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
7729
7730         * tree-loop-linear.c (try_interchange_loops): Compare memory access
7731         strides against cache sizes.
7732
7733 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
7734
7735         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
7736         constant to fpul.
7737
7738 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
7739
7740         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
7741         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
7742         is smaller than the original promoted value.
7743         (simplify_subreg): If OP is a SUBREG, try to preserve its
7744         SUBREG_PROMOTED_VAR_P information.
7745
7746 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
7747
7748         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
7749         (VN_INFO_GET): Allocate new objects on the obstack.
7750         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
7751         for rpo_numbers_temp, for consistency.
7752         (free_scc_vn): Free the obstack.
7753
7754 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
7755
7756         * doc/invoke.texi: Document -ftree-loop-distribution.
7757         * tree-loop-distribution.c: New.
7758         * tree-pass.h (pass_loop_distribution): New.
7759         * graphds.h (struct graph): Add htab_t indices.
7760         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
7761         * tree-vectorizer.c (rename_variables_in_loop): Extern.
7762         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
7763         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
7764         * tree-data-ref.c (debug_data_dependence_relations): New.
7765         (dump_data_dependence_relation): Also print data references.
7766         (free_data_ref): Extern.
7767         (same_access_functions): Moved...
7768         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
7769         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
7770         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
7771         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
7772         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
7773         (stmts_from_loop): Skip LABEL_EXPR.
7774         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
7775         New.
7776         (build_rdg): Initialize rdg->indices htab.
7777         (free_rdg, stores_from_loop, ref_base_address,
7778         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
7779         have_similar_memory_accesses_1, ref_base_address_1,
7780         remove_similar_memory_refs): New.
7781         * tree-data-ref.h: Depend on tree-chrec.h.
7782         (debug_data_dependence_relations, free_data_ref): Declared.
7783         (same_access_functions): ... here.
7784         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
7785         New.
7786         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
7787         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
7788         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
7789         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
7790         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
7791         rdg_vertex_for_stmt): Declared.
7792         (struct rdg_edge): Add level.
7793         (RDGE_LEVEL): New.
7794         (free_rdg, stores_from_loop, remove_similar_memory_refs,
7795         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
7796         Declared.
7797         (rdg_has_similar_memory_accesses): New.
7798         * tree-vect-analyze.c: Remove unused static decls.
7799         * lambda.h (dependence_level): New.
7800         * common.opt (ftree-loop-distribution): New.
7801         * tree-flow.h (mark_virtual_ops_in_bb, 
7802         slpeel_tree_duplicate_loop_to_edge_cfg,
7803         rename_variables_in_loop): Declared.
7804         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
7805         (OBJS-common): Add tree-loop-distribution.o.
7806         (tree-loop-distribution.o): New rule.
7807         * tree-cfg.c (mark_virtual_ops_in_bb): New.
7808         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
7809         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
7810
7811 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
7812
7813         PR target/33963
7814         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
7815         other than structures and unions.
7816
7817 2008-02-28  Richard Guenther  <rguenther@suse.de>
7818
7819         Revert:
7820         2008-02-26  Richard Guenther  <rguenther@suse.de>
7821
7822         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
7823         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
7824         (lookup_decl_from_uid): Declare.
7825         (remove_decl_from_map): Likewise.
7826         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
7827         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
7828         (decl_for_uid_map): New global hashtable mapping DECL_UID
7829         to the decl tree.
7830         (init_ttree): Allocate it.
7831         (insert_decl_to_uid_decl_map): New helper function.
7832         (make_node_stat): Insert new decls into the map.
7833         (copy_node_stat): Likewise.
7834         (lookup_decl_from_uid): New function.
7835         (remove_decl_from_map): Likewise.
7836         (print_decl_for_uid_map_statistics): New helper.
7837         (dump_tree_statistics): Call it.
7838
7839         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
7840         (referenced_var_iterator): Adjust.
7841         (FOR_EACH_REFERENCED_VAR): Adjust.
7842         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
7843         (num_referenced_vars): Adjust.
7844         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
7845         (first_referenced_var): Remove.
7846         (end_referenced_vars_p): Likewise.
7847         (next_referenced_var): Likewise.
7848         (referenced_var_iterator_set): New helper function.
7849         * tree-dfa.c (referenced_var_lookup): Adjust.
7850         (referenced_var_check_and_insert): Likewise.
7851         (remove_referenced_var): Likewise.
7852         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
7853         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7854         (verify_call_clobbering): Likewise.
7855         (verify_memory_partitions): Likewise.
7856         (init_tree_ssa): Allocate bitmap instead of hashtable for
7857         referenced_vars.
7858         (delete_tree_ssa): Adjust.
7859         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
7860         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7861         (compute_tag_properties): Likewise.
7862         (set_initial_properties): Likewise.
7863         (find_partition_for): Likewise.
7864         (update_reference_counts): Likewise.
7865         (dump_may_aliases_for): Likewise.
7866         * tree-ssa-operands.c (add_virtual_operand): Likewise.
7867         (add_call_clobber_ops): Likewise.
7868         (add_call_read_ops): Likewise.
7869         (get_asm_expr_operands): Likewise.
7870         * tree-into-ssa.c (dump_decl_set): Likewise.
7871         (update_ssa): Likewise.
7872         * tree-sra.c (scan_function): Likewise.
7873         (decide_instantiations): Likewise.
7874         (scalarize_parms): Likewise.
7875         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
7876         (dsa_named_for): Likewise.
7877         * tree-ssa-structalias.c (update_alias_info): Likewise.
7878         (merge_smts_into): Likewise.
7879
7880 2008-02-27  David Daney  <ddaney@avtrex.com>
7881
7882         PR target/34409
7883         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
7884         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
7885         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
7886         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
7887         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
7888
7889 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
7890
7891         PR target/25477
7892         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
7893         (BUILT_IN_NEXTTOWARD): Remove.
7894         (BUILT_IN_NEXTTOWARDF): Ditto.
7895         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
7896         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
7897
7898 2008-02-27  Tom Tromey  <tromey@redhat.com>
7899
7900         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
7901         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
7902
7903 2008-02-27  Jan Beulich  <jbeulich@novell.com>
7904
7905         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
7906         update the respective field on newdecl.
7907
7908 2008-02-27  Revital Eres  <eres@il.ibm.com>
7909
7910         PR rtl-optimization/34999
7911         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
7912         crossing edges that ends with a call insn.
7913         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
7914         call insn and clear the EDGE_CROSSING flag of the crossing edge
7915         when fixing fallthru edges.
7916
7917 2008-02-27  Richard Guenther  <rguenther@suse.de>
7918
7919         PR middle-end/35390
7920         * fold-const.c (fold_unary): Return the correct argument,
7921         converted to the result type.
7922
7923 2008-02-27  Richard Guenther  <rguenther@suse.de>
7924
7925         PR middle-end/34971
7926         * expr.c (expand_expr_real_1): Assert on rotates that operate
7927         on partial modes.
7928         * fold-const.c (fold_binary): Use the types precision, not the
7929         bitsize of the mode if folding rotate expressions.  Build rotates
7930         only for full modes.
7931
7932 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
7933
7934         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
7935         and CPP_PRAGMA_EOL.
7936         * c-pragma.c (pragma_ns_name): New typedef.
7937         (registered_pp_pragmas): New variable.
7938         (c_pp_lookup_pragma): New function.
7939         (c_register_pragma_1): If flag_preprocess_only, do nothing
7940         for non-expanded pragmas, for expanded ones push pragma's
7941         namespace and name into registered_pp_pragmas vector.
7942         (c_invoke_pragma_handler): Register OpenMP pragmas even when
7943         flag_preprocess_only, don't register GCC pch_preprocess
7944         pragma if flag_preprocess_only.
7945         * c-opts.c (c_common_init): Call init_pragma even if
7946         flag_preprocess_only.
7947         * c-pragma.c (c_pp_lookup_pragma): New prototype.
7948         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
7949         cpp_register_pragma if flag_preprocess_only.
7950
7951 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7952
7953         PR c/28800
7954         * c-parser.c (c_parser_translation_unit): Warn for empty
7955         translation unit, not empty source file.
7956
7957 2008-02-26  Paul Brook  <paul@codesourcery.com>
7958
7959         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
7960         operand for Thumb-2.
7961         * config/arm/arm.h (reg_class): Add CORE_REGS.
7962         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
7963         (BASE_REG_CLASS): Use CORE_REGS.
7964         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
7965         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
7966         (REGNO_OK_FOR_INDEX_P): Exclude SP.
7967         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
7968         ARM_REGNO_OK_FOR_INDEX_P.
7969         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
7970         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
7971         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
7972         (ldm/stm peepholes): Ditto.
7973         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
7974         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
7975         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
7976         * config/arm/constraints.md: Enable "k" constraint on ARM.
7977
7978 2008-02-27  Ben Elliston  <bje@au.ibm.com>
7979
7980         * config/rs6000/rs6000.c: Annotate cache line size field in all
7981         instances of struct processor_costs.
7982
7983 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
7984
7985         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
7986         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
7987         jump_bypass): New counters.
7988         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
7989         * dce.c (gate_ud_dce): Same.
7990         (gate_fast_dce): Same.
7991         * dse.c (gate_dse1): New function.
7992         (gate_dse2): New function.
7993         (gate_dse): Merge results of new gate functions.
7994         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
7995         (gate_handle_jump_bypass): Add dbg_cnt.
7996         (gate_handle_gcse): Add dbg_cnt.
7997         * ifcvt.c (gate_handle_if_conversion): Same.
7998         (gate_handle_if_after_combine): Same.
7999         (gate_handle_if_after_reload): Same.
8000         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
8001
8002 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
8003
8004         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
8005         line sizes.
8006         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
8007
8008 2008-02-26  Jason Merrill  <jason@redhat.com>
8009
8010         PR c++/35315
8011         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
8012         alone if it's the naming decl for the type's main variant.
8013
8014 2008-02-26  Tom Tromey  <tromey@redhat.com>
8015
8016         * system.h (USE_MAPPED_LOCATION): Poison.
8017         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
8018         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
8019         (make_goto_expr_edges): Likewise.
8020         (remove_bb): Likewise.
8021         (execute_warn_function_return): Likewise.
8022         * basic-block.h (struct edge_def) <goto_locus>: Change type to
8023         location_t.
8024         * c-common.c (fname_decl): Remove old location code.
8025         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
8026         location code.
8027         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
8028         variant.
8029         (ASM_INPUT_SOURCE_LOCATION): Likewise.
8030         (gen_rtx_ASM_INPUT): Likewise.
8031         (gen_rtx_ASM_INPUT_loc): Likewise.
8032         (get_rtx_asm_OPERANDS): Remove.
8033         * cfglayout.c (insn_locators_alloc): Remove old location code.
8034         (set_curr_insn_source_location): Likewise.
8035         (curr_insn_locator): Likewise.
8036         * print-tree.c (print_node): Remove old location code.
8037         * tree-mudflap.c (mf_varname_tree): Remove old location code.
8038         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
8039         * cfgexpand.c (expand_gimple_cond_expr): Don't use
8040         location_from_locus.
8041         (construct_exit_block): Remove old location code.
8042         * emit-rtl.c (force_next_line_note): Remove old location code.
8043         * profile.c (branch_prob): Remove old location code.
8044         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
8045         LOC_LINE): Remove old-location variants.
8046         * langhooks.c (lhd_print_error_function): Remove old location
8047         code.
8048         * configure, config.in: Rebuilt.
8049         * configure.ac (--enable-mapped-location): Remove.
8050         * c-decl.c (c_init_decl_processing): Remove old location code.
8051         (finish_function): Likewise.
8052         * recog.c (decode_asm_operands): Remove old location code.
8053         * c-pch.c (c_common_read_pch): Remove old location code.
8054         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
8055         variants.
8056         * gimple-low.c (lower_function_body): Remove old location code.
8057         * toplev.c (unknown_location): Remove.
8058         (push_srcloc): Remove old-location variant.
8059         (process_options): Remove old location code.
8060         (lang_dependent_init): Likewise.
8061         * input.h (UNKNOWN_LOCATION): Move definition.
8062         (location_t): Undeprecate.
8063         (source_locus): Remove.
8064         (location_from_locus): Remove.
8065         (struct location_s): Remove.
8066         Remove all old-location code.
8067         (input_line, input_filename): Remove.
8068         * final.c (final_scan_insn): Remove old location code.
8069         * diagnostic.c (diagnostic_build_prefix): Remove
8070         USE_MAPPED_LOCATION test.
8071         * tree.h (gimple_stmt) <locus>: Now a location_t.
8072         (tree_exp) <locus>: Likewise.
8073         (DECL_IS_BUILTIN): Remove old-location variant.
8074         (annotate_with_file_line, annotate_with_locus): Likewise.
8075         (expr_locus, set_expr_locus): Update.
8076         * tree.c (build1_stat): Remove old location code.
8077         (last_annotated_node): Remove.
8078         (annotate_with_file_line): Remove old-location variant.
8079         (annotate_with_locus): Likewise.
8080         (expr_location): Remove old location code.
8081         (set_expr_location): Likewise.
8082         (expr_has_location): Likewise.
8083         (expr_locus): Likewise.
8084         (set_expr_locus): Likewise.
8085         (expr_filename): Don't use location_from_locus.
8086         (expr_lineno): Likewise.
8087         * rtl-error.c (location_for_asm): Remove old location code.
8088         * c-lex.c (cb_line_change): Remove old location code.
8089         (fe_file_change): Likewise.
8090         (cb_def_pragma): Likewise.
8091         (c_lex_with_flags): Likewise.
8092         * gengtype.c (do_typedef): Don't special-case location types.
8093         (define_location_structures): Remove.
8094         (main): Don't call define_location_structures.
8095         * tree-pretty-print.c (dump_implicit_edges): Remove old location
8096         code.
8097
8098 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8099
8100         PR 26264
8101         * builtins.def (BUILT_IN_STDARG_START): Remove.
8102         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
8103         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
8104         * tree-inline.c (inline_forbidden_p_1): Likewise.
8105         
8106 2008-02-26  Richard Guenther  <rguenther@suse.de>
8107
8108         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8109         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8110         (lookup_decl_from_uid): Declare.
8111         (remove_decl_from_map): Likewise.
8112         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8113         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8114         (decl_for_uid_map): New global hashtable mapping DECL_UID
8115         to the decl tree.
8116         (init_ttree): Allocate it.
8117         (insert_decl_to_uid_decl_map): New helper function.
8118         (make_node_stat): Insert new decls into the map.
8119         (copy_node_stat): Likewise.
8120         (lookup_decl_from_uid): New function.
8121         (remove_decl_from_map): Likewise.
8122         (print_decl_for_uid_map_statistics): New helper.
8123         (dump_tree_statistics): Call it.
8124
8125         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8126         (referenced_var_iterator): Adjust.
8127         (FOR_EACH_REFERENCED_VAR): Adjust.
8128         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8129         (num_referenced_vars): Adjust.
8130         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8131         (first_referenced_var): Remove.
8132         (end_referenced_vars_p): Likewise.
8133         (next_referenced_var): Likewise.
8134         (referenced_var_iterator_set): New helper function.
8135         * tree-dfa.c (referenced_var_lookup): Adjust.
8136         (referenced_var_check_and_insert): Likewise.
8137         (remove_referenced_var): Likewise.
8138         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8139         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8140         (verify_call_clobbering): Likewise.
8141         (verify_memory_partitions): Likewise.
8142         (init_tree_ssa): Allocate bitmap instead of hashtable for
8143         referenced_vars.
8144         (delete_tree_ssa): Adjust.
8145         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8146         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8147         (compute_tag_properties): Likewise.
8148         (set_initial_properties): Likewise.
8149         (find_partition_for): Likewise.
8150         (update_reference_counts): Likewise.
8151         (dump_may_aliases_for): Likewise.
8152         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8153         (add_call_clobber_ops): Likewise.
8154         (add_call_read_ops): Likewise.
8155         (get_asm_expr_operands): Likewise.
8156         * tree-into-ssa.c (dump_decl_set): Likewise.
8157         (update_ssa): Likewise.
8158         * tree-sra.c (scan_function): Likewise.
8159         (decide_instantiations): Likewise.
8160         (scalarize_parms): Likewise.
8161         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8162         (dsa_named_for): Likewise.
8163         * tree-ssa-structalias.c (update_alias_info): Likewise.
8164         (merge_smts_into): Likewise.
8165
8166 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8167
8168         PR 34351
8169         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
8170         * c-opts.c (c_common_handle_option): Wall enables
8171         Wvolatile-register-var.
8172         * common.opt: Move Wvolatile-register-var to...
8173         * c.opt: ...here.
8174         
8175 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8176
8177         * common.opt (Wlarger-than=): New.
8178         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
8179         -Wlarger-than=.
8180         * opts.c (common_handle_option): Handle -Wlarger-than=.
8181         * optc-gen.awk: Likewise.
8182         * opth-gen.awk: Likewise.
8183         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
8184         * tree-optimize.c (tree_rest_of_compilation): Likewise.
8185         
8186 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8187
8188         * c-common.c (match_case_to_enum_1): Add appropriate
8189         OPT_W* parameter to warning.
8190         (c_do_switch_warnings): Likewise.
8191         * c-typeck.c (warning_init): Add one more parameter following
8192         'warning' function.
8193         (push_init_level): Update call to warning_init.
8194         (pop_init_level): Likewise.
8195         (add_pending_init): Likewise.
8196         (output_init_element: Likewise.
8197
8198 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8199
8200         PR 28322
8201         * toplev.c (toplev_main): If there are warnings or error, print
8202         errors for ignored options.
8203         * opts.c (ignored_options): New static variable.
8204         (postpone_unknown_option_error): New.
8205         (print_ignored_options): New.
8206         (handle_option): Postpone errors for unknown -Wno-* options.
8207         * opts.h (print_ignored_options): Declare.
8208         
8209 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
8210
8211         * config/mips/mips.md (loadgp_blockage, blockage): Change type
8212         to "ghost".
8213
8214 2008-02-25  Richard Guenther  <rguenther@suse.de>
8215
8216         Revert:
8217         2008-02-25  Richard Guenther  <rguenther@suse.de>
8218
8219         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8220         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8221         (lookup_decl_from_uid): Declare.
8222         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8223         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8224         (decl_for_uid_map): New global hashtable mapping DECL_UID
8225         to the decl tree.
8226         (init_ttree): Allocate it.
8227         (insert_decl_to_uid_decl_map): New helper function.
8228         (make_node_stat): Insert new decls into the map.
8229         (copy_node_stat): Likewise.
8230         (lookup_decl_from_uid): New function.
8231         (print_decl_for_uid_map_statistics): New helper.
8232         (dump_tree_statistics): Call it.
8233
8234         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8235         (referenced_var_iterator): Adjust.
8236         (FOR_EACH_REFERENCED_VAR): Adjust.
8237         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8238         (num_referenced_vars): Adjust.
8239         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8240         (first_referenced_var): Remove.
8241         (end_referenced_vars_p): Likewise.
8242         (next_referenced_var): Likewise.
8243         (referenced_var_iterator_set): New helper function.
8244         * tree-dfa.c (referenced_var_lookup): Adjust.
8245         (referenced_var_check_and_insert): Likewise.
8246         (remove_referenced_var): Likewise.
8247         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8248         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8249         (verify_call_clobbering): Likewise.
8250         (verify_memory_partitions): Likewise.
8251         (init_tree_ssa): Allocate bitmap instead of hashtable for
8252         referenced_vars.
8253         (delete_tree_ssa): Adjust.
8254         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8255         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8256         (compute_tag_properties): Likewise.
8257         (set_initial_properties): Likewise.
8258         (find_partition_for): Likewise.
8259         (update_reference_counts): Likewise.
8260         (dump_may_aliases_for): Likewise.
8261         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8262         (add_call_clobber_ops): Likewise.
8263         (add_call_read_ops): Likewise.
8264         (get_asm_expr_operands): Likewise.
8265         * tree-into-ssa.c (dump_decl_set): Likewise.
8266         (update_ssa): Likewise.
8267         * tree-sra.c (scan_function): Likewise.
8268         (decide_instantiations): Likewise.
8269         (scalarize_parms): Likewise.
8270         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8271         (dsa_named_for): Likewise.
8272         * tree-ssa-structalias.c (update_alias_info): Likewise.
8273         (merge_smts_into): Likewise.
8274
8275 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
8276
8277         PR fortran/29549
8278         * doc/invoke.texi (-fcx-limited-range): Document new option.
8279         * toplev.c (process_options): Handle -fcx-fortran-rules.
8280         * common.opt: Add documentation for -fcx-fortran-rules.
8281
8282 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
8283
8284         PR c/35162
8285         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
8286         actual behaviour and C99.
8287         
8288 2008-02-26  Ben Elliston  <bje@au.ibm.com>
8289
8290         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
8291         (ASM_CPU_POWER6_SPEC): Likewise.
8292         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
8293         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
8294         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
8295
8296 2008-02-25  Richard Guenther  <rguenther@suse.de>
8297
8298         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8299         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8300         (lookup_decl_from_uid): Declare.
8301         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8302         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8303         (decl_for_uid_map): New global hashtable mapping DECL_UID
8304         to the decl tree.
8305         (init_ttree): Allocate it.
8306         (insert_decl_to_uid_decl_map): New helper function.
8307         (make_node_stat): Insert new decls into the map.
8308         (copy_node_stat): Likewise.
8309         (lookup_decl_from_uid): New function.
8310         (print_decl_for_uid_map_statistics): New helper.
8311         (dump_tree_statistics): Call it.
8312
8313         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8314         (referenced_var_iterator): Adjust.
8315         (FOR_EACH_REFERENCED_VAR): Adjust.
8316         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8317         (num_referenced_vars): Adjust.
8318         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8319         (first_referenced_var): Remove.
8320         (end_referenced_vars_p): Likewise.
8321         (next_referenced_var): Likewise.
8322         (referenced_var_iterator_set): New helper function.
8323         * tree-dfa.c (referenced_var_lookup): Adjust.
8324         (referenced_var_check_and_insert): Likewise.
8325         (remove_referenced_var): Likewise.
8326         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8327         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8328         (verify_call_clobbering): Likewise.
8329         (verify_memory_partitions): Likewise.
8330         (init_tree_ssa): Allocate bitmap instead of hashtable for
8331         referenced_vars.
8332         (delete_tree_ssa): Adjust.
8333         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8334         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8335         (compute_tag_properties): Likewise.
8336         (set_initial_properties): Likewise.
8337         (find_partition_for): Likewise.
8338         (update_reference_counts): Likewise.
8339         (dump_may_aliases_for): Likewise.
8340         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8341         (add_call_clobber_ops): Likewise.
8342         (add_call_read_ops): Likewise.
8343         (get_asm_expr_operands): Likewise.
8344         * tree-into-ssa.c (dump_decl_set): Likewise.
8345         (update_ssa): Likewise.
8346         * tree-sra.c (scan_function): Likewise.
8347         (decide_instantiations): Likewise.
8348         (scalarize_parms): Likewise.
8349         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8350         (dsa_named_for): Likewise.
8351         * tree-ssa-structalias.c (update_alias_info): Likewise.
8352         (merge_smts_into): Likewise.
8353
8354 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
8355
8356         PR target/35258
8357         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
8358         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
8359         * alias.h (nonoverlapping_memrefs_p): Likewise.
8360
8361 2008-02-25  Jan Beulich  <jbeulich@novell.com>
8362
8363         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
8364         * config/i386/netware-libgcc.exp: Add __bswap?i2,
8365         __emultls_get_address, __emultls_register_common,
8366         __floatundi?f, and _Unwind_GetIPInfo.
8367         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
8368         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
8369         (gen_regparm_prefix): Likewise.
8370         (i386_nlm_encode_section_info): Sync with
8371         config/i386/winnt.c:i386_pe_encode_section_info().
8372         (i386_nlm_maybe_mangle_decl_assembler_name): New.
8373         i386_nlm_mangle_decl_assembler_name): New.
8374         (netware_override_options): New.
8375         * config/i386/netware.h (netware_override_options): Declare.
8376         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
8377         (i386_nlm_mangle_decl_assembler_name): Declare.
8378         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
8379
8380 2008-02-25  Ben Elliston  <bje@au.ibm.com>
8381
8382         PR other/32948
8383         * c-decl.c (grokdeclarator): Remove unused local variables
8384         `typedef_type' and `type_as_written'.
8385         * bb-reorder.c
8386         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
8387         unused local variable `has_hot_blocks'.
8388         (fix_crossing_conditional_branches): Remove unused local variable
8389         `prev_bb'.
8390         
8391 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
8392
8393         PR middle-end/19984
8394         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
8395         using DEF_C99_BUILTIN.
8396         (BUILT_IN_NANF): Ditto.
8397         (BUILT_IN_NANL): Ditto.
8398
8399 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
8400             Revital Eres  <eres@il.ibm.com>
8401
8402         * modulo-sched.c (calculate_must_precede_follow): Address TODO
8403         regarding the order of two dependent insns in the same row.
8404
8405 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
8406
8407         * stor-layout.c (layout_decl): Do not bump the alignment of a
8408         bit-field to more than byte alignment if it is packed.
8409
8410 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
8411
8412         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
8413         e300c2 and e300c3.
8414
8415 2008-02-24  Diego Novillo  <dnovillo@google.com>
8416
8417         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
8418
8419         PR 33738
8420         * tree-vrp.c (vrp_evaluate_conditional): With
8421         -Wtype-limits, emit a warning when comparing against a
8422         constant outside the natural range of OP0's type.
8423         * c.opt (Wtype-limits): Move ...
8424         * common.opt (Wtype-limits): ... here.
8425
8426 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
8427
8428         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
8429         * config/rs6000/e300c2c3.md: New file.
8430         * config/rs6000/rs6000.c (processor_costs): Add new costs for
8431         e300c2 and e300c3.
8432         (rs6000_override_options): Add e300c2 and e300c3 cases to
8433         processor_target_table. Do not allow usage of Altivec or Spe
8434         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
8435         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
8436         * config/rs6000/rs6000.h (processor_type): Add
8437         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
8438         (ASM_CPU_SPEC): Add e300c2 and e300c3.
8439         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
8440         and ppce300c3. Include e300c2c3.md.
8441
8442 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
8443
8444         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
8445         instead of TARGET_STRICT_ALIGN.
8446
8447 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
8448
8449         * explow.c (memory_address): Assert that the generated address is
8450         valid.
8451
8452 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
8453
8454         PR target/25477
8455         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
8456         * config/darwin-ppc-ldouble-patch.def: New file.
8457         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
8458         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
8459         SUBTARGET_INIT_BUILTINS if defined.
8460         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
8461         New functions.
8462
8463 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8464
8465         PR rtl-opt/33512
8466         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
8467         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
8468
8469 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8470
8471         PR pch/35027
8472         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
8473         file" warning condtional on -Winvalid-PCH.
8474
8475 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
8476
8477         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
8478
8479 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
8480
8481         PR target/22076
8482         PR target/34256 
8483         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
8484         prevent reload from using MMX registers.
8485         (*mov<mode>_internal): Ditto.
8486         (*movv2sf_internal_rex64): Ditto.
8487         (*movv2sf_internal): Ditto.
8488
8489 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8490
8491         PR documentation/31569
8492         * doc/install.texi2html: Use makeinfo --no-number-sections.
8493
8494 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8495
8496         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
8497         ensure that we can address an entire entity > 8 bytes.  Don't
8498         generate reg+reg addressing for such data.
8499
8500 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8501
8502         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
8503         strings when optimizing for size, unless the target cares about
8504         alignment.
8505
8506 2008-02-22  Tom Tromey  <tromey@redhat.com>
8507
8508         * regclass.c (current_pass): Remove declaration.
8509
8510 2008-02-22  Anatoly Sokolov <aesok@post.ru>
8511
8512         * config/avr/libgcc.S (__RAMPZ__): Define.
8513         (__do_copy_data): Add for devices with 128KB code memory.
8514
8515 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8516
8517         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
8518         Use spe_abi.
8519         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
8520
8521 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
8522
8523         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
8524         GENNONACR_REGS.
8525
8526 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8527
8528         PR c/19999
8529         * c-typeck.c (build_binary_op): Warn about floating point
8530         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
8531
8532 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
8533
8534         PR target/34526
8535         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
8536         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
8537         add vrsave.
8538         (rs6000_override_options): Set altivec_abi as default, not override,
8539         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
8540         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
8541         is used; use new member spe_abi.
8542         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
8543         spe_abi and altivec_abi.
8544
8545 2008-02-22  Tomas Bily  <tbily@suse.cz>
8546
8547         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
8548
8549 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8550
8551         PR bootstrap/35273
8552         * config.build (build_file_translate): Set to `CMD //c' only if
8553         it works.
8554         * Makefile.in (build_file_translate): Improve comment.
8555
8556 2008-02-21  Jan Hubicka  <jh@suse.cz>
8557
8558         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
8559         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
8560         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
8561
8562 2008-02-21  Michael Matz  <matz@suse.de>
8563
8564         PR target/35264
8565         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
8566
8567 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
8568
8569         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
8570         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
8571         as insn constraint.
8572         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
8573         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
8574         SSE_VEC_FLOAT_MODE_P as insn constraint.
8575         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
8576         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
8577         sse4a_movntdf using MODEF mode iterator.
8578         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
8579         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
8580         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
8581         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
8582         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
8583         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
8584         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
8585
8586 2008-02-21  Richard Guenther  <rguenther@suse.de>
8587
8588         * tree.def (PAREN_EXPR): New tree code.
8589         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
8590         and PAREN_EXPR.
8591         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
8592         * expr.c (expand_expr_real_1): Likewise.
8593         * tree-inline.c (estimate_num_insns_1): Likewise.
8594         * tree-complex.c (expand_complex_move): Likewise.
8595         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
8596         as plain x.
8597
8598 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8599
8600         PR target/35225
8601         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
8602
8603 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8604
8605         PR target/35190
8606         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
8607
8608         * config/sh/sh.c (find_barrier): Don't go past
8609         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
8610
8611 2008-02-20  DJ Delorie  <dj@redhat.com>
8612
8613         * config/h8300/h8300.md (insv): Force source operand to be a register.
8614
8615         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
8616         as a jump, not as a plain insn.
8617         
8618 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
8619
8620         * doc/invoke.texi (Warning Options): Add new option
8621         -Wframe-larger-than=.
8622         (-Wframe-larger-than): Document.
8623
8624         * flags.h (warn_frame_larger_than, frame_larger_than_size):
8625         Add declarations for new option variables.
8626
8627         * final.c (final_start_function): Check the frame size
8628         before emission and issue a Wframe-larger-than warning.
8629
8630         * opts.c (warn_frame_larger_than, frame_larger_than_size):
8631         Add definitions for new option variables.
8632         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
8633
8634         * common.opt (Wframe-larger-than=): New option.
8635
8636 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
8637
8638         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
8639         (<sse>_div<mode>3): Ditto.
8640         (<sse>_vmdiv<mode>3): Ditto.
8641         (<sse>_vmsqrt<mode>2): Ditto.
8642         (*smax<mode>3): Ditto.
8643         (sse5_frcz<mode>2): Ditto.
8644         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
8645         as insn constraint.
8646
8647 2008-02-20  Richard Guenther  <rguenther@suse.de>
8648
8649         PR middle-end/35265
8650         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
8651         be happy with INTEGRAL_TYPE_P.
8652
8653 2008-02-20  Richard Guenther  <rguenther@suse.de>
8654
8655         * fold-const.c (split_tree): Associate floatig-point expressions
8656         if flag_associative_math is set.
8657
8658 2008-02-20  Richard Guenther  <rguenther@suse.de>
8659
8660         * tree.h (fold_real_zero_addition_p): Declare.
8661         * fold-const.c (fold_real_zero_addition_p): Export.
8662         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
8663         floating-point operations with zero and one.
8664
8665 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
8666
8667         * doc/install.texi: Correct references to CFLAGS, replacing them
8668         with BOOT_CFLAGS.  Document flags used during bootstrap for
8669         target libraries.
8670                                 
8671 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
8672
8673         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
8674         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
8675         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
8676         insn constraint.
8677         (smin<mode>3): Ditto from similar patterns.
8678         (smax<mode>3): Ditto.
8679         (*ieee_smin<mode>3): Ditto.
8680         (*ieee_smax<mode>3): Ditto.
8681         * config/i386/sse.md (sse): New mode attribute.
8682         (mov<mode>): Macroize expander from movv4sf and movv2df using
8683         SSEMODEF2P mode iterator.
8684         (<sse>_movnt<mode>): Ditto from similar patterns. Use
8685         SSE_VEC_FLOAT_MODE_P as insn constraint.
8686         (storent<mode>): Ditto.
8687         (storent<mode>): Macroize expander from storentsf and storentdf using
8688         MODEF mode iterator.
8689         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
8690         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
8691         (abs<mode>2): Ditto from similar patterns.
8692         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
8693         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
8694         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
8695         (<sse>_vmsqrt<mode>2): Ditto.
8696         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
8697         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
8698         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
8699         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
8700         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
8701         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
8702         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
8703         insn constraint.
8704         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
8705         iterator and SSE_FLOAT_MODE_P as insn constraint.
8706         (<sse>_ucomi): Ditto from similar patterns.
8707         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
8708         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
8709         SSE_VEC_FLOAT_MODE_P as insn constraint.
8710         (vcond<mode>): Ditto from similar patterns.
8711         (and<mode>3, *and<mode>3): Ditto.
8712         (<sse>_nand<mode>3): Ditto.
8713         (ior<mode>3, *ior<mode>3): Ditto.
8714         (xor<mode>3, *xor<mode>3): Ditto.
8715         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
8716         iterator and SSE_FLOAT_MODE_P as insn constraint.
8717         (*nand<mode>3): Ditto from similar patterns.
8718         (*ior<mode>3): Ditto.
8719         (*xor<mode>3): Ditto.
8720
8721 2008-02-20  Ira Rosen  <irar@il.ibm.com>
8722
8723         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
8724         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
8725         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
8726
8727 2008-02-19  Jan Hubicka  <jh@suse.cz>
8728
8729         * predict.c (tree_bb_level_predictions): Remove variable next
8730         mistakely introduced by previous commit.
8731
8732 2008-02-19  Jan Hubicka  <jh@suse.cz>
8733
8734         * predict.c (predict_paths_leading_to): Rewrite.
8735         (predict_paths_for_bb): New.
8736         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
8737
8738 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8739
8740         PR bootstrap/35218
8741         * Makefile.in (build_file_translate): New.
8742         (gcc-vers.texi): Use it for translating $(abs_srcdir).
8743         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
8744         * configure.ac (build_file_translate): Substitute it.
8745         * configure: Regenerate.
8746
8747 2008-02-19  Jan Hubicka  <jh@suse.cz>
8748
8749         PR rtl-optimization/34408
8750         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
8751         invalid sharing.
8752
8753 2008-02-19  Jan Hubicka  <jh@suse.cz>
8754
8755         PR middle-end/28779
8756         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
8757         call_expr.
8758
8759 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
8760
8761         PR Ada/35186
8762         * config/i386/i386-modes.def: Revert the last DI alignment
8763         change until Ada people can look into it.
8764
8765 2008-02-19  Nick Clifton  <nickc@redhat.com>
8766
8767         * opts.c (print_specific_help): Fix typo in --help text.
8768
8769 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
8770
8771         PR target/35239
8772         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
8773         32-bit inline asm without asm alternatives for host GCC < 3.0.
8774
8775 2008-02-19  Richard Guenther  <rguenther@suse.de>
8776
8777         PR tree-optimization/34989
8778         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
8779         Allow propagation to INDIRECT_REF if we can simplify only.
8780
8781 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8782
8783         * c-common.c (warn_for_collisions_1): Use appropriate option when
8784         warning.
8785
8786 2008-02-19  Nick Clifton  <nickc@redhat.com>
8787
8788         PR other/31349
8789         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
8790         (handle_options): Fix indentation.
8791         (print_filtered_help): If no language-specific options were
8792         displayed tell the user how to list all the options supported by
8793         the language's front-end.
8794         (print_specific_help): Fix indentation and remove duplicate line.
8795         (common_handle_option): Handle the -v option.
8796         For --help enable the display of undocumented options if the -v
8797         switch has been included on the command line.
8798         For --help= check for overlaps in the arguments between the option
8799         classes and the language names and issue a warning when they
8800         cannot be disambiguated.
8801         * c.opt (v): Pass on to the common option handler.
8802
8803 2008-02-19  Revital Eres  <eres@il.ibm.com> 
8804
8805         * modulo-sched.c (sms_schedule): Change dump message when
8806         create_ddg function fails.
8807         (try_scheduling_node_in_cycle): Rename row to cycle.
8808         (print_partial_schedule): Rename CYCLE to ROW.
8809
8810 2008-02-19  Christian Bruel  <christian.bruel@st.com>
8811             Zdenek Dvorak  <ook@ucw.cz>
8812
8813         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
8814
8815 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
8816
8817         PR target/33555
8818         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
8819         (*x86_movdicc_0_m1_se): Ditto.
8820
8821 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
8822
8823         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
8824         (CMPtype): Define as __gcc_CMPtype.
8825         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
8826         (CMPtype): Define as __gcc_CMPtype.
8827
8828 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
8829
8830         Support valgrind 3.3 for --enable-checking=valgrind.
8831         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
8832         here.
8833         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
8834         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
8835         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
8836         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
8837         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
8838         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
8839         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
8840         respectively.
8841         * ggc-zone.c: Similar.
8842         * ggc-page.c: Similar.
8843
8844 2008-02-19  Paul Brook  <paul@codesourcery.com>
8845
8846         PR target/35071
8847         * config/arm/ieee754-df.S: Fix do_it typo.
8848         * config/arm/ieee754-sf.S: Fix do_it typo.
8849
8850 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
8851
8852         PR target/35189
8853         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
8854         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
8855         (OPTION_MASK_ISA_SSE_SET): Likewise.
8856         (OPTION_MASK_ISA_SSE2_SET): Likewise.
8857         (OPTION_MASK_ISA_SSE3_SET): Likewise.
8858         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
8859         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
8860         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
8861         (OPTION_MASK_ISA_SSE4_SET): Likewise.
8862         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
8863         (OPTION_MASK_ISA_SSE5_SET): Likewise.
8864         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
8865         (OPTION_MASK_ISA_MMX_UNSET): Updated.
8866         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
8867         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
8868         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
8869         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
8870         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
8871         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
8872         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
8873         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
8874         (OPTION_MASK_ISA_SSE4): Removed.
8875         (ix86_handle_option): Turn on bits in ix86_isa_flags and
8876         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
8877         (override_options): Don't turn on implied SSE/MMX bits in
8878         ix86_isa_flags.
8879
8880 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
8881
8882         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
8883         32bit host.
8884
8885 2008-02-18  Joey Ye  <joey.ye@intel.com>
8886
8887         PR middle-end/34921
8888         * tree-nested.c (insert_field_into_struct): Set type alignment
8889         to field alignment if the former is less than the latter.
8890
8891 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
8892
8893         * BASE-VER: Set to 4.4.0.
8894
8895 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8896
8897         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
8898         * doc/cfg.texi: Likewise.
8899         * doc/extend.texi: Likewise.
8900         * doc/gty.texi: Likewise.
8901         * doc/invoke.texi: Likewise.
8902         * doc/loop.texi: Likewise.
8903         * doc/md.texi: Likewise.
8904         * doc/passes.texi: Likewise.
8905         * doc/rtl.texi: Likewise.
8906         * doc/sourcebuild.texi: Likewise.
8907         * doc/tm.texi: Likewise.
8908         * doc/tree-ssa.texi: Likewise.
8909
8910 2008-02-17  Richard Guenther  <rguenther@suse.de>
8911
8912         PR middle-end/35227
8913         * tree-complex.c (init_parameter_lattice_values): Handle parameters
8914         without default definition.
8915
8916 2008-02-17  Richard Guenther  <rguenther@suse.de>
8917
8918         PR tree-optimization/35231
8919         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
8920         if A | B != 1.
8921
8922 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
8923
8924         Revert:
8925         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
8926         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
8927         libgcc_cmp_return mode.
8928
8929 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8930
8931         PR c/28368
8932         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
8933
8934 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
8935
8936         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
8937         multilibs.
8938
8939 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8940
8941         * doc/c-tree.texi: Use `@.' where appropriate.
8942         * doc/extend.texi: Likewise.
8943         * doc/install.texi: Likewise.
8944         * doc/invoke.texi: Likewise.
8945         * doc/loop.texi: Likewise.
8946         * doc/makefile.texi: Likewise.
8947         * doc/md.texi: Likewise.
8948         * doc/passes.texi: Likewise.
8949         * doc/standards.texi: Likewise.
8950         * doc/tm.texi: Likewise.
8951
8952 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
8953
8954         PR middle-end/35196
8955         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
8956         in entry_bb.
8957         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
8958         rather than in entry_bb.
8959
8960 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
8961
8962         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
8963         libgcc_cmp_return mode.
8964
8965 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
8966
8967         PR middle-end/35130
8968         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
8969         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
8970
8971 2008-02-15  Richard Guenther  <rguenther@suse.de>
8972             Zdenek Dvorak  <ook@ucw.cz>
8973
8974         PR tree-optimization/35164
8975         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
8976         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
8977         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
8978         Only propagate addresses which do not have abnormal SSA_NAMEs
8979         in their operands.
8980
8981 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
8982
8983         PR target/35088
8984         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
8985
8986 2008-02-15  Jan Hubicka  <jh@suse.cz>
8987
8988         PR middle-end/35149
8989         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
8990
8991 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
8992
8993         PR middle-end/34621
8994         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
8995         when calculating alignment_pad.
8996
8997 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
8998
8999         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
9000         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
9001         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
9002         and STACK_BOUNDARY define.
9003
9004 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
9005
9006         PR preprocessor/35061
9007         * c-pragma.c (handle_pragma_pop_macro): Check that
9008         pushed_macro_table has been allocated.
9009
9010 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
9011
9012         PR middle-end/35136
9013         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
9014         (force_gimple_operand): Likewise.
9015         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
9016         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
9017         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
9018         (find_interesting_uses_address): Check addressability and alignment
9019         of the base expression only after substituting bases of IVs into it.
9020
9021 2008-02-14  Michael Matz  <matz@suse.de>
9022
9023         PR target/34930
9024         * function.c (instantiate_virtual_regs_in_insn): Reload address
9025         before falling back to reloading the whole operand.
9026
9027 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
9028
9029         * config/s390/s390.c (s390_mainpool_start): Emit the pool
9030         before the first section switch note.
9031
9032 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9033
9034         * doc/bugreport.texi: Update copyright years.
9035         * doc/c-tree.texi: Likewise.
9036         * doc/cfg.texi: Likewise.
9037         * doc/cpp.texi: Likewise.
9038         * doc/cppinternals.texi: Likewise.
9039         * doc/fragments.texi: Likewise.
9040         * doc/frontends.texi: Likewise.
9041         * doc/gcc.texi: Likewise.
9042         * doc/gty.texi: Likewise.
9043         * doc/hostconfig.texi: Likewise.
9044         * doc/implement-c.texi: Likewise.
9045         * doc/libgcc.texi: Likewise.
9046         * doc/loop.texi: Likewise.
9047         * doc/makefile.texi: Likewise.
9048         * doc/options.texi: Likewise.
9049         * doc/passes.texi: Likewise.
9050         * doc/rtl.texi: Likewise.
9051         * doc/sourcebuild.texi: Likewise.
9052         * doc/standards.texi: Likewise.
9053         * doc/tree-ssa.texi: Likewise.
9054         * doc/trouble.texi: Likewise.
9055
9056         * doc/extend.texi: Use @: or add comma where appropriate.
9057         * doc/invoke.texi: Likewise.
9058         * doc/tm.texi: Likewise.
9059
9060 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
9061
9062         PR target/34393
9063         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
9064         to a reg.
9065
9066 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
9067
9068         * doc/md.texi (clz, ctz): Add reference.
9069         * doc/rtl.texi (clz, ctz): Likewise.
9070
9071 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9072
9073         PR other/35148
9074         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
9075         srcdir.
9076
9077 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
9078
9079         * config/s390/s390.c (struct constant_pool): New field
9080         emit_pool_after added.
9081         (s390_mainpool_start): Set the emit_pool_after flag according
9082         to the section switch notes.
9083         (s390_mainpool_finish): Consider emit_pool_after when emitting
9084         the literal pool at the end of the function.
9085         (s390_chunkify_start): Force literal pool splits at section
9086         switch notes.
9087
9088 2008-02-13  Michael Matz  <matz@suse.de>
9089
9090         PR debug/35065
9091         * var-tracking.c (clobber_variable_part): Correctly traverse the
9092         list.
9093
9094 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9095
9096         PR 29673
9097         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
9098         Add -fdump-ipa-inline.
9099         * tree-dump.c (dump_files): Remove tree-inlined dump.
9100         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
9101         
9102 2008-02-12  Richard Guenther  <rguenther@suse.de>
9103
9104         PR tree-optimization/35171
9105         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
9106         default defs.
9107
9108 2008-02-12  Richard Guenther  <rguenther@suse.de>
9109
9110         PR middle-end/35163
9111         * fold-const.c (fold_widened_comparison): Use get_unwidened in
9112         value-preserving mode.  Disallow final truncation.
9113
9114 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
9115
9116         PR middle-end/35136
9117         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
9118         code from here to...
9119         (force_gimple_operand): ...here.
9120
9121 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
9122
9123         PR c++/35144
9124         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
9125         non-compatible pointers.
9126         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
9127         different FIELD_DECLs, try harder by comparing field offsets, sizes
9128         and types.
9129
9130         PR inline-asm/35160
9131         * function.c (match_asm_constraints_1): Don't replace the same input
9132         multiple times.
9133
9134 2008-02-12  Anatoly Sokolov <aesok@post.ru>
9135
9136         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
9137         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
9138         (expand_epilogue): Restore RAMPZ register.
9139         * config/avr/avr.md (RAMPZ_ADDR): New constant.
9140
9141 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
9142
9143         * config/i386/cygwin.asm: (__alloca): Correct calling
9144         convention and alignment.
9145         (__chkstk): Force 8 byte stack alignment.
9146
9147 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
9148             Richard Guenther  <rguenther@suse.de>
9149
9150         PR tree-optimization/33992
9151         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
9152         the zero we compare against.
9153
9154 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
9155
9156         PR libfortran/35063
9157         * gthr-win32.h (__gthread_mutex_destroy_function): New function
9158         to CloseHandle after unlocking to prevent accumulation of handle
9159         count.
9160
9161 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9162
9163         PR middle_end/34150
9164         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
9165         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
9166         and update LABEL_NUSES during and after reload.
9167
9168 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
9169
9170         PR middle-end/34627
9171         * combine.c (simplify_if_then_else): Make sure the comparison is
9172         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
9173
9174 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
9175
9176         PR bootstrap/35051
9177         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
9178         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
9179         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
9180         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
9181         * tree.h (get_type_static_bounds): Likewise.
9182
9183 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9184
9185         * doc/invoke.texi (Option Summary, C++ Dialect Options)
9186         (Objective-C and Objective-C++ Dialect Options, Warning Options):
9187         Make -Wfoo language annotations match what the compiler outputs.
9188
9189 2008-02-08  Sa Liu  <saliu@de.ibm.com>
9190
9191         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
9192         intrinsics spu_convts, spu_convtu, spu_convtf.
9193
9194 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
9195
9196         * doc/extend.texi (Function Attributes) <noinline>: Mention
9197         asm ("") as method to keep calls.
9198
9199 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9200
9201         PR other/32754
9202         * doc/options.texi (Options): Replace references to opts.sh with
9203         optc-gen.awk.
9204         * opts-common.c: Likewise.
9205         * optc-gen.awk: Likewise.
9206         
9207 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
9208
9209         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
9210
9211 2008-02-07  Richard Henderson  <rth@redhat.com>
9212
9213         PR rtl-opt/33410
9214         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
9215         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
9216         funny mode.
9217
9218 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
9219
9220         PR tree-optimization/35085
9221         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
9222         for operand entry oe2 in addition to operand entry oe3 in order to
9223         expose more opportunities for vectorizer sum reduction.
9224
9225 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9226
9227         PR other/35107
9228         * Makefile.in (LIBS): Remove $(GMPLIBS).
9229         (cc1-dummy, cc1): Add $(GMPLIBS).
9230
9231 2008-02-06  Jan Hubicka  <jh@suse.cz>
9232
9233         PR target/23322
9234         * i386.md (moddf_integer): Do not produce partial memory stalls for
9235         targets where it hurts.
9236
9237 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
9238
9239         PR target/35083
9240         * optabs.c (expand_float): Do not check for decimal modes when
9241         expanding unsigned integer through signed conversion.
9242
9243 2008-02-06  Nick Clifton  <nickc@redhat.com>
9244
9245         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
9246         inside the clobber with a match_operand and duplicated operand
9247         number in the constraint.
9248         (ineqbranchsi): Delete redundant comment.
9249
9250 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
9251
9252         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
9253         builtin_define ("__USE_INIT_FINI__").
9254         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
9255         -msx multilibs.
9256         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
9257
9258 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9259
9260         PR documentation/30330
9261         * doc/invoke.texi (C++ Dialect Options)
9262         (Objective-C and Objective-C++ Dialect Options, Warning Options):
9263         For each warning option -Wfoo that allows -Wno-foo, ensure both
9264         -Wfoo and -Wno-foo are listed in the option index.  Fix index
9265         entry of -Wswitch-default, index -Wnormalized= including the
9266         `=', and -Wlarger-than-@var{len} including @var{len}.
9267
9268 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
9269
9270         * config/i386/i386.md (floatunssisf2): Use
9271         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
9272         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
9273         Macroize expander using MODEF mode iterator.
9274
9275 2008-02-05  Diego Novillo  <dnovillo@google.com>
9276
9277         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
9278
9279         PR 33738
9280         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
9281
9282 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9283
9284         PR other/35070
9285         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
9286
9287 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
9288
9289         PR target/35084
9290         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
9291         to indicate if a message should be generated.
9292         (init_cumulative_args): Updated.
9293         (function_value_32): Likewise.
9294
9295 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
9296
9297         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
9298
9299 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
9300
9301         PR target/35083
9302         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
9303         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
9304
9305 2008-02-04  Diego Novillo  <dnovillo@google.com>
9306
9307         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
9308
9309         PR 33738
9310         * tree-vrp.c (vrp_evaluate_conditional): With
9311         -Wtype-limits, emit a warning when comparing against a
9312         constant outside the natural range of OP0's type.
9313
9314 2008-02-04  Richard Guenther  <rguenther@suse.de>
9315
9316         PR middle-end/33631
9317         * expr.c (count_type_elements): Give for unions instead of
9318         guessing.
9319
9320 2008-02-04  Richard Guenther  <rguenther@suse.de>
9321
9322         PR middle-end/35043
9323         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
9324         to TYPE_DOMAINs base type instead of using bitsizetype here.
9325
9326 2008-02-03  Jason Merrill  <jason@redhat.com>
9327
9328         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
9329
9330 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9331
9332         PR other/29972
9333         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
9334         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
9335         (RS/6000 and PowerPC Options): Fix typos and markup.
9336         * doc/passes.texi (Tree-SSA passes): Likewise.
9337
9338 2008-02-02  Michael Matz  <matz@suse.de>
9339
9340         PR target/35045
9341         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
9342         from record_last_reg_set_info.
9343         (record_last_reg_set_info): Take an RTX argument, iterate over all
9344         constituent hardregs.
9345         (record_last_set_info, record_opr_changes): Change calls to
9346         new signature or to record_last_reg_set_info_regno.
9347
9348 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
9349
9350         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
9351
9352 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
9353
9354         PR rtl-optimization/34773
9355         * reg-notes.def (EQUAL): Mention significance of combination of
9356         REG_EQUAL and REG_RETVAL.
9357         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
9358         insn that has a REG_RETVAL.
9359
9360 2008-02-01  Roger Sayle  <roger@eyesopen.com>
9361
9362         PR bootstrap/33781
9363         * configure.ac (--enable-fixed-point): Disable unless explicitly
9364         requested on IRIX.
9365         * configure: Regenerate.
9366
9367 2008-02-01  Richard Guenther  <rguenther@suse.de>
9368
9369         PR other/35042
9370         * invoke.texi (-finline-limit): Remove no longer true parts
9371         of the documentation.  Note that there is no default value.
9372
9373 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
9374             Mark Mitchell  <mark@codesourcery.com>
9375             Ben Elliston  <bje@au.ibm.com>
9376
9377         PR c/29326
9378         * doc/extend.texi (Other Builtins): Document.
9379
9380 2008-01-31  Tom Browder <tom.browder@gmail.com>
9381
9382         * doc/c-tree.texi (Types): Fix grammar.
9383         (Expression trees): Ditto.
9384         * doc/passes.texi (Tree-SSA passes): Ditto.
9385         
9386         * doc/configterms.texi (Configure Terms): Fix typo.
9387         * doc/cpp.texi (Common Predefined Macros): Ditto.
9388         * doc/md.texi (Machine Constraints): Ditto.
9389         
9390         * doc/makefile.texi (Makefile): Add comma.
9391
9392 2008-01-31  Tom Browder  <tom.browder@gmail.com>
9393             Gerald Pfeifer  <gerald@pfeifer.com>
9394         
9395         * doc/sourcebuild.texi (Front End): Remove references to CVS
9396         and CVSROOT/modules.
9397         (Texinfo Manuals): Replace reference to CVS by one to SVN.
9398         (Back End): Remove reference to CVS.
9399
9400 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
9401
9402         PR target/34900
9403         * config/mips/mips.c (gen_load_const_gp): New function, taking a
9404         comment from...
9405         (mips16_gp_pseudo_reg): ...here.
9406         * config/mips/mips.md (load_const_gp): Replace with...
9407         (load_const_gp_<mode>): ...this :P-based insn.
9408
9409 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9410
9411         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
9412         options. Minor fixes.
9413         (-std): Move reference to standards closer to where language
9414         standards are first mentioned.
9415         
9416 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
9417
9418         PR rtl-optimization/34995
9419         * reload.c (alternative_allows_const_pool_ref): Take an rtx
9420         parameter and return a bool.  If the rtx parameter is nonnull,
9421         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
9422         (find_reloads): Update call accordingly.  Pass the new operand
9423         if it needed no address reloads, otherwise pass null.
9424
9425 2008-01-30  Richard Henderson  <rth@redhat.com>
9426
9427         PR c/34993
9428         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
9429         for unbounded arrays.
9430
9431 2008-01-30  Silvius Rus  <rus@google.com>
9432
9433         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
9434
9435 2008-01-30  Jan Hubicka  <jh@suse.cz>
9436
9437         PR target/34982
9438         * i386.c (init_cumulative_args): Use real function declaration when
9439         calling locally.
9440
9441 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
9442
9443         PR rtl-optimization/34998
9444         * global.c (build_insn_chain): Treat non-subreg_lowpart
9445         SUBREGs of pseudos as clobbering all the words covered by the
9446         SUBREG, not just all the bytes.
9447         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
9448         original df_ref rather than an extract parameter.
9449         (global_conflicts): Update call accordingly.
9450
9451 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
9452
9453         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
9454         the overflow check to make it easier to read.
9455         (__fixtfdi): Change the type of the ll member in union
9456         long_double to UDItype_x.
9457
9458 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
9459
9460         PR middle-end/34969
9461         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
9462         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
9463         * tree-inline.c (fold_marked_statements): Call
9464         cgraph_update_edges_for_call_stmt if folding a call statement.
9465         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
9466         debug_generic_stmt calls, reset it back afterwards.
9467
9468         PR c/35017
9469         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
9470         static decls.
9471         * c-typeck.c (build_external_ref): Don't pedwarn about
9472         static vars in current function's scope.
9473
9474 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
9475
9476         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
9477
9478 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
9479
9480         PR c/35002
9481         * ipa-struct-reorg.c: Fix spelling.
9482         * params.def: Ditto.
9483
9484 2008-01-29  Richard Guenther  <rguenther@suse.de>
9485
9486         PR middle-end/35006
9487         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
9488         field.
9489         * tree-inline.c (remap_type): Increment remapping_type_depth
9490         around remapping types.
9491         (copy_body_r): Only add referenced variables if they are referenced
9492         from code, not types.
9493
9494 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
9495
9496         PR c++/34055
9497         PR c++/34103
9498         PR c++/34219
9499         PR c++/34606
9500         PR c++/34753
9501         PR c++/34754
9502         PR c++/34755
9503         PR c++/34919
9504         PR c++/34961
9505         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
9506         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
9507
9508 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
9509
9510         PR target/34412
9511         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
9512         pointer for tiny stack.
9513
9514 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
9515
9516         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
9517
9518 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
9519
9520         * config/vx-common.h: Fix typo in comment.
9521
9522 2008-01-28  Ian Lance Taylor  <iant@google.com>
9523
9524         PR c++/34862
9525         PR c++/33407
9526         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
9527         coalesce pointers if they have different DECL_NO_TBAA_P values.
9528         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
9529         between variables with different DECL_NO_TBAA_P values.
9530
9531 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
9532
9533         PR 31535
9534         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
9535         are not legitimate small data references on SPE targets.
9536
9537 2008-01-28  David Daney  <ddaney@avtrex.com>
9538
9539         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
9540
9541 2008-01-28  David Daney  <ddaney@avtrex.com>
9542
9543         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
9544
9545 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
9546
9547         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
9548         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
9549         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
9550         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
9551         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
9552         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
9553         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
9554         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
9555
9556 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9557
9558         * basic-block.h (condjump_equiv_p): Fix comment.
9559
9560 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9561
9562         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
9563         print_generic_stmt_indented): Fix comment.
9564
9565 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9566
9567         * configure.ac (__stack_chk_fail): Add detecion for availability
9568         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
9569         * configure: Regenerate.
9570
9571 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
9572
9573         PR middle-end/34688
9574         * final.c (output_addr_const): Handle TRUNCATE.
9575
9576 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
9577
9578         PR target/34711
9579         * tree-ssa-loop-ivopts.c (comp_cost): New type.
9580         (zero_cost, infinite_cost): New constants.
9581         (struct cost_pair): Change type of cost to comp_cost.
9582         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
9583         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
9584         New functions.
9585         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
9586         split_address_cost, ptr_difference_cost, difference_cost,
9587         get_computation_cost_at, get_computation_cost,
9588         determine_use_iv_cost_generic, determine_use_iv_cost_address,
9589         determine_use_iv_cost_condition, determine_use_iv_costs,
9590         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
9591         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
9592         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
9593         Change type of cost to comp_cost.
9594         (determine_iv_cost): Increase cost of non-original ivs, instead
9595         of decreasing the cost of original ones.
9596         (get_address_cost): Indicate the complexity of the addressing mode 
9597         in comp_cost.
9598         (try_add_cand_for): Prefer using ivs not specific to some object.
9599         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
9600
9601 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
9602             Janis Johnson  <janis187@us.ibm.com>
9603
9604         PR target/34814
9605         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
9606         (TARGET_INSTANTIATE_DECLS): Likewise.
9607         * target.h (expand_to_rtl_hook): New target hook.
9608         (instantiate_decls): Likewise.
9609         * function.c (instantiate_decl): Make non-static.  Rename to...
9610         (instantiate_decl_rtl): ... this.
9611         (instantiate_expr): Use instantiate_decl_rtl.
9612         (instantiate_decls_1): Likewise.
9613         (instantiate_decls): Likewise.
9614         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
9615         * function.h (instantiate_decl_rtl): Add prototype.
9616         * cfgexpand.c (target.h): New include.
9617         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
9618         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
9619         (TARGET_INSTANTIATE_DECLS): Likewise.
9620         (TARGET_INITIALIZER): New target hooks added.
9621         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
9622         New prototype.
9623         * config/rs6000/rs6000.c (tree-flow.h): New include.
9624         (machine_function): Add sdmode_stack_slot field.
9625         (rs6000_alloc_sdmode_stack_slot): New function.
9626         (rs6000_instantiate_decls): Likewise.
9627         (rs6000_secondary_memory_needed_rtx): Likewise.
9628         (rs6000_check_sdmode): Likewise.
9629         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
9630         (TARGET_INSTANTIATE_DECLS): Likewise.
9631         (rs6000_hard_regno_mode_ok): Allow SDmode.
9632         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
9633         (rs6000_emit_move): Handle SDmode.
9634         (function_arg_advance): Likewise.
9635         (function_arg): Likewise.
9636         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
9637         SDmode var args for 32-bit compiles.
9638         (rs6000_secondary_reload_class): Handle SDmode.
9639         (rs6000_output_function_epilogue): Likewise.
9640         (rs6000_function_value): Simplify if statement.
9641         (rs6000_libcall_value): Likewise.
9642         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
9643         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
9644         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
9645         (movsd_hardfloat): New define_insn.
9646         (movsd_softfloat): Likewise.
9647         (movsd_store): Likewise.
9648         (movsd_load): Likewise.
9649         (extendsddd2): Likewise.
9650         (extendsdtd2): Likewise.
9651         (truncddsd2): Likewise.
9652         (movdd_hardfloat64): Fixup comment.
9653         (UNSPEC_MOVSD_LOAD): New constant.
9654         (UNSPEC_MOVSD_STORE): Likewise.
9655
9656 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
9657
9658         PR c++/34965
9659         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
9660         TRUTH_XOR_EXPR.
9661         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
9662         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
9663         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
9664         and TRUTH_XOR_EXPR.
9665
9666 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
9667
9668         PR target/34794
9669         * config.gcc: Separate AIX 5.3 from AIX 6.1.
9670         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
9671         __LONGDOUBLE128 too.
9672         * config/rs6000/aix61.h: New file.
9673
9674 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
9675
9676         PR rtl-optimization/34959
9677         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
9678         popcount and parity rtxes the same mode as their operand.
9679         Truncate or extend the result to the return value's mode
9680         if necessary.
9681
9682 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
9683
9684         PR target/34981
9685         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
9686         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
9687         to GOT_VERSION_REGNUM.
9688         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
9689         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
9690         * config/mips/mips.c (mips_emit_call_insn): New function.
9691         (mips_call_tls_get_addr): Call mips_expand_call directly.
9692         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
9693         emit_call_insn.
9694         (mips16_build_call_stub): Likewise.  Return the call insn or null.
9695         (mips_expand_call): Update the call to mips16_build_call_stub
9696         accordingly and a remove redundant condition.  Assert that MIPS16
9697         stubs do not use lazy binding.  Use mips_emit_call_insn and return
9698         the call insn.
9699         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
9700         TARGET_USE_GOT.
9701         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
9702         (mips_avoid_hazard): Remove hazard_set handling.
9703         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
9704         (UNSPEC_RESTORE_GP): ...this.
9705         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
9706         (FAKE_CALL_REGNO): Rename to...
9707         (GOT_VERSION_REGNUM): ...this.
9708         (type): Add "ghost" value.  Add an associated insn reservation.
9709         (hazard_set): Remove.
9710         (exception_receiver): Rename to...
9711         (restore_gp): ...this and update the unspec identifier accordingly.
9712         (exception_receiver, nonlocal_got_receiver): New expanders.
9713         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
9714         FAKE_CALL_REGNO.  Remove hazard_set attribute.
9715         (set_got_version, update_got_version): New patterns.
9716
9717 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
9718
9719         PR target/34970
9720         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
9721
9722 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
9723
9724         PR other/31955
9725         * doc/install.texi2html: Generate gcc-vers.texi.
9726
9727 2008-01-25  DJ Delorie  <dj@redhat.com>
9728
9729         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
9730
9731 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
9732
9733         * config/c4x: Remove directory.
9734         * config.gcc (crx-*, mt-*): Mark obsolete.
9735         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
9736         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
9737         sh-*-rtemscoff*): Remove cases.
9738         * defaults.h (C4X_FLOAT_FORMAT): Remove.
9739         * real.c (encode_c4x_single, decode_c4x_single,
9740         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
9741         c4x_extended_format): Remove.
9742         * real.h (c4x_single_format, c4x_extended_format): Remove.
9743         * doc/extend.texi (interrupt, naked): Remove mention of attributes
9744         on C4x.
9745         (Pragmas): Remove comment about c4x pragmas.
9746         * doc/install.texi (c4x): Remove target-specific instructions.
9747         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
9748         * doc/md.texi (Machine Constraints): Remove C4x documentation.
9749         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
9750         refer to C4x source files as examples.
9751         (C4X_FLOAT_FORMAT): Remove documentation.
9752
9753 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
9754
9755         * config/bfin/bfin.c (override_options): Reorder tests so that
9756         flag_pic gets enabled for -msep-data.
9757
9758 2008-01-25  Richard Guenther  <rguenther@suse.de>
9759
9760         PR middle-end/32244
9761         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
9762         to its bitfield precision if required.
9763
9764 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
9765
9766         PR middle-end/33880
9767         * tree-nested.c (walk_omp_for): New function.
9768         (convert_nonlocal_reference, convert_local_reference): Call
9769         walk_omp_for on OMP_FOR.
9770         (convert_call_expr): Call walk_body on OMP_FOR's
9771         OMP_FOR_PRE_INIT_BODY.
9772
9773 2008-01-25  Richard Guenther  <rguenther@suse.de>
9774
9775         PR tree-optimization/34966
9776         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
9777         default defs and PHI_NODEs we have to insert after the
9778         defining statement.
9779
9780 2008-01-24  Nick Clifton  <nickc@redhat.com>
9781
9782         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
9783         Provide a default definition.
9784         (LIBGCC2_UNITS_PER_WORD): Likewise.
9785
9786         * config/stormy16/stormy16.c: Include df.h for the prototype
9787         for df_regs_ever_live_p.
9788         (xstormy16_expand_builtin_va_start): Convert the stack offset
9789         into a component_ref and then use POINTER_PLUS_EXPR to add it
9790         to the incoming_virtual_args_rtx.
9791         (xstormy16_gimplify_va_arg_expr): Rename to
9792         xstormy16_gimplify_va_arg_expr.
9793         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
9794         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
9795         xstormy16_gimplify_va_arg_expr.
9796         Fix up some formatting issues.
9797
9798         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
9799         Move to predicates.md.
9800         (xs_hi_general_operand): Likewise.
9801         (xs_hi_nonmemory_operand): Likewise.
9802         * config/stormy16/predicates.md:
9803         (xstormy16_carry_plus_operand): New predicate.
9804         (xs_hi_general_operand): New predicate.
9805         (xs_hi_nonmemory_operand): New predicate.
9806         * config/stormy16/stormy16-protos.h:
9807         (xstormy16_carry_plus_operand): Delete prototype.
9808         (xs_hi_general_operand): Likewise.
9809         (xs_hi_nonmemory_operand): Likewise.
9810
9811         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
9812         modifiers as they are no longer needed and they can trigger
9813         reload spill failures.
9814
9815         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
9816         with a match_operand in order to help reload.
9817
9818         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
9819         constraint with 'e' for the 8th alternative as this version of
9820         the mov.w instruction only accepts the lower 8 registers.
9821
9822 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
9823
9824         PR target/34856
9825         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
9826         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
9827         vector elements.
9828
9829 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
9830
9831         PR middle-end/33333
9832         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
9833
9834 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
9835
9836         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
9837         New functions.
9838         (remove_structure): Update allocations list before removing structure.
9839         
9840 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
9841
9842         * ipa-struct-reorg.c (is_safe_cond_expr, 
9843         create_new_stmts_for_cond_expr): Use integer_zerop function,
9844         that recognize not only zero-pointer, but zero-integer too.
9845
9846 2008-01-25  Ben Elliston  <bje@au.ibm.com>
9847
9848         PR other/22232
9849         * fixproto: Escape "." in sed expression that strips leading "./".
9850
9851 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
9852
9853         PR driver/34904
9854         * gcc.c (SWITCH_OK): Removed.
9855         (SWITCH_LIVE): Changed to bit.
9856         (SWITCH_FALSE): Likewise.
9857         (SWITCH_IGNORE): Likewise.
9858         (switchstr): Change live_cond to unsigned int.
9859         (process_command): Replace SWITCH_OK with 0.
9860         (do_self_spec): Likewise.
9861         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
9862         (give_switch): Likewise.
9863         (used_arg): Likewise.
9864         (do_spec_1): Set the SWITCH_IGNORE bit.
9865         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
9866         bits.  Set the SWITCH_LIVE bit.
9867
9868 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
9869
9870         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
9871
9872 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
9873
9874         PR tree-optimization/34472
9875         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
9876         parameter to a "bool *" and set *DATA to false if there is
9877         an unsafe access.  Do not delete the structure here.
9878         (check_cond_exprs): Delete it here instead.
9879         (check_cond_exprs, exclude_cold_structs): Do not increase
9880         I when removing a structure.
9881
9882 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
9883
9884         PR target/34856
9885         * config/i386/i386.c (ix86_expand_vector_init): Consider only
9886         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
9887
9888 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
9889
9890         PR middle-end/34934
9891         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
9892         a fixed vector for stack.
9893
9894 2008-01-24  Ben Elliston  <bje@au.ibm.com>
9895
9896         PR c++/25701
9897         * doc/gcc.texi (Software development): Add a direntry for g++.
9898         
9899 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
9900
9901         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
9902         stale and straggling -fforce-addr comments above.
9903
9904         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
9905         define.
9906         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
9907         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
9908
9909 2008-01-23  Michael Matz  <matz@suse.de>
9910
9911         PR debug/34895
9912         * dwarf2out.c (force_type_die): Use modified_type_die instead of
9913         gen_type_die.
9914
9915 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
9916
9917         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
9918         malloc result type.
9919
9920 2008-01-23 Anatoly Sokolov <aesok@post.ru>
9921
9922         * config/avr/avr.c (avr_current_arch): New variable.
9923         (avr_arch_types): Add 'avr31' and 'avr51' entries.
9924         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
9925         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
9926         (avr_override_options): Init 'avr_current_arch'. 
9927         (base_arch_s): Move from here...
9928         * config/avr/avr.h (base_arch_s): ... here. Add new members 
9929         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
9930         'mega' to 'have_jmp_call'.
9931         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
9932         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
9933         macros.
9934         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
9935         architectures.
9936         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
9937         MULTILIB_MATCHES): (Ditto.).
9938
9939 2008-01-23  Richard Guenther  <rguenther@suse.de>
9940
9941         PR middle-end/31529
9942         * cgraphunit.c (cgraph_reset_node): Always mark the node
9943         not reachable if it is not queued already.
9944
9945 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
9946
9947         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
9948         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
9949         (cputype_selected): New static variable.
9950         (bfin_handle_option): Set it if -mcpu is used.
9951         (override_option): Select default set of workarounds if no cpu type
9952         selected on the command line.
9953         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
9954
9955         From  Michael Frysinger  <michael.frysinger@analog.com>
9956         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
9957         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
9958
9959         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
9960         for bf547, bf523, bf524, and bf526.
9961         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
9962         bf526.
9963         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
9964         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
9965         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
9966         __ADSPBF547__ and __ADSPBF54x__ for bf547.
9967         * doc/invoke.texi (Blackfin Options): Document that
9968         -mcpu now accept bf547, bf523, bf524, and bf526.
9969
9970 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
9971
9972         PR rtl-optimization/34628
9973         * combine.c (try_combine): Stop and undo after the first combination
9974         if an autoincrement side-effect on the first insn has effectively
9975         been lost.
9976
9977 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
9978
9979         PR target/34529
9980         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
9981         Offset addresses are not valid for Altivec or paired float modes.
9982
9983 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
9984
9985         PR c++/34607
9986         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
9987         if DECL_INITIAL (decl) is error_mark_node.
9988
9989         PR c++/34914
9990         * c-common.c (handle_vector_size_attribute): Only allow
9991         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
9992         the same way as pointer, array etc. types.
9993         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
9994
9995         PR c++/34917
9996         * tree.c (build_type_attribute_qual_variant): Call
9997         build_qualified_type if attributes are equal, but quals are not.
9998
9999 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10000
10001         PR 32102
10002         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
10003         * flags.h (warn_strict_aliasing): Remove.
10004         (warn_strict_overflow): Remove.
10005         * opts.c (warn_strict_aliasing): Remove.
10006         (warn_strict_overflow): Remove.
10007         * c-opts.c (c_common_handle_option): -Wall only sets
10008         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
10009         (c_common_post_options): Give default values to -Wstrict-aliasing
10010         and -Wstrict-overflow if they are uninitialized.
10011         * common.opt (Wstrict-aliasing): Specify Var and Init.
10012         (Wstrict-overflow): Likewise.
10013
10014 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
10015
10016         PR rtl-optimization/26854
10017         PR rtl-optimization/34400
10018         PR rtl-optimization/34884
10019         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
10020         DF_RD->gen.
10021         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
10022         (df_rd_bb_info.expanded_lr_out): Deleted
10023         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
10024         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
10025         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
10026         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
10027         Removed code to allocate, initialize or free expanded_lr_out.
10028         (df_rd_bb_local_compute_process_def): Restructured to make more
10029         understandable.
10030         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
10031         sets if the sets are being trimmed.
10032
10033 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
10034
10035         PR bootstrap/32287
10036         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
10037         (as_vers): Likewise.
10038         * configure: Regenerated.
10039
10040 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10041
10042         PR middle-end/33092
10043         * tree-pass.h (pass_build_alias): New pass.
10044         * tree-ssa-alias.c (gate_build_alias): New.
10045         (pass_build_alias): New.
10046         * passes.c (init_optimization_passes): Add pass_build_alias after
10047         pass_create_structure_vars.
10048
10049 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
10050
10051         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
10052         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
10053         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
10054         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
10055         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
10056         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
10057         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
10058         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
10059         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
10060         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
10061         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
10062         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
10063         * config/s390/s390.md (FP_ALL): New mode iterator.
10064         (_d): New mode attribute.
10065         ("*signbit<mode>2>"): Changed mode of first operand.
10066         ("isinf<mode>2"): Changed mode of first operand.
10067         ("*TDC_insn"): Adaptation for DFP modes.
10068
10069 2008-01-22  Ben Elliston  <bje@au.ibm.com>
10070
10071         * tree.c (check_qualified_type): Improve function description.
10072
10073 2008-01-21  Jason Merrill  <jason@redhat.com>
10074
10075         PR c++/34196
10076         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
10077         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
10078         if it is set.
10079
10080 2008-01-21  DJ Delorie  <dj@redhat.com>
10081
10082         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
10083         return zero.
10084
10085 2008-01-21  Richard Guenther  <rguenther@suse.de>
10086
10087         PR middle-end/34856
10088         * tree-cfg.c (verify_expr): Allow all invariant expressions
10089         instead of just constant class ones as reference argument.
10090         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
10091         like any other constant.
10092         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
10093
10094 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
10095
10096         * regmove.c (fixup_match_1): Update call crossed frequencies.
10097
10098 2008-01-21  Richard Guenther  <rguenther@suse.de>
10099
10100         PR c/34885
10101         * tree-inline.c (setup_one_parameter): Deal with mismatched
10102         types using a VIEW_CONVERT_EXPR.
10103
10104 2008-01-21  Alon Dayan  <alond@il.ibm.com>
10105             Olga Golovanevsky  <olga@il.ibm.com>
10106         
10107         PR tree-optimization/34701
10108         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
10109         when the structure size is not a power of 2.
10110
10111 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
10112
10113         * doc/install.texi: Add doc for --enable-checking=df.
10114         
10115 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10116
10117         PR rtl-optimization/34808
10118         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
10119
10120 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
10121
10122         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
10123         input.
10124
10125 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
10126
10127         PR rtl-optimization/26854
10128         PR rtl-optimization/34400
10129         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
10130         DF_RD->gen.
10131         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
10132         (df_rd_bb_info.expanded_lr_out): New.
10133         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
10134         * loop_iv.c (iv_analysis_loop_init): Ditto.
10135         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
10136         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
10137         Added code to allocate, initialize or free expanded_lr_out.
10138         (df_rd_bb_local_compute_process_def): Restructured to make
10139         more understandable.
10140         (df_rd_confluence_n): Add code to do nothing with fake edges and
10141         code to no apply invalidate_by_call sets if the sets are being trimmed.
10142         (df_lr_local_finalize): Renamed to df_lr_finalize.
10143         (df_live_local_finalize): Renamed to df_live_finalize.
10144
10145 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
10146
10147         PR target/34831
10148         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
10149         deciding whether to use reciprocal instructions.
10150
10151 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
10152
10153         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
10154         dwarf2out_note_section_used if cold_text_section is NULL.
10155
10156 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
10157
10158         PR gcov-profile/34610
10159         * tree-cfg.c (make_edges): Mark both outgoing edges from
10160         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
10161         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
10162         from OMP_FOR and OMP_CONTINUE outgoing edges.
10163
10164         * tree-profile.c (tree_profiling): Return early if
10165         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
10166         at the end.
10167         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
10168         from cfun to child_cfun.
10169         * function.h (struct function): Add after_tree_profile bit.
10170
10171 2008-01-19 Anatoly Sokolov <aesok@post.ru>
10172
10173         * config/avr/avr.S (_exit): Disable interrupt.
10174
10175 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
10176             Steven Bosscher  <stevenb.gcc@gmail.com>
10177
10178         PR rtl-optimization/26854
10179         PR rtl-optimization/34400
10180         * df-problems.c (df_live_scratch): New scratch bitmap.
10181         (df_live_alloc): Allocate df_live_scratch when doing df_live.
10182         (df_live_reset): Clear the proper bitmaps.
10183         (df_live_bb_local_compute): Only process the artificial defs once
10184         since the order is not important.
10185         (df_live_init): Init the df_live sets only with the variables
10186         found live by df_lr.
10187         (df_live_transfer_function): Use the df_lr sets to prune the
10188         df_live sets as they are being computed.  
10189         (df_live_free): Free df_live_scratch.
10190
10191 2008-01-18  Ian Lance Taylor  <iant@google.com>
10192
10193         * common.opt: Add fmerge-debug-strings.
10194         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
10195         flag_merge_debug_strings rather than flag_merge_constants.
10196         * doc/invoke.texi (Option Summary): Mention
10197         -fmerge-debug-strings.
10198         (Debugging Options): Document -fmerge-debug-strings.
10199
10200 2008-01-18  Ian Lance Taylor  <iant@google.com>
10201
10202         PR c++/33407
10203         * tree.h (DECL_IS_OPERATOR_NEW): Define.
10204         (struct tree_function_decl): Add new field operator_new_flag.
10205         * tree-inline.c (expand_call_inline): When inlining a call to
10206         operator new, force the return value to go into a variable, and
10207         set DECL_NO_TBAA_P on that variable.
10208         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
10209
10210 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
10211
10212         PR debug/34484
10213         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
10214         DWARF2_DEBUGGING_INFO.
10215         (dwarf2out_note_section_used): Ditto.  Add prototype.
10216         (have_multiple_function_sections, text_section_used,
10217         cold_text_section_used, *cold_text_sections): Move declarations
10218         before their uses.
10219
10220 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
10221
10222         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
10223         field and add signal_ra.
10224         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
10225         assignments to frame state pc.  Move end of stack check after
10226         MD_FALLBACK_FRAME_STATE_FOR.
10227         (uw_update_context_1): Use frame state signal_regs if set, instead
10228         of checking signal_frame flag.
10229         (uw_update_context): Use frame state signal_ra if set.
10230         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
10231         * config/xtensa/linux-unwind.h: New file.
10232
10233 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
10234
10235         * modulo-sched.c (get_sched_window): Fix comment typo.
10236
10237 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
10238
10239         PR tree-optimization/34648
10240         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
10241
10242 2008-01-17  Anatoly Sokolov <aesok@post.ru>
10243
10244         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
10245         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
10246
10247 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
10248
10249         PR rtl-optimization/34400
10250         * df-core.c (df_worklist_dataflow_overeager,
10251         df_worklist_dataflow_doublequeue): New functions.
10252         (df_worklist_dataflow): Two different worklist solvers.
10253         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
10254         New param.
10255
10256 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10257
10258         PR testsuite/34821
10259         * doc/invoke.texi: Document the dependence on pthread for fopenmp
10260         and ftree-parallelize-loops.
10261
10262 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
10263
10264         PR rtl-optimization/34826
10265         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
10266
10267 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
10268
10269         * global.c (find_reg): Mark the eh regs as used if necessary.
10270         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
10271         * ra.h (struct allocno): no_eh_reg field added.  Changed
10272         no_stack_reg type to bitfield.
10273
10274 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
10275
10276         * tree.c (substitute_in_expr): Add missing 'break'.
10277
10278 2008-01-17  Richard Guenther  <rguenther@suse.de>
10279
10280         PR tree-optimization/34825
10281         * tree-ssa-math-opts.c (is_division_by): Do not recognize
10282         x / x as division to handle.
10283
10284 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10285
10286         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
10287         "-pthread" is specified.
10288         * pa-hpux11.h (LIB_SPEC): Likewise.
10289
10290 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
10291             Peter Bergner  <bergner@vnet.ibm.com>
10292
10293         PR rtl-optimization/33796
10294         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
10295
10296 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10297
10298         PR libgfortran/34699
10299         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
10300         static links.
10301         * pa-hpux10.h (LINK_SPEC): Likewise.
10302         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
10303
10304 2008-01-16  Richard Guenther  <rguenther@suse.de>
10305
10306         PR middle-end/32628
10307         * fold-const.c (fold_convert_const_int_from_int): Do not
10308         set overflow if that occured only because of a sign extension
10309         change when converting from/to a sizetype with the same
10310         precision and signedness.
10311
10312 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
10313
10314         PR debug/34249
10315         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
10316         location address to the correct place.  Update copyright year.
10317
10318 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10319
10320         * lambda-code.c (lambda_transform_legal_p): Handle the case of
10321         no dependences in the dependence_relations vector.
10322
10323 2008-01-16  Jan Hubicka  <jh@suse.cz>
10324
10325         PR rtl-optimization/31396
10326         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
10327         * cfg.c (dump_reg_info): Print it.
10328         * regs.h (struct reg_info_t): add freq_calls_crossed.
10329         (REG_FREQ_CALLS_CROSSED): New macro.
10330         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
10331         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
10332         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
10333         regmove_optimize): Update call crossed frequencies.
10334         * local-alloc.c (struct qty): Add freq_calls_crossed.
10335         (alloc_qty): Copute freq_calls_crossed.
10336         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
10337         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
10338         * ra.h (struct allocno): Add freq_calls_crossed.
10339
10340 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10341
10342         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
10343         libgomp when compiling with ftree-parallelize-loops.
10344         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
10345
10346 2008-01-16  Richard Guenther  <rguenther@suse.de>
10347
10348         PR tree-optimization/34769
10349         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
10350         * tree.c (int_cst_value): Instead make this function more
10351         permissive in what it accepts as valid input.  Document this
10352         function always sign-extends the value.
10353
10354 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
10355             Richard Guenther  <rguenther@suse.de>
10356
10357         PR c/34668
10358         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
10359         (gimple_fold_indirect_ref_rhs): ... this.
10360         (gimple_fold_indirect_ref): New function with foldings
10361         that preserve lvalueness.
10362         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
10363         * tree-flow.h (gimple_fold_indirect_ref): Declare.
10364         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
10365         to fold an INDIRECT_REF, fall back to the old use of
10366         fold_indirect_ref_1.
10367
10368 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10369
10370         * tree-data-ref.c (subscript_dependence_tester_1): Call 
10371         free_conflict_function.
10372         (compute_self_dependence): Same.
10373
10374 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
10375
10376         PR debug/34249
10377         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
10378         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
10379         function global.
10380         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
10381         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
10382         for DWARF2_UNWIND_INFO targets.
10383
10384 2008-01-16  Richard Guenther  <rguenther@suse.de>
10385
10386         PR c/34768
10387         * c-typeck.c (common_pointer_type): Do not merge inconsistent
10388         type qualifiers for function types.
10389
10390 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
10391
10392         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
10393         loop_iterator li from previous commit.
10394
10395 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
10396
10397         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
10398
10399 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
10400
10401         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
10402         (parallelize_loops): Don't parallelize irreducible components.
10403
10404 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10405
10406         PR c++/24924
10407         * c-opts (c_common_post_options): Do not enable CPP
10408         flag_pedantic_errors by default.
10409         
10410 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
10411
10412         PR rtl-optimization/31944
10413         * cse.c (remove_pseudo_from_table): New function.
10414         (merge_equiv_classes): Use above function to remove pseudo-registers.
10415         (invalidate): Likewise.
10416
10417 2008-01-13  Richard Guenther  <rguenther@suse.de>
10418
10419         PR middle-end/34601
10420         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
10421         instead of TYPE_MODE to deal with calls from expand_one_error_var.
10422
10423 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
10424
10425         * gcse.c (cprop_jump): Call validate_unshare_change instead of
10426         validate_change to unshare the source of the PC set.
10427
10428 2008-01-12  Jan Hubicka  <jh@suse.cz>
10429
10430         PR middle-end/32135
10431         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
10432         references above array bounds.  This might trigger bounds checks for
10433         pointers to arrays.
10434
10435 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
10436
10437         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
10438         new_replaceable_dependencies.
10439
10440 2008-01-12  Doug Kwan  <dougkwan@google.com>
10441
10442         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
10443         instead of OPT_Wreturn_type in warning due to ignored return type
10444         qualifiers.
10445         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
10446         options included in -Wextra.
10447         * c.opt: New option -Wignored_qualifiers.
10448         * doc/invoke.texi (Warning Options, -Wextra): Add new option
10449         -Wignore_qualifiers.
10450         (-Wignored-qualifiers): Document.
10451         (-Wreturn-type): Remove description of functionality now handled
10452         by -Wignored-qualifiers.
10453
10454 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
10455
10456         PR ada/33788
10457         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
10458         NOP_EXPR if it is between integral types with the same precision.
10459
10460 2008-01-12  Jan Hubicka  <jh@suse.cz>
10461
10462         PR other/28023
10463         * invoke.texi (max-inline-recursive-depth): Fix default value.
10464
10465 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
10466
10467         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
10468         correct type.
10469
10470 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
10471         
10472         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
10473         
10474 2008-01-11  James E. Wilson  <wilson@specifix.com>
10475
10476         PR target/26015
10477         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
10478
10479 2008-01-11  Anatoly Sokolov <aesok@post.ru>
10480
10481         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
10482         save/restore frame pointer register and don't use 'call-prologues' 
10483         optimization in function with "OS_task" attribute.
10484
10485 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
10486
10487         PR middle-end/31309
10488         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
10489         when copying to memory.
10490
10491 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
10492
10493         PR rtl-optimization/30905
10494         * cfgcleanup.c: Include dce.h
10495         (crossjumps_occured): New global variable.
10496         (try_crossjump_bb): Exit loop after finding a fallthru edge.
10497         If something changed, set crossjumps_occured to true.
10498         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
10499         Don't add/remove fake edges to exit here...
10500         (cleanup_cfg): ...but do it here, when crossjumping.
10501         Run a fast DCE when successful crossjumps occured in the latest
10502         iteration of try_optimize_cfg.
10503
10504 2008-01-11  Richard Guenther  <rguenther@suse.de>
10505
10506         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
10507         (struct vn_unary_op_s): Likewise.
10508         (vn_reference_insert): Free old reference on hash collision.
10509
10510 2008-01-10  Raksit Ashok  <raksit@google.com>
10511
10512         PR rtl-optimization/27971
10513         * combine.c (find_split_point): Split PLUS expressions which are
10514         inside a MEM rtx, and whose first operand is complex.
10515
10516 2008-01-10  DJ Delorie  <dj@redhat.com>
10517
10518         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
10519         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
10520         (m32c_hard_regno_ok): Call the underlying function.
10521
10522 2008-01-10  Richard Guenther  <rguenther@suse.de>
10523
10524         PR middle-end/34683
10525         * tree-cfg.c (tree_merge_blocks): Do not go through the
10526         full-blown folding and stmt updating path if we just deal
10527         with virtual operands.
10528         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
10529         test for abnormal SSA_NAMEs.
10530
10531 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
10532
10533         PR middle-end/34641
10534         * reload.c (push_reload): Add assertions.  All constants from
10535         reg_equiv_constant should have been used for replacing the respective
10536         pseudo earlier.
10537         (find_reloads_address): Invoke find_reloads_address_part for
10538         constant taken from the reg_equiv_constant array.
10539
10540 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
10541
10542         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
10543         field (valnum) the first in the struct.  Replace bools with
10544         unit bit fields.
10545
10546 2008-01-10  Richard Guenther  <rguenther@suse.de>
10547
10548         PR tree-optimization/34651
10549         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
10550         types and ordering for masking and converting.
10551
10552 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
10553
10554         PR tree-optimization/34017
10555         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
10556         also for PHI_NODE expressions.
10557
10558 2008-01-09  Jan Hubicka  <jh@suse.cz>
10559
10560         PR tree-optimization/34708
10561         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
10562         based on number of case labels.
10563         (init_inline_once): Remove switch_cost.
10564         * tree-inline.h (eni_weights_d): Remove switch_cost.
10565
10566 2008-01-09  Richard Guenther  <rguenther@suse.de>
10567         Andrew Pinski  <andrew_pinski@playstation.sony.com>
10568
10569         PR middle-end/30132
10570         * gimplify.c (gimplify_cond_expr): Do not create an addressable
10571         temporary if an rvalue is ok or an lvalue is not required.
10572
10573 2008-01-09  Richard Guenther  <rguenther@suse.de>
10574
10575         PR middle-end/34458
10576         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
10577         adjust return type.
10578
10579 2008-01-09  Richard Guenther  <rguenther@suse.de>
10580
10581         PR middle-end/34679
10582         * tree.c (host_integerp): Check for sizetype only if the
10583         type is an integer type.
10584
10585 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
10586
10587         PR debug/26364
10588         * opts.c (decode_options): Disable inlining of functions called
10589         once if not in unit-at-a-time mode.
10590
10591 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
10592
10593         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
10594
10595 2008-01-08  Richard Guenther  <rguenther@suse.de>
10596
10597         PR middle-end/31863
10598         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
10599         out early if the result will be unused.
10600
10601 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
10602
10603         PR target/34709
10604         Revert:
10605
10606         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
10607         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
10608         for TARGET_RECIP.       
10609         
10610 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
10611         
10612         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
10613         for vectorization tuned.
10614         
10615 2008-01-08  Richard Guenther  <rguenther@suse.de>
10616
10617         PR tree-optimization/34683
10618         * tree-ssa-operands.c (operand_build_cmp): Export.
10619         * tree-ssa-operands.h (operand_build_cmp): Declare.
10620         * tree-vn.c (vuses_compare): Remove.
10621         (sort_vuses): Use operand_build_cmp.
10622         (sort_vuses_heap): Likewise.
10623         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
10624         to re-use old VEC if available.  Do not sort already sorted VUSEs.
10625         (vdefs_to_vec): Do not sort already sorted VDEFs.
10626
10627 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
10628
10629         PR middle-end/34694
10630         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
10631
10632 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
10633
10634         PR target/34702
10635         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
10636         limitations of reciprocal sequences on x86 targets.
10637
10638 2008-01-08  Richard Guenther  <rguenther@suse.de>
10639
10640         PR tree-optimization/34683
10641         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
10642
10643 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
10644
10645         PR target/34622
10646         * config/darwin.c (darwin_mergeable_string_section): Don't use
10647         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
10648
10649 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
10650
10651         PR target/34682
10652         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
10653         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
10654         predicates of op0 and op1 to register_operand.
10655         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
10656         expander using X87MODEF mode iterator.  Change predicates of
10657         op0 and op1 to register_operand.
10658         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
10659         corresponding patterns and macroize using MODEF macro.  Change
10660         predicates of op0 and op1 to register_operand and remove
10661         "m" constraint. Disparage "r" alternative with "!".
10662         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
10663         macroize using X87MODEF macro.  Change predicates of op0 and op1
10664         to register_operand and remove "m" constraint.  Disparage "r"
10665         alternative with "!".
10666         (absneg splitter with memory operands): Remove.
10667         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
10668         patterns and macroize using X87MODEF mode iterator.
10669         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
10670         Change predicate of op1 to register_operand.
10671         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
10672         for memory operands.
10673
10674 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
10675
10676         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
10677
10678 2008-01-07  Richard Guenther  <rguenther@suse.de>
10679
10680         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
10681         fields.
10682
10683 2008-01-07  Richard Guenther  <rguenther@suse.de>
10684
10685         PR tree-optimization/34683
10686         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
10687         VOPs of the needed size to save memory.  Use VEC_quick_push
10688         to save compile-time.
10689         (vdefs_to_vec): Likewise.
10690
10691 2008-01-07  Sa Liu  <saliu@de.ibm.com>
10692
10693         * config/spu/spu.md (divdf3): Genetate inline code for double
10694         division.  The implementation doesn't handle INF or NAN, therefore it
10695         only applies when -ffinite-math-only is given.
10696
10697 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
10698
10699         PR libstdc++/34680
10700         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
10701         * doc/cpp.texi ([Common Predefined Macros]): Document.
10702
10703 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
10704
10705         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
10706         order to use commutative addition instead of subtraction.
10707
10708 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10709             Mircea Namolaru  <namolaru@il.ibm.com>
10710             Vladimir Yanovsky  <yanov@il.ibm.com>
10711             Revital Eres  <eres@il.ibm.com>
10712
10713         PR tree-optimization/34263
10714         * tree-outof-ssa.c (process_single_block_loop_latch,
10715         contains_tree_r): New functions.
10716         (analyze_edges_for_bb): Call process_single_block_loop_latch
10717         function to empty single-basic-block latch block if possible.
10718
10719 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
10720
10721         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
10722         for TARGET_RECIP.
10723         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
10724
10725 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
10726
10727         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
10728
10729 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
10730
10731         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
10732
10733 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
10734
10735         PR tree-optimization/34618
10736         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
10737         flag from T.
10738
10739 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
10740
10741         PR target/34673
10742         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
10743         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
10744         Update copyright year.
10745
10746         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
10747         Update copyright year.
10748         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
10749         using NR fixup.
10750
10751 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
10752
10753         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
10754         edge does not point to current bb before changing need_assert.
10755
10756 2008-01-04  Richard Guenther  <rguenther@suse.de>
10757
10758         PR middle-end/34029
10759         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
10760         for verifying purposes if they are is_gimple_min_invariant.
10761
10762 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
10763
10764         PR tree-optimization/34448
10765         PR tree-optimization/34465
10766         * gimplify.c (gimplify_init_constructor): Add new parameter
10767         notify_temp_creation.  Use it.
10768         (gimplify_modify_expr_rhs): Take volatiles into account when
10769         optimizing constructors.
10770         Do not optimize constructors if gimplify_init_constructor will dump to
10771         memory.
10772         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
10773         * gcc.c-torture/compile/pr34448.c: New.
10774
10775 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
10776
10777         PR gcov-profile/34609
10778         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
10779         return_slot if result is TREE_ADDRESSABLE.
10780
10781 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
10782
10783         * config/mips/mips.md (sqrt_condition): Tweak comment.
10784         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
10785
10786 2008-01-03  Tom Tromey  <tromey@redhat.com>
10787
10788         PR c/34457
10789         * c-common.c (c_type_hash): Handle VLAs.
10790
10791 2008-01-03  Jan Hubicka  <jh@suse.cz>
10792
10793         PR tree-optimization/31081
10794         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
10795         0 when inlining and not inlining to first basic block.
10796         (remap_decl): When var is initialized to 0, don't set default_def.
10797         (expand_call_inline): Set entry_bb.
10798         * tree-inline.h (copy_body_data): Add entry_bb.
10799
10800 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
10801
10802         PR c++/34619
10803         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
10804         before returning.
10805
10806         PR tree-optimization/29484
10807         * tree-inline.c (inline_forbidden_p_2): New function.
10808         (inline_forbidden_p): Disallow inlining if some static var
10809         has an address of a local LABEL_DECL in its initializer.
10810         * doc/extend.texi (Labels as Values): Document &&foo behaviour
10811         vs. inlining.
10812
10813 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
10814
10815         PR tree-optimization/34635
10816         * tree-data-ref.c (add_other_self_distances): Make sure that the
10817         evolution step is constant.
10818
10819 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
10820
10821         PR middle-end/34608
10822         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
10823
10824 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
10825
10826         * tree-sra.c (scalarize_init): Insert the generate_element_init
10827         statements after the generate_element_zero statements.
10828
10829 2008-01-02  Richard Guenther  <rguenther@suse.de>
10830
10831         PR middle-end/34093
10832         PR middle-end/31976
10833         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
10834         for very large number of operands instead of ICEing.
10835
10836 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
10837
10838         PR target/34013
10839         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
10840         while stack probing.
10841
10842 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
10843
10844         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
10845         in C++0x mode.
10846
10847 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
10848
10849         PR libmudflap/26442
10850         * tree-mudflap.c (mx_register_decls): Guard warning by
10851         !DECL_ARTIFICIAL check.
10852
10853 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
10854
10855         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
10856         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
10857         sse5_perm<mode>): Fix constraints.