OSDN Git Service

gcc/
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
2
3         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
4         __WORKAROUND_RETS when appropriate.
5
6 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
7
8         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
9         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
10         mode iterator.
11         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
12         *fop_df_comm_sse insn patterns using MODEF mode iterator.
13         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
14         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
15         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
16         *fop_df_1_mixed insn patterns using MODEF mode iterator.
17         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
18         *fop_df_1_sse insn patterns using MODEF mode iterator.
19         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
20         *fop_df_1_i387 insn patterns using MODEF mode iterator.
21         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
22         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
23         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
24         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
25         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
26         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
27         (*fop_xf_4_i387): Use <MODE> for mode attribute.
28         (*fop_xf_5_i387): Ditto.
29         (*fop_xf_6_i387): Ditto.
30
31 2008-05-30  Richard Guenther  <rguenther@suse.de>
32
33         * builtins.c (build_string_literal): Avoid generating
34         a non-gimple_val result.
35
36 2008-05-30  DJ Delorie  <dj@redhat.com>
37
38         * exec-tool.in: Use an environment variable (private) instead of a
39         file (shared) as a semaphore, so as to not break parallel builds.
40
41 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
42
43         * optabs.c (maybe_encapsulate_block): Remove.
44         (emit_libcall_block): Adjust accordingly.
45         * optabs.h (maybe_encapsulate_block): Remove prototype.
46
47         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
48         Don't use maybe_encapsulate_block.
49
50 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
51
52         * config/rs6000/rs6000.c (rs6000_legitimize_address,
53         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
54         rtx is a SYMBOL_REF before calling get_pool_constant.
55
56 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
57
58         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
59
60 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
61
62         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
63         rather than OS names to choose INO_T_EQ definition.
64         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
65         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
66
67 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
68
69         PR target/36348
70         * config/darwin-f.c: New.
71         * config/t-darwin: Added rule to build darwin-f.o.
72         * config.gcc: Defined new variable, fortran_target_objs.
73         (*-*-darwin*): Set fortran_target_objs.
74         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
75         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
76         * configure: Regenerated.
77
78 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
79
80         PR target/35771
81         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
82         canonical type if needed.
83
84 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
85
86         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
87
88 2008-05-29  Richard Guenther  <rguenther@suse.de>
89
90         PR tree-optimization/36343
91         PR tree-optimization/36346
92         PR tree-optimization/36347
93         * tree-flow.h (clobber_what_p_points_to): Declare.
94         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
95         pointed-to variable is dereferenced is irrelevant to whether
96         the pointer can access the pointed-to variable.
97         (clobber_what_p_points_to): New function.
98         * tree-ssa-alias.c (set_initial_properties): Use it.
99         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
100         call clobber check for NMTs.
101
102 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
103         
104         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
105         for printing gcov_type.
106
107 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
108
109         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
110         and the eh region information.
111         * value-prof.c (gimple_move_stmt_histograms): New function.
112         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
113
114 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
115
116         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
117
118 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
119
120         * value-prof.c (tree_ic_transform): Print counts.
121         * tree-profile.c (tree_gen_ic_func_profiler):
122         Clear __gcov_indreict_call_callee variable to avoid misattribution
123         of the profile.
124
125 2008-05-28  Rafael Espindola  <espindola@google.com>
126
127         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
128         invalid sharing.
129
130 2008-05-28  Richard Guenther  <rguenther@suse.de>
131
132         PR tree-optimization/36339
133         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
134         and clobbering code out of the loop.
135
136 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
137
138         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
139         letters defined.
140
141         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
142         s390_contiguous_bitmask_p, s390_symref_operand_p,
143         s390_check_symref_alignment, s390_reload_larl_operand,
144         s390_reload_symref_address): New functions.
145         (s390_branch_condition_mnemonic): Support compare and branch
146         instructions.
147         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
148         and 'W' constraints.
149         (s390_secondary_reload): Add secondary reloads for unaligned
150         symbol refs or symbol refs to floating point or QI/TI mode
151         integer values.
152         (legitimate_address_p): Accept symbol references as addresses.
153         (s390_expand_insv): Use rotate and insert selected bits
154         instruction for insv when building for z10.
155         (print_operand_address): Handle symbol ref addresses.
156         (print_operand): Output modifier 'c' added for signed byte values.
157         (s390_encode_section_info): Mark symbol refs with
158         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
159
160         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
161         (length attribute): RRF, RRR have 4 byte length.
162         (FPALL, INTALL): New mode iterators added.
163         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
164         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
165         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
166         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
167         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
168         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
169         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
170         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
171         instructions.
172         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
173         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
174         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
175         reload<INTALL:mode><P:mode>_toreg_z10,
176         reload<FPALL:mode><P:mode>_tomem_z10,
177         reload<FPALL:mode><P:mode>_toreg_z10,
178         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
179         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
180         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
181         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
182         definition.
183         (movmem, clrmem, cmpmem): New splitters added.
184
185         * config/s390/predicates.md (larl_operand): Use
186         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
187         SYMBOL_REF_ALIGN1_P.
188         (s390_signed_integer_comparison,
189         s390_unsigned_integer_comparison): New predicates.
190
191         * config/s390/s390-protos.h (s390_check_symref_alignment,
192         s390_contiguous_bitmask_p, s390_reload_larl_operand,
193         s390_reload_symref_address,
194         s390_compare_and_branch_condition_mask): Prototypes added.
195
196         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
197         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
198         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
199
200 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
201
202         * config/s390/s390.c (z10_cost): New cost function for z10.
203         (s390_handle_arch_option, override_options): Support -march=z10 switch.
204         (s390_issue_rate): Adjust issue rate for z10.
205         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
206         (processor_flags): Add PF_Z10.
207         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
208         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
209         * gcc/config.gcc: Add z10.
210
211 2008-05-28  Richard Guenther  <rguenther@suse.de>
212
213         PR tree-optimization/36291
214         * tree-flow. h (struct gimple_df): Remove var_anns member.
215         * tree-flow-inline.h (gimple_var_anns): Remove.
216         (var_ann): Simplify.
217         * tree-dfa.c (create_var_ann): Simplify.
218         (remove_referenced_var): Clear alias info from var_anns of globals.
219         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
220         (delete_tree_ssa): Clear alias info from var_anns of globals.
221         Do not free var_anns.
222         (var_ann_eq): Remove.
223         (var_ann_hash): Likewise.
224
225 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
226
227         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
228         and loongson2f entries.
229         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
230         * config/mips/mips.h (processor_type): Add Loongson-2E
231         and Loongson-2F entries.
232         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
233         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
234         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
235         * doc/invoke.texi (MIPS Options): Document loongson2e
236         and loongson2f processor names.
237
238 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
239
240         PR target/35767
241         PR target/35771
242         * config/i386/i386.c (ix86_function_arg_boundary): Use
243         alignment of canonical type.
244         (ix86_expand_vector_move): Check unaligned memory access for
245         all SSE modes.
246
247 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
248
249         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
250         Moved to the front of file.
251
252 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
253             H.J. Lu  <hongjiu.lu@intel.com>
254
255         * dwarf2out.c (current_fde): New.
256         (add_cfi): Use it.
257         (lookup_cfa:): Likewise.
258         (dwarf2out_end_epilogue): Likewise.
259         (dwarf2out_note_section_used): Likewise.
260
261 2008-05-27  Michael Matz  <matz@suse.de>
262
263         PR c++/27975
264         * c.opt (Wenum-compare): New warning option.
265         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
266
267 2008-05-27  Michael Matz  <matz@suse.de>
268
269         PR middle-end/36326
270         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
271         non-BLKmode types.
272         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
273         into memory as tail calls.
274
275 2008-05-27  Richard Guenther  <rguenther@suse.de>
276
277         PR tree-optimization/36339
278         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
279         pointers cause all addressable variables to be call clobbered.
280
281 2008-05-27  Richard Guenther  <rguenther@suse.de>
282
283         PR tree-optimization/36245
284         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
285
286 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
287
288         * config/s390/s390.md: Replace all occurences of the 'm'
289         constraint with 'RT'.
290
291 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
292
293         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
294         definitions added.
295         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
296         "*movdi_64".
297         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
298         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
299         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
300
301 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
302
303         * reload.c: (find_reloads): Skip alternatives according to the
304         "enabled" attribute. Constify the constraint variable.
305         * recog.c (get_attr_enabled): Add default implementation.
306         (extract_insn): Set the alternative_enabled_p array
307         in the recog_data struct.
308         (preprocess_constraints, constrain_operands): Skip
309         alternatives according to the "enabled" attribute
310         * recog.h (struct recog_data): New field alternative_enabled_p.
311         (skip_alternative): New inline function.
312         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
313         (record_reg_classes): Skip alternative according to the
314         "enabled" attribute.
315
316         * doc/md.texi: Add documention for the "enabled" attribute.
317
318 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
319
320         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
321         * postreload.c (reload_cse_simplify_operands): Replace 'm'
322         constraint with TARGET_MEM_CONSTRAINT.
323         * recog.c (asm_operand_ok, preprocess_constraints,
324         constrain_operands): Likewise.
325         * regclass.c (record_reg_classes): Likewise.
326         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
327         * reload1.c (maybe_fix_stack_asms): Likewise.
328         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
329         * recog.h: Adjust comment.
330         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
331         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
332         * doc/md.texi: Add a note to description of 'm' constraint.
333         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
334
335 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
336
337         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
338         that the bitfield is of integral type before testing its precision.
339
340 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
341             Sa Liu  <saliu@de.ibm.com> 
342
343         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
344         __modti3, __udivti3, __umodti3 and __udivmodti4.
345         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
346         that implement TImode mul and div functions.
347         * config/spu/multi3.c: New. Implement __multi3.
348         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
349         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
350         functions on SPU.
351
352 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
353
354         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
355         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
356         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
357         tls_sysv_suffix): New mode and mode attribute iterators.
358         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
359         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
360         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
361         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
362         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
363         iterators.
364
365 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
366
367         PR tree-optimization/36329
368         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
369         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
370         * cgraphbuild.c (initialize_inline_failed): Use the latter
371         macro in lieu of the former.
372         * ipa-inline.c (cgraph_mark_inline): Likewise.
373         (cgraph_decide_inlining_of_small_function): Likewise.
374         (cgraph_decide_inlining): Likewise.
375         (cgraph_decide_inlining_incrementally): Likewise.
376
377 2008-05-26  Tristan Gingold  <gingold@adacore.com>
378             Anatoly Sokolov  <aesok@post.ru>
379
380         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
381         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
382         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
383         optimization for 'avr6' architecture.
384
385 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
386
387         PR target/34932
388         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
389
390 2008-05-26  Richard Guenther  <rguenther@suse.de>
391
392         * tree-ssa-sccvn.c (expr_has_constants): Declare.
393         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
394
395 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
396
397         PR middle-end/36253
398         * caller-save.c (insert_restore): Verify alignment of spill space.
399         (insert_save): Likewise.
400         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
401         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
402         (STACK_SLOT_ALIGNMENT): Likewise.
403         * function.c (LOCAL_ALIGNMENT): Removed.
404         (get_stack_local_alignment): New.
405         (assign_stack_local): Use it.  Set alignment on stack slot.
406         (assign_stack_temp_for_type): Use get_stack_local_alignment.
407         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
408         (STACK_SLOT_ALIGNMENT): New.
409         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
410         stack slot in XFmode.
411
412         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
413
414 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
415
416         PR/36321
417         * config/i386/i386.md (allocate_stack_worker_64): Make sure
418         argument operand in rax isn't removed.
419
420 2008-05-26  Richard Guenther  <rguenther@suse.de>
421
422         PR middle-end/36300
423         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
424         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
425
426 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
427
428         PR bootstrap/36331
429         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
430
431 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
432
433         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
434         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
435
436 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
437
438         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
439         build a trampoline if we don't want one.
440         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
441         return zero for nested functions if we don't want a trampoline.
442
443 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
444
445         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
446
447 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
448
449         PR fortran/18428
450         * c.opt: Removed undocumented option '-lang-fortran'.
451         * c-common.h: Removed global variable 'lang_fortran'.
452         * c-opts.c (c_common_handle_option): Removed code to handle
453         option '-lang-fortran'. Updated includes.
454         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
455         definition of '__GFORTRAN__'.
456         (define__GNUC__): Reimplemented to use BASEVER and
457         cpp_define_formatted.
458         (builtin_define_with_value_n): Removed.
459         * c-incpath.h: Renamed to ...
460         * incpath.h: ... this.
461         * c-incpath.c: Renamed to ...
462         * incpath.c: ... this. Updated includes.
463         * fix-header.c: Updated includes.
464         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
465         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
466         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
467
468 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
469
470         * tree.h: Update the table of flags used on tree nodes.
471         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
472         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
473         (FORCED_LABEL): Add access check.
474         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
475         (ASM_INPUT_P): Likewise.
476         (ASM_VOLATILE_P): Likewise.
477         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
478         (OMP_SECTION_LAST): Access private_flag directly.
479         (OMP_RETURN_NOWAIT): Likewise.
480         (OMP_PARALLEL_COMBINED): Likewise.
481         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
482         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
483         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
484         deprecated_flag directly.
485
486 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
487
488         * final.c (frame_pointer_needed): Removed.
489         * flags.h (frame_pointer_needed): Likewise.
490
491         * function.h (rtl_data): Add frame_pointer_needed.
492         (frame_pointer_needed): New.
493
494 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
495
496         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
497
498 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
499
500         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
501         SRC is a REG.
502
503 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
504
505         * c-common.c (strip_array_types): Move function to..
506         * tree.c: ..here.
507         (get_inner_array_type): Delete.
508         * c-common.h (strip_array_types): Move declaration to..
509         * tree.h: ..here.
510         (get_inner_array_type): Delete.
511         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
512         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
513         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
514         * config/pa/pa.c (emit_move_sequence): Likewise.
515
516 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
517
518         * config/i386/i386.md (*sse_prologue_save_insn): Set length
519         attribute to 34.
520
521 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
522
523         * function.c: Include target hook for nonlocal_goto frame value.
524
525 2008-05-24  Richard Guenther  <rguenther@suse.de>
526
527         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
528         variable can be only accessed through a pointer or a union.
529
530 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
531
532         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
533         * doc/extend.texi: Likewise.
534
535 2008-05-23  DJ Delorie  <dj@redhat.com>
536
537         * config/m32c/jump.md (untyped_call): Add.
538
539         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
540         for A24 to PSImode.
541         (m32c_address_cost): Detail costs for indirect offsets.
542
543 2008-05-23  Rafael Espindola  <espindola@google.com>
544
545         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
546         if a node is a SUBREG.
547         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
548         is a SUBREG.
549
550 2008-05-23  Paul Brook  <paul@codesourcery.com>
551             Carlos O'Donell  <carlos@codesourcery.com>
552
553         * doc/extend.texi: Clarify use of __attribute__((naked)).
554         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
555         * target.h (gcc_target): Add allocate_stack_slots_for_args.
556         * function.c (use_register_for_decl): Use
557         targetm.calls.allocate_stack_slots_for_args.
558         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
559         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
560         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
561
562 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
563
564         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
565
566 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
567
568         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
569         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
570         is only rounded once.
571
572 2008-05-23  Richard Guenther  <rguenther@suse.de>
573
574         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
575
576 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
577             Jakub Jelinek  <jakub@redhat.com>
578
579         PR target/36079
580         * configure.ac: Handle --enable-cld.
581         * configure: Regenerated.
582         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
583         * config/i386/i386.h (struct machine_function): Add needs_cld field.
584         (ix86_current_function_needs_cld): New define.
585         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
586         (cld): New isns pattern.
587         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
588         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
589         * config/i386/i386.opt (mcld): New option.
590         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
591         TARGET_CLD and ix86_current_function_needs_cld.
592         (override_options): Use -mcld by default for 32-bit code if
593         USE_IX86_CLD.
594
595         * doc/install.texi (Options specification): Document --enable-cld.
596         * doc/invoke.texi (Machine Dependent Options)
597         [i386 and x86-64 Options]: Add -mcld option.
598         (Intel 386 and AMD x86-64 Options): Document -mcld option.
599
600 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
601         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
602         (return_in_memory_64): Likewise.
603         (return_in_memory_ms_64): Likewise.
604
605 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
606
607         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
608         * builtins.c (fold_builtin_fpclassify): New.
609         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
610         * builtins.def (BUILT_IN_FPCLASSIFY): New.
611         * c-common.c (handle_type_generic_attribute): Adjust to accept
612         fixed arguments before an elipsis.
613         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
614         * doc/extend.texi: Document __builtin_fpclassify.
615
616 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
617
618         * omp-low.c (gate_expand_omp_ssa): Remove.
619         (pass_expand_omp_ssa): Remove.
620         (gate_expand_omp): Do not check for flag_openmp_ssa.
621         * common.opt (-fopenmp-ssa): Remove.
622         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
623
624 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
625
626         * config/sh/sh.opt (mfixed-range): New option.
627         * config/sh/sh-protos.h (sh_fix_range): Declare.
628         * config/sh/sh.c (sh_fix_range): New function.
629         * config/sh/sh.h (sh_fixed_range_str): Declare.
630         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
631         is not empty.
632         * doc/invoke.texi (SH Options): Document -mfixed-range.
633
634 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
635
636         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
637         it before the redeclaration.
638
639 2008-05-22  Anatoly Sokolov <aesok@post.ru>
640
641         * config/avr/avr.c (get_sequence_length): Add new function.
642         (expand_prologue, expand_epilogue): Remove duplicate code.
643
644 2008-05-22  Rafael Espindola  <espindola@google.com>
645
646         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
647         sharing.
648
649 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
650
651         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
652         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
653
654         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
655         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
656         (vect_update_misalignment_for_peel): Likewise.
657         (vector_alignment_reachable_p): Likewise.
658         * tree-vect-transform.c (vectorizable_load): Likewise.
659         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
660         (get_vectype_for_scalar_type): Pass mode of scalar_type
661         to UNITS_PER_SIMD_WORD.
662
663         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
664         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
665         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
666         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
667         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
668
669 2008-05-22  Ira Rosen  <irar@il.ibm.com>
670
671         PR tree-optimization/36293
672         * tree-vect-transform.c (vect_transform_strided_load): Don't check
673         if the first load must be skipped because of a gap.
674
675 2008-05-22  Richard Guenther  <rguenther@suse.de>
676
677         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
678         more cases of offset disambiguation that is possible if
679         strict-aliasing rules apply.
680         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
681         for basic offset and type-based disambiguation.
682
683 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
684
685         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
686         ix86_expand_vector_set on V16QImode for SSE4.1.
687
688 2008-05-21  Tom Tromey  <tromey@redhat.com>
689
690         * c.opt (Wimport): Mark as undocumented.
691         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
692         -Wno-import.
693         (Warning Options): Likewise.
694         * doc/cppopts.texi: Don't mention -Wimport.
695
696 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
697
698         PR tree-optimization/36287
699         PR tree-optimization/36286
700         * lambda-code.c (build_access_matrix): Do not use the loop->num
701         for computing the number of induction variables: use the loop depth
702         instead.
703
704 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
705
706         PR/36280
707         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
708         option -f(no-)leading-underscore.
709
710 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
711
712         * config/i386/i386.c (ix86_expand_vector_init_general): Use
713         GET_MODE_NUNITS (mode).
714
715 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
716
717         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
718         (-mmulhw): Add 464 to description.
719         (-mdlmzb): Likewise.
720         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
721         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
722         464fp entries.
723         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
724         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
725         * config/rs6000/rs6000.md: Update comments for 464.
726
727 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
728
729         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
730
731 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
732
733         * config/i386/sse.md (vec_extractv4sf): Removed.
734         (vec_extractv2df): Likewise.
735         (vec_extractv2di): Likewise.
736         (vec_extractv4si): Likewise.
737         (vec_extractv8hi): Likewise.
738         (vec_extractv16qi): Likewise.
739         (vec_extract<mode>): New.
740
741 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
742
743         * config/i386/sse.md (vec_setv4sf): Removed.
744         (vec_setv2df): Likewise.
745         (vec_setv2di): Likewise.
746         (vec_setv4si): Likewise.
747         (vec_setv8hi): Likewise.
748         (vec_setv16qi): Likewise.
749         (vec_set<mode>): New.
750
751 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
752
753         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
754         goto for vec_concat and vec_interleave.
755
756 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
757
758         * config/i386/sse.md (vec_initv4sf): Removed.
759         (vec_initv2df): Likewise.
760         (vec_initv2di): Likewise.
761         (vec_initv4si): Likewise.
762         (vec_initv8hi): Likewise.
763         (vec_initv16qi): Likewise.
764         (vec_init<mode>): New.
765
766 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
767
768         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
769
770 2008-05-21  Tom Tromey  <tromey@redhat.com>
771
772         * ggc-zone.c (lookup_page_table_if_allocated): New function.
773         (zone_find_object_offset): Likewise.
774         (gt_ggc_m_S): Likewise.
775         (highest_bit): Likewise.
776         * ggc-page.c (gt_ggc_m_S): New function.
777         * stringpool.c (string_stack): Remove.
778         (init_stringpool): Update.
779         (ggc_alloc_string): Use ggc_alloc.
780         (maybe_delete_ident): New function.
781         (ggc_purge_stringpool): Likewise.
782         (gt_ggc_m_S): Remove.
783         * ggc-common.c (ggc_protect_identifiers): New global.
784         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
785         ggc_protect_identifiers.
786         * ggc.h (ggc_protect_identifiers): Declare.
787         (gt_ggc_m_S): Update.
788         (ggc_purge_stringpool): Declare.
789         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
790         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
791         special case.
792         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
793
794 2008-05-21  David S. Miller  <davem@davemloft.net>
795
796         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
797         tmake_file.
798
799 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
800
801         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
802         once finished.
803
804 2008-05-20  David Daney  <ddaney@avtrex.com>
805
806         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
807         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
808         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
809         UNSPEC_UPDATE_GOT_VERSION): Renumber.
810         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
811         (atomic_hiqi_op): New define_code_iterator.
812         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
813         mips_expand_compare_and_swap_12.
814         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
815         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
816         (sync_<optab><mode>, sync_old_<optab><mode>,
817         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
818         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
819         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
820         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
821         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
822         (test_and_set_12): New insn.
823         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
824         sync_new_<optab><mode>, sync_old_nand<mode>,
825         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
826         clobber to operand 0 for SI and DI mode insns.
827         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
828         mips_gen_fn_4): New typedefs.
829         (mips_gen_fn_ptrs): Define new union type.
830         (mips_expand_compare_and_swap_12): Remove declaration.
831         (mips_expand_atomic_qihi): Declare function.
832         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
833         (mips_expand_atomic_qihi): ... this.  Use new generator function
834         parameter.
835         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
836         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
837         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
838         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
839         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
840         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
841         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
842         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
843         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
844         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
845         New macros.
846
847 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
848
849         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
850         the missing break.
851
852 2008-05-20  Anatoly Sokolov <aesok@post.ru>
853
854         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
855         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
856         (avr_attribute_table): Add 'OS_main' function attribute.
857         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
858         functions with 'OS_main' attribute.
859
860 2008-05-20  Richard Guenther  <rguenther@suse.de>
861
862         PR tree-optimization/35204
863         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
864         helper, split out from ...
865         (DFS): ... here.  Make the DFS walk non-recursive.
866
867 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
868             Jan Sjodin  <jan.sjodin@amd.com>
869
870         PR tree-optimization/36181
871         * tree-parloops.c (loop_has_vector_phi_nodes): New.
872         (parallelize_loops): Don't parallelize when the loop has vector
873         phi nodes.
874
875 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
876             Sebastian Pop  <sebastian.pop@amd.com>
877
878         * tree-loop-linear.c (gather_interchange_stats): Look in the access
879         matrix, and never look at the tree representation of the memory
880         accesses.
881         (linear_transform_loops): Computes parameters and access matrices.
882         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
883         when fails.
884         (access_matrix_get_index_for_parameter): New.
885         * tree-data-ref.h (struct access_matrix): New.
886         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
887         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
888         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
889         am_vector_index_for_loop): New.
890         (struct data_reference): Add field access_matrix.
891         (DR_ACCESS_MATRIX): New.
892         (compute_data_dependences_for_loop): Update declaration.
893         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
894         * lambda.h (lambda_vector_vec_p): Declared.
895         * lambda-code.c: Depend on pointer-set.h.
896         (lambda_collect_parameters_from_af, lambda_collect_parameters,
897         av_for_af_base, av_for_af, build_access_matrix,
898         lambda_compute_access_matrices): New.
899         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
900
901 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
902
903         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
904         $SOURCEDIR/include.
905
906 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
907             Sebastian Pop  <sebastian.pop@amd.com>
908
909         PR tree-optimization/36206
910         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
911         FOLD_CONVERSIONS.
912         (instantiate_scev_1): Rename flags to fold_conversions.
913         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
914         outeside instantiation_loop.
915         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
916         (evolution_function_is_affine_or_constant_p): Removed.
917         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
918         instantiate_scev.
919         (analyze_siv_subscript): Pass in the loop nest number.
920         Call evolution_function_is_affine_in_loop instead of 
921         evolution_function_is_affine_p.
922         (analyze_overlapping_iterations): Pass in the loop nest number.
923
924 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
925             Sebastian Pop  <sebastian.pop@amd.com>
926
927         PR tree-optimization/36206
928         * tree-chrec.h (chrec_fold_op): New.
929         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
930         and other trees.
931
932 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
933
934         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
935         (DIRS_EQ): New.
936         (remove_duplicates): Do not set inode on non-inode systems.
937         Use DIRS_EQ.
938
939 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
940
941         * config.gcc (tm_file): Update comments about relative pathnames.
942
943 2008-05-20  Richard Guenther  <rguenther@suse.de>
944
945         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
946         * tree-ssa-sccvn.c (process_scc): Likewise.
947         * tree-ssa-sink.c (execute_sink_code): Likewise.
948         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
949         * tree-vrp.c (process_assert_insertions): Likewise.
950         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
951         (perform_tree_ssa_dce): Likewise.
952         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
953         (dump_dominator_optimization_stats): Likewise.
954         * tree-vectorizer.c (vectorize_loops): Likewise.
955
956 2008-05-20  Richard Guenther  <rguenther@suse.de>
957
958         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
959
960 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
961
962         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
963         (ix86_i386elf_return_in_memory): Likewise.
964         (ix86_i386interix_return_in_memory): Likewise.
965         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
966         (SUBTARGET_RETURN_IN_MEMORY): New.
967         * config/i386/i386elf.h: Likewise.
968         * config/i386/ptx4-i.h: Likewise.
969         * config/i386/sol2-10.h: Likewise.
970         * config/i386/sysv4.h: Likewise.
971         * config/i386/vx-common.h: Likewise.
972         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
973         * config/i386/i386.c (ix86_return_in_memory): Made static and
974         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
975         (ix86_i386elf_return_in_memory): Removed.
976         (ix86_i386interix_return_in_memory): Removed.
977         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
978         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
979
980 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
981
982         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
983
984 2008-05-19  Xinliang David Li  <davidxl@google.com>
985
986         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
987         * opts.c: Ditto.
988         * common.opt: Ditto.
989         * doc/invoke.texi: Ditto.
990
991 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
992
993         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
994         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
995
996 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
997
998         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
999         sizes of operand array from 8/4 to 4/2.
1000         (ix86_expand_vector_init_general): Change size of operand array
1001         from 32 to 16.  Remove op0, op1 and half_mode.
1002
1003 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
1004
1005         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
1006         (ix86_expand_vector_init_interleave): Likewise.
1007         (ix86_expand_vector_init_general): Use them.  Assert
1008         word_mode == SImode when n_words == 4.
1009
1010 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
1011
1012         * config/i386/i386.c (ix86_secondary_reload): New static function.
1013         (TARGET_SECONDARY_RELOAD): New define.
1014         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
1015         * config/i386/i386.md (reload_outqi): Remove.
1016
1017 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1018
1019         PR middle-end/35509
1020         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
1021         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
1022         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
1023         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
1024         (fold_builtin_1): Likewise.
1025         * builtins.def (BUILT_IN_ISINF_SIGN): New.
1026         c-common.c (check_builtin_function_arguments): Handle
1027         BUILT_IN_ISINF_SIGN.
1028         * doc/extend.texi: Document __builtin_isinf_sign.
1029         * fold-const.c (operand_equal_p): Handle COND_EXPR.
1030
1031 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
1032
1033         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
1034         EH cleanup at the end of the pass, search for those that have been
1035         turned into forwarder blocks and do the cleanup on their successor.
1036
1037 2008-05-18  Richard Guenther  <rguenther@suse.de>
1038
1039         * tree-cfg.c (verify_gimple_expr): Allow conversions from
1040         pointers to sizetype and vice versa.
1041
1042 2008-05-18 Xinliang David Li   <davidxl@google.com>
1043
1044         * gcc/tree-ssa-dce.c: Coding style fix.
1045         (check_pow): Documentation comment. 
1046         (check_log): Documenation comment. Coding style fix.
1047         (is_unnecessary_except_errno_call): Ditto.
1048         (gen_conditions_for_pow): Ditto.
1049         (gen_conditions_for_log): Ditto.
1050         (gen_shrink_wrap_conditions): Ditto.
1051         (shrink_wrap_one_built_in_calls): Ditto.
1052         * gcc/doc/invoke.texi: Better documentation string.
1053         * ChangeLog: Fix wrong change log entries from 
1054         May 17 checkin on function call DCE.
1055
1056 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
1057
1058         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
1059
1060 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
1061
1062         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
1063         * df-problems.c (simulation routines): Fixed block comment to
1064         properly say how to add forwards scanning functions.
1065         
1066 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
1067
1068         * tree-inline.c (setup_one_parameter): Remove dead code.
1069
1070 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
1071
1072         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
1073         a BIT_AND_EXPR only for an INTEGER_TYPE.
1074
1075 2008-05-17 Xinliang David Li   <davidxl@google.com>
1076
1077         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
1078         (check_pow, check_log, is_unnecessary_except_errno_call): New 
1079         functions to check for eliminating math functions that are pure 
1080         except for setting errno.
1081         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
1082         general condition expressions for shrink-wrapping pow/log calls.
1083         (gen_shrink_wrap_conditions): Ditto.
1084         (shrink_wrap_one_built_in_call): Ditto.
1085         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
1086         (mark_operand_necessary): If debugging, output if OP is necessary.
1087         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
1088         unnecessary.
1089         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
1090         opt level >= 2.
1091         * gcc/common.opt: New user flag -ftree-builtin-dce.
1092         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
1093
1094 2008-05-16  David S. Miller  <davem@davemloft.net>
1095
1096         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
1097         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
1098
1099 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
1100
1101         PR target/36246
1102         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
1103
1104 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1105
1106         * ifcvt.c (dead_or_predicable): Rename
1107         df_simulate_one_insn_backwards to df_simulate_one_insn.
1108         * recog.c (peephole2_optimize): Ditto.
1109         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
1110         Ditto.
1111         * df.h: Rename df_simulate_one_insn_backwards to
1112         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
1113         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
1114         scanning of defs and uses.
1115         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
1116         (df_simulate_one_insn_forwards): Removed.
1117
1118 2008-05-16  Doug Kwan  <dougkwan@google.com>
1119
1120         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
1121         QNaN & SNaN.
1122         (real_from_string): Handle NaNs and Inf as approriate.
1123
1124 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
1125
1126         * doc/gty.texi (Source Files Containing Type Information): Note
1127         that headers should appear first in the gtfiles list.
1128
1129 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1130
1131         * tree.def (COND_EXEC): Properly documented this code.
1132
1133 2008-05-16  Diego Novillo  <dnovillo@google.com>
1134
1135         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
1136         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
1137         the new field.
1138
1139 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1140
1141         * tree-ssa-dse (max_stmt_uid): Removed.
1142         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
1143         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
1144         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
1145         * function.h (cfun.last_stmt_uid): New field.
1146         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
1147         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
1148         New functions.
1149         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
1150         (create_stmt_ann): Initialize the ann->uid field.
1151         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
1152         with new calls.
1153         * tree-flow.h (renumber_gimple_stmt_uids): New function.
1154
1155 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
1156
1157         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
1158         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
1159         (init_empty_tree_cfg): Call it.
1160
1161 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1162
1163         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
1164         Update all users.
1165
1166 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1167
1168         * doc/invoke.text (-fdump-tree-*-verbose): New option.
1169         * tree-dump.c (dump_options): New verbose option.
1170         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
1171         Add verbose dump.
1172         * tree-pass.h (TDF_VERBOSE): New dump flag.
1173         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
1174         (tree-flow.h): Added include.
1175         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
1176
1177 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
1178
1179         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
1180
1181         From Jie Zhang  <jie.zhang@analog.com>
1182         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1183         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
1184         mcpu=bf561-none and mcpu=bf561-0.2.
1185         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1186         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
1187         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1188         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
1189         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
1190         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
1191         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
1192         option.
1193         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
1194         (cputype_selected): Remove.
1195         (bfin_handle_option): Don't use cputype_selected.
1196         (override_options): When no mcpu option, enable all workarounds.
1197         Don't use bfin_workarounds.
1198         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
1199         processor type.
1200         (DEFAULT_CPU_TYPE): Don't define.
1201
1202 2008-05-16  Richard Guenther  <rguenther@suse.de>
1203
1204         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
1205         on deletion of the last stmt.
1206
1207 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
1208
1209         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
1210         V8HImode for SSE2 and V16QImode for SSE4.1.
1211
1212 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
1213
1214         * cgraph.h (compute_inline_parameters): Made public.
1215         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
1216         variable_generate_summary, function_write_summary,
1217         variable_write_summary, variable_read_summary.  Added generate_summary,
1218         write_summary, read_summary.
1219         * cgraphunit.c (cgraph_process_new_functions): Changed call from
1220         pass_ipa_inline.function_generate_summary, to
1221         compute_inline_parameters. 
1222         * ipa-inline.c (compute_inline_parameters): Made public and added
1223         node parameter.
1224         (compute_inline_parameters_for_current): New function.
1225         (pass_inline_param): Now calls compute_inline_parameters_for_current.
1226         (inline_generate_summary): Removed parameter and made to loop over
1227         all cgraph nodes.
1228         (pass_ipa_inline): Updated for new IPA_PASS structure.
1229         * passes.c (execute_ipa_summary_passes): Now is called once per
1230         pass rather than once per node*pass.
1231         
1232 2008-05-15  Anatoly Sokolov <aesok@post.ru>
1233
1234         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
1235         avr_have_mul_p, avr_asm_only_p): Remove variables.
1236         (avr_override_options): Remove initialization of removed variables.
1237         (avr_file_start):  Convert removed variables to fields of 
1238         'struct base_arch_s *avr_current_arch'. 
1239         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
1240         (AVR_HAVE_MUL): (Ditto.).
1241         (AVR_HAVE_MOVW): (Ditto.).
1242         (AVR_HAVE_LPMX): (Ditto.). 
1243         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
1244         avr_asm_only_p): Remove declaration.
1245
1246 2008-05-15  Diego Novillo  <dnovillo@google.com>
1247
1248         * config/arm/arm.c (arm_return_in_memory): Fix return type.
1249         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
1250
1251 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
1252
1253         PR middle-end/36194
1254         * combine.c (check_conversion): Rename back to check_promoted_subreg.
1255         Don't call record_truncated_value from here.
1256         (record_truncated_value): Turn it into a for_each_rtx callback.
1257         (record_truncated_values): New function.
1258         (combine_instructions): Call note_uses with record_truncated_values.
1259         Change name of check_conversion to check_promoted_subreg. 
1260
1261 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
1262
1263         * doc/sourcebuild.texi: Document support for torture tests.
1264
1265 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
1266
1267         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
1268         to alternative 4 of operand 2.
1269
1270 2008-05-15  Richard Guenther  <rguenther@suse.de>
1271
1272         * tree-pass.h (current_pass): Declare.
1273         (get_pass_for_id): Likewise.
1274         * passes.c (passes_by_id, passes_by_id_size): New globals.
1275         (set_pass_for_id): New function.
1276         (get_pass_for_id): Likewise.
1277         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
1278         (execute_function_todo): Flush per function statistics.
1279         * toplev.c (compile_file): Init statistics.
1280         (general_init): Do early statistics initialization.
1281         (finalize): Finish statistics.
1282         * statistics.h (statistics_early_init): Declare.
1283         (statistics_init): Likewise.
1284         (statistics_fini): Likewise.
1285         (statistics_fini_pass): Likewise.
1286         (statistics_counter_event): Likewise.
1287         (statistics_histogram_event): Likewise.
1288         * statistics.c: New file.
1289         * Makefile.in (OBJS-common): Add statistics.o.
1290         (statistics.o): Add dependencies.
1291         * doc/invoke.texi (-fdump-statistics): Document.
1292
1293         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
1294         (insert): Likewise.
1295         (execute_pre): Use statistics_counter_event.
1296         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
1297         (substitute_and_fold): Increment it.  Use statistics_counter_event.
1298
1299 2008-05-15  Diego Novillo  <dnovillo@google.com>
1300
1301         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
1302
1303         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
1304         * tree-ssa-alias.c (new_type_alias): Remove references to
1305         sub-variables from comment.
1306         * tree-ssa-operands.c (swap_tree_operands): Likewise.
1307
1308 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
1309
1310         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
1311         attribute to 1 only for insertps alternative.
1312
1313 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1314
1315         * config/bfin/bfin.md (loadbytes): New pattern.
1316         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
1317         (bfin_init_builtins): Initialize it.
1318         (bdesc_1arg): Add it.
1319
1320 2008-05-15  Sa Liu  <saliu@de.ibm.com>
1321
1322         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
1323         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
1324         * testsuite/lib/target-supports.exp: Add
1325         check_effective_target_fortran_integer_16.
1326
1327 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1328
1329         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
1330         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
1331         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
1332         (TARGET_RETURN_IN_MEMORY): Define.
1333
1334 2008-05-15  Richard Guenther  <rguenther@suse.de>
1335
1336         PR middle-end/36244
1337         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
1338         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
1339         represent unmodifiable vars.
1340
1341 2008-05-15  Richard Guenther  <rguenther@suse.de>
1342
1343         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
1344         INDIRECT_REF and TARGET_MEM_REF.
1345         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
1346         TARGET_MEM_REF.
1347
1348 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
1349             H.J. Lu  <hongjiu.lu@intel.com>
1350
1351         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
1352         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
1353         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
1354         insn alternatives.  Add missing alternatives.
1355         (*vec_concatv2di_rex64_sse4_1): Likewise.
1356         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
1357         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
1358         Require TARGET_SSE.
1359
1360 2008-05-15  Richard Guenther  <rguenther@suse.de>
1361
1362         PR tree-optimization/36009
1363         PR tree-optimization/36204
1364         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
1365         (determine_invariantness_stmt): Record the loop a store is
1366         always executed in.
1367         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
1368         dependency.
1369
1370 2008-05-15  Richard Guenther  <rguenther@suse.de>
1371
1372         PR tree-optimization/34330
1373         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
1374         through the pointer will alias the SMT.
1375
1376 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
1377
1378         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
1379
1380 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
1381
1382         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
1383
1384 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1385             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
1386
1387         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
1388         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
1389         (vashl_optab): New optab for vector/vector shifts.
1390         (vashr_optab): Ditto.
1391         (vlshr_optab): Ditto.
1392         (vrotl_optab): Ditto.
1393         (vrotr_optab): Ditto.
1394         (optab_subtype): New enum for optab_for_tree_code call.
1395         (optab_for_tree_code): Add enum optab_subtype argument.
1396
1397         * optabs.c (optab_for_tree_code): Take an additional argument to
1398         distinguish between a vector shift by a scalar and vector shift by
1399         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
1400         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
1401         vector shift by a vector.
1402         (expand_widen_pattern_expr): Pass additional argument to
1403         optab_for_tree_code.
1404
1405         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
1406         vrotl_optab, vrotr_optab.
1407
1408         * expr.c (expand_expr_real_1): Update calls to
1409         optab_for_tree_code to distinguish between vector shifted by a
1410         scalar and vector shifted by a vector.
1411         * tree-vectorizer.c (supportable_widening_operation): Ditto.
1412         (supportable_narrowing_operation): Ditto.
1413         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
1414         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
1415         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
1416         (vect_create_epilog_for_reduction): Ditto.
1417         (vectorizable_reduction): Ditto.
1418         (vectorizable_operation): Ditto.
1419         (vect_strided_store_supported): Ditto.
1420         (vect_strided_load_supported): Ditto.
1421         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
1422         * expmed.c (expand_shift): Ditto.
1423
1424         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
1425         scalar type.
1426         (ashr@var{m}3): Ditto.
1427         (vashl@var{m}3): Document new vector/vector shift standard name.
1428         (vashr@var{m}3): Ditto.
1429         (vlshr@var{m}3): Ditto.
1430         (vrotl@var{m}3): Ditto.
1431         (vrotr@var{m}3): Ditto.
1432
1433         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
1434         (PPERM_INVERT): Ditto.
1435         (PPERM_REVERSE): Ditto.
1436         (PPERM_REV_INV): Ditto.
1437         (PPERM_ZERO): Ditto.
1438         (PPERM_ONES): Ditto.
1439         (PPERM_SIGN): Ditto.
1440         (PPERM_INV_SIGN): Ditto.
1441         (PPERM_SRC1): Ditto.
1442         (PPERM_SRC2): Ditto.
1443
1444         * config/i386/sse.md (mulv2di3): Add SSE5 support.
1445         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
1446         allows a memory operand to be the value being added, and split it
1447         to improve vectorization.
1448         (sse5_pmacsdqh_mem): Ditto.
1449         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
1450         (sse5_mulv2div2di3_high): Ditto.
1451         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
1452         (vec_pack_trunc_v4si): Ditto.
1453         (vec_pack_trunc_v2di): Ditto.
1454         (sse5_pcmov_<mode>): Remove code that tried to use use
1455         andps/andnps instead of pcmov.
1456         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
1457         pmacsdqh instructions.
1458         (vec_widen_smult_lo_v4si): Ditto.
1459
1460         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
1461         (PPERM_INVERT): Ditto.
1462         (PPERM_REVERSE): Ditto.
1463         (PPERM_REV_INV): Ditto.
1464         (PPERM_ZERO): Ditto.
1465         (PPERM_ONES): Ditto.
1466         (PPERM_SIGN): Ditto.
1467         (PPERM_INV_SIGN): Ditto.
1468         (PPERM_SRC1): Ditto.
1469         (PPERM_SRC2): Ditto.
1470         (ix86_expand_sse_movcc): Move the SSE5 test after the if
1471         true/false tests.
1472         (ix86_expand_int_vcond): If SSE5 generate all possible integer
1473         comparisons.
1474         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
1475         says ignore whether the last reference is a memory operand.
1476
1477 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1478             Paolo Bonzini <bonzini at gnu dot org>
1479
1480         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
1481         shift patterns.
1482
1483         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
1484         (vlshr<mode>3): Rename from vlshr<mode>3.
1485         (vashr<mode>3): Rename from vashr<mode>3.
1486         (mulv4sf3): Change the names of vector shift patterns.
1487         (mulv4si3): Ditto.
1488         (negv4sf2): Ditt.
1489
1490         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
1491         shift insns.
1492
1493         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
1494         (SI_SHLHI): Ditto.
1495         (SI_SHL): Ditto.
1496         (SI_SHLI): Ditto.
1497         (SI_ROTH): Ditto.
1498         (SI_ROTHI): Ditto.
1499         (SI_ROT): Ditto.
1500         (SI_ROTI): Ditto.
1501         (SPU_RL_0): Ditto.
1502         (SPU_RL_1): Ditto.
1503         (SPU_RL_2): Ditto.
1504         (SPU_RL_3): Ditto.
1505         (SPU_RL_4): Ditto.
1506         (SPU_RL_5): Ditto.
1507         (SPU_RL_6): Ditto.
1508         (SPU_RL_7): Ditto.
1509         (SPU_SL_0): Ditto.
1510         (SPU_SL_1): Ditto.
1511         (SPU_SL_2): Ditto.
1512         (SPU_SL_3): Ditto.
1513         (SPU_SL_4): Ditto.
1514         (SPU_SL_5): Ditto.
1515         (SPU_SL_6): Ditto.
1516         (SPU_SL_7): Ditto.
1517
1518         * config/spu/spu.md (v): New iterator macro to add v for vector types.
1519         (floatunssidf2_internal): Change vector/vector shift names.
1520         (floatunsdidf2_internal): Ditto.
1521         (mulv8hi3): Ditto.
1522         (ashrdi3): Ditto.
1523         (ashrti3): Ditto.
1524         (cgt_df): Ditto.
1525         (cgt_v2df): Ditto.
1526         (dftsv): Ditto.
1527         (vashl<mode>3): Rename from ashl<mode>3.
1528         (vashr<mode>3): Rename from ashr<mode>3.
1529         (vlshr<mode>3): Rename from lshr<mode>3.
1530         (vrotl<mode>3): Rename from rotl<mode>3.
1531
1532 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1533
1534         PR target/36224
1535         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
1536         multiply gives the wrong value when doing widening multiplies.
1537         (vec_widen_smult_lo_v4si): Ditto.
1538
1539 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
1540
1541         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
1542         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
1543         emit_library_call_value. 
1544         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
1545         * tree.h (ECF_LIBCALL_BLOCK): Removed.
1546         * calls.c (initialize_argument_information, precompute_arguments, 
1547         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
1548         (precompute_arguments): Removed flags parameter.
1549         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
1550         
1551 2008-05-14  Richard Guenther  <rguenther@suse.de>
1552
1553         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
1554         Make sure to register the store if the use is a PHI_NODE.
1555
1556 2008-05-14  Olivier Hainque  <hainque@adacore.com>
1557
1558         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
1559         memory if the component is to be referenced in BLKmode according
1560         to get_inner_reference.
1561
1562 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
1563
1564         * calls.c (emit_library_call_value_1): Restore code clearing
1565         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
1566
1567 2008-05-14  Olivier Hainque  <hainque@adacore.com>
1568             Nicolas Roche  <roche@adacore.com>
1569
1570         * configure.ac: Add support for a "gcc_subdir" variable in
1571         config-lang.in, to denote a subdirectory where the language/GCC
1572         integration files are to be found.
1573         * configure: Regenerate.
1574
1575 2008-05-14  Ira Rosen  <irar@il.ibm.com>
1576
1577         PR tree-optimization/36098
1578         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
1579         value for the first load in the group in case of a gap.
1580         (vect_build_slp_tree): Check that there are no gaps in loads.
1581
1582 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
1583
1584         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
1585         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
1586         expand_copysign_bit, ): Change call to emit_no_conflict_block to
1587         emit_insn and remove unneeded code to construct extra args.
1588         (emit_no_conflict_block): Removed.
1589         * optabls.h: (emit_no_conflict_block): Removed.
1590         * cse.c (cse_extended_basic_block): Remove search for
1591         REG_NO_CONFLICT note.
1592         * global.c: Removed incorrect comment added in revision 117.
1593         * expr.c (convert_move): Change call to emit_no_conflict_block to
1594         emit_insn.
1595         * recog.c: Change comments so that they do not mention
1596         REG_NO_CONFLICT.
1597         * local_alloc.c (combine_regs): Removed last parameter.
1598         (no_conflict_p): Removed.
1599         (block_alloc): Removed note, no_conflict_combined_regno and set
1600         local vars. Removed all code to process REG_NO_CONFLICT blocks.
1601         (combine_regs): Removed already_dead and code to look for
1602         REG_NO_CONFLICT notes.
1603         * lower_subreg (remove_retval_note): Removed code to look for
1604         REG_NO_CONFLICT block.
1605         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
1606         (resolve_clobber): Remove code to process libcalls that have
1607         REG_NO_CONFLICT notes.
1608         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
1609         case.
1610         * combine.c (can_combine_p, distribute_notes):  Removed
1611         REG_NO_CONFLICT case.
1612         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
1613         to emit_insns.
1614         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
1615         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
1616         Ditto.
1617         * reg-notes.def (NO_CONFLICT): Removed.
1618
1619 2008-05-14  David S. Miller  <davem@davemloft.net>
1620
1621         * config/sparc/sparc.c (sparc_profile_hook): If
1622         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
1623         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
1624         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
1625
1626 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
1627
1628         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
1629
1630 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
1631
1632         PR target/36222
1633         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
1634         and op1 expansion before vector concat to have less live pseudos.
1635
1636 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
1637
1638         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
1639         ix86_expand_vector_set if supported.
1640
1641 2008-05-13  Diego Novillo  <dnovillo@google.com>
1642             Kenneth Zadeck  <zadeck@naturalbridge.com>
1643
1644         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
1645
1646         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
1647         phinodes_print_statistics, init_ssanames, fini_ssanames,
1648         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
1649         release_ssa_name, release_defs, replace_ssa_name_symbol,
1650         ssanames_print_statistics): Move ...
1651         * tree-flow.h: ... here.
1652         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
1653         Use FN instead of cfun.
1654         (make_ssa_name_fn): Rename from make_ssa_name.
1655         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
1656         * tree-flow-inline.h (make_ssa_name): Move from
1657         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
1658         * omp-low.c (expand_omp_parallel):
1659         * tree-flow-inline.h (redirect_edge_var_map_result):
1660         * tree-ssa.c (init_tree_ssa): Add argument FN.
1661         Use it instead of cfun.  Update all users.
1662
1663 2008-05-13  Tom Tromey  <tromey@redhat.com>
1664
1665         PR preprocessor/22168:
1666         * doc/cpp.texi (Top): Update menu.
1667         (Alternatives to Wrapper #ifndef): New node.
1668         (Other Directives): Document deprecation.
1669         (Obsolete Features): Remove menu.
1670         (Assertions): Merge node into Obsolete Features.
1671         (Obsolete once-only headers): Move earlier; rename to Alternatives
1672         to Wrapper #ifndef.
1673         * doc/cppopts.texi: Update.
1674         * c.opt (Wdeprecated): Enable for C and ObjC.
1675         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
1676         (C++ Dialect Options): Move -Wno-deprecated from here to...
1677         (Warning Options): ... here.
1678
1679 2008-05-13  Richard Guenther  <rguenther@suse.de>
1680
1681         PR middle-end/36227
1682         * fold-const.c (fold_sign_changed_comparison): Do not allow
1683         changes in pointer-ness.
1684
1685 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
1686
1687         PR target/24713
1688         * config/sh/sh.c (sh_expand_prologue): Don't clear
1689         RTX_FRAME_RELATED_P for push insns.
1690
1691 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
1692
1693         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
1694
1695 2008-05-12  Anatoly Sokolov <aesok@post.ru>
1696
1697         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
1698         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
1699         Use 'machine->is_leaf' instead of 'leaf_func_p'.
1700
1701 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
1702
1703         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
1704         (*vec_concatv4sf_sse): This.
1705         (*sse2_concatv2si): Renamed to ...
1706         (*vec_concatv2si_sse2): This.
1707         (*sse1_concatv2si): Renamed to ...
1708         (*vec_concatv2si_sse): This.
1709         (*vec_concatv2di_rex): Renamed to ...
1710         (*vec_concatv2di_rex64): This.
1711         (*vec_concatv2si_sse4_1): New.
1712         (*vec_concatv2di_rex64_sse4_1): Likewise.
1713
1714 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
1715
1716         PR rtl-optimization/36111
1717         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
1718         that was created for swappable operands.
1719
1720 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
1721
1722         PR ada/36001
1723         * Makefile.in: Substitute GNATMAKE and GNATBIND.
1724         * configure.ac: Add call to ACX_PROG_GNAT.
1725
1726 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
1727
1728         * optc-gen.awk: Fix comment typo.
1729
1730 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1731
1732         * pretty-print.c (pp_integer_with_precision): Use
1733         HOST_LONG_LONG_FORMAT.
1734
1735 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
1736
1737         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
1738                 
1739 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
1740
1741         * config/i386/i386.c (bdesc_ptest): Removed.
1742         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
1743         (bdesc_args): Add __builtin_ia32_ptestz128,
1744         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
1745         (ix86_init_mmx_sse_builtins): Updated.
1746         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
1747         (ix86_expand_builtin): Updated.
1748
1749 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
1750
1751         * tree-cfg.c (valid_fixed_convert_types_p): New function.
1752         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
1753
1754 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
1755
1756         * value-prof.c (interesting_stringop_to_profile): Do not
1757         return early for BUILT_IN_MEMPCPY.
1758
1759 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
1760
1761         * calls.c (expand_call): Don't use callgraph to increase
1762         preferred_stack_boundary.
1763
1764         * cgraph.h (cgraph_rtl_info): Use unsigned on
1765         preferred_incoming_stack_boundary.
1766
1767         * final.c (rest_of_clean_state): Use unsigned on
1768         preferred_stack_boundary.
1769
1770 2008-05-09  Tom Tromey  <tromey@redhat.com>
1771
1772         PR preprocessor/22231:
1773         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
1774         proceeding.
1775
1776 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
1777
1778         PR tree-optimization/36129
1779         * tree-ssa-ccp.c: Include value-prof.h.
1780         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
1781         built-in function was folded to a constant.
1782         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
1783
1784 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
1785             Sebastian Pop  <sebastian.pop@amd.com>
1786
1787         * tree-scalar-evolution.c: Document instantiate_scev.
1788         (instantiate_parameters_1): Renamed instantiate_scev_1.
1789         Don't use the same loop for instantiation_loop and evolution_loop.
1790         (instantiate_scev): New.
1791         (instantiate_parameters): Moved...
1792         (resolve_mixers): Update call to instantiate_scev_1 to pass the
1793         same loop twice.  Maintains the semantics for this function.
1794         * tree-scalar-evolution.h (instantiate_scev): Declare.
1795         (instantiate_parameters): ...here.  Now static inline.
1796         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
1797         instead of resolve_mixers.
1798
1799 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
1800
1801         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
1802
1803 2008-05-09  Tomas Bily  <tbily@suse.cz>
1804
1805         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
1806         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
1807         * tree-ssa-structalias.c (get_constraint_for): Likewise.
1808         * c-common.c (c_common_truthvalue_conversion): Likewise.
1809         * tree-object-size.c (compute_object_offset): Likewise.
1810         * tree-inline.c (estimate_num_insns_1): Likewise.
1811         * varasm.c (const_hash_1, compare_constant, copy_constant)
1812         (compute_reloc_for_constant, output_addressed_constants)
1813         (initializer_constant_valid_p): Likewise.
1814         * c-omp.c (check_omp_for_incr_expr): Likewise.
1815         * gimplify.c (gimplify_expr): Likewise.
1816         * c-typeck.c (c_finish_return): Likewise.
1817         * tree-vectorizer.c (supportable_widening_operation)
1818         (supportable_narrowing_operation): Likewise.
1819         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
1820         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
1821         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
1822         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
1823         (descr_info_loc): Likewise.
1824         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
1825         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
1826         (fold_unary): Likewise.
1827         * builtins.c (get_pointer_alignment): Likewise.
1828         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
1829         (instantiate_parameters_1): Likewise.
1830         * tree.c (expr_align, stabilize_reference): Likewise.
1831         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
1832         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
1833         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
1834         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
1835         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
1836         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
1837         Likewise.
1838         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
1839         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
1840         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
1841         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
1842         (forward_propagate_comparison)
1843         (tree_ssa_forward_propagate_single_use_vars): Likewise.
1844         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
1845         * emit-rtl.c (component_ref_for_mem_expr)
1846         (set_mem_attributes_minus_bitpos): Likewise.
1847         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
1848         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
1849         Likewise.
1850         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
1851         (build_function_call, pointer_diff, build_compound_expr)
1852         (c_finish_return): Likewise.
1853         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
1854         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
1855         Likewise.
1856         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
1857         * expr.c (is_aligning_offset): Likewise.
1858         * tree-ssa-alias.c (is_escape_site): Likewise.
1859         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
1860         (check_all_va_list_escapes): Likewise.
1861         * tree-ssa-loop-ivopts.c (determine_base_object)
1862         (determine_common_wider_type): Likewise.
1863         * dojump.c (do_jump): Likewise.
1864         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
1865         * tree-gimple.c (is_gimple_cast): Likewise.
1866         * fold-const.c (decode_field_reference, )
1867         (fold_sign_changed_comparison, fold_unary, fold_comparison)
1868         (fold_binary): Likewise.
1869         * tree-ssa-alias-warnings.c (find_alias_site_helper)
1870         (already_warned_in_frontend_p): Likewise.
1871         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
1872         * tree.c (really_constant_p, get_unwidened): Likewise.
1873         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
1874         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
1875         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
1876         Likewise.
1877         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
1878         CONVERT_EXPR_P.
1879         (CONVERT_EXPR_P): Define.
1880         (CASE_CONVERT): Define.
1881         
1882 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
1883
1884         PR middle-end/36117
1885         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
1886         (delete_unmarked_insns): When deleting a call, call
1887         delete_unreachable_blocks.
1888         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
1889         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
1890
1891 2008-05-08  Richard Guenther  <rguenther@suse.de>
1892
1893         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
1894         (-ftree-salias): Likewise.
1895         (salias-max-implicit-fields): Remove param documentation.
1896         (salias-max-array-elements): Likewise.
1897         * tree-pass.h (pass_create_structure_vars): Remove.
1898         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
1899         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
1900         * tree-ssa-alias.c (create_structure_vars): Remove.
1901         (gate_structure_vars): Likewise.
1902         (pass_create_structure_vars): Likewise.
1903         (gate_build_alias): Likewise.
1904         (pass_build_alias): Adjust to run always and dump the function.
1905         * common.opt (ftree-salias): Hide.
1906         * passes.c (init_optimization_passes): Remove
1907         pass_create_structure_vars, adjust comment.
1908         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
1909         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
1910         * opts.c (decode_options): Do not set flag_tree_salias.
1911         (common_handle_option): Add OPT_ftree_salias to the backward
1912         compatibility section.
1913
1914 2008-05-08  Richard Guenther  <rguenther@suse.de>
1915
1916         * tree-flow-inline.h (var_can_have_subvars): Move ...
1917         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
1918         * tree-flow.h (var_can_have_subvars): Remove.
1919         (push_fields_onto_fieldstack): Remove.
1920         (sort_fieldstack): Likewise.
1921         (struct fieldoff): Move ...
1922         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
1923         alias_set and base_for_components fields.
1924         (sort_fieldstack): Make static.
1925         (push_fields_onto_fieldstack): Likewise.  Remove code that
1926         handles anything but RECORD_TYPEs.  Remove alias_set and
1927         base_for_components handling.
1928         (create_variable_info_for): Adjust.
1929
1930 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
1931
1932         * common.opt (Wframe-larger-than=): Shorten the help message
1933         to one line.
1934         * doc/invoke.texi (Wframe-larger-than=): Add more description.
1935
1936 2008-05-08  Rafael Espindola  <espindola@google.com>
1937
1938         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
1939         trap.
1940         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
1941         trap and that both operands are gimple values.
1942         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
1943         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
1944         is a fp operation.
1945
1946 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
1947
1948         * read-rtl.c (join_c_conditions): Return the first string if the
1949         two strings are equal.
1950
1951 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
1952
1953         * gensupport.h (pred_data): Add a "num_codes" field.
1954         (add_predicate_code): Declare.
1955         * gensupport.c (add_predicate_code): New function.
1956         (std_pred_table): Add an "allows_const_p" field.
1957         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
1958         Remove the (incomplete) list of such codes from the codes field.
1959         (init_predicate_table): Use add_predicate_code.  Add all
1960         RTX_CONST_OBJs if allows_const_p is true.
1961         * genrecog.c (process_define_predicate): Use add_predicate_code.
1962
1963 2008-05-08  David Daney  <ddaney@avtrex.com>
1964             Richard Sandiford  <rsandifo@nildram.co.uk>
1965         
1966         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
1967         special case of constant zero operands.
1968         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
1969         old and new values.  Special case constant zero values.
1970         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
1971         fails.
1972         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
1973         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
1974
1975 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
1976
1977         PR target/36090
1978         * simplify-rtx.c (simplify_plus_minus): Create CONST of
1979         similar RTX_CONST_OBJ before CONST_INT.
1980
1981 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
1982
1983         * stmt.c (expand_stack_restore): Change sa mode if needed.
1984
1985 2008-05-08  Richard Guenther  <rguenther@suse.de>
1986
1987         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
1988         return type to bool.
1989         (ix86_sol10_return_in_memory): Likewise.
1990         (ix86_i386elf_return_in_memory): Likewise.
1991         (ix86_i386interix_return_in_memory): Likewise.
1992         * config/i386/i386.c (ix86_return_in_memory): Likewise.
1993         (ix86_sol10_return_in_memory): Likewise.
1994         (ix86_i386elf_return_in_memory): Likewise.
1995         (ix86_i386interix_return_in_memory): Likewise.
1996
1997 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
1998
1999         PR bootstrap/36180
2000         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
2001         fndecl argument.
2002         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
2003         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
2004         declared in front.
2005
2006 2008-05-08  Richard Guenther  <rguenther@suse.de>
2007
2008         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
2009         * tree-data-ref.h (struct dr_alias): Remove subvars field.
2010         (DR_SUBVARS): Remove.
2011         * tree-dfa.c (dump_subvars_for): Remove.
2012         (debug_subvars_for): Likewise.
2013         (dump_variable): Do not dump subvars.
2014         (remove_referenced_var): Do not remove subvars.
2015         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
2016         (lookup_subvars_for_var): Remove.
2017         (get_subvars_for_var): Likewise.
2018         (get_subvars_at): Likewise.
2019         (get_first_overlapping_subvar): Likewise.
2020         (overlap_subvar): Likewise.
2021         * tree-flow.h (subvar_t): Remove.
2022         (struct var_ann_d): Remove subvars field.
2023         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
2024         argument.  Remove special handling of SFTs.
2025         (compute_tag_properties): Likewise.
2026         (set_initial_properties): Likewise.
2027         (compute_call_clobbered): Likewise.
2028         (count_mem_refs): Likewise.
2029         (compute_memory_partitions): Likewise.
2030         (compute_flow_insensitive_aliasing): Likewise.
2031         (setup_pointers_and_addressables): Likewise.
2032         (new_type_alias): Likewise.
2033         (struct used_part): Remove.
2034         (used_portions): Likewise.
2035         (struct used_part_map): Likewise.
2036         (used_part_map_eq): Likewise.
2037         (used_part_map_hash): Likewise.
2038         (free_used_part_map): Likewise.
2039         (up_lookup): Likewise.
2040         (up_insert): Likewise.
2041         (get_or_create_used_part_for): Likewise.
2042         (create_sft): Likewise.
2043         (create_overlap_variables_for): Likewise.
2044         (find_used_portions): Likewise.
2045         (create_structure_vars): Likewise.
2046         * tree.def (STRUCT_FIELD_TAG): Remove.
2047         * tree.h (MTAG_P): Adjust.
2048         (struct tree_memory_tag): Remove base_for_components and
2049         unpartitionable flags.
2050         (struct tree_struct_field_tag): Remove.
2051         (SFT_PARENT_VAR): Likewise.
2052         (SFT_OFFSET): Likewise.
2053         (SFT_SIZE): Likewise.
2054         (SFT_NONADDRESSABLE_P): Likewise.
2055         (SFT_ALIAS_SET): Likewise.
2056         (SFT_UNPARTITIONABLE_P): Likewise.
2057         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
2058         (union tree_node): Remove sft field.
2059         * alias.c (get_alias_set): Remove special handling of SFTs.
2060         * print-tree.c (print_node): Remove handling of SFTs.
2061         * tree-dump.c (dequeue_and_dump): Likewise.
2062         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
2063         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
2064         * tree-predcom.c (set_alias_info): Do not set subvars.
2065         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
2066         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
2067         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
2068         (add_vars_for_offset): Remove.
2069         (add_virtual_operand): Remove special handling of SFTs.
2070         (add_call_clobber_ops): Likewise.
2071         (add_call_read_ops): Likewise.
2072         (get_asm_expr_operands): Likewise.
2073         (get_modify_stmt_operands): Likewise.
2074         (get_expr_operands): Likewise.
2075         (add_to_addressable_set): Likewise.
2076         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
2077         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
2078         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
2079         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
2080         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
2081         (tree_node_structure): Likewise.
2082         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
2083         handling of SFTs.
2084         (find_what_p_points_to): Likewise.
2085
2086 2008-05-08  Sa Liu  <saliu@de.ibm.com>
2087
2088         * config/spu/spu.md: Fixed subti3 pattern.
2089
2090 2008-05-08  Richard Guenther  <rguenther@suse.de>
2091
2092         PR middle-end/36154
2093         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
2094         sure to create a representative for trailing arrays for PTA.
2095
2096 2008-05-08  Richard Guenther  <rguenther@suse.de>
2097
2098         PR middle-end/36172
2099         * fold-const.c (operand_equal_p): Two objects which types
2100         differ in pointerness are not equal.
2101
2102 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
2103
2104         * calls.c (compute_argument_block_size): Add argument tree fndecl.
2105         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
2106         (emit_library_call_value_1): Add new variable fndecl initialized by
2107         NULL_TREE. It should be the decl type of orgfun, but this information
2108         seems not to be available here, so it uses the default calling abi.
2109         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
2110         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
2111         by TARGET_RETURN_IN_MEMORY.
2112         * config/i386/i386-interix.h: Likewise.
2113         * config/i386/i386.h: Likewise.
2114         * config/i386/i386elf.h: Likewise.
2115         * config/i386/ptx4-i.h: Likewise.
2116         * config/i386/sol2-10.h: Likewise.
2117         * config/i386/sysv4.h: Likewise.
2118         * config/i386/vx-common.h: Likewise.
2119         * config/cris/cris.h: Removed #if 0 clause.
2120         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
2121         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
2122         argument.
2123         (ix86_sol10_return_in_memory): Likewise.
2124         (ix86_i386elf_return_in_memory): New.
2125         (ix86_i386interix_return_in_memory): New.
2126         * config/mt/mt-protos.h (mt_return_in_memory): New.
2127         * config/mt/mt.c: Likewise.
2128         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
2129         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
2130         * config/bfin/bfin.h: Likewise.
2131         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
2132         argument.
2133         * config/bfin/bfin.c: Likewise.
2134         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
2135         * config/alpha/unicosmk.h: Likewise.
2136         * config/i386/cygming.h: Likewise.
2137         * config/iq2000/iq2000.h: Likewise.
2138         * config/mips/mips.h: Likewise.
2139         * config/mn10300/mn10300.h: Likewise.
2140         * config/rs6000/rs6000.h: Likewise.
2141         * config/score/score.h: Likewise.
2142         * config/spu/spu.h: Likewise.
2143         * config/v850/v850.h: Likewise.
2144         * defaults.h: Likewise.
2145         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
2146         * expr.c (emit_block_move): Adjust use of
2147         OUTGOING_REG_PARM_STACK_SPACE.
2148         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
2149         OUTGOING_REG_PARM_STACK_SPACE.
2150         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
2151
2152 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
2153
2154         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
2155         on OMP_RETURN for OMP_FOR.
2156
2157         PR debug/35896
2158         * dwarf2out.c (dw_expand_expr, common_check): Removed.
2159         (fortran_common): New function.
2160         (gen_variable_die): Call fortran_common instead of common_check,
2161         adjust for it returning tree instead of rtx.  Formatting.
2162
2163 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
2164
2165         PR rtl/7335
2166         PR rtl/33826
2167         * see.c (see_copy_insn): Copy new pure const attributes for new call.
2168         * c-decl.c (merge_decls): Ditto.
2169         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
2170         to RTL_CONST_OR_PURE_CALL_P.
2171         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
2172         Initialized DECL_LOOPING_CONST_PURE.
2173         (process_call_operands): Set tree_side_effects properly.
2174         * tree.h (TREE_READONLY_DECL_P): Removed.
2175         (DECL_IS_PURE): Renamed to DECL_PURE_P.
2176         (DECL_LOOPING_OR_CONST_P): New macro.
2177         (struct tree_function_decl): Added looping_const_or_pure_p.
2178         (ECF_*) Renumbered.
2179         (ECF_LOOPING_OR_CONST_P): New macro.
2180         * rtlanal.c (pure_const_p): Removed.
2181         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
2182         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
2183         to RTL_CONST_CALL_P.
2184         * ipa-pure-const.c (pure_const_state_e): Added looping field.
2185         (check_decl, check_tree, check_call, scan_function): Initialize
2186         looping.
2187         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
2188         (static_execute): Set looping true for recursive functions.
2189         Undo setting state to IPA_NEITHER for recursive functions.
2190         * cse.c (cse_insn): 
2191         * ifcvt.c (noce_can_store_speculate_p): Changed
2192         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
2193         RTL_CONST_OR_PURE_CALL_P.
2194         * dse.c (scan_insn): Ditto.
2195         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
2196         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
2197         RTL_CONST_OR_PURE_CALL_P.
2198         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
2199         pure_call_p to RTL_CONST_CALL_P.
2200         * gimplify.c (gimplify_call_expr): Clear side effects for
2201         non-looping pure and constant calls.
2202         * calls.c (emit_call_1): Set rtl flags from ecf flags.
2203         (flags_from_decl_or_type): Set ecf flags from decl flags.
2204         (initialize_argument_information): Turn off
2205         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
2206         Change const to pure if callee_copies is true rather than just
2207         turning off const.
2208         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
2209         way of marking pure calls.
2210         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
2211         Remove hack that was supposed to fix pr7335 and remove old
2212         way of marking pure calls.
2213         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
2214         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
2215         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
2216         RTL_CONST_OR_PURE_CALL_P.
2217         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
2218         * loop-invariant.c (find_exits, find_invariant_bb): Changed
2219         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
2220         * sched-deps.c (schedule_analyze): Ditto.
2221         * rtl.h (struct rtx_def): Use call field, unchanging field, and
2222         return_val field of calls to represent pure and const function info.
2223         (CONST_OR_PURE_CALL_P): Deleted macro.
2224         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
2225         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
2226         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
2227         TREE_READONLY.
2228         * tree-optimize.c (execute_fixup_cfg): Added test for
2229         ECF_LOOPING_CONST_OR_PURE.
2230         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
2231         DECL_PURE_P.
2232         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
2233         effects for looping pure or const calls.
2234         (verify_gimple_expr): Added verification code. 
2235         * config/alpha/alpha.c (alpha_legitimize_address,
2236         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
2237         RTL_CONST_CALL_P.
2238         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
2239         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
2240         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
2241         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
2242         RTL_CONST_OR_PURE_CALL_P.
2243         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
2244         and const calls to be deleted.
2245
2246 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
2247
2248         PR target/35714
2249         * config/i386/mmx.md (mmx_subv2sf3): New expander.
2250         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
2251         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
2252         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2253         to handle nonimmediate operands.
2254         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
2255         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
2256         to handle nonimmediate operands.
2257         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
2258         (mmx_pmulhrwv4hi3): New expander.  Use
2259         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2260         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
2261         (sse2_umulv1siv1di3): New expander.  Use
2262         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2263         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
2264         (mmx_eq<mode>3): New expander.  Use
2265         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2266         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
2267         (mmx_uavgv8qi3): New expander.  Use
2268         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2269         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
2270         (mmx_uavgv4hi3): New expander.  Use
2271         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2272
2273         * config/i386/sse.md
2274         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
2275         to handle nonimmediate operands.
2276         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
2277         to handle nonimmediate operands.
2278         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
2279         to handle nonimmediate operands.
2280         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
2281         to handle nonimmediate operands.
2282         (sse2_unpckhpd_exp): New expander.  Use
2283         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2284         (sse2_unpcklpd_exp): New expander.  Use
2285         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2286         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
2287         to handle nonimmediate operands.
2288         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
2289         to handle nonimmediate operands.
2290         (*sse2_<plusminus_insn><mode>3): Rename from
2291         sse2_<plusminus_insn><mode>3 insn pattern.
2292         (sse2_<plusminus_insn><mode>3): New expander.  Use
2293         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2294         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
2295         (sse2_umulv2siv2di3): New expander.  Use
2296         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2297         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
2298         (sse4_1_mulv2siv2di3): New expander.  Use
2299         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2300         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
2301         (sse2_pmaddwd): New expander.  Use
2302         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2303         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
2304         (sse2_eq<mode>3): New expander.  Use
2305         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2306         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
2307         (sse4_1_eqv2di3): New expander.  Use
2308         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2309         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2310         (sse2_uavgv16qi3): New expander.  Use
2311         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2312         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2313         (sse2_uavgv16qi3): New expander.  Use
2314         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2315         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
2316         (sse2_uavgv8hi3): New expander.  Use
2317         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2318         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
2319         (ssse3_pmulhrswv8hi3): New expander.  Use
2320         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2321         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
2322         (ssse3_pmulhrswv4hi3): New expander.  Use
2323         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2324
2325         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
2326         (<sse>_vmmul<mode>3): Ditto.
2327         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
2328         (divv2df3): Ditto.
2329         (ssse3_pmaddubsw128): Use register_operand for operand 1.
2330         (ssse3_pmaddubsw): Ditto.
2331
2332         * config/i386/i386.c (struct_builtin_description)
2333         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
2334         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
2335         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
2336         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
2337         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
2338         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
2339         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
2340         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
2341         (ix86_fixup_binary_operands): Assert that src1
2342         and src2 must have the same mode when swapped.
2343         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
2344         and ix86_binary_operator_ok.  Do not force operands in registers
2345         when optimizing.
2346
2347 2008-05-07  Jan Hubicka  <jh@suse.cz>
2348
2349         * cgraph.c (dump_cgraph_node): Update.
2350         * cgraph.h (cgraph_local_info): Break out inline summary.
2351         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
2352         hook.
2353         * ipa-inline (inline_summary): New accestor function.
2354         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
2355         cgraph_decide_inlining, compute_inline_parameters): Update.
2356         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
2357
2358 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
2359
2360         Cleanup ColdFire scheduling support and add V4 pipeline model.
2361
2362         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
2363         (define_attr cpu): Add cfv4 value.
2364         (define_attr type, define_attr type1): Merge into a single 'type'
2365         attribute.  Update all uses.
2366         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
2367         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
2368         Update all uses.
2369         (define_attr opx_mem, define_attr opy_mem): Remove.
2370         (define_attr op_mem): Clean up, update comment.
2371         (define_attr size): Use specific values instead of general int.
2372         (define_attr guess, define_attr split): Remove.  Update all uses.
2373         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
2374         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
2375         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
2376         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
2377         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
2378         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
2379         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
2380         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
2381         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
2382         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
2383         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
2384         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
2385         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
2386         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
2387         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
2388         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
2389         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
2390         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
2391         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
2392         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
2393         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
2394         Update or set attributes.
2395         (stack_tie): New fake instruction.
2396
2397         * config/m68k/m68k.h (TUNE_CFV4): New macro.
2398         (m68k_sched_attr_size): Update declaration.
2399         (m68k_sched_attr_type2): Remove.
2400         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
2401         Declare new bypass predicates.
2402
2403         * config/m68k/m68k.c (m68k_sched_issue_rate,
2404         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
2405         implementations.
2406         (TARGET_SCHED_ISSUE_RATE,
2407         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
2408         (override_options): Handle scheduling for ColdFire V4 core.
2409         (m68k_expand_prologue): Emit stack_tie.
2410         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
2411         'OP_TYPE_FPN'.  Update all uses.
2412         (sched_guess_p): Remove.
2413         (sched_address_type): Handle symbolic addresses.
2414         (sched_get_operand): New static function.
2415         (sched_operand_type): Merge into sched_attr_op_type.
2416         (sched_attr_op_type): Handle FP registers, handle quick constants,
2417         update.
2418         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
2419         (m68k_sched_attr_size): Update.  Move logic to ...
2420         (sched_get_attr_size_int): New static function.
2421         (sched_get_opxy_mem_type): New static function.
2422         (m68k_sched_attr_op_mem): Update.
2423         (m68k_sched_attr_type2): Remove.
2424         (sched_cfv4_bypass_data): New static variable.
2425         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
2426         (m68k_sched_issue_rate): Implement scheduler hook.
2427         (struct _sched_ib: enabled_p): New field.
2428         (m68k_sched_variable_issue): Update.  Handle V4.
2429         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
2430         sched_dump_class_func_t, sched_dump_split_class,
2431         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
2432         sched_dump_dfa_class, m68k_sched_dump): Remove.
2433         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
2434         hook.
2435         (m68k_sched_init_global): Remove statisctics dumping, introduce
2436         sanity check that all instructions have pipeline reservations.  Handle
2437         ColdFire V4 core.
2438         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
2439         Handle ColdFire V4 core.
2440         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
2441         New static functions.
2442         (m68k_sched_address_bypass_p): New bypass predicate.
2443         (sched_get_indexed_address_scale): New static function.
2444         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
2445
2446         * cf.md: Update comments.
2447         (define_attr type2): Remove.  Use 'type' attribute instead.
2448         Update all uses.
2449         (cf_ib): Rename to cfv123_ib.  Update all uses.
2450         (cf_oep): Rename to cfv123_oep.  Update all uses.
2451         (cf_chr): Rename to cfv123_chr.  Update all uses.
2452         (cf_mem): Rename to cfv123_mem.  Update all uses.
2453         (cf_mac): Move to more appropriate place.
2454         (cfv123_guess): New automaton and cpu_unit.
2455         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
2456         Update uses of 'size' attribute.  Handle before reload scheduling.
2457         (cfv123_guess): New dummy reservation for unhandled instructions.
2458         (cfv4_*): Pipeline description of ColdFire V4 core.
2459         (ignore): New reservation to handle 'ignore' type.
2460
2461 2008-05-07  Ian Lance Taylor  <iant@google.com>
2462
2463         PR middle-end/36013
2464         * gimplify.c (find_single_pointer_decl_1): Don't look through
2465         indirections.
2466         (find_single_pointer_decl): Adjust comments.
2467
2468 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
2469
2470         PR middle-end/36137
2471         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
2472         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
2473
2474         PR middle-end/36106
2475         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
2476         integral type rather than floating point, then VIEW_CONVERT_EXPR
2477         to the floating point type.
2478
2479 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
2480
2481         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
2482         TFmode op0 to register.
2483
2484 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
2485
2486         * c-decl.c (grokdeclarator): Comment typo.
2487
2488 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
2489
2490         * tree-flow.h: Remove prototype for computed_goto_p.
2491         * tree-cfg.c (computed_goto_p): Make static.
2492
2493 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
2494
2495         PR target/35657
2496         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
2497         (contains_aligned_value_p): This.  Handle _Decimal128.
2498         (ix86_function_arg_boundary): Only align _Decimal128 to its
2499         natural boundary and handle it properly.
2500
2501 2008-05-06  Martin Jambor  <mjambor@suse.cz>
2502
2503         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
2504         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
2505         (ipcp_method_set_orig_node): Removed.
2506         (ipcp_cval_get_cvalue_type): Removed.
2507         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
2508         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
2509         (ipcp_cval_set_cvalue_type): Removed.
2510         (ipcp_cval_get_cvalue): Removed.
2511         (ipcp_cval_set_cvalue): Removed.
2512         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
2513         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
2514         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
2515         (ipcp_cval_meet): Renamed to ipa_lattice_meet
2516         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
2517         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
2518         (ipcp_get_ith_lattice): Changed parameters.
2519         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
2520         (ipcp_lattice_from_jfunc): Changed parameters.
2521         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
2522         (ipcp_method_cval_print): Added temporary variable info.
2523         (ipcp_redirect): Removed already unused local variable caller.
2524         (ipcp_redirect): New temporary variable orig_callee_info
2525         (ipcp_redirect): Removed newly unused local variable callee.
2526         (ipcp_redirect): Removed (a bit confusing) local variable type.
2527         (ipcp_insert_stage): Added local variable info.
2528         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
2529         renamed too
2530         (ipcp_formal_create): Removed.
2531         (ipcp_method_cval_set): Removed.
2532         (ipcp_propagate_stage): Renamed lattice variables.
2533         (ipcp_method_cval_set_cvalue_type): Removed.
2534         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
2535         (ipcp_print_all_lattices): Changed printed strings to refer to 
2536         lattices rather than cvals.
2537         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
2538         (ipcp_propagate_const): Changed formal parameters.
2539         (build_const_val): Changed formal parameters.
2540         (ipcp_insert_stage): Removed useless variable cvalue
2541         (build_const_val): Changed formal parameters.
2542         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
2543         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
2544         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
2545         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
2546         (ipcp_print_func_profile_counts): Changed string from "method" to 
2547         "function"
2548         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
2549         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
2550         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
2551         (ipcp_structures_print): Renamed to ipcp_print_all_structures
2552         (ipcp_profile_print): Renamed to ipcp_print_profile_data
2553         (ipcp_lat_is_const): Changed parameters and made inline.
2554         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
2555         (ipcp_redirect): Renamed to ipcp_need_redirect_p
2556         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
2557         the predicate condition directly
2558         (ipcp_propagate_stage): Added local variable args. Removed local
2559         variable callee.  (Both are mere code simplifications.)
2560         (ipcp_method_dont_insert_const): Renamed to
2561         ipcp_node_not_modifiable_p.
2562         (ipcp_node_not_modifiable_p): Made inline.
2563         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
2564         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
2565         (ipcp_print_all_lattices): Removed variable cvalue
2566         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
2567         Updated comments.
2568
2569 2008-05-06  Olivier Hainque  <hainque@adacore.com>
2570
2571         * tree-sra.c (try_instantiate_multiple_fields): Early return
2572         if field has POINTER_TYPE.
2573
2574 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
2575
2576         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
2577         by using 'q' specifier for instruction.
2578         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
2579
2580 2008-05-06  Anatoly Sokolov <aesok@post.ru>
2581
2582         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
2583         Change mode of zero_extract from QImode to HImode.
2584         (sign bit tests peepholes): (Ditto.).
2585
2586 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
2587
2588         * config/i386/mmx.md: Remove double backslashes from asm templates.
2589         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
2590         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2591         to handle nonimmediate operands.
2592         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
2593         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2594         to handle nonimmediate operands.
2595         (*mmx_<code>v2sf3_finite): New insn pattern.
2596         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
2597         (mmx_<code>v2sf3): New expander.  Use
2598         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2599         (mmx_<plusminus_insn><mode>3): New expander.  Use
2600         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2601         (*mmx_<plusminus_insn><mode>3): New insn pattern.
2602         (mmx_add<mode>3): Removed.
2603         (mmx_ssadd<mode>3): Ditto.
2604         (mmx_usadd<mode>3): Ditto.
2605         (mmx_sub<mode>3): Ditto.
2606         (mmx_sssub<mode>3): Ditto.
2607         (mmx_ussub<mode>3): Ditto.
2608         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
2609         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
2610         to handle nonimmediate operands.
2611         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
2612         insn pattern.
2613         (mmx_smulv4hi3_highpart): New expander.  Use
2614         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2615         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
2616         insn pattern.
2617         (mmx_umulv4hi3_highpart): New expander.  Use
2618         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2619         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
2620         (mmx_<code>v4hi3): New expander.  Use
2621         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2622         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
2623         (mmx_<code>v8qi3): New expander.  Use
2624         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2625         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
2626         (mmx_<code><mode>3): New expander.  Use
2627         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2628
2629 2008-05-05  Jan Hubicka  <jh@suse.cz>
2630
2631         PR tree-optimization/36118
2632         * passes.c (pass_init_dump_file): Fix dump header.
2633
2634 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2635
2636         PR middle-end/36141
2637         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
2638         VCE for function decls.
2639
2640 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2641
2642         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
2643
2644 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2645
2646         * config/i386/i386.md (sat_plusminus): New.
2647         (plusminus_insn): Likewise.
2648         (plusminus_mnemonic): Likewise.
2649         (addsub): Removed.
2650         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
2651         (*<addsub><mode>3_cc_overflow): Renamed to ...
2652         (*<plusminus_insn><mode>3_cc_overflow): This.
2653         (*<addsub>si3_zext_cc_overflow): Renamed to ...
2654         (*<plusminus_insn>si3_zext_cc_overflow): This.
2655
2656         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
2657         (<plusminus_insn><mode>3): This.
2658         (*<addsub><mode>3): Renamed to ...
2659         (*<plusminus_insn><mode>3): This.
2660         (<sse>_vm<addsub><mode>3): Renamed to ...
2661         (<sse>_vm<plusminus_insn><mode>3): This.
2662         (sse3_h<addsub>v4sf3): Renamed to ...
2663         (sse3_h<plusminus_insn>v4sf3): This.
2664         (sse3_h<addsub>v2df3): Renamed to ...
2665         (sse3_h<plusminus_insn>v2df3): This.
2666         (<plusminus_insn><mode>3): New.
2667         (*<plusminus_insn><mode>3): Likewise.
2668         (sse2_<plusminus_insn><mode>3): Likewise.
2669         (add<mode>): Removed.
2670         (*add<mode>3): Likewise.
2671         (sse2_ssadd<mode>3): Likewise.
2672         (sse2_usadd<mode>3): Likewise.
2673         (sub<mode>3): Likewise.
2674         (*sub<mode>3): Likewise.
2675         (sse2_sssub<mode>3): Likewise.
2676         (sse2_ussub<mode>3): Likewise.
2677
2678 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
2679
2680         * gthr-single.h: Add in required interface elements as per gthr.h.
2681         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
2682         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
2683         Generalize UNUSED macro. 
2684         (__gthread_once): Add.
2685         (__gthread_key_create): Add.
2686         (__gthread_key_delete): Add.
2687         (__gthread_getspecific): Add.
2688         (__gthread_setspecific): Add.
2689         
2690 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
2691
2692         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
2693         the same size types for the indirect reference on the rhs, then
2694         create a VCE.
2695
2696 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
2697
2698         * config/i386/i386.md
2699         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
2700         one insn template instead of template series.
2701         (*xordi_1_rex64): Ditto.
2702         (*xordi_2_rex64): Ditto.
2703
2704 2008-05-05  Ira Rosen  <irar@il.ibm.com>
2705
2706         PR tree-optimization/36119
2707         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
2708         in case of SLP.
2709
2710 2008-06-04  Jan Hubicka  <jh@suse.cz>
2711
2712         tree-optimization/36100
2713         * tree-pass.h (pass_O0_always_inline): Declare.
2714         * ipa-inline.c (inline_transform): Remove dead code.
2715         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
2716         pass_O0_always_inline): New.
2717         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
2718
2719 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
2720
2721         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
2722         mnemonic in this_param move for TARGET_64BIT.
2723
2724 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
2725
2726         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
2727         (*strmovsi_rex_1): Ditto.
2728         (*strsetsi_1): Ditto.
2729         (*strsetsi_rex_1): Ditto.
2730
2731         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
2732         adddicc expanders using SWI mode iterator.
2733
2734 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
2735
2736         PR target/36121
2737         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
2738         argument handling.
2739
2740 2008-05-04  David S. Miller  <davem@davemloft.net>
2741
2742         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
2743         (sparc*-*-linux*): Use linux.h in tm_file.
2744         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
2745         compiler defaulting to 32-bit.
2746         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
2747         no longer needed.
2748         * config/sparc/linux.h: Remove definitions now obtained
2749         properly from linux.h
2750         * config/sparc/linux64.h: Likewise.
2751         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
2752         don't want this setting for 32-bit builds in a biarch compiler.
2753         * doc/install.texi: Add sparc-linux to list of targets
2754         supporting --enable-targets=all.
2755
2756 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
2757
2758         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
2759
2760 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
2761
2762         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
2763         after V4SI_FTYPE_V8HI.
2764         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
2765         case V4SI_FTYPE_V2DF.
2766
2767 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
2768
2769         * doc/invoke.texi (max-flow-memory-locations): Removed.
2770         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
2771         
2772 2008-05-03  Richard Guenther  <rguenther@suse.de>
2773
2774         PR middle-end/34973
2775         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
2776
2777 2008-05-02  David S. Miller  <davem@davemloft.net>
2778
2779         * config.gcc (need_64bit_hwint): Document libcpp dependency.
2780
2781 2008-05-02  Simon Baldwin <simonb@google.com>
2782
2783         PR bootstrap/36108
2784         * c-common.h (warn_array_subscript_range): Removed.
2785         * c-common.c (warn_array_subscript_range): Ditto.
2786         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
2787         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
2788
2789 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
2790
2791         * config/i386/i386.c (ix86_special_builtin_type): New.
2792         (bdesc_special_args): Likewise.
2793         (ix86_expand_special_args_builtin): Likewise.
2794         (ix86_init_mmx_sse_builtins): Updated.
2795         (ix86_expand_builtin): Updated.
2796         (ix86_expand_store_builtin): Removed.
2797         (ix86_expand_unop_builtin): Likewise.
2798
2799         * config/i386/mm3dnow.h (__v2sf): Moved to ...
2800         * config/i386/mmintrin.h (__v2sf): Here.
2801
2802         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
2803         const __v2sf.
2804         (_mm_loadl_pi): Likewise.
2805         (_mm_storeh_pi): Replace __v2si with __v2sf.
2806         (_mm_storel_pi): Likewise.
2807
2808         * doc/extend.texi: Correct __builtin_ia32_loadhps,
2809         __builtin_ia32_loadlps, __builtin_ia32_storehps,
2810         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
2811         __builtin_ia32_loadlpd.
2812
2813 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
2814
2815         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
2816         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
2817         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
2818         (ix86_init_mmx_sse_builtins): Updated.
2819         (ix86_expand_args_builtin): Likewise.
2820         (ix86_expand_builtin): Likewise.
2821         (ix86_expand_unop1_builtin): Renamed to ...
2822         (ix86_expand_unop_vec_merge_builtin): This.
2823
2824 2008-05-01  Jan Hubicka  <jh@suse.cz>
2825
2826         PR bootstrap/36100
2827         * ipa-inline.c (inline_generate_summary): Make static.
2828         (inline_transform): Do not call inlining at -O0; make static.
2829         * passes.c (execute_todo): Add sanity check.
2830         (execute_one_ipa_transform_pass): Execute proper flags.
2831
2832 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
2833
2834         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
2835         (DECL_NONADDRESSABLE_P): Likewise.
2836         * alias.c (record_component_aliases): Fix comment.
2837
2838 2008-05-01  Simon Baldwin <simonb@google.com>
2839
2840         * c-common.h (warn_array_subscript_range): New function.
2841         * c-common.c (warn_array_subscript_range): Ditto.
2842         * tree-vrp.c (check_array_ref): Corrected code to agree with
2843         comment, ignoring only arrays of size 0 or size 1.
2844         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
2845
2846 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2847
2848         * config/i386/i386.c (ix86_builtin_type): Replace
2849         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
2850         (bdesc_args): Updated.
2851         (ix86_init_mmx_sse_builtins): Likewise.
2852         (ix86_expand_args_builtin): Likewise.
2853
2854         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
2855         with __v1di.
2856
2857         * doc/extend.texi: Correct __builtin_ia32_palignr.
2858
2859 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2860
2861         PR target/36095
2862         * config/i386/i386.c (bdesc_crc32): Removed.
2863         (ix86_expand_crc32): Likewise.
2864         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
2865         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
2866         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
2867         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
2868         UINT_FTYPE_UINT_UCHAR.
2869         (bdesc_args): Updated. Add crc32 builtins.
2870         (ix86_init_mmx_sse_builtins): Updated.
2871         (ix86_expand_args_builtin): Updated to support subreg.
2872
2873         * doc/extend.texi: Correct __builtin_ia32_crc32di.
2874
2875 2008-05-01  Jan Hubicka  <jh@suse.cz>
2876
2877         * tree-pass.h (opt_pass): Add IPA_PASS.
2878         (varpool_node, cgraph_node): Forward declare.
2879         (ipa_opt_pass): Define.
2880         (pass_ipa_inline): Turn into ipa_opt_pass.
2881         (pass_apply_inline): Remove.
2882         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
2883         (apply_inline): Turn into ....
2884         (inline_transform): ... this one.
2885         (inline_generate_summary): New function.
2886         (pass_apply_inline): Remove.
2887         * function.h (ipa_opt_pass): Forward declare structure; typedef;
2888         vector.
2889         (struct function): Add ipa_transforms_to_apply.
2890         * passes.c (register_one_dump_file): Work on IPA_PASS.
2891         (init_optimization_passes): Remove pass_inline_parameters and
2892         pass_apply_inline.
2893         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
2894         (execute_one_pass) ... here; apply transforms when possible.
2895         (add_ipa_transform_pass, execute_ipa_summary_asses,
2896         execute_one_ipa_transform_pass): New.
2897         (execute_ipa_pass_list): Update for IPA_PASS type.
2898
2899 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2900
2901         * config/i386/i386.c (ix86_builtin_type): Add
2902         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
2903         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
2904         (bdesc_args): Add SSE4a builtins.
2905         (ix86_init_mmx_sse_builtins): Updated.
2906         (ix86_expand_args_builtin): Likewise.
2907         (ix86_expand_builtin): Likewise.
2908
2909 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2910
2911         * config/i386/i386.c (ix86_builtin_type): Add
2912         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
2913         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
2914         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
2915         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
2916         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
2917         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
2918         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
2919         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
2920         and DI_FTYPE_DI_DI_INT.
2921         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
2922         (ix86_init_mmx_sse_builtins): Updated.
2923         (ix86_expand_args_builtin): Likewise.
2924         (ix86_expand_builtin): Likewise.
2925         (ix86_expand_binop_imm_builtin): Removed.
2926
2927         * doc/extend.texi: Correct __builtin_ia32_palignr128.
2928
2929 2008-04-30  Richard Guenther  <rguenther@suse.de>
2930
2931         PR tree-optimization/32921
2932         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
2933
2934 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
2935
2936         * config/arm/arm.c (arm_unwind_emit): Use
2937         crtl->all_throwers_are_sibcalls instead of
2938         cfun->all_throwers_are_sibcalls.
2939         (arm_output_fn_unwind): Likewise.
2940         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
2941         instead of cfun->uses_pic_offset_table.
2942         (frv_expand_prologue): Likewise.
2943         (frv_frame_pointer_required): Likewise.
2944         (frv_expand_fdpic_call): Likewise.
2945         (frv_emit_movsi): Likewise.
2946         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
2947         cfun->returns_pcc_struct instead of
2948         current_function_returns_pcc_struct.
2949         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
2950         instead of cfun->calls_eh_return.
2951         (m32c_pushm_popm): Likewise.
2952         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
2953         "extern" declaration.
2954
2955 2008-04-30  Richard Guenther  <rguenther@suse.de>
2956
2957         PR tree-optimization/21636
2958         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
2959         constant address.
2960         (evaluate_stmt): Print the likely value.
2961         (ccp_visit_stmt): Avoid excessive vertical spacing.
2962
2963 2008-04-30  Rafael Espindola  <espindola@google.com>
2964
2965         * builtins.c (fold_call_expr): Return realret.
2966         * tree-ssa-threadedge.c
2967         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
2968         __builtin_object_size.
2969
2970 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
2971
2972         * gcc.c (wrapper_string): New variable.
2973         (insert_wrapper): New function.
2974         (execute): New option -wrapper.
2975         * doc/invoke.texi (Overall Options): New driver option -wrapper.
2976
2977 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
2978
2979         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
2980         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
2981         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
2982         from...
2983         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
2984         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
2985         config/rs6000/e500crtres64gprctr.asm,
2986         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
2987         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
2988         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
2989         config/rs6000/e500crtsav64gprctr.asm,
2990         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
2991         config/rs6000/e500crtsavg64gprctr.asm: New files.
2992         * config/rs6000/t-ppccomm: Add build rules for new files.
2993         (LIB2FUNCS_STATIC_EXTRA): Add new files.
2994         * config/rs6000/t-netbsd: Add build rules for new files.
2995         (LIB2FUNCS_STATIC_EXTRA): New variable.
2996         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
2997         (CRTSAVRES_DEFAULT_SPEC): Likewise.
2998         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
2999
3000 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
3001
3002         * config/i386/i386.c (ix86_builtin_type): Add
3003         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
3004         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
3005         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
3006         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
3007         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
3008         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
3009         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
3010         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
3011         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
3012         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
3013         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
3014         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
3015         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
3016         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
3017         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
3018         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
3019         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
3020         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
3021         V1DI_FTYPE_V2SI_V2SI.
3022         (bdesc_2arg): Moved to ...
3023         (bdesc_args): Here.
3024         (ix86_init_mmx_sse_builtins): Updated.
3025         (ix86_expand_args_builtin): Updated.  Take a pointer
3026         to const struct builtin_description.  Handle comparison
3027         builtin functions.
3028         (ix86_expand_sse_compare): Take a new argument for swapping operands.
3029         (ix86_expand_builtin): Updated.
3030
3031         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
3032         (ssse3_pmaddubsw128): This.
3033         (ssse3_pmaddubswv4hi3): Renamed to ...
3034         (ssse3_pmaddubsw): This.
3035
3036         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
3037         (__builtin_ia32_packssdw128): Likewise.
3038         (__builtin_ia32_packuswb128): Likewise.
3039         (__builtin_ia32_pmaddubsw): Likewise.
3040         (__builtin_ia32_pmaddubsw128): Likewise.
3041
3042 2008-04-30  Richard Guenther  <rguenther@suse.de>
3043
3044         PR tree-optimization/14847
3045         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
3046         (recognize_bits_test): Use it.
3047         (recognize_single_bit_test): Likewise.
3048
3049 2008-04-30  Martin Jambor  <mjambor@suse.cz>
3050
3051         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
3052         instead of setting number of formal parameters to zero.
3053         (ipcp_init_stage): Do not set the number of actual parameters to zero 
3054         either.
3055         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
3056         which are called with variable number of arguments.
3057         (ipcp_insert_stage): Explicitely skipping all nodes which are
3058         called with variable number of arguments.
3059         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
3060         number of parameters.
3061
3062         * ipa-prop.h (struct ipa_node_params): Added flag
3063         called_with_var_arguments
3064         (ipa_set_param_count): Added.  Changed sole setter to use it.
3065         (ipa_get_param_count): Added.  All readers of param_count
3066         converted to use it instead.
3067         (ipa_set_called_with_variable_arg): Added.
3068         (ipa_is_called_with_var_arguments): Added.
3069         (ipa_get_ith_param): Added.  All readers of param_decls converted
3070         to use it instead.
3071         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
3072         changed to use it. 
3073         (ipa_get_cs_argument_count): Added, all readers of argument_count
3074         changed to cal it.
3075         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
3076         to use it.
3077         
3078         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
3079         (struct ipcp_lattice): Renamed cval_type to type
3080         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
3081
3082         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
3083         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
3084         (ipcp_insert_stage): Changed the type of variable cvalue to tree
3085         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
3086         (build_const_val): Changed the type of parameter cvalue to tree
3087         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
3088         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
3089         
3090         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
3091         constant 
3092
3093         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
3094         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
3095         (ipa_add_method): Renamed to ipa_push_func_to_list
3096         (ipa_remove_method): Renamed to ipa_pop_func_from_list
3097         (ipa_callsite_param_count): Removed.
3098         (ipa_callsite_param_count_set): Removed.
3099         (ipa_callsite_param): Removed.
3100         (ipa_callsite_callee): Removed.
3101         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
3102         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
3103         (ipa_method_formal_count): Removed.
3104         (ipa_method_formal_count_set): Removed.
3105         (ipa_method_get_tree): Removed.
3106         (ipa_method_tree_map_create): Removed.
3107         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
3108         (ipa_create_param_decls_array): Creates the array itself
3109         (ipa_create_param_decls_array): Temporary variable info instead of 
3110         a few dereferences.
3111         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
3112         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
3113         (get_type): Removed.
3114         (ipa_jf_get_info_type): Removed.
3115         (ipa_node_create): Renamed to ipa_create_node_params
3116         (ipa_free): Renamed to ipa_free_all_node_params
3117         (ipa_nodes_create): Renamed to ipa_create_all_node_params
3118         (ipa_edges_create): Renamed to ipa_create_all_edge_args
3119         (ipa_edges_free): Renamed to ipa_free_all_edge_args
3120         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
3121         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
3122         ipa_free_all_edge_args
3123         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
3124         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
3125         (ipa_create_methodlist_node): Removed.
3126         (ipa_methodlist_method): Removed.
3127         (ipa_methodlist_method_set): Removed.
3128         (ipa_methodlist_next_method): Removed.
3129         (ipa_methodlist_next_method_set): Removed.
3130         (ipa_method_is_modified): Removed.
3131         (ipa_method_modify_create): Removed.
3132         (ipa_method_modify_init): Temporary variable info instead of a few 
3133         dereferences.
3134         (ipa_detect_param_modifications): Temporary variable info instead of 
3135         a few dereferences.
3136         (ipa_compute_jump_functions): Temporary variable info instead of 
3137         a few dereferences.
3138         (ipa_method_modify_set): Removed.
3139         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
3140         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
3141         than craph_node as the first parameter.
3142         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
3143         (ipa_method_modify_init): Removed.
3144         (ipa_compute_jump_functions): Added a temp variable instead of 
3145         repeatadly dereferencing the cgraph_edge.aux pointer
3146         (ipa_callsite_param_set_type): Removed.
3147         (ipa_compute_jump_functions): i renamed to index and moved to 
3148         an inner block
3149         (ipa_callsite_param_set_info_type_formal): Removed.
3150         (ipa_callsite_param_set_info_type): Removed.
3151         (ipa_callsite_param_map_create): Removed.
3152         (ipa_callsite_tree): Removed.
3153         (ipa_callsite_caller): Removed.
3154         (ipa_pop_func_from_list): return_method removed to return_func
3155
3156         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
3157         prefixed all values with IPA_. Changed all users.
3158         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
3159         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
3160         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
3161         (union parameter_info): Renamed to jump_func_value.
3162         (union jump_func_value): Renamed value to constant
3163         (struct ipa_jump_func): Renamed info_type to value
3164         (struct ipa_node): Renamed to ipa_node_params
3165         (struct ipa_node_params): Renamed ipa_arg_num to param_count
3166         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
3167         (struct ipa_node_params): Renamed ipa_mod to modified_flags
3168         (struct ipa_edge): Renamed to ipa_edge_args
3169         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
3170         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
3171         (struct ipa_methodlist): Renamed to ipa_func_list
3172         (struct ipa_func_list): method_p renamed to node, next_method
3173         renamed to next
3174         (ipa_methodlist_p): Removed, switched all users to struct pointer
3175         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
3176
3177 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
3178
3179         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
3180         (rs6000_emit_epilogue): Use backchain to restore only when we
3181         have a large frame.  Make use of frame pointer to restore if we
3182         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
3183
3184 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
3185
3186         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
3187         Add mode to zero_extract.
3188         (sign bit tests peepholes): (Ditto.).
3189
3190 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
3191
3192         * config/i386/i386.c (ix86_builtins): Replace Prescott New
3193         Instructions in comments with SSE3.
3194         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
3195         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
3196         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
3197         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
3198         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
3199         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
3200         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
3201         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
3202         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
3203         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
3204         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
3205         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
3206         (bdesc_sse_args): Renamed to ...
3207         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
3208         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
3209         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
3210         IX86_BUILTIN_FABSQ.
3211         (bdesc_1arg): Moved to ...
3212         (bdesc_args): Here.
3213         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
3214         Instructions in comments with SSE3.
3215         (ix86_expand_sse_operands_builtin): Renamed to ...
3216         (ix86_expand_args_builtin): This.  Updated.
3217         (ix86_expand_unop1_builtin): Update comments.
3218         (ix86_expand_builtin): Updated.
3219
3220 2008-04-29  Richard Guenther  <rguenther@suse.de>
3221
3222         PR tree-optimization/36078
3223         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
3224         Update virtual SSA form after cleaning up the CFG.
3225
3226 2008-04-29  Richard Guenther  <rguenther@suse.de>
3227
3228         PR middle-end/15255
3229         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
3230
3231 2008-04-29  Richard Guenther  <rguenther@suse.de>
3232
3233         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
3234         (compute_may_aliases): Do not call finalize_ref_all_pointers.
3235         (compute_flow_insensitive_aliasing): Do not treat
3236         PTR_IS_REF_ALL pointers special.
3237         (get_smt_for): Likewise.
3238         (may_alias_p): Re-structure.
3239         (is_escape_site): A ref-all pointer conversion is not an escape site.
3240         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
3241         PTR_IS_REF_ALL pointers special.
3242         * tree-ssa-structalias.h (struct alias_info): Remove
3243         ref_all_symbol_mem_tag field.
3244         (PTR_IS_REF_ALL): Remove.
3245
3246 2008-04-29  Richard Guenther  <rguenther@suse.de>
3247
3248         PR middle-end/36077
3249         * fold-const.c (extract_muldiv_1): In combining division constants
3250         make sure to never overflow.
3251
3252 2008-04-29  Nick Clifton  <nickc@redhat.com>
3253
3254         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
3255
3256 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3257
3258         PR bootstrap/35169
3259         * optc-gen.awk: Work around HP-UX/IA awk bug.
3260
3261 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
3262
3263         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
3264         2008-04-25 commit.
3265
3266 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
3267
3268         PR target/36073
3269         * config/i386/i386.md
3270         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
3271         Change operand 1 predicate to nonimmediate_operand.
3272
3273 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
3274
3275         PR debug/36060
3276         * dwarf2out.c (struct die_struct): Mark as chain_circular through
3277         die_sub field.
3278         * gengtype.c (walk_type, write_func_for_structure): Handle
3279         chain_circular.
3280         * doc/gty.texi: Document chain_circular.
3281
3282 2008-04-28  Richard Guenther  <rguenther@suse.de>
3283
3284         PR tree-optimization/36066
3285         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
3286         SCEV and loop.
3287
3288 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
3289
3290         PR target/36064
3291         * config/i386/i386.md
3292         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
3293         Use match_scratch instead of match_operand for operands 3 and 4.
3294
3295 2008-04-27  Richard Guenther  <rguenther@suse.de>
3296
3297         PR tree-optimization/18754
3298         PR tree-optimization/34223
3299         * tree-pass.h (pass_complete_unrolli): Declare.
3300         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
3301         loop size before and after unconditionally of UL_NO_GROWTH in effect.
3302         Rewrite loop into loop closed SSA form if it is not already.
3303         (tree_unroll_loops_completely): Re-structure to iterate over
3304         innermost loops with intermediate CFG cleanups.
3305         Unroll outermost loops only if requested or the code does not grow
3306         doing so.
3307         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
3308         loops are available.
3309         (tree_vectorize): Instead do so here.
3310         (tree_complete_unroll): Also unroll outermost loops.
3311         (tree_complete_unroll_inner): New function.
3312         (gate_tree_complete_unroll_inner): Likewise.
3313         (pass_complete_unrolli): New pass.
3314         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
3315         uses outside of the loop.
3316         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
3317         form if it is available.  
3318         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
3319         * passes.c (init_optimization_passes): Schedule complete inner
3320         loop unrolling pass before the first CCP pass after final inlining.
3321
3322 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
3323
3324         * targhooks.h (default_emutls_var_fields,
3325         default_emutls_var_init): Declare.
3326         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
3327         * target.h (struct gcc_target): Add struct emutls member.
3328         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
3329         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
3330         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
3331         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
3332         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
3333         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
3334         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
3335         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
3336         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
3337         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
3338         emit debug information.
3339         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
3340         * varasm.c: Include targhooks.h.
3341         (emutls_object_section, emutls_tmpl_section): New.
3342         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
3343         (EMUTLS_SEPARATOR): New.
3344         (prefix_name): New.
3345         (get_emutls_object_name): New.
3346         (default_emutls_var_fields): New, broken out of ...
3347         (get_emutls_object_type): ... here.  Adjust to use target hooks.
3348         (get_emutls_init_templ_addr): Adjust to use target hooks.
3349         (emutls_decl): Adjust to use target hooks.
3350         (emutls_finish): Likewise.
3351         (default_emutls_var_init): New, broken out of ...
3352         (assemble_variable): ... here.  Adjust to use target hooks.
3353         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
3354         SECCAT_EMUTLS_TMPL.
3355         * c-common.c (handle_section_attribute): Prevent overriding
3356         sections for emulated tls with special sections.
3357         * config/i386/i386.c (x86_64_elf_select_section): Add
3358         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
3359         (x86_64_elf_unique_section): Likewise.
3360         * config/vxworks.c: Include tree.h.
3361         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
3362         (vxworks_override_options): Set TLS scheme.
3363         * doc/tm.texi (Emulated TLS): New node.
3364
3365 2008-04-26  Simon Baldwin <simonb@google.com>
3366
3367         PR c/35652
3368         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
3369         with propagated string constants.
3370
3371 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
3372
3373         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
3374         constraint for operand 2 when operand 0 is memory operand.
3375         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
3376         operand 0 is memory operand.
3377         (fix_trunc<mode>_i387_with_temp): Ditto.
3378         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
3379         operand 2 when operand 1 is memory operand.
3380         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
3381         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
3382         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
3383         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
3384         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
3385         operands 2,3 and 4 when operand 1 is memory operand.
3386         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
3387         is memory operand.
3388         (fistdi2_floor_with_temp): Ditto.
3389         (fist<mode>2_floor_with_temp): Ditto.
3390         (fistdi2_ceil_with_temp): Ditto.
3391         (fist<mode>2_ceil_with_temp): Ditto.
3392         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
3393
3394 2008-04-26  David Daney  <ddaney@avtrex.com>
3395
3396         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
3397         unspec_volitile.
3398         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
3399         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
3400         UNSPEC_UPDATE_GOT_VERSION): Renumber.
3401         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
3402         (compare_and_swap_12): New insn.
3403         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
3404         * config/mips/mips.c (mips_force_binary): New function.
3405         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
3406         (mips_expand_compare_and_swap_12): New function.
3407         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
3408
3409 2008-04-25  Jan Hubicka  <jh@suse.cz>
3410
3411         PR testsuite/35843
3412         * cfgexpand.c (pass_expand): Turn into RTL pass.
3413         * passes.c (execute_one_pass): Do pass typechecking after execution.
3414         * tree-pass.h (pass_expand): Turn into RTL pass.
3415
3416         * function.h (struct rtl_data): Move here fields
3417         accesses_prior_frames, calls_eh_return, saves_all_registers,
3418         has_nonlocal_goto, has_asm_statement, is_thunk,
3419         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
3420         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
3421         arg_pointer_save_area_init from struct function; turn into bool.
3422         (struct function): Move
3423         calls_eh_return, saves_all_registers, has_nonlocal_goto,
3424         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
3425         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
3426         tail_call_emit, arg_pointer_save_area_init
3427         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
3428         (current_function_returns_struct, current_function_returns_pcc_struct,
3429         current_function_calls_setjmp, current_function_calls_alloca,
3430         current_function_accesses_prior_frames,
3431         current_function_calls_eh_return, current_function_is_thunk,
3432         current_function_stdarg, current_function_profile,
3433         current_function_limit_stack, current_function_uses_pic_offset_table,
3434         current_function_uses_const_pool, current_function_has_nonlocal_label,
3435         current_function_saves_all_registers,
3436         current_function_has_nonlocal_goto,
3437         current_function_has_asm_statement): Remove accesor macros.
3438         * ra-conflict.c (global_conflicts): Update.
3439         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
3440         (suitable_for_tail_call_opt_p): Update.
3441         * builtins.c (expand_builtin_return_addr): Update.
3442         (expand_builtin_setjmp_setup): Update.
3443         (expand_builtin_nonlocal_goto): Update.
3444         * final.c (final_start_function): Update.
3445         (profile_function): Update.
3446         (leaf_function_p): Update.
3447         (only_leaf_regs_used): Update.
3448         * df-scan.c (df_get_exit_block_use_set): Update.
3449         * dojump.c (clear_pending_stack_adjust): Update.
3450         * tree-stdarg.c (gate_optimize_stdarg): Update.
3451         * gimple-low.c (lower_function_body): Update.
3452         * global.c (compute_regsets): Update.
3453         (global_alloc): Update.
3454         * dwarf2out.c (dwarf2out_begin_prologue): Update.
3455         * expr.c (expand_assignment): Update.
3456         * dse.c (dse_step0): Update.
3457         (dse_step1): Update.
3458         * c-decl.c (store_parm_decls): Update.
3459         * local-alloc.c (combine_regs): Update.
3460         (find_free_reg): Update.
3461         * function.c (assign_parms_augmented_arg_list): Update.
3462         (assign_parm_find_data_types): Update.
3463         (assign_parms): Update.
3464         (allocate_struct_function): Update.
3465         (expand_function_start): Update.
3466         (expand_function_end): Update.
3467         (get_arg_pointer_save_area): Update.
3468         (thread_prologue_and_epilogue_insns): Update.
3469         (rest_of_match_asm_constraints): Update.
3470         * stor-layout.c (variable_size): Update.
3471         * gcse.c (gcse_main): Update.
3472         (bypass_jumps): Update.
3473         * gimplify.c (gimplify_function_tree): Update.
3474         * calls.c (emit_call_1): Update.
3475         (expand_call): Update.
3476         * bt-load.c (compute_defs_uses_and_gen): Update.
3477         * except.c (sjlj_assign_call_site_values): Update.
3478         (sjlj_emit_function_enter): Update.
3479         (can_throw_external): Update.
3480         (set_nothrow_function_flags): Update.
3481         (expand_builtin_unwind_init): Update.
3482         (expand_eh_return): Update.
3483         (convert_to_eh_region_ranges): Update.
3484         (output_function_exception_table): Update.
3485         * emit-rtl.c (gen_tmp_stack_mem): Update.
3486         * cfgexpand.c (expand_used_vars): Update.
3487         (tree_expand_cfg): Update.
3488         * cfgcleanup.c (rest_of_handle_jump): Update.
3489         * explow.c (allocate_dynamic_stack_space): Update.
3490         * varasm.c (assemble_start_function): Update.
3491         (force_const_mem): Update.
3492         (mark_constant_pool): Update.
3493         * tree-optimize.c (tree_rest_of_compilation): Update.
3494         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
3495         * tree-cfg.c (notice_special_calls): Update.
3496         (is_ctrl_altering_stmt): Update.
3497         (tree_can_make_abnormal_goto): Update.
3498         (tree_purge_dead_abnormal_call_edges): Update.
3499         * config/alpha/predicates.md: Update.
3500         * config/alpha/alpha.c (alpha_sa_mask): Update.
3501         (alpha_sa_size): Update.
3502         (alpha_does_function_need_gp): Update.
3503         (alpha_expand_prologue): Update.
3504         (alpha_start_function): Update.
3505         (alpha_output_function_end_prologue): Update.
3506         (alpha_expand_epilogue): Update.
3507         * config/frv/frv.c (frv_stack_info): Update.
3508         (frv_expand_epilogue): Update.
3509         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
3510         (s390_register_info): Update.
3511         (s390_frame_info): Update.
3512         (s390_init_frame_layout): Update.
3513         (s390_can_eliminate): Update.
3514         (save_gprs): Update.
3515         * config/spu/spu.c (spu_split_immediate): Update.
3516         (need_to_save_reg): Update.
3517         (spu_expand_prologue): Update.
3518         (spu_expand_epilogue): Update.
3519         * config/sparc/sparc.md: Update.
3520         * config/sparc/sparc.c (eligible_for_return_delay): Update.
3521         (sparc_tls_got): Update.
3522         (legitimize_pic_address): Update.
3523         (sparc_emit_call_insn): Update.
3524         (sparc_expand_prologue): Update.
3525         (output_return): Update.
3526         (print_operand): Update.
3527         (sparc_function_ok_for_sibcall): Update.
3528         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
3529         * config/m32r/m32r.md: Update.
3530         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
3531         (m32r_compute_frame_size): Update.
3532         (m32r_expand_prologue): Update.
3533         (m32r_expand_epilogue): Update.
3534         (m32r_legitimize_pic_address): Update.
3535         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
3536         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
3537         * config/i386/i386.c (ix86_frame_pointer_required): Update.
3538         (gen_push): Update.
3539         (ix86_save_reg): Update.
3540         (ix86_compute_frame_layout): Update.
3541         (ix86_expand_prologue): Update.
3542         (ix86_expand_epilogue): Update.
3543         * config/sh/sh.c (output_stack_adjust): Update.
3544         (calc_live_regs): Update.
3545         (sh5_schedule_saves): Update.
3546         (sh_expand_prologue): Update.
3547         (sh_expand_epilogue): Update.
3548         (sh_setup_incoming_varargs): Update.
3549         (sh_allocate_initial_value): Update.
3550         (sh_get_pr_initial_val): Update.
3551         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
3552         * config/sh/sh.md (label:): Update.
3553         * config/avr/avr.c (out_movhi_mr_r): Update.
3554         * config/crx/crx.h (enum): Update.
3555         * config/xtensa/xtensa.h (along): Update.
3556         * config/stormy16/stormy16.c Update.
3557         (xstormy16_compute_stack_layout): Update.
3558         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
3559         (fr30_expand_prologue): Update.
3560         * config/cris/cris.c (cris_conditional_register_usage): Update.
3561         (cris_reg_saved_in_regsave_area): Update.
3562         (cris_initial_frame_pointer_offset): Update.
3563         (cris_simple_epilogue): Update.
3564         (cris_expand_prologue): Update.
3565         (cris_expand_epilogue): Update.
3566         (cris_expand_pic_call_address): Update.
3567         (cris_asm_output_symbol_ref): Update.
3568         (cris_asm_output_label_ref): Update.
3569         * config/cris/cris.md Update.
3570         * config/iq2000/iq2000.c (compute_frame_size): Update.
3571         (iq2000_expand_epilogue): Update.
3572         * config/mt/mt.h (save_direction): Update.
3573         * config/mn10300/mn10300.c (mn10300_function_value): Update.
3574         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
3575         (ia64_secondary_reload_class): Update.
3576         * config/m68k/m68k.c (m68k_save_reg): Update.
3577         (m68k_expand_prologue): Update.
3578         (m68k_expand_epilogue): Update.
3579         (legitimize_pic_address): Update.
3580         * config/rs6000/rs6000.c (rs6000_got_register): Update.
3581         (first_reg_to_save): Update.
3582         (first_altivec_reg_to_save): Update.
3583         (compute_vrsave_mask): Update.
3584         (compute_save_world_info): Update.
3585         (rs6000_stack_info): Update.
3586         (spe_func_has_64bit_regs_p): Update.
3587         (rs6000_ra_ever_killed): Update.
3588         (rs6000_emit_eh_reg_restore): Update.
3589         (rs6000_emit_allocate_stack): Update.
3590         (rs6000_emit_prologue): Update.
3591         (rs6000_emit_epilogue): Update.
3592         (rs6000_output_function_epilogue): Update.
3593         (output_profile_hook): Update.
3594         (rs6000_elf_declare_function_name): Update.
3595         * config/rs6000/rs6000.h (rs6000_args): Update.
3596         * config/rs6000/rs6000.md: Update.
3597         * config/mcore/mcore.c (mcore_expand_prolog): Update.
3598         * config/arc/arc.c (arc_output_function_epilogue): Update.
3599         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
3600         * config/darwin.c (machopic_function_base_name): Update.
3601         * config/score/score3.c (score3_compute_frame_size): Update.
3602         (rpush): Update.
3603         (rpop): Update.
3604         (score3_epilogue): Update.
3605         * config/score/score7.c (score7_compute_frame_size): Update.
3606         (score7_prologue): Update.
3607         (score7_epilogue): Update.
3608         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
3609         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
3610         * config/arm/arm.c (use_return_insn): Update.
3611         (require_pic_register): Update.
3612         (arm_load_pic_register): Update.
3613         (arm_compute_save_reg0_reg12_mask): Update.
3614         (arm_compute_save_reg_mask): Update.
3615         (thumb1_compute_save_reg_mask): Update.
3616         (output_return_instruction): Update.
3617         (arm_output_function_prologue): Update.
3618         (arm_output_epilogue): Update.
3619         (arm_get_frame_offsets): Update.
3620         (arm_expand_prologue): Update.
3621         (thumb_pushpop): Update.
3622         (thumb_exit): Update.
3623         (thumb1_expand_prologue): Update.
3624         (thumb1_expand_epilogue): Update.
3625         (arm_unwind_emit): Update.
3626         (arm_output_fn_unwind): Update.
3627         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
3628         * config/arm/arm.md: Update.
3629         * config/pa/pa.md: Update.
3630         * config/pa/pa.c (legitimize_pic_address): Update.
3631         (compute_frame_size): Update.
3632         (hppa_expand_prologue): Update.
3633         (hppa_expand_epilogue): Update.
3634         (borx_reg_operand): Update.
3635         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
3636         (HARD_REGNO_RENAME_OK): Update.
3637         * config/mips/mips.c (mips_global_pointer): Update.
3638         (mips_save_reg_p): Update.
3639         (mips_compute_frame_info): Update.
3640         (mips_frame_pointer_required): Update.
3641         (mips_expand_prologue): Update.
3642         (mips_expand_epilogue): Update.
3643         (mips_can_use_return_insn): Update.
3644         (mips_reorg_process_insns): Update.
3645         * config/v850/v850.c (compute_register_save_size): Update.
3646         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
3647         * config/mmix/mmix.c (along): Update.
3648         (mmix_expand_epilogue): Update.
3649         * config/bfin/bfin.c (legitimize_pic_address): Update.
3650         (must_save_p): Update.
3651         (stack_frame_needed_p): Update.
3652         (add_to_reg): Update.
3653         (bfin_expand_prologue): Update.
3654         * stmt.c (expand_asm_operands): Update.
3655         * reload1.c (reload): Update.
3656         (init_elim_table): Update.
3657
3658 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
3659         
3660         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
3661         
3662 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
3663
3664         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
3665         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
3666         (mov<mode>): Removed.
3667         (*movv4sf_internal): Likewise.
3668         (*movv2df_internal): Likewise.
3669
3670 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
3671
3672         * config.gcc (crx-*-elf): Remove deprecation.
3673
3674 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
3675
3676         * config/i386/cygming-crtend.c (register_frame_ctor): Register
3677         __gcc_deregister_frame with atexit.
3678         (deregister_frame_dtor): Remove.
3679
3680 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
3681             Nathan Sidwell  <nathan@codesourcery.com>
3682
3683         * config/rs6000/rs6000.opt (mspe): Remove Var property.
3684         (misel): Likewise.
3685         * config/rs6000/rs6000.h (rs6000_spe): Declare.
3686         (rs6000_isel): Likewise.
3687         * config/rs6000/rs6000.c (rs6000_spe): New variable.
3688         (rs6000_isel): New variable.
3689         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
3690
3691 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3692
3693         PR c++/35758
3694         * c-common.c (handle_vector_size_attribute): Call
3695         lang_hooks.types.reconstruct_complex_type instead of
3696         reconstruct_complex_type.
3697         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
3698         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
3699         * langhooks.h (struct lang_hooks_for_types): Add
3700         reconstruct_complex_type hook.
3701         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
3702         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
3703
3704 2008-04-24  Richard Guenther  <rguenther@suse.de>
3705
3706         * c-common.h (check_builtin_function_arguments): Declare.
3707         * c-common.c (validate_nargs): New function.
3708         (check_builtin_function_arguments): Likewise.
3709         * c-typeck.c (build_function_call): Call
3710         check_builtin_function_arguments.
3711         * builtins.c (fold_builtin_classify): Remove error reporting code.
3712         (fold_builtin_unordered_cmp): Likewise.
3713         (fold_builtin_1): Likewise.
3714         (fold_builtin_n): Likewise.
3715
3716 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3717
3718         PR tree-optimization/36008
3719         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
3720         the original op1, rather than delta by step.
3721
3722 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
3723             Sebastian Pop  <sebastian.pop@amd.com>
3724
3725         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
3726         eliminate_local_variables_stmt, eliminate_local_variables,
3727         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
3728         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
3729         of code delimited by two edges in the CFG.
3730         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
3731         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
3732         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
3733         the case of parallelisation of reductions.
3734         (expr_invariant_in_region_p): New.
3735
3736         * tree-flow.h (gather_blocks_in_sese_region): Declared.
3737         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
3738
3739 2008-04-24  Ira Rosen  <irar@il.ibm.com>
3740             Richard Guenther  <rguenther@suse.de>
3741
3742         PR tree-optimization/36034
3743         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
3744         incapable of dealing with loads with gaps.
3745
3746 2008-04-24  Rafael Espindola  <espindola@google.com>
3747
3748         * tree-flow.h (vrp_evaluate_conditional): Change signature.
3749         * tree-ssa-propagate.c (fold_predicate_in): Update call to
3750         vrp_evaluate_conditional.
3751         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
3752         (vrp_evaluate_conditional): Split the cond argument.
3753         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
3754         (simplify_stmt_for_jump_threading): Update call to
3755         vrp_evaluate_conditional.
3756
3757 2008-04-24  Ira Rosen  <irar@il.ibm.com>
3758
3759         PR tree-optimization/35982
3760         * tree-vect-analyze.c (vect_check_interleaving): Check that the
3761         interleaved data-refs are of the same type.
3762
3763 2008-04-24  Danny Smith  <dannysmith@users.net>
3764
3765         * c-format.c (check_format_info_main): Use strncmp rather than a
3766         magic prefix to handle multichar length specs.
3767         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
3768         Don't prefix "I64" and "I32" with '\0'.
3769
3770 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3771
3772         PR target/36015
3773         * config/i386/i386.c (init_cumulative_args): Don't pass anything
3774         in registers for -m32 only if stdarg_p (fntype).
3775
3776 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
3777
3778         PR rtl-optimization/36006
3779         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
3780         temp to op0 in order to avoid invalid rtx sharing.
3781
3782 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
3783
3784         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
3785         check TREE_INVARIANT.
3786         * tree-gimple.c (is_gimple_address): New.
3787         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
3788         * tree-gimple.h (is_gimple_address): New.
3789         * tree.h (decl_address_invariant_p): New.
3790         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
3791         (build_string): Likewise.
3792         (decl_address_invariant_p): New, from is_gimple_invariant_address.
3793         (tree_invariant_p_1): Likewise.
3794         (save_expr): Use it.
3795         (tree_invariant_p): New.
3796         (skip_simple_arithmetic): Use it.
3797         (stabilize_reference_1): Use it.
3798         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
3799         simplify.
3800         (build1_stat): Drop code to compute TREE_INVARIANT.
3801         (build2_stat): Drop code to compute TREE_INVARIANT.
3802         (build3_stat): Drop code to compute TREE_INVARIANT.
3803         (build4_stat): Drop code to compute TREE_INVARIANT.
3804         (build5_stat): Drop code to compute TREE_INVARIANT.
3805         (build7_stat): Drop code to compute TREE_INVARIANT.
3806         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
3807         * tree.h (struct tree_base): Remove invariant_flag.
3808         (TREE_INVARIANT): Remove.
3809         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
3810         (fold_builtin_expect): Check TREE_CONSTANT.
3811         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
3812         * c-tree.h (c_expr_to_decl): Drop third parameter.
3813         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
3814         (build_c_cast): Don't set TREE_INVARIANT.
3815         (pop_init_level): Don't set TREE_INVARIANT.
3816         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
3817         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
3818         TREE_CONSTANT.
3819         (gimplify_init_constructor): Don't set TREE_INVARIANT.
3820         (gimplify_addr_expr): Adjust comment.
3821         * tree-mudflap.c (mf_build_string):
3822         * print-tree.c (print_node): Don't print TREE_INVARIANT.
3823         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
3824         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
3825         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
3826         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
3827         * langhooks.h (struct lang_hooks): Drop third parameter from
3828         expr_to_decl.
3829
3830 2008-04-23  Richard Guenther  <rguenther@suse.de>
3831
3832         PR tree-optimization/27799
3833         PR tree-optimization/32921
3834         PR tree-optimization/32624
3835         * tree-ssa-structalias.c (merge_smts_into): Only merge the
3836         SMTs aliases and the tag itself into the solution.
3837         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
3838         merge the points-to solution back into the SMT aliases.
3839         (may_alias_p): Use alias_set_subset_of instead of
3840         aliases_conflict_p.  A pointer which points to
3841         memory with alias set zero may access any variable.
3842
3843 2008-04-23  Richard Guenther  <rguenther@suse.de>
3844
3845         * alias.c (alias_set_subset_of): Correctly handle asking
3846         if zero is a subset of an alias set with zero child.
3847         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
3848         (compute_flow_insensitive_aliasing): Correctly walk all
3849         pointers.  Do not unnecessarily union sets.
3850
3851 2008-04-23  Richard Guenther  <rguenther@suse.de>
3852
3853         PR middle-end/36021
3854         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
3855
3856 2008-04-22  Tomas Bily  <tbily@suse.cz>
3857
3858         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
3859         unreachable case.
3860         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
3861         NON_LVALUE_EXPR.
3862         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
3863         * tree-ssa-structalias.c (get_constraint_for): Likewise.
3864         * tree-inline.c (estimate_num_insns_1): Likewise.
3865         * varasm.c (const_hash_1, compare_constant, copy_constant)
3866         (compute_reloc_for_constant, output_addressed_constants): Likewise.
3867         * emit-rtl.c (component_ref_for_mem_expr)
3868         (set_mem_attributes_minus_bitpos): Likewise.
3869         * expr.c (highest_pow2_factor, expand_expr_real_1, )
3870         (is_aligning_offset): Likewise.
3871         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
3872         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
3873         * dojump.c (do_jump): Likewise.
3874         * builtins.c (get_pointer_alignment, get_memory_rtx)
3875         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
3876         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
3877
3878 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
3879
3880         PR rtl-optimization/36017
3881         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
3882         expanding the library call.
3883
3884 2008-04-22  Ian Lance Taylor  <iant@google.com>
3885
3886         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
3887         than size_in_bytes.
3888
3889 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
3890
3891         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
3892         of LR/CTR moves for Power6.
3893
3894 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
3895
3896         PR middle-end/36003
3897         * passes.c (init_optimization_passes): Remove
3898         pass_fast_rtl_byte_dce.
3899         
3900 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
3901
3902         PR target/29096
3903         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
3904         builtin functions to generate faster code.
3905         (_mm_cvtpu16_ps): Ditto.
3906         (_mm_cvtpi32x2_ps): Ditto.
3907
3908 2008-04-22  Nick Clifton  <nickc@redhat.com>
3909
3910         * common.opt (ftree-loop-distribution): Add Optimization
3911         attribute.
3912
3913         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
3914         (frv_expand_builtin_va_start): Likewise.
3915
3916         * config/arm/arm.c (thumb_find_work_register): Fix location of
3917         argument register count.
3918
3919 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
3920
3921         Support scheduling for ColdFire V1 and V3 microarchitecture.
3922         Improve scheduling of multiplication instructions.
3923
3924         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
3925         (mac): New instruction attribute.
3926         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
3927         (m68k_sched_mac): New variable.
3928         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
3929         Handle cfv1 and cfv3.
3930         (max_insn_size): New static variable.
3931         (struct _sched_ib): New type.
3932         (sched_ib): New static variable.
3933         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
3934         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
3935         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
3936         Update.
3937         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
3938         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
3939         new variables.  Update.
3940         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
3941         Add modeling of cfv3 instruction buffer.  Update.
3942         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
3943         * config/m68k/m68k.h (TUNE_CFV3): New macro.
3944         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
3945         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
3946         a particular reservation applies to.
3947         (type2): Reorganize attribute values.  Rename alu to alu_reg,
3948         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
3949         to mul_l and mul_w.
3950         (cf_ib_*): Simplify description of instruction buffer.
3951         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
3952         (cf_mem): Split into cf_mem1 and cf_mem2.
3953         (cf_v2_move_??): Rename to cfv12_alu_??.
3954         (cf_v2_move_l_??): Rename to cfv12_omove_??.
3955         (cf_v2_mul_??): Remove reservations.
3956         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
3957         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
3958         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
3959         appropriate place.
3960         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
3961         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
3962         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
3963         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
3964         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
3965         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
3966         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
3967         expansions of the above reservations for instructions of sizes
3968         1, 2 and 3 words.
3969
3970 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
3971
3972         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
3973
3974 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
3975
3976         * coverage.c: Include tree-pass.h.
3977         (coverage_counter_alloc): Print da_file_name to the dump file.
3978
3979 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
3980
3981         * sbitmap.c (sbitmap_range_empty_p): New function.
3982         * sbitmap.h (sbitmap_range_empty_p): New function.
3983         * bitmap.h: Now includes obstack.h.
3984
3985 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
3986             Kenneth Zadeck  <zadeck@naturalbridge.com>
3987
3988         * dbgcnt.def (ra_byte_scan): Added.
3989         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
3990         when the last hit happens for a counter.  
3991         * timevar.def (TV_DF_BYTE_LR): New variable.
3992         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
3993         * passes.c (pass_fast_rtl_byte_dce): New pass.
3994         * fwprop.c (update_df): Added mode to call df_ref_create.
3995         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
3996         DF_REF_EXTRACT_OFFSET.
3997         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
3998         DF_BYTE_LR_OUT, df_byte_lr): New macro.
3999         (df_mm): New enum.
4000         (df_ref_extract): Added mode field.
4001         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
4002         DF_REF_EXTRACT_OFFSET.
4003         (DF_REF_EXTRACT_MODE): New macro.
4004         (df_byte_lr_bb_info): New structure.
4005         (df_print_byte_regset, df_compute_accessed_bytes, 
4006         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
4007         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
4008         df_byte_lr_simulate_uses,
4009         df_byte_lr_simulate_artificial_refs_at_top,
4010         df_byte_lr_simulate_artificial_refs_at_end,
4011         df_compute_accessed_bytes): New function.
4012         (df_ref_create): Add parameter.
4013         (df_byte_lr_get_bb_info): New inline function.
4014         * df-scan.c (df_ref_record, df_uses_record,
4015         df_ref_create_structure): Added mode parameter.
4016         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
4017         df_defs_record, df_uses_record, df_get_conditional_uses,
4018         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
4019         df_entry_block_defs_collect, df_exit_block_uses_collect):
4020         Added mode parameter to calls to df_ref_record, df_uses_record,
4021         df_ref_create_structure.
4022         (df_ref_equal_p, df_ref_compare): Added test for modes.
4023         (df_ref_create_structure): Added code to set mode.  Renamed
4024         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
4025         DF_REF_EXTRACT_OFFSET.
4026         * df-core.c (df_print_byte_regset): New function.
4027         * df-byte-scan.c: New file.
4028         * df-problems.c (df_rd_transfer_function): Removed unnecessary
4029         calls to BITMAP_FREE.  
4030         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
4031         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
4032         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
4033         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
4034         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
4035         df_byte_lr_local_compute, df_byte_lr_init,
4036         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
4037         df_byte_lr_transfer_function, df_byte_lr_free, 
4038         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
4039         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
4040         df_byte_lr_simulate_uses,
4041         df_byte_lr_simulate_artificial_refs_at_top,
4042         df_byte_lr_simulate_artificial_refs_at_end): New function.
4043         * dce.c (byte_dce_process_block): New function.
4044         (dce_process_block): au is now passed in rather than computed
4045         locally.  Changed loops that look at artificial defs to not look
4046         for conditional or partial ones, because there never are any.  
4047         (fast_dce): Now is able to drive byte_dce_process_block or 
4048         dce_process_block depending on the kind of dce being done.
4049         (rest_of_handle_fast_dce): Add parameter to fast_dce.
4050         (rest_of_handle_fast_byte_dce): New function.
4051         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
4052         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
4053
4054 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
4055
4056         PR fortran/35019
4057         * gcc.h: Added fortran options that take arguments to
4058         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
4059         macros.
4060
4061 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
4062
4063         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
4064         scalarization if on the LHS and not a full access.
4065
4066 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4067
4068         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
4069
4070 2008-04-18  Rafael Espindola  <espindola@google.com>
4071
4072         * tree-vrp.c (find_case_label_index): Fix the binary search.
4073         (find_case_label_range): New.
4074         (vrp_visit_switch_stmt): Use find_case_label_range.
4075         (simplify_switch_using_ranges): Use find_case_label_range.
4076
4077 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4078
4079         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
4080         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
4081
4082 2008-04-18  Tom Tromey  <tromey@redhat.com>
4083
4084         PR libcpp/15500:
4085         * doc/cpp.texi (Implementation-defined behavior): Mention
4086         -finput-charset.
4087
4088 2008-04-18  Ian Lance Taylor  <iant@google.com>
4089
4090         * fold-const.c (pointer_may_wrap_p): New static function.
4091         (fold_comparison): Add another test for pointer overflow.  Use
4092         pointer_may_wrap_p to disable some false positives.
4093
4094 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
4095           
4096         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
4097         (fname_as_string): Match updated cpp_interpret_string prototype.
4098         (fix_string_type): Support char16_t* and char32_t*.
4099         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
4100         derivative) nodes.  Register as builtin if C++0x.
4101         (c_parse_error): Support CPP_CHAR{16,32}.
4102         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
4103         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
4104         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
4105         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
4106         CTI_CHAR32_ARRAY_TYPE>: New elements.
4107         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
4108         char32_type_node, signed_char32_type_node, char16_array_type_node,
4109         char32_array_type_node): New defines.
4110         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
4111         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
4112         (lex_string): Support CPP_STRING{16,32}, match updated
4113         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
4114         (lex_charconst): Support CPP_CHAR{16,32}.
4115         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
4116         and CPP_STRING{16,32}.
4117
4118 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
4119
4120         PR bootstrap/35457
4121         * aclocal.m4: Regenerate.
4122         * configure: Regenerate.
4123
4124 2008-04-18  Jan Hubicka  <jh@suse.cz>
4125
4126         * except.c (dw2_size_of_call_site_table,
4127         sjlj_size_of_call_site_table): Use vector API for call_site_record.
4128
4129         * cgraphbuild.c (build_cgraph_edges): Update.
4130         * tree-pass.h: Update comment.
4131         * final.c (leaf_function_p): Update.
4132         (leaf_renumber_regs): Update.
4133         (rest_of_clean_state): Update.
4134         * omp-low.c (expand_omp_parallel): Update.
4135         * ipa-reference.c (analyze_function): Update.
4136         * reorg.c (find_end_label): Update.
4137         (optimize_skip): Update.
4138         (fill_simple_delay_slots): Update.
4139         (fill_simple_delay_slots): Update.
4140         (make_return_insns): Update.
4141         (dbr_schedule): Update.
4142         * gimple-low.c (record_vars_into): Update.
4143         * cfgbuild.c (make_edges): Update.
4144         * function.c (assign_stack_local): Update.
4145         (assign_parm_adjust_stack_rtl): Update.
4146         (locate_and_pad_parm): Update.
4147         (allocate_struct_function): Do not initialize stack_alignment_needed
4148         and preferred_stack_boundary here.
4149         (stack_protect_prologue): Update.
4150         (stack_protect_epilogue): Update.
4151         (expand_function_start): Initialize stack_alignment_needed,
4152         preferred_stack_boundary and max_jumptable_ents.
4153         (expand_function_end): Update.
4154         (free_after_compilation): Do not NULLify epilogue_delay_list.
4155         * function.h (struct rtl_data): Add stack_protect_guard,
4156         stack_alignment_needed,
4157         preferred_stack_boundary, epilogue_delay_list.
4158         (struct function): Remove value_histograms, stack_alignment_needed,
4159         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
4160         last_label_uid,
4161         unexpanded_var_list, stack_protect_guard.
4162         (current_function_epilogue_delay_list): Remove.
4163         * ipa-type-escape.c (analyze_function): Update.
4164         * gimplify.c (pop_gimplify_context): Update comment.
4165         * calls.c (expand_call): Update.
4166         (emit_library_call_value_1): Update.
4167         * except.c (set_nothrow_function_flags): Update.
4168         * cfgexpand.c (get_decl_align_unit): Update.
4169         (create_stack_guard): Update.
4170         (estimated_stack_frame_size): Update.
4171         (expand_used_vars): Update.
4172         (tree_expand_cfg): Free histogram earliers, init expansion variables.
4173         * explow.c (allocate_dynamic_stack_space): Update.
4174         * tree-ssa-live.c (remove_unused_locals): Update.
4175         * varasm.c (mark_constant_pool): Update.
4176         * tree-inline.c (remap_decls): Update.
4177         (initialize_cfun): Update.
4178         (declare_return_variable): Update.
4179         (inline_forbidden_p): Update.
4180         (expand_call_inline): Update.
4181         (declare_inline_vars): Update.
4182         (tree_function_versioning): Update.
4183         * tree-flow.h (value_histograms): New.
4184         (VALUE_HISTOGRAMS): New macro.
4185         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
4186         last_label_uid.
4187         * tree-cfg.c (set_bb_for_stmt): Update.
4188         (replace_by_duplicate_decl): Update.
4189         (move_block_to_fn): Update.
4190         (new_label_mapper): Update.
4191         (dump_function_to_file): Update.
4192         * ipa-struct-reorg.c (build_data_structure): Update.
4193         * cfgrtl.c (print_rtl_with_bb): Update.
4194         * reload1.c (reload): Update.
4195         (reload): Update.
4196         * config/i386/i386.c (setup_incoming_varargs_64,
4197         ix86_compute_frame_layout): Update.
4198         * config/arc/arc.c (arc_output_function_epilogue): Update.
4199
4200 2008-04-18  Marius Strobl <marius@FreeBSD.org>
4201
4202         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
4203         for FreeBSD as well.
4204         * gthr-posix95.h: Likewise.
4205
4206 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
4207
4208         PR rtl-optimization/35838
4209         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
4210         out the byte offset of the first subreg.
4211
4212 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
4213
4214         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
4215         to split_ti instead of three separate calls with single member arrays.
4216         (subti3 splitter): Ditto.
4217         (adddi3 splitter): Ditto with split_di.
4218         (subdi3 splitter): Ditto.
4219         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
4220         two separate calls with single member arrays.  Swap match_dup
4221         operands 1 and 2 to better fit into the array.
4222         (negdi2 splitter): Ditto with split_di.
4223         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
4224         two separate calls with single member arrays.  Swap match_dup operands
4225         6 and 7 to better fit into the array.
4226
4227 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
4228
4229         * config/i386/i386.c (sse_builtin_type): New.
4230         (bdesc_sse_args): Likewise.
4231         (bdesc_sse_3arg): Removed.
4232         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
4233         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
4234         IX86_BUILTIN_ROUNDPS.
4235         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
4236         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
4237         IX86_BUILTIN_ROUNDPS.
4238         (ix86_expand_sse_4_operands_builtin): Removed.
4239         (ix86_expand_sse_operands_builtin): New.
4240         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
4241         and CODE_FOR_sse4_1_roundps.
4242         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
4243         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
4244
4245 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
4246
4247         PR target/35907
4248         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
4249         regs before frame pop when needed.  If use_backchain_to_restore_sp
4250         then load backchain into a temp reg to restore vr and vrsave.  Add
4251         code to restore vr after frame pop if possible.
4252
4253 2008-04-17  Richard Guenther  <rguenther@suse.de>
4254
4255         * tree-vn.c (expressions_equal_p): Do not check type
4256         equality or compatibility before calling operand_equal_p.
4257         * fold-const.c (operand_equal_p): Check equivalence of
4258         integer constants before bailing out due to signedness or
4259         precision differences.
4260         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
4261         spurious differences in type qualification.  Ignore types
4262         for COMPONENT_REFs at all.
4263
4264 2008-04-17  Christian Bruel  <christian.bruel@st.com>
4265
4266         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
4267         msw_skip comparison.
4268         
4269 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
4270
4271         PR c/35739
4272         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
4273         reg type.
4274
4275         PR tree-optimization/35899
4276         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
4277         rather than TREE_OPERAND.
4278
4279 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
4280
4281         PR target/35944
4282         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
4283         temporary registers.  Change operand predicate to general_operand.
4284         (remainderxf3): Ditto.
4285
4286 2008-04-16  Richard Guenther  <rguenther@suse.de>
4287
4288         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
4289         * tree-affine.c (aff_combination_expand): Look through some
4290         conversions.
4291
4292 2008-04-15  Doug Kwan  <dougkwan@google.com>
4293
4294         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
4295         for hex printing.
4296         * tree-pretty-print.c (dump_generic_node): Ditto.
4297         * final.c (output_addr_const): Ditto.
4298         * dwarf2out.c (output_cfi): Ditto.
4299         * c-pretty-print.c (pp_c_integer_constant): Ditto.
4300         * print-rtl.c (print_rtx): Ditto.
4301         * print-tree.c (print_node_brief, print_node): Ditto.
4302         * c-common.c (match_case_to_enum_1): Ditto.
4303         * sched-vis.c (print_value): Ditto.
4304         * config/i386/i386.c (print_operand): Cast to long unsigned int
4305         for hex printing.
4306
4307 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
4308         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
4309         MS Windows VirtualProtect function.
4310
4311 2008-04-15  Jan Hubicka  <jh@suse.cz>
4312
4313         * gengtype.c (write_root): Param_is argument is OK.
4314         * expr.c (expand_expr_real_1): Update call of get_exception_*.
4315         * function.h: Include varray.h
4316         (rtl_eh): New stucture based on except.c one.
4317         (call_site_record): New forward declaration and vector type.
4318         * calls.c (emit_call_1): Do not call
4319         note_current_region_may_contain_throw.
4320         * except.c (eh_status): Remove cur_region, try_region since they are
4321         unused.
4322         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
4323         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
4324         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
4325         Remove call_site_data_used, call_site_data_size.
4326         Turn call_site_record into vector in function.h.
4327         (note_current_region_may_contain_throw): Remove.
4328         (get_exception_pointer, get_exception_filter): Do not take struct
4329         function argument; update.
4330         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
4331         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
4332         build_post_landing_pads, dw2_build_landing_pads,
4333         sjlj_assign_call_site_values, sjlj_mark_call_sites,
4334         sjlj_emit_function_enter, sjlj_emit_function_enter, 
4335         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
4336         sjlj_build_landing_pads, finish_eh_generation,
4337         remove_exception_handler_label, remove_eh_handler,
4338         maybe_remove_eh_handler, add_reachable_handler,
4339         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
4340         add_action_record, collect_one_action_chain, add_call_site,
4341         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
4342         sjlj_output_call_site_table, output_function_exception_table,
4343         * except.h (note_current_region_may_contain_throw): Remove
4344         (get_exception_pointer, get_exception_filter): Do not take struct
4345         function argument.
4346         * Makefile.in (GTFILES): Put varargs before struct function.
4347
4348 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4349
4350         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
4351         punt for STRING_CST.
4352         (get_constraint_for): Deal with STRING_CST here instead.
4353
4354 2008-04-15  Richard Guenther  <rguenther@suse.de>
4355
4356         * tree-ssa-propagate.c (substitute_and_fold): Substitute
4357         statements in a basic-block with a backward walk.  Do not
4358         substitute into dead statements but instead remove those.
4359
4360 2008-04-15  Richard Guenther  <rguenther@suse.de>
4361
4362         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
4363         to zero, thus disable creation of SFTs.
4364
4365 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4366
4367         * tree-predcom.c (suitable_reference_p): Return false if the
4368         reference can throw.
4369
4370 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
4371
4372         PR c/35751
4373         * c-decl.c (finish_decl): If extern or static var has variable
4374         size, set TREE_TYPE (decl) to error_mark_node.
4375
4376 2008-04-15  Rafael Espindola  <espindola@google.com>
4377
4378         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
4379         variable arg1.
4380
4381 2008-04-15  Richard Guenther  <rguenther@suse.de>
4382
4383         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
4384         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
4385         (visit_reference_op_load): Do walk vuse-vdef chains on
4386         vn_reference_lookup.
4387         (visit_reference_op_store): But do not here.
4388         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
4389         vn_reference_lookup.
4390         (vn_lookup_with_vuses): But do so here.
4391
4392 2008-04-14  Ian Lance Taylor  <iant@google.com>
4393
4394         * fold-const.c (fold_overflow_warning): Remove assertion.
4395
4396 2008-04-15  Ben Elliston  <bje@au.ibm.com>
4397
4398         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
4399         temp1 local variables.
4400
4401 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
4402
4403         PR target/35661
4404         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
4405         ".text.unlikely" section as executable.
4406
4407 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
4408
4409         * config/ia64/ia64.c (rtx_needs_barrier): Handle
4410         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
4411         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
4412         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
4413         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
4414         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
4415         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
4416
4417 2008-04-14  Ian Lance Taylor  <iant@google.com>
4418
4419         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
4420         * fold-const.c (fold_comparison): If appropriate, test
4421         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
4422         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
4423         reassociating a pointer type.
4424         * doc/invoke.texi (Optimize Options): Document that
4425         -fstrict-overflow applies to pointer wraparound.
4426
4427 2008-04-13  Jan Hubicka  <jh@suse.cz>
4428
4429         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
4430
4431 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
4432
4433         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
4434         we are going to "save the world".
4435
4436 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
4437
4438         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
4439         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
4440         operand 0 constraint, not "=".
4441
4442 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
4443
4444         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
4445
4446 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
4447
4448         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
4449         of size of positions_needed * CHAR_BIT.
4450
4451 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
4452
4453         PR middle-end/35897
4454         * dse.c (store_info): Change positions_needed to unsigned
4455         HOST_WIDE_INT.
4456         (lowpart_bitmask): New.
4457         (record_store): Cast to unsigned HOST_WIDE_INT for
4458         positions_needed.  Assert width <= size of positions_needed *
4459         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
4460         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
4461         lowpart_bitmask to set mask.
4462
4463 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
4464
4465         * config/bfin/constraints.md: New file.
4466         * config/bfin/bfin.md: Include it.
4467         (adddi3): Use satisfies_constraint functions instead of the old macros.
4468         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
4469         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
4470         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
4471         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
4472         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
4473         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
4474         EXTRA_CONSTRAINT): Delete.
4475         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
4476         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
4477         of the old macros.
4478         * config/bfin/bfin.c: Include "tm-constrs.h".
4479         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
4480         Use satisfies_constraint functions instead of the old macros.
4481         * doc/md.texi (Blackfin Constraints): Update file name reference.
4482
4483 2008-04-11  Richard Guenther  <rguenther@suse.de>
4484
4485         PR tree-optimization/35869
4486         * tree-vrp.c (execute_vrp): Move switch statement update after
4487         jump threading.  Schedule another cfg cleanup run.
4488
4489 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
4490
4491         PR c/35744
4492         * attribs.c (decl_attributes): Return early on errorneous node.
4493
4494 2008-04-10  Oleg Ryjkov  <olegr@google.com>
4495
4496         * tree.h (struct tree_base): Added a new flag default_def_flag.
4497         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
4498
4499 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4500
4501         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
4502
4503 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4504
4505         PR target/35768
4506         * pa.md: Define mode iterator P.  Define mode attribute dwc.
4507         (dcacheflush): Update pattern to use iterator P and attribute dwc.
4508         (icacheflush): Likewise.
4509         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
4510         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
4511
4512 2008-04-11  Ben Elliston  <bje@au.ibm.com>
4513
4514         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
4515
4516 2008-04-10  Rafael Espindola  <espindola@google.com>
4517
4518         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
4519         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
4520         (extract_range_from_expr): The same.
4521
4522 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
4523
4524         * config/mips/mips.md (GPR2): New mode iterator.
4525         (seq): Add comment.
4526         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
4527         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
4528         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
4529         Rewrite these to take two modes, the mode of comparison and the
4530         mode of the destination.
4531         * config/mips/mips.c (mips_expand_scc): Instead of having
4532         paradoxical subreg as destination, expand "narrowing" scc if mode
4533         of comparison is SI and target is requested in DI mode.
4534         (mips_emit_int_order_test): Update comment.  Make mode of
4535         comparison match CMP0 rather than TARGET.  When creating inverse
4536         target use mode of TARGET.
4537
4538 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
4539
4540         * gcov-dump.c (tag_summary): Only print summaries for the first
4541         GCOV_COUNTERS_SUMMABLE counters.
4542
4543 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
4544
4545         * config/i386/i386.md (absneg): New code iterator.
4546         (absnegprefix): New code attribute.
4547         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
4548         patterns using absneg code iterator.
4549         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
4550         using absneg code iterator.
4551         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
4552         *neg<mode>2 patterns using absneg code iterator.
4553         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
4554         *negextendsfdf2 patterns using absneg code iterator.
4555         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
4556         *negextendsfxf2 patterns using absneg code iterator.
4557         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
4558         *negextendsfdf2 patterns using absneg code iterator.
4559         * config/i386/sse.md (<code><mode>2): Macroize expander from
4560         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
4561
4562 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
4563
4564         * config/s390/s390.h: Remove the remains of the recent search
4565         & replace action of current_function_outgoing_args_size.
4566
4567 2008-04-10  Ira Rosen  <irar@il.ibm.com>
4568
4569         PR tree-optimization/35821
4570         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
4571         NEW_STMT_LIST is not NULL.
4572
4573 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
4574
4575         PR libstdc++/35597
4576         * toplev.c (process_options): Remove -ffunction-sections debugging
4577         warning.
4578
4579 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
4580
4581         PR middle-end/PR28690
4582         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
4583         than gen_rtx_fmt_ee to perform more canonicalizations.
4584
4585 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4586
4587         PR driver/35665
4588         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
4589
4590 2008-04-09  Richard Guenther  <rguenther@suse.de>
4591
4592         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
4593         (dump_function_to_file): Dump function arguments with types.
4594
4595 2008-04-08  Richard Guenther  <rguenther@suse.de>
4596
4597         * fold-const.c (fold_widened_comparison): Do not allow
4598         sign-changes that change the result.
4599
4600 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
4601
4602         PR target/35839
4603         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
4604         kinds of indirect references.
4605
4606 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
4607
4608         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
4609         GNU Fortran language string.
4610
4611 2008-04-08  Rafael Espindola  <espindola@google.com>
4612
4613         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
4614         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
4615         * tree.h (tree_call_nonnegative_warnv_p): New.
4616
4617 2008-04-08  Jan Hubicka  <jh@suse.cz>
4618
4619         * function.c (free_after_compilation): Clear out regno_reg_rtx
4620         pointer.
4621
4622 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
4623
4624         Revert
4625         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
4626
4627         PR middle-end/PR28690
4628         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
4629         same precedence as REG_POINTER and MEM_POINTER operands.
4630
4631 2008-04-08  Richard Guenther  <rguenther@suse.de>
4632
4633         PR middle-end/35834
4634         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
4635         for adding index to base.
4636
4637 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
4638
4639         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
4640         (MINGW_ENABLE_EXECUTE_STACK): New.
4641         (IN_LIBGCC2): For libgcc include windows.h file for
4642         function declarations.
4643
4644 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
4645
4646         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
4647         and tem2 if tem1 is not a REG or MULT.
4648
4649 2008-04-08  Jan Hubicka  <jh@suse.cz>
4650
4651         * function.h (incomming_args): Break out of struct function.
4652         (function_subsections): Break out of struct function.
4653         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
4654         return_rtx and hard_reg_initial_vals from struct function.
4655         Kill inl_max_label_num.
4656         (current_function_pops_args, current_function_args_info,
4657         current_function_args_size, current_function_args_size,
4658         current_function_pretend_args_size,
4659         current_function_outgoing_args_size,
4660         current_function_internal_arg_pointer, current_function_return_rtx):
4661         Kill compatibility accestor macros.
4662         * builtins.c (expand_builtin_apply_args_1): Update.
4663         (expand_builtin_next_arg): Update.
4664         * df-scan.c (df_get_call_refs): Update.
4665         * dbxout.c (dbxout_function_end): Update.
4666         * dwarf2out.c (dwarf2out_switch_text_section): Update.
4667         (output_line_info): Update.
4668         (secname_for_decl): Update.
4669         (dwarf2out_var_location): Update.
4670         * function.c (free_after_compilation): Update.
4671         (assign_parm_find_stack_rtl): Update.
4672         (assign_parms): Update.
4673         (expand_dummy_function_end): Update.
4674         (expand_function_end): Update.
4675         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
4676         (expand_call): Update.
4677         (emit_library_call_value_1): Update.
4678         (store_one_arg): Update.
4679         * varasm.c (initialize_cold_section_name): Update.
4680         (unlikely_text_section): Update.
4681         (unlikely_text_section_p): Update.
4682         (assemble_start_function): Update.
4683         (assemble_end_function): Update.
4684         (default_section_type_flags): Update.
4685         (switch_to_section): Update.
4686         * integrate.c (set_decl_abstract_flags): Update.
4687         (get_hard_reg_initial_val): Update.
4688         (has_hard_reg_initial_val): Update.
4689         (allocate_initial_values): Update.
4690         * resource.c (init_resource_info): Update.
4691         * config/alpha/alpha.c (NUM_ARGS): Update.
4692         (direct_return): Update.
4693         (alpha_va_start): Update.
4694         (alpha_sa_size): Update.
4695         (alpha_initial_elimination_offset): Update.
4696         (alpha_expand_prologue): Update.
4697         (alpha_start_function): Update.
4698         (alpha_expand_epilogue): Update.
4699         (unicosmk_initial_elimination_offset):
4700         * config/alpha/alpha.md (call expander): Update.
4701         * config/s390/s390.c (s390_register_info): Update.
4702         (s390_register_info): Update.
4703         (s390_frame_info): Update.
4704         (s390_initial_elimination_offset): Update.
4705         (s390_build_builtin_va_list): Update.
4706         (s390_va_start): Update.
4707         * config/spu/spu.c (direct_return): Update.
4708         (spu_expand_prologue): Update.
4709         (spu_initial_elimination_offset): Update.
4710         (spu_build_builtin_va_list): Update.
4711         (spu_va_start): Update.
4712         * config/sparc/sparc.c (sparc_init_modes): Update.
4713         (sparc_compute_frame_size): Update.
4714         (function_value): Update.
4715         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
4716         * config/i386/i386.md (return expander): Update.
4717         * config/i386/i386.c (ix86_va_start): Update.
4718         (ix86_can_use_return_insn_p): Update.
4719         (ix86_compute_frame_layout): Update.
4720         (ix86_expand_epilogue): Update.
4721         * config/sh/sh.c (output_stack_adjust): Update.
4722         (calc_live_regs): Update.
4723         (sh_expand_prologue): Update.
4724         (sh_builtin_saveregs): Update.
4725         (sh_va_start): Update.
4726         (initial_elimination_offset): Update.
4727         (sh_allocate_initial_value): Update.
4728         (sh_function_ok_for_sibcall): Update.
4729         (sh_get_pr_initial_val): Update.
4730         * config/sh/sh.md (return expander): Update.
4731         * config/avr/avr.c (frame_pointer_required_p): UPdate.
4732         * config/crx/crx.c (crx_compute_frame): UPdate.
4733         (crx_initial_elimination_offset): UPdate.
4734         * config/xtensa/xtensa.c (compute_frame_size): Update
4735         (xtensa_builtin_saveregs): Update.
4736         (xtensa_va_start): Update.
4737         (order_regs_for_local_alloc): Update.
4738         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
4739         (xstormy16_expand_builtin_va_start): Update.
4740         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
4741         * config/m68hc11/m68hc11.md (return expanders): Update.
4742         * config/m68hc11/m68hc11.c (expand_prologue): Update.
4743         (expand_epilogue): Update.
4744         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
4745         (cris_simple_epilogue): Update.
4746         (cris_expand_prologue): Update.
4747         (cris_expand_epilogue): Update.
4748         * config/iq2000/iq2000.c (iq2000_va_start): Update.
4749         (compute_frame_size): Update.
4750         * config/mt/mt.c (mt_compute_frame_size): Update.
4751         * config/mn10300/mn10300.c (expand_prologue): Update.
4752         (expand_epilogue): Update.
4753         (initial_offset): Update.
4754         (mn10300_builtin_saveregs):
4755         * config/mn10300/mn10300.md (return expander): Update.
4756         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
4757         (ia64_initial_elimination_offset): Update.
4758         (ia64_initial_elimination_offset): Update.
4759         (ia64_expand_prologue): Update.
4760         * config/m68k/m68k.md (return expander): Update.
4761         * config/rs6000/rs6000.c (rs6000_va_start): Update.
4762         (rs6000_stack_info): Update.
4763         * config/mcore/mcore.c (layout_mcore_frame): Update.
4764         (mcore_expand_prolog): Update.
4765         * config/arc/arc.c (arc_compute_frame_size): Update.
4766         * config/score/score3.c (score3_compute_frame_size): Update.
4767         * config/score/score7.c (score7_compute_frame_size): Update.
4768         * config/arm/arm.c (use_return_insn): Update.
4769         (thumb_find_work_register): Update.
4770         (arm_compute_save_reg_mask): Update.
4771         (arm_output_function_prologue): Update.
4772         (arm_output_epilogue): Update.
4773         (arm_size_return_regs): Update.
4774         (arm_get_frame_offsets): Update.
4775         (arm_expand_prologue): Update.
4776         (thumb_exit): Update.
4777         (thumb_unexpanded_epilogue): Update.
4778         (thumb1_output_function_prologue): Update.
4779         * config/pa/pa.md (return expander): Update.
4780         * config/pa/pa.c (compute_frame_size): Update.
4781         (hppa_builtin_saveregs): Update.
4782         * config/mips/mips.c (mips_va_start): Update.
4783         (mips16_build_function_stub): Update.
4784         (mips_compute_frame_info): Update.
4785         (mips_restore_gp): Update.
4786         (mips_output_function_prologue): Update.
4787         (mips_expand_prologue): Update.
4788         * config/v850/v850.c (compute_frame_size): Update.
4789         (expand_prologue): * config/mmix/mmix.c (along): update.
4790         (mmix_initial_elimination_offset): update.
4791         (mmix_reorg): update.
4792         (mmix_use_simple_return): update.
4793         (mmix_expand_prologue): update.
4794         (mmix_expand_epilogue): Update.
4795         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
4796         (emit_link_insn): Update.
4797
4798 2008-04-08  Anatoly Sokolov <aesok@post.ru>
4799
4800         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
4801         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
4802         instructions.
4803         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
4804         atmega103 device.
4805
4806 2008-04-07  Jan Hubicka  <jh@suse.cz>
4807
4808         * function.h (rtl): Rename to x_rtl.
4809         (crtl): New define.
4810         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
4811         frame_offset, stack_check_probe_note, arg_pointer_save_area,
4812         used_temp_slots avail_temp_slots, temp_slot_level,
4813         nonlocal_goto_handler_labels): Update accesstors.
4814         (rtl): New global variable.
4815         (struct function): Move some fileds to rtl_data.
4816         (get_arg_pointer_save_area): Update prototype.
4817         * builtins.c (expand_builtin_setjmp_receiver): Update call of
4818         get_arg_pointer_save_area.
4819         * expr.c (init_expr): Update
4820         * function.c (get_frame_size): Update
4821         (assign_stack_local): Update
4822         (expand_function_end): Update.
4823         (get_art_pointer_save_area): Update
4824         * function.h 
4825         * emit-rtl.c (rtl): Declare.
4826         (regno_reg_rtx): Declare.
4827         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
4828         Update.
4829         (gen_reg_rtx): Update.
4830         * varasm.c (n_deferred_constatns): Update accestor.
4831         (init_varasm_status): Do not allocate varasm_status.
4832         (force_const_mem, get_pool_size, output_constant_pool): Update.
4833         * stmt.c (force_label_rtx): Do not use x_ prefixes.
4834         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
4835         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
4836         * sparc/sparc.h (INIT_EXPANDERS): Update.
4837         * ia64/ia64.h (INIT_EXPANDERS): Update.
4838
4839 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
4840
4841         * reload.c (push_secondary_reload): Add missing break to for loop.
4842
4843 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
4844
4845         PR middle-end/PR28690
4846         * rtlanal.c: Update copyright years.
4847         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
4848         as REG_POINTER and MEM_POINTER operands.
4849         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
4850         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
4851         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
4852         * gcse.c: Update copyright years.
4853         (pre_delete): Call gen_reg_rtx_and_attrs.
4854         (hoist_code): Likewise.
4855         (build_store_vectors): Likewise.
4856         (delete_store): Likewise.
4857         * loop-invariant.c (move_invariant_reg): Likewise.
4858         Update copyright years.
4859
4860 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
4861
4862         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
4863         control string instead of quoted.
4864
4865 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
4866
4867         * doc/rtl.texi: Rewrite of subreg section.
4868
4869 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
4870
4871         PR/35842
4872         * config/i386/i386.c (legitimize_pic_address): Add treating
4873         of dllimport SYM_REF's.
4874         (legitimize_dllimport_symbol): Add prototype.
4875
4876 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
4877
4878         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
4879         reference in constructor with non self-referential type.
4880
4881 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
4882
4883         Removal of Return with Depressed Stack Pointer support
4884         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
4885         (ECF_SP_DEPRESSED): Likewise.
4886         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
4887         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
4888         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4889         (expand_call): Do not test ECF_SP_DEPRESSED.
4890         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4891         * function.c (keep_stack_depressed): Delete.
4892         (handle_epilogue_set): Likewise.
4893         (update_epilogue_consts): Likewise.
4894         (emit_equiv_load): Likewise.
4895         (thread_prologue_and_epilogue_insns): Remove support for Return with
4896         Depressed Stack Pointer.
4897         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4898
4899 2008-04-06  Richard Guenther  <rguenther@suse.de>
4900
4901         PR tree-optimization/35400
4902         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
4903         information from SSA_NAMEs.
4904
4905 2008-04-06  Anatoly Sokolov <aesok@post.ru>
4906
4907         * config/avr/avr.h (avr_mega_p): Remove declaration.
4908         (AVR_MEGA): Remove macro.
4909         * config/avr/avr.c (avr_mega_p): Remove variable.
4910         (avr_override_options): Remove inicializion of avr_mega_p.
4911         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
4912         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
4913         (avr_jump_mode): (Ditto.).
4914         (avr_output_progmem_section_asm_op): (Ditto.).
4915         (avr_asm_init_sections): (Ditto.).
4916         (avr_asm_init_sections): (Ditto.).
4917         (avr_rtx_costs): (Ditto.).
4918         * config/avr/avr.md: (Ditto.).
4919         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
4920         '__AVR_MEGA__'.
4921
4922 2008-04-06  Richard Guenther  <rguenther@suse.de>
4923
4924         PR tree-optimization/35842
4925         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
4926         is_gimple_invariant_address.
4927
4928 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
4929
4930         * gcc.c (default_compilers): Sync Fortran extensions list with
4931         that in fortran/lang-specs.h.
4932         * doc/invoke.texi: Likewise.
4933         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
4934         * dwarf2out.c (gen_compile_unit_die): Likewise.
4935
4936 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
4937
4938         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
4939
4940 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
4941
4942         PR target/12329
4943         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
4944         attribute is used for nested functions.
4945
4946 2008-04-05  Jan Hubicka  <jh@suse.cz>
4947
4948         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
4949
4950         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
4951         letter argument.
4952         (dump_files): Update.
4953         (enable_rtl_dump_file): Do not accept letter argument.
4954         * tree-pass.h (dump_file_info): Remove letter argument.
4955         * toplev.c (decode_d_option): Update -da handling.
4956         * toplev.h (enable_rtl_dump_file): Update prototype.
4957         * passes.c (register_one_dump_file): Do not accept IPA argument; work
4958         it out based on pass type.
4959         (register_dump_files_1): Likewise.
4960         (init_optimization_passes): Update register_one_dump_file calls.
4961         (execute_one_pass): Sanity check that IPA passes are called at IPA
4962         level and RTL passes at RTL level.
4963         (execute_pass_list): IPA pass can not be after or subpass of
4964         GIMPLE/RTL pass.
4965         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
4966         disallov RTL subpasses of IPA subpasses.
4967
4968 2008-04-05  Ben Elliston  <bje@au.ibm.com>
4969
4970         * tree-cfg.c (need_fake_edge_p): Return false for calls to
4971         builtins that return exactly once and do not throw. Cache call to
4972         call_expr_flags.
4973
4974 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
4975
4976         PR rtl-optimization/34916
4977         PR middle-end/35519
4978         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
4979         between instruction pairs.
4980
4981 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
4982
4983         * doc/invoke.texi: Document -mbitops for SH.
4984         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
4985         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
4986         * config/sh/sh.c (print_operand): Add %t operand code.
4987         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
4988         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
4989         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
4990         (extendqihi2): Likewise.
4991         (movqi_i): Likewise.
4992         (insv): Use bset, bclr and bst instructions for SH2A if possible.
4993         (extv): Use bld instruction for SH2A if possible.
4994         (extzv): Likewise.
4995         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
4996         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
4997         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
4998         (bset.b, bclr.b): Define peepholes.
4999         * config/sh/sh.opt (mbitops): New option.
5000
5001 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
5002
5003         PR target/35620
5004         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
5005         and view convert expression.
5006
5007 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
5008
5009         PR target/35364
5010         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
5011
5012 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
5013
5014         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
5015
5016         * config/i386/cpuid.h (bit_AES): New.
5017         (bit_PCLMUL): Likewise.
5018
5019         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
5020         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
5021         SSE2 if AES or PCLMUL is enabled.
5022         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
5023         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
5024         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
5025         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
5026         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
5027         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
5028         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
5029         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
5030         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
5031         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
5032         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
5033         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
5034         __builtin_ia32_aeskeygenassist128 and
5035         __builtin_ia32_pclmulqdq128.
5036         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
5037         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
5038         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
5039
5040         * config/i386/i386.h (TARGET_AES): New.
5041         (TARGET_PCLMUL): Likewise.
5042         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
5043
5044         * config/i386/i386.md (UNSPEC_AESENC): New.
5045         (UNSPEC_AESENCLAST): Likewise.
5046         (UNSPEC_AESDEC): Likewise.
5047         (UNSPEC_AESDECLAST): Likewise.
5048         (UNSPEC_AESIMC): Likewise.
5049         (UNSPEC_AESKEYGENASSIST): Likewise.
5050         (UNSPEC_PCLMUL): Likewise.
5051
5052         * config/i386/i386.opt (maes): New.
5053         (mpclmul): Likewise.
5054
5055         * config/i386/sse.md (aesenc): New pattern.
5056         (aesenclast): Likewise.
5057         (aesdec): Likewise.
5058         (aesdeclast): Likewise.
5059         (aesimc): Likewise.
5060         (aeskeygenassist): Likewise.
5061         (pclmulqdq): Likewise.
5062
5063         * config/i386/wmmintrin.h: New.
5064
5065         * doc/extend.texi: Document AES and PCLMUL built-in function.
5066
5067         * doc/invoke.texi: Document -maes and -mpclmul.
5068
5069 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
5070
5071         * function.c (free_after_parsing): Replace with
5072         cxx_push_function_context from C++ front-end.
5073         (allocate_struct_function): Don't call langhook.
5074         * langhooks.h (struct lang_hooks_for_functions): Delete.
5075         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
5076         member "function".
5077         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
5078         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
5079         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
5080         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
5081         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
5082         remove LANG_HOOKS_FUNCTION_INITIALIZER.
5083         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
5084
5085         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
5086         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
5087         
5088 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
5089
5090         PR c/35440
5091         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
5092         for all types.
5093
5094 2008-04-04  Richard Guenther  <rguenther@suse.de>
5095
5096         PR middle-end/35823
5097         * fold-const.c (optimize_minmax_comparison): Use the correct
5098         type for the constant in the simplified comparison.
5099
5100 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
5101
5102         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
5103         Pass L2 size as "--param l2-cache-size" to the compiler.
5104         (decode_l2_cache): New function to decode L2 cache parameters using
5105         0x8000006 extended cpuid function.
5106         (detect_caches_amd): Determine parameters of L2 cache using
5107         decode_l2_caches function.
5108         (decode_caches_intel): Decode L2 cache parameters.
5109         (detect_caches_intel): Determine L2 cache parameters using
5110         decode_caches_intel and decode_l2_caches functions.
5111
5112 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
5113
5114         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
5115         secondary input reload for subword loads from the constant pool.
5116
5117 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
5118
5119         PR target/35713
5120         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
5121           constants of the appropriate size for runtime calculations.
5122
5123         PR c/35712
5124         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
5125           decimal-float literal constant zero.
5126
5127 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
5128
5129         PR c/35738
5130         * c-parser.c (c_parser_omp_atomic): Call
5131         default_function_array_conversion on the RHS.
5132
5133         PR middle-end/35818
5134         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
5135         call is_variable_sized if decl has incomplete type.
5136
5137 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
5138
5139         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
5140
5141 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
5142
5143         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
5144         iterators.
5145         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
5146         (sgt<u>): Merge sgt and sgtu into new expander.
5147         (sgt, sgtu): Remove expanders.
5148         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
5149         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
5150         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
5151         *sgtu_<mode>_mips16 into new pattern.
5152         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
5153         (sge<u>): Merge sge and sgeu into new expander.
5154         (sge, sgeu): Remove expanders.
5155         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
5156         new pattern.
5157         (*sge_<mode>, second *sge_<mode>): Remove patterns.
5158         (slt<u>): Merge slt and sltu into new expander.
5159         (slt, sltu): Remove expanders.
5160         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
5161         (*slt_<mode>, *sltu_<mode>): Remove patterns.
5162         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
5163         *sltu_<mode>_mips16 into new pattern.
5164         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
5165         (sle<u>): Merge sle and sleu into new expander.
5166         (sle, sleu): Remove expanders.
5167         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
5168         (*sle_<mode>, *sleu_<mode>): Remove patterns.
5169         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
5170         *sleu_<mode>_mips16 into new pattern.
5171         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
5172
5173 2008-04-03  Jan Hubicka  <jh@suse.cz>
5174
5175         PR tree-optimization/35795
5176         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
5177         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
5178         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
5179         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
5180         * score/score3.c (score3_output_mi_thunk): Likewise.
5181         * score/score7.c (score7_output_mi_thunk): Likewise.
5182         * mips/mips.c (mips_output_mi_thunk): Likewise.
5183
5184 2008-04-03  Richard Guenther  <rguenther@suse.de>
5185
5186         * tree-vrp.c (extract_range_from_unary_expr): Handle all
5187         conversions.  Simplify code.
5188
5189 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
5190
5191         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
5192
5193 2008-04-03  Tom Tromey  <tromey@redhat.com>
5194             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5195
5196         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
5197         * config/bfin/t-bfin-linux (generated_files): Add
5198         linux-sysroot-suffix.h.
5199         * doc/install.texi (Prerequisites): Require make 3.80.
5200         * doc/sourcebuild.texi (Front End Directory): Document new
5201         variable.
5202         * Makefile.in (generated_files): New variable.
5203         (ALL_HOST_OBJS): New variable.
5204         ($(ALL_HOST_OBJS)): New target.
5205
5206 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
5207
5208         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
5209         (remap_block): Call id->transform_lang_insert_block instead
5210         of langhook.
5211         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
5212         Set id.transform_lang_insert_block to NULL.
5213         (clone_body): Move to cp/optimize.c
5214         * tree-inline.h (struct copy_body_data): Change
5215         transform_lang_insert_block to function pointer.
5216         (copy_generic_body, copy_decl_no_change): Export.
5217         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
5218         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
5219         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
5220
5221         * c-tree.h (insert_block): Kill.
5222         * c-decl.c (insert_block): Kill.
5223
5224 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
5225
5226         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
5227         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
5228         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
5229         argument.
5230         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
5231         argument, call {push,pop}_function_context from here.
5232         * c-parser.c: Use c_{push,pop}_function_context.
5233
5234         * function.c (push_function_context_to): Move meat ...
5235         (push_function_context): ... here.  Simplify.
5236         * function.c (pop_function_context_from): Move meat ...
5237         (pop_function_context): ... here.  Simplify.
5238         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
5239         leave_nested).
5240         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
5241         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
5242         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
5243         * tree.h (push_function_context_to, pop_function_context_from): Remove.
5244
5245 2008-04-03  Ben Elliston  <bje@au.ibm.com>
5246
5247         * expmed.c (extract_force_align_mem_bit_field): Remove.
5248
5249 2008-04-03  Richard Guenther  <rguenther@suse.de>
5250
5251         PR middle-end/35800
5252         * expr.h (try_casesi): Adjust prototype.
5253         * expr.c (try_casesi): Take fallback label as extra parameter.
5254         Use that for gen_casesi if default_label is NULL.
5255         * stmt.c (expand_case): Pass fallback label to try_casesi,
5256         make sure to fill gaps with a fallback label if default_label
5257         is not present.
5258
5259 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
5260
5261         PR target/35801
5262         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
5263
5264 2008-04-03  Ben Elliston  <bje@au.ibm.com>
5265
5266         * expmed.c (extract_split_bit_field): Remove if (0) code.
5267         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
5268         (do_ds_constraint): Likewise.
5269
5270 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
5271
5272         * doc/cppopts.texi (-dU): Document.
5273         * c-common.h (flag_dump_macros): Update comment.
5274         * c-opts.c (handle_OPT_d): Handle -dU.
5275         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
5276         dump_queued_macros, cb_used_define, cb_used_undef): New.
5277         (init_pp_output): Handle -dU.
5278         (cb_line_change): Call dump_queued_macros.
5279         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
5280
5281 2008-04-02  Anatoly Sokolov <aesok@post.ru>
5282
5283         * config/avr/predicates.md (io_address_operand): New predicate. 
5284         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
5285         * config/avr/avr.c (avr_io_address_p): Remove function.
5286         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
5287         'avr_io_address_p' function.
5288         (out_movhi_r_mr): (Ditto.).
5289         (out_movqi_mr_r): (Ditto.).
5290         (out_movhi_mr_r): (Ditto.).
5291         (avr_address_cost): (Ditto.).
5292
5293 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
5294
5295         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
5296         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
5297         in 32bit mode when XMM registers are available to avoid store
5298         forwarding stalls.
5299         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
5300         corresponding post-reload splitters.
5301
5302 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5303
5304         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
5305         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
5306         __builtin_ia32_roundss.
5307         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
5308         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
5309         __builtin_ia32_roundss.
5310         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
5311         IX86_BUILTIN_SHUFPD here.
5312
5313 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5314
5315         * config/i386/i386.md (plogic): New.
5316         (plogicprefix): Likewise.
5317
5318         * config/i386/mmx.md (mmx_<code><mode>3): New.
5319         (mmx_and<mode>3): Removed.
5320         (mmx_ior<mode>3): Likewise.
5321         (mmx_xor<mode>3): Likewise.
5322
5323         * config/i386/sse.md (<code><mode>3): New.
5324         (*<code><mode>3): Likewise.
5325         (*<code><mode>3): Likewise.
5326         (<code><mode>3): Likewise.
5327         (*sse_<code><mode>3): Likewise.
5328         (*sse2_<code><mode>3): Likewise.
5329         (<code>tf3): Likewise.
5330         (*<code>tf3): Likewise.
5331         (and<mode>3): Likewise.
5332         (*and<mode>3): Likewise.
5333         (ior<mode>3): Removed.
5334         (*ior<mode>3): Likewise.
5335         (xor<mode>3): Likewise.
5336         (*xor<mode>3): Likewise.
5337         (*and<mode>3): Likewise.
5338         (*ior<mode>3): Likewise.
5339         (*xor<mode>3): Likewise.
5340         (and<mode>3): Likewise.
5341         (*sse_and<mode>3): Likewise.
5342         (*sse2_and<mode>3): Likewise.
5343         (andtf3): Likewise.
5344         (*andtf3): Likewise.
5345         (ior<mode>3): Likewise.
5346         (*sse_ior<mode>3): Likewise.
5347         (*sse2_ior<mode>3): Likewise.
5348         (iortf3): Likewise.
5349         (*iortf3): Likewise.
5350         (xor<mode>3): Likewise.
5351         (*sse_xor<mode>3): Likewise.
5352         (*sse2_xor<mode>3): Likewise.
5353         (xortf3): Likewise.
5354         (*xortf3): Likewise.
5355
5356 2008-04-02  Richard Guenther  <rguenther@suse.de>
5357
5358         PR tree-optimization/14495
5359         PR tree-optimization/34793
5360         * tree-vrp.c (struct switch_update): New structure.
5361         (to_remove_edges, to_update_switch_stmts): New VECs.
5362         (simplify_switch_using_ranges): New function.  Remove not taken
5363         case labels and edges.
5364         (simplify_stmt_using_ranges): Call it.
5365         (identify_jump_threads): Mark edges we have queued for removal
5366         so we don't thread them.
5367         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
5368         case label vector.
5369         * tree-cfg.c (group_case_labels): Deal with missing default label.
5370         (tree_verify_flow_info): Allow missing default label.
5371         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
5372         (emit_case_nodes): Likewise.
5373         (expand_case): Do not rely on the default label to be present.
5374         * expr.c (try_casesi): Deal with NULL default_label.
5375         (do_tablejump): Likewise.
5376
5377 2008-04-02  Richard Guenther  <rguenther@suse.de>
5378
5379         PR tree-optimization/14495
5380         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
5381         SWITCH_EXPR here ...
5382         (vrp_visit_switch_stmt): ... but here (new function).
5383         (find_case_label_index): New helper function.
5384         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
5385
5386 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5387
5388         * fwprop.c: Fix ISO-C99ism.
5389
5390 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5391
5392         PR bootstrap/35752
5393         * Makefile.in (objdir): Set it here.
5394         * configure.ac: Not here.  Find dynamic linker characteristics.
5395         * exec-tool.in: Use them.
5396         * aclocal.m4: Regenerate.
5397         * configure: Regenerate.
5398
5399 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5400
5401         * expr.c (expand_var): Delete it.
5402         * expr.h (expand_var): Delete prototype.
5403         * function.c (expand_function_start): Use expand_decl instead.
5404         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
5405         langhook.
5406
5407 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
5408
5409         PR rtl-optimization/35542
5410         * fwprop.c (forward_propagate_and_simplify): Replace
5411         loc_reg_mentioned_in_p with reg_mentioned_p.
5412
5413 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5414
5415         PR rtl-optimization/35281
5416         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
5417         (propagate_rtx_1): Handle PR_HANDLE_MEM.
5418         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
5419         (varying_mem_p): Move above propagate_rtx.
5420         (all_uses_available_at): Do not check MEMs.
5421
5422 2008-04-02  Rafael Espindola  <espindola@google.com>
5423
5424         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
5425         (register_edge_assert_for_2): Split the cond argument.
5426         (register_edge_assert_for_1): Adjust for the change in
5427         register_edge_assert_for_2.
5428         (register_edge_assert_for): Split the cond argument.
5429         (find_switch_asserts): Adjust for the change in
5430         register_edge_assert_for.
5431
5432 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
5433
5434         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
5435         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
5436         offsets for 64-bit mingw.
5437         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
5438         abi for x86_64-pc-mingw.
5439
5440 2008-04-02  Richard Guenther  <rguenther@suse.de>
5441
5442         * tree-vrp.c (extract_range_from_assert): Make sure to not
5443         produce range min/max with TREE_OVERFOW set.
5444         If merging a anti-range and a range keep the anti-range if
5445         the range covers all values of the type.
5446         (register_edge_assert_for_2): Only allow sign-changing
5447         conversions in detecting canonical range checks.  Also
5448         register an assert for the unsigned name if useful.
5449
5450         PR tree-optimization/35787
5451         * tree-vrp.c (vrp_val_max): New function.
5452         (vrp_val_min): Likewise.
5453         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
5454         (vrp_val_is_min): Likewise.
5455         (supports_overflow_infinity): Use vrp_val_{min,max}.
5456         (negative_overflow_infinity): Likewise.
5457         (positive_overflow_infinity): Likewise.
5458         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
5459         (is_positive_overflow_infinity): Likewise.
5460         (is_overflow_infinity): Likewise.
5461         (avoid_overflow_infinity): Use vrp_val_{min,max} and
5462         vrp_val_is_{min,max}.
5463         (set_and_canonicalize_value_range): Canonicalize anti-ranges
5464         to ranges if possible.  Avoid empty ranges.
5465
5466 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5467
5468         PR middle-end/35705
5469         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
5470         the expression is a function address.
5471
5472 2008-04-01  George Helffrich  <george@gcc.gnu.org>
5473
5474         PR fortran/35154, fortran/23057
5475         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
5476         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
5477         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
5478         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
5479         in common.
5480         (dbxout_syms): Check for COMMON-based symbol and wrap in
5481         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
5482         in bracket for efficiency.
5483
5484         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
5485         using DW_TAG_common_block + member offset.
5486         (add_pubname_string): New function.
5487         (dw_expand_expr): New function to find block name and offset for
5488         COMMON var.
5489         (common_check): New function to check whether symbol in Fortran COMMON.
5490         (gen_variable_die): If COMMON, use DW_TAG_common_block.
5491
5492 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
5493
5494         PR c/35436
5495         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
5496
5497 2008-04-02  Ben Elliston  <bje@au.ibm.com>
5498
5499         * config/v850/v850.md (casesi): Remove if (0) code.
5500         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
5501         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
5502
5503 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
5504
5505         * config/i386/i386.md (rex64suffix): New mode attribute.
5506         (floathi<mode>2): Disable expander for SSE math.
5507         (*floathi<mode>2_1): New insn insn_and_split pattern.
5508         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
5509         corresponding post-reload splitters.
5510         (*floathi<mode>2_i387): New macroized insn pattern.
5511         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
5512         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
5513         insn_and_split pattern.
5514         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
5515         New macroized instruction patterns and corresponding post-reload
5516         splitters.
5517         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
5518         and corresponding post-reload splitters.
5519         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
5520         New macroized instruction patterns.
5521         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
5522         macroized instruction patterns and corresponding post-reload splitters.
5523         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
5524         corresponding post-reload splitters.
5525         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
5526         New macroized instruction patterns.
5527         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
5528         corresponding post-reload splitters.
5529         (*floatsi<mode>2_i387): New macroized instruction patterns.
5530
5531 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
5532
5533         * config/i386/i386.md (smaxmin): New.
5534         (umaxmin): Likewise.
5535         (maxminiprefix): Likewise.
5536         (maxminfprefix): Likewise.
5537         (<code><mode>3): Likewise.
5538         (smin<mode>3): Removed.
5539         (smax<mode>3): Likewise.
5540
5541         * config/i386/mmx.md (mmx_<code>v2sf3): New.
5542         (mmx_<code>v4hi3): Likewise.
5543         (mmx_<code>v8qi3): Likewise.
5544         (mmx_smaxv2sf3): Removed.
5545         (mmx_sminv2sf3): Likewise.
5546         (mmx_umaxv8qi3): Likewise.
5547         (mmx_smaxv4hi3): Likewise.
5548         (mmx_uminv8qi3): Likewise.
5549         (mmx_sminv4hi3): Likewise.
5550
5551         * config/i386/sse.md (<addsub><mode>3): New.
5552         (*<addsub><mode>3): Likewise.
5553         (<sse>_vm<addsub><mode>3): Likewise.
5554         (<maxmin><mode>3): Likewise.
5555         (*<maxmin><mode>3_finite): Likewise.
5556         (*<maxmin><mode>3): Likewise.
5557         (<sse>_vm<maxmin><mode>3): Likewise.
5558         (sse3_h<addsub>v4sf3): Likewise.
5559         (sse3_h<addsub>v2df3): Likewise.
5560         (<maxmin>v16qi3): Likewise.
5561         (*<maxmin>v16qi3): Likewise.
5562         (<maxmin>v8hi3): Likewise.
5563         (*<maxmin>v8hi3): Likewise.
5564         (*sse4_1_<maxmin><mode>3): Likewise.
5565         (*sse4_1_<maxmin><mode>3): Likewise.
5566         (add<mode>3): Removed.
5567         (*add<mode>3): Likewise.
5568         (<sse>_vmadd<mode>3): Likewise.
5569         (sub<mode>3): Likewise.
5570         (*sub<mode>3): Likewise.
5571         (<sse>_vmsub<mode>3): Likewise.
5572         (smin<mode>3): Likewise.
5573         (*smin<mode>3_finite): Likewise.
5574         (*smin<mode>3): Likewise.
5575         (<sse>_vmsmin<mode>3): Likewise.
5576         (smax<mode>3): Likewise.
5577         (*smax<mode>3_finite): Likewise.
5578         (*smax<mode>3): Likewise.
5579         (<sse>_vmsmax<mode>3): Likewise.
5580         (sse3_haddv4sf3): Likewise.
5581         (sse3_haddv2df3): Likewise.
5582         (sse3_hsubv4sf3): Likewise.
5583         (sse3_hsubv2df3): Likewise.
5584         (umaxv16qi3): Likewise.
5585         (*umaxv16qi3): Likewise.
5586         (smaxv8hi3): Likewise.
5587         (*smaxv8hi3): Likewise.
5588         (*sse4_1_smax<mode>3): Likewise.
5589         (*sse4_1_umax<mode>3): Likewise.
5590         (uminv16qi3): Likewise.
5591         (*uminv16qi3): Likewise.
5592         (sminv8hi3): Likewise.
5593         (*sminv8hi3): Likewise.
5594         (*sse4_1_smin<mode>3): Likewise.
5595         (*sse4_1_umin<mode>3): Likewise.
5596
5597 2008-04-01  Rafael Espindola  <espindola@google.com>
5598
5599         * tree-cfg.c (verify_expr): remove in_phi.
5600         (verify_stmt): Don't call walk_tree with verify_expr. Use
5601         is_gimple_min_invariant instead of is_gimple_val.
5602
5603 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
5604
5605         * doc/include/gpl_v3.texi: Update for manpage generation.
5606         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
5607         gpl.texi.
5608         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
5609         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
5610         gpl_v3.texi instead of gpl.texi.
5611         (gpl.pod): New.
5612
5613 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
5614
5615         PR pch/13675
5616         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
5617
5618 2008-04-01  Rafael Espindola  <espindola@google.com>
5619
5620         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
5621         (extract_code_and_val_from_cond): Use
5622         extract_code_and_val_from_cond_with_ops.
5623
5624 2008-04-01  Jan Hubicka  <jh@suse.cz>
5625
5626         * function.c (free_after_compilation): Free epilogue_delay_list.
5627         (prepare_function_start): Assert that previous compilation was freed.
5628
5629 2008-04-01  Jan Hubicka  <jh@suse.cz>
5630             Jim Wilson  <wilson@tuliptree.org>
5631             Andreas Tobler <andreast@gcc.gnu.org>
5632
5633         PR middle-end/35781
5634         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
5635         rtl.emit instead cfun->emit.
5636         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
5637         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
5638
5639 2008-04-01  Ben Elliston  <bje@au.ibm.com>
5640
5641         * doc/c-tree.texi (Function Basics): Fix grammatical error.
5642
5643 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
5644
5645         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
5646         New options
5647         (fprofile-use): Add var flag_profile_use
5648         * coverage.c (coverage_begin_output): Do not open a gcno file for
5649         output only if -ftest-coverage is set.
5650         Do not add getpwd() to gcda file path.
5651         (build_gcov_info): Check the new flag
5652         flag_profile_datafile_relative_path.
5653         (coverage_init): Use profile_data_prefix.
5654         Read profile counter only if flag_profile_use is set.
5655         * opts.c (common_handle_option): New option fprofile-use=,
5656         fprofile-dir=, fprofile-generate=.
5657         * toplev.c (profile_data_prefix): New variable definition.
5658         * toplev.h (profile_data_prefix): New declaration.
5659         * doc/invoke.tex (Option Summary, Optimization Options):
5660         Add new options.
5661
5662 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
5663
5664         * varasm.c (output_constant_pool_1): In LABEL_REF check,
5665         use tmp consistently.
5666
5667         PR target/35695
5668         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
5669         * config/ia64/ia64.c (rtx_needs_barrier): Handle
5670         UNSPEC_FR_RECIP_APPROX_RES.
5671         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
5672
5673 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
5674
5675         PR c/35750
5676         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
5677
5678 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5679
5680         PR middle-end/30186
5681         * fold-const.c (fold_indirect_ref_1): Support accessing non first
5682         element of the vector via a pointer.
5683
5684 2008-03-31  Ian Lance Taylor  <iant@google.com>
5685
5686         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
5687
5688 2008-03-31  Jan Hubicka  <jh@suse.cz>
5689
5690         * builtins.c (expand_builtin_setjmp_receiver): Update call of
5691         get_arg_pointer_save_area.
5692         * expr.c (init_expr): Just clear out rtl.expr.
5693         * function.c (free_after_compilation): Clear out whole RTL structure.
5694         (get_func_frame_size): Merge into ...
5695         (get_frame_size): ... this one.
5696         (assign_stack_local_1): Merge into ...
5697         (assign_stack_local): ... this one.
5698         (expand_function_end): Update call of get_arg_pointer_save_area.
5699         (get_art_pointer_save_area): Remove cfun argument.
5700         * function.h (emit_status): regno_pointer_align does not need length
5701         attribute. Move x_regno_reg_rtx to ...
5702         (regno_reg_rtx): ... new global array.
5703         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
5704         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
5705         apply_args_value, forced_labels, stack_pointer_delta):
5706         Update accestors.
5707         (struct varasm_status): Move here from varasm.c
5708         (struct rtl_data): New. Move here some fields from struct function.
5709         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
5710         frame_offset, stack_check_probe_note, arg_pointer_save_area,
5711         used_temp_slots avail_temp_slots, temp_slot_level,
5712         nonlocal_goto_handler_labels): Update accesstors.
5713         (rtl): New global variable.
5714         (struct function): Move some fileds to rtl_data.
5715         (get_arg_pointer_save_area): Update prototype.
5716         * emit-rtl.c (rtl): Declare.
5717         (regno_reg_rtx): Declare.
5718         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
5719         Update.
5720         (gen_reg_rtx): Update.
5721         (init_virtual_regs): Do not tate emit_status argument.
5722         (init_emit): Do not allocate emit.
5723         * varasm.c (varasm_statuc): Move to function.h.
5724         (n_deferred_constatns): Update accestor.
5725         (init_varasm_status): Do not allocate varasm_status.
5726         (force_const_mem, get_pool_size, output_constant_pool): Update.
5727         * stmt.c (force_label_rtx): Do not use x_ prefixes.
5728         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
5729
5730 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
5731
5732         PR rtl-optimization/35729
5733         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
5734         references.
5735
5736 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
5737
5738         PR target/32000
5739         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
5740         load/store if memory is unaligned.
5741         (*movti_rex64): Likewise.
5742
5743         * config/i386/predicates.md (misaligned_operand): New.
5744
5745 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
5746
5747         PR tree-opt/35431
5748         * tree-ssa-phiopt.c (conditional_replacement): Return early for
5749         complex types.
5750
5751 2008-03-31  Jan Beulich  <jbeulich@novell.com>
5752
5753         * config/ia64/constraints.md: Add 'j' constraint.
5754         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
5755         (movdi_internal): Likewise.
5756
5757 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
5758
5759         PR c/35748
5760         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
5761
5762 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
5763
5764         PR target/35757
5765         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
5766         proper error message for the third argument on blendpd and
5767         blendps.
5768
5769         * config/i386/sse.md (blendbits): New.
5770         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
5771
5772 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
5773
5774         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
5775
5776 2008-03-30  Richard Guenther  <rguenther@suse.de>
5777
5778         PR middle-end/31023
5779         * fold-const.c (fold_sign_changed_comparison): Do leave
5780         conversions to base-types alone.
5781
5782 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5783
5784         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
5785         the link register if one altivec register is be saved.
5786
5787 2008-03-30  Ben Elliston  <bje@au.ibm.com>
5788
5789         * final.c (final_scan_insn): Remove if (0) code.
5790
5791 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
5792
5793         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
5794
5795 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
5796
5797         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
5798         of V4SFmode to ix86_binary_operator_ok.
5799
5800 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
5801
5802         * config/i386/i386.c (override_options): Initialize
5803         ix86_veclib_handler to ix86_veclibabi_svml when
5804         -mveclibabi=svml is used.
5805         (ix86_veclibabi_svml): New function for SVML ABI style
5806         vectorization support.
5807         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
5808
5809 2008-03-28  Rafael Espindola  <espindola@google.com>
5810
5811         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
5812         (tree_binary_nonnegative_warnv_p): Make it public.
5813         (tree_single_nonnegative_warnv_p): Make it public.
5814         (tree_invalid_nonnegative_warnv_p): Make it public.
5815         (tree_unary_nonzero_warnv_p): Make it public.
5816         (tree_binary_nonzero_warnv_p): Make it public
5817         (tree_single_nonzero_warnv_p): Make it public.
5818         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
5819         (extract_range_from_binary_expr): Split the expr argument.
5820         (extract_range_from_unary_expr): Split the expr argument.
5821         (extract_range_from_comparison): Split the expr argument.
5822         (extract_range_from_expr): Use the new aux functions.
5823         (vrp_evaluate_conditional_warnv): Use
5824         vrp_evaluate_conditional_warnv_with_ops.
5825         * tree.h (tree_unary_nonzero_warnv_p): Declare.
5826         (tree_binary_nonzero_warnv_p): Declare.
5827         (tree_single_nonzero_warnv_p): Declare.
5828         (tree_expr_nonzero_warnv_p): Declare.
5829         (tree_unary_nonnegative_warnv_p): Declare.
5830         (tree_binary_nonnegative_warnv_p): Declare.
5831         (tree_single_nonnegative_warnv_p): Declare.
5832         (tree_invalid_nonnegative_warnv_p): Declare.
5833
5834 2008-03-28  Richard Guenther  <rguenther@suse.de>
5835
5836         PR tree-optimization/30317
5837         PR tree-optimization/30911
5838         PR tree-optimization/34793
5839         * tree-vrp.c (set_and_canonicalize_value_range): New function.
5840         (struct assert_locus_d): New member EXPR.
5841         (register_new_assert_for): Add EXPR parameter to support
5842         ASSERT_EXPR <name, expr OP limit>.
5843         (register_edge_assert_for_1): Adjust callers.
5844         (find_assert_locations): Likewise.
5845         (process_assert_insertions_for): Build condition from expression.
5846         (extract_range_from_assert): Handle ASSERT_EXPRs
5847         of the form ASSERT_EXPR <name, expr OP limit>.
5848         (register_edge_assert_for_2): New helper registering
5849         asserts for comparisons.  Recognize range tests of the form
5850         (unsigned)i - CST1 OP CST2.
5851         (register_edge_assert_for_1): Use it.
5852         (register_edge_assert_for): Likewise.
5853         (needs_overflow_infinity): Integer sub-types
5854         do not need overflow infinities.
5855         (vrp_val_is_max): The extreme values of integer sub-types
5856         are those of the base type.
5857         (vrp_val_is_min): Likewise.
5858         * tree.def (ASSERT_EXPR): Document extra allowed conditional
5859         expressions.
5860
5861 2008-03-28  Nick Clifton  <nickc@redhat.com>
5862
5863         PR target/31110
5864         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
5865         Return GENERAL_REGS for stack adjustment reloads.
5866
5867 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5868
5869         PR target/31334
5870         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
5871         const_vector when all the vectors are constant.
5872
5873 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
5874
5875         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
5876         comparisons.
5877         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
5878         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
5879         (scc_sf): New.
5880         (s<code>_sf): Use new scc_sf attribute for opcode names.
5881
5882 2008-03-27  Tom Tromey  <tromey@redhat.com>
5883
5884         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
5885         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
5886         config/spu/t-spu-elf, config/i386/t-interix,
5887         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
5888         config/i386/x-darwin, config/i386/x-mingw32,
5889         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
5890         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
5891         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
5892         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
5893         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
5894         config/rs6000/x-darwin, config/rs6000/t-rs6000,
5895         config/score/t-score-elf, config/arm/t-strongarm-pe,
5896         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
5897         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
5898         Revert automatic dependency patch.
5899
5900 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5901
5902         PR target/35657
5903         * config/i386/i386.c (ix86_function_arg_boundary): Align
5904         decimal floating point to its natural boundary.
5905
5906 2008-03-27  Richard Guenther  <rguenther@suse.de>
5907
5908         PR middle-end/35716
5909         * fold-const.c (fold_comparison): Restrict distinct decl
5910         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
5911         solely rely on operand_equal_p.
5912
5913 2008-03-27  Richard Guenther  <rguenther@suse.de>
5914
5915         PR c/32511
5916         * c-common.c (handle_weak_attribute): Reject combination of
5917         weak and inline.
5918
5919 2008-03-27  Richard Guenther  <rguenther@suse.de>
5920
5921         PR tree-optimization/32810
5922         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
5923         conversions from DECL_INITIAL.
5924         (fold_const_aggregate_ref): Likewise from constructor elements.
5925
5926 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
5927
5928         * tree-affine.h (aff_combination_expand): Declare.
5929         (get_inner_reference_aff): Likewise.
5930         * tree-affine.c (aff_combination_expand): Split out from
5931         tree_to_aff_combination_expand.
5932         (get_inner_reference_aff): New function.
5933         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
5934         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
5935         (struct lim_aux_data): sm_done field removed.
5936         (mem_ref_loc_p, mem_ref_locs_p): New types.
5937         (struct mem_ref): Added id, stored, accesses_in_loop,
5938         indep_loop, dep_loop, indep_ref, dep_ref fields.
5939         Removed is_stored, locs and next fields.
5940         (memory_accesses): New variable.
5941         (movement_possibility): Do not allow moving statements
5942         that store to memory.
5943         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
5944         New functions.
5945         (determine_max_movement): For statements with memory references,
5946         find the outermost loop in that the reference is independent.
5947         (move_computations_stmt): Mark the virtual operands for renaming.
5948         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
5949         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
5950         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
5951         add_vop_ref_mapping, create_vop_ref_mapping_loop,
5952         create_vop_ref_mapping, analyze_memory_references,
5953         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
5954         get_all_locs_in_loop, ref_always_accessed_p,
5955         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
5956         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
5957         store_motion_loop, store_motion): New functions.
5958         (struct vop_to_refs_elt): New type.
5959         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
5960         memref_hash, memref_eq, hoist_memory_references): Rewritten.
5961         (schedule_sm): Replaced by...
5962         (execute_sm): ... this.
5963         (determine_lsm_ref, hoist_memory_references,
5964         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
5965         find_more_ref_vops, free_mem_ref, free_mem_refs,
5966         determine_lsm_loop, determine_lsm): Removed.
5967         (tree_ssa_lim_finalize): Free data structures used by store motion.
5968         (tree_ssa_lim): Call analyze_memory_references.  Use
5969         store_motion instead of determine_lsm.
5970
5971 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
5972
5973         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
5974         rename tmake_file to m68hc11/t-m68hc11.
5975         (mcore): Set inhibit_libc to true.
5976         * config.host (alpha*-dec-*vms*): Set extra_programs.
5977         (interix3*): Don't use host_xmake_file.
5978         * configure.ac: Let config.gcc override inhibit_libc.
5979         * configure: Regenerate.
5980
5981         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
5982         * config/t-openbsd-thread: Remove commented out lines.
5983         
5984         * config/x-interix: Remove.
5985
5986         * config/m68hc11/t-m68hc11-gas: Rename to...
5987         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
5988
5989         * config/mcore/t-mcore: Remove T_CFLAGS.
5990         * config/mcore/t-mcore-pe: Likewise.
5991
5992 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
5993
5994         * configure.ac: Replace custom __GNU_SOURCE test with
5995         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
5996         * aclocal.m4: Regenerate.
5997         * configure: Regenerate.
5998         * config.in: Regenerate.
5999
6000 2008-03-27  Richard Guenther  <rguenther@suse.de>
6001
6002         * fold-const.c (target.h): Include.
6003         (fold_comparison): Fold comparison of addresses of decls
6004         that bind locally or of constants.  Consolidate address folding code.
6005         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
6006         results from fold_binary_to_constant.
6007         (compare_values_warnv): Likewise.
6008
6009 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
6010
6011         PR middle-end/35429
6012         * fold-const.c (fold_truthop): Check for integeral types when folding
6013         a == 0 && b == 0 and a != 0 || b != 0 .
6014
6015 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
6016
6017         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
6018
6019 2008-03-26  Andreas Schwab  <schwab@suse.de>
6020
6021         * doc/invoke.texi: Fix use of @item vs. @itemx.
6022
6023 2008-03-26  Tom Tromey  <tromey@redhat.com>
6024
6025         * Makefile.in (build/gensupport.o, build/print-rtl.o,
6026         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
6027         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
6028         build/gencodes.o, build/genconditions.o, build/genconfig.o,
6029         build/genconstants.o, build/genemit.o, build/genextract.o,
6030         build/genflags.o, build/genmddeps.o, build/genopinit.o,
6031         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
6032         options.h.
6033
6034 2008-03-26  Richard Guenther  <rguenther@suse.de>
6035
6036         Revert
6037         2008-03-26  Richard Guenther  <rguenther@suse.de>
6038
6039         * fold-const.c (target.h): Include.
6040         (fold_comparison): Fold comparison of addresses of two decls
6041         that bind locally.  Consolidate address folding code.
6042
6043 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6044
6045         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
6046         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
6047         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
6048         dconstsqrt2, dconstthird, dconste and/or dconst10.
6049         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
6050         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
6051         dconstsqrt2, dconste): Delete.
6052         (init_emit_once): Likewise.  Simplify initializing dconstm1.
6053         Constify variable.
6054         * real.c (get_real_const): New.
6055         * real.h (dconst3, dconst10, dconstm2, dconstthird,
6056         dconstsqrt2, dconste): Delete.
6057         (real_value_const, get_real_const): New.
6058
6059 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
6060
6061         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
6062
6063         * config/i386/i386.c (ix86_function_arg_boundary): Check
6064         BIGGEST_ALIGNMENT instead of 128.
6065         (setup_incoming_varargs_64): Likewise.
6066
6067 2008-03-26  Tom Tromey  <tromey@redhat.com>
6068
6069         * Makefile.in (DEPFILES): Add missing '/'.
6070
6071 2008-03-26  Richard Guenther  <rguenther@suse.de>
6072
6073         * fold-const.c (target.h): Include.
6074         (fold_comparison): Fold comparison of addresses of two decls
6075         that bind locally.  Consolidate address folding code.
6076
6077 2008-03-26  Nick Clifton  <nickc@redhat.com>
6078
6079         PR target/31232
6080         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
6081         not allow INT+INT as a legitimate addressing mode.
6082
6083 2008-03-26  Richard Guenther  <rguenther@suse.de>
6084
6085         * tree-flow.h (widen_bitfield): Remove declaration.
6086         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
6087         (widen_bitfield): Remove function.
6088         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
6089         code.
6090
6091 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6092
6093         PR target/31558
6094         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
6095         error_mark_node's.
6096
6097 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
6098
6099         PR rtl-optimization/35232
6100         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
6101         (forget_old_reloads_1, forget_marked_reloads): Don't clear
6102         reg_reloaded_call_part_clobbered here.
6103         (reload_regs_reach_end_p): New function.
6104         (reload_reg_rtx_for_input): New variable.
6105         (reload_reg_rtx_for_output): Likewise.
6106         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
6107         when reassigning a pseudo register.  Load reloadreg from 
6108         reload_reg_rtx_for_input, moving the mode and register
6109         calculation to...
6110         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
6111         instead of the original when deciding whether an input reload
6112         would be a no-op or whether an output reload can be deleted.
6113         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
6114         when setting up new_spill_reg_store.  Load it from
6115         reload_reg_rtx_for_output, moving the mode and register
6116         calculation to...
6117         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
6118         instead of the original when deciding whether an output reload
6119         would be a no-op.  Do the same when modifying insn notes.
6120         Use rtx_equal_p instead of == to compare the registers.
6121         (inherit_piecemeal_p): Take a mode and two register numbers
6122         as argument.
6123         (emit_reload_insns): Clear new_spill_reg_store for every hard
6124         register in the reload register.  Remove spill registers
6125         from reg_reloaded_valid before considering whether to record
6126         inheritance information for them.  Use reload_reg_rtx_for_output
6127         instead of reg_rtx when recording output reloads.  Use
6128         reload_reg_rtx_for_input instead of reg_rtx when recording
6129         input reloads.  Set or clear reg_reloaded_call_part_clobbered
6130         at the same time as setting reg_reloaded_valid.
6131         (delete_output_reload): Add a new_reload_reg parameter and use it
6132         instead of rld[j].reg_rtx.
6133         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
6134         calls accordingly.
6135
6136 2008-03-25  Tom Tromey  <tromey@redhat.com>
6137
6138         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
6139         (build/genattr.o): Likewise.
6140         (build/genattrtab.o): Likewise.
6141         (build/gencodes.o): Likewise.
6142         (build/genconfig.o): Likewise.
6143         (build/genconstants.o): Likewise.
6144         (build/genemit.o): Likewise.
6145         (build/genextract.o): Likewise.
6146         (build/genflags.o): Likewise.
6147
6148 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
6149         
6150         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
6151         instead of size_int for integer types.
6152         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
6153         to match type of MINUS_EXPR.
6154         
6155 2008-03-25  Tom Tromey  <tromey@redhat.com>
6156
6157         * configure: Rebuilt.
6158         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
6159         Makefile.
6160
6161 2008-03-25  Tom Tromey  <tromey@redhat.com>
6162
6163         * config/x-solaris (host-solaris.o): Update.
6164         * config/x-linux (host-linux.o): Update.
6165         * config/x-hpux (host-hpux.o): Update.
6166         * config/x-darwin (host-darwin.o): Update.
6167         * config/v850/t-v850e (v850-c.o): Update.
6168         * config/v850/t-v850 (v850-c.o): Update.
6169         * config/t-vxworks (vxworks.o): Update.
6170         * config/t-sol2 (sol2-c.o, sol2.o): Update.
6171         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
6172         * config/spu/t-spu-elf (spu-c.o): Update.
6173         (spu.o): Remove.
6174         * config/sh/t-symbian (sh-c.o): Update.
6175         (symbian.o): Update.
6176         * config/sh/t-sh (sh-c.o): Update.
6177         * config/score/t-score-elf (score7.o, score3.o): Update.
6178         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
6179         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
6180         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
6181         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
6182         (rs6000.o): Remove.
6183         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
6184         * config/m32c/t-m32c (m32c-pragma.o): Update.
6185         * config/ia64/t-ia64 (ia64-c.o): Update.
6186         * config/i386/x-mingw32 (host-mingw32.o): Update.
6187         * config/i386/x-i386 (driver-i386.o): Update.
6188         * config/i386/x-darwin (host-i386-darwin.o): Update.
6189         * config/i386/x-cygwin (host-cygwin.o): Update.
6190         * config/i386/t-nwld (nwld.o): Update.
6191         * config/i386/t-netware (netware.o): Update.
6192         * config/i386/t-interix (winnt.o): Update.
6193         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
6194         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
6195         msformat-c.o): Update.
6196         * config/bfin/t-bfin-linux (generated_files): Add
6197         linux-sysroot-suffix.h.
6198         * config/arm/t-wince-pe (pe.o): Update.
6199         * config/arm/t-strongarm-pe (pe.o): Update.
6200         * config/arm/t-pe (pe.o): Update.
6201         * config/arm/t-arm (arm-c.o): Update.
6202         * doc/install.texi (Prerequisites): Require make 3.80.
6203         * Makefile.in: Remove .o targets.
6204         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
6205         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
6206         (simple_generated_h, simple_generated_c): Move earlier.
6207         (generated_files): New variable.
6208         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
6209         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
6210         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
6211         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
6212         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
6213         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
6214         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
6215         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
6216         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
6217         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
6218         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
6219         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
6220         (.c.o): Remove.
6221         (COMPILE.base, COMPILE): New variables.
6222         (%.o): New pattern rule.
6223         (ALL_HOST_OBJS): New variable.
6224         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
6225         (dummy-checksum.o, cc1-checksum.o): Remove.
6226         (DRIVER_SHLIB): New variable.
6227         (DRIVER_DEFINES): Use it.
6228         (gencondmd.c): Move out of build/.
6229         (s-conditions): Update.
6230         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
6231         (ALL_BUILD_OBJS): Likewise.
6232         (build/%.o): Use BUILDCOMPILE.
6233         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
6234         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
6235         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
6236         build/gencheck.o, build/gencodes.o, build/genconditions.o,
6237         build/genconfig.o, build/genconstants.o, build/genemit.o,
6238         build/genextract.o, build/genflags.o, build/genmddeps.o,
6239         build/genopinit.o, build/genoutput.o, build/genpeep.o,
6240         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
6241         build/gen-protos.o, build/scan.o, build/fix-header.o,
6242         build/scan-decls.o): Simplify.
6243         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
6244         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
6245         prefix.o, toplev.o): Reduce to variable setting.
6246         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
6247         ($(out_object_file), gcc-options.o): New targets.
6248         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
6249         * configure: Rebuilt.
6250         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
6251         * doc/sourcebuild.texi (Front End Directory): Document new variable.
6252
6253 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
6254
6255         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
6256         complain when we hit an error, return ERROR_MARK_NODE.
6257
6258 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6259
6260         * config/sh/constraints.md (Pso, Psz): New constraints.
6261         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
6262         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
6263
6264 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6265
6266         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
6267         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
6268
6269 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6270
6271         * config/sh/sh.md (prefetch): Add condition for SH2A target.
6272         (prefetch_sh2a): New.   
6273
6274 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
6275             Naveen.H.S  <naveen.hs@kpitcummins.com>
6276
6277         * config/sh/constraints.md (I28): New constraint.
6278         * config/sh/sh.c (broken_move): Add support for movi20s.
6279         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
6280
6281 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
6282             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
6283             Naveen.H.S  <naveen.hs@kpitcummins.com>
6284
6285         * config/sh/sh.c (SH_ATTRIBUTES): Define.
6286         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
6287         (print_operand): Handle resbank in %@ operand code.
6288         (sh_encode_section_info): New.
6289         (push_regs): Add conditions for resbank.
6290         (sh_expand_epilogue): Likewise.
6291         (sh_insert_attributes): Likewise.
6292         (sh_attribute_table): Likewise.
6293         (sh_handle_resbank_handler_attribute): New.
6294         (sh2a_handle_function_vector_handler_attribute): New.
6295         (sh2a_is_function_vector_call): New.
6296         (sh2a_get_function_vector_number): New.
6297         (sh2a_function_vector_p): New.
6298         (sh_cfun_resbank_handler_p): New.
6299         * config/sh/sh.md (calli): Emit jsr/n if possible.
6300         (calli_tbr_rel): New.
6301         (calli_pcrel): Emit jsr/n if possible.
6302         (return_i): Emit rts/n if possible.
6303         (call_valuei_tbr_rel): New.
6304         (call_valuei_pcrel): Add condition for SH2A target.
6305         (call_value): Likewise.
6306         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
6307         (sh2a_get_function_vector_number): Likewise.
6308         (sh2a_is_function_vector_call): Likewise.
6309         * doc/extend.texi: Document TBR relative addressing of SH2A.
6310         (resbank): Add description for SH2A.
6311
6312 2008-03-24  Richard Guenther  <rguenther@suse.de>
6313
6314         PR c/22371
6315         * gimplify.c (gimplify_modify_expr): For frontend type-correct
6316         pointer assignments change conversions according to middle-end rules.
6317         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
6318         * configure.ac: Include type checking in yes.
6319         * configure: Regenerate.
6320
6321 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6322
6323         * diagnostic.c (diagnostic_count_diagnostic): Delete.
6324         (diagnostic_report_diagnostic): Update. Handle ICEs here.
6325         
6326 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
6327
6328         * gthr-vxworks.h (UNUSED): Define.
6329
6330 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
6331
6332         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
6333
6334 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
6335
6336         * doc/extend.texi (Function Attributes): Add missing comma in the
6337         example of the "alloc_size" attribute.
6338         
6339 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
6340
6341         Revert:
6342         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
6343
6344         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
6345         32bit host.
6346
6347         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
6348
6349         PR target/35496
6350         * stor-layout.c (update_alignment_for_field): Set minimum alignment
6351         of the underlying type of a MS bitfield layout to the natural
6352         alignment of the type.
6353
6354         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
6355
6356         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
6357         to their natural alignment to avoid store forwarding stalls.
6358
6359 2008-03-22  Richard Guenther  <rguenther@suse.de>
6360
6361         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
6362         For PHI nodes verify the address is invariant.
6363         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
6364         (get_symbol_constant_value): Use is_gimple_min_invariant.
6365         (maybe_fold_stmt_indirect): Likewise.
6366
6367 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
6368
6369         PR rtl-optimization/33927
6370         * Makefile.in (dse.o): Depend on $(TM_P_H).
6371         * expr.h (extract_low_bits): Declare.
6372         * expmed.c (extract_low_bits): New function.
6373         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
6374         * dse.c: Include tm_p.h.
6375         (find_shift_sequence): Remove the read_reg argument and return the
6376         read value.  Emit the instructions instead of returning them.
6377         Iterate on new_mode rather than calculating it each time.
6378         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
6379         source to NEW_MODE and extract_low_bits to convert the shifted
6380         value to READ_MODE.
6381         (replace_read): Allow the load and store to have different mode
6382         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
6383         or extraction instructions before trying the replacement.  Update
6384         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
6385
6386 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
6387
6388         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
6389         to their natural alignment to avoid store forwarding stalls.
6390
6391 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6392
6393         PR target/27946
6394         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
6395         encouraging but not allowing gprs for input;
6396         change the input constraint to !f#r.
6397         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
6398         gprs for output;
6399         change the output constraint to !f#r.
6400
6401 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
6402
6403         PR target/13958
6404         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
6405         corresponding post-reload splitters.
6406         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
6407         when x87 FP math is selected.
6408         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
6409         New function prototype.
6410         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
6411         unreachable function to ease macroization of insn patterns.
6412
6413 2008-03-21  Martin Jambor  <mjambor@suse.cz>
6414
6415         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
6416         reference dumps if ddr is NULL or dependence is unknown.
6417
6418 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6419
6420         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
6421         unsigned extension into account.
6422         (ATOMIC_COMPARE_AND_SWAP): Likewise.
6423         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
6424         Do computations on a scratch register.
6425
6426 2008-03-21  Richard Guenther  <rguenther@suse.de>
6427
6428         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
6429         Use is_gimple_min_invariant instead of TREE_INVARIANT.
6430         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
6431         * tree-ssa-dom.c (record_equality): Likewise.
6432         * tree-inline.c (copy_body_r): Likewise.
6433         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
6434         TREE_INVARIANT.
6435
6436 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6437
6438         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
6439         as 'delete_unused' argument.
6440
6441 2008-03-20  Richard Guenther  <rguenther@suse.de>
6442
6443         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
6444         special casing of constant qualifiers.
6445         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
6446         care about them in general.
6447         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
6448         regardless of their type.
6449         (fold_stmt_r): Forcefully fold *& if we end up with that.
6450
6451 2008-03-20  Paul Brook  <paul@codesourcery.com>
6452
6453         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
6454         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
6455         linker flags.
6456         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
6457         definition.
6458         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
6459         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
6460
6461 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
6462
6463         * common.opt (Wmudflap): New option.
6464         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
6465         (mx_register_decls): Likewise.
6466         (mudflap_finish_file): Likewise.
6467         * doc/invoke.texi: Document -Wno-mudflap.
6468
6469 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
6470
6471         * c-format.c (replace_format_name_to_system_name): New.
6472         (cmp_attribs): New.
6473         (convert_format_name_to_system_name): New.
6474         (decode_format_attr): Add use of convert_format_name_to_system_name.
6475         (format_types_orig): Add gnu_ prefix to names.
6476         (check_format_info_main): Special treating of \0 escaped names for
6477         supporting multi-character format specifiers as I32, I64.
6478         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
6479         (gnu_target_overrides_format_attributes): New.
6480         * c-format.h: Add structure target_ovr_attr to hold
6481         system specific formatter names.
6482         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
6483         msformat-c.o file to c_target_objs and cxx_target_objs.
6484         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
6485         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
6486         (TARGET_N_FORMAT_TYPES): New.
6487         * config/i386/msformat-c.c: New.
6488         * config/i386/t-cygming: Add build rule for msformat-c.o.
6489         * doc/extend.texi: Add new format names gnu_* and ms_* and
6490         further details.
6491         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
6492
6493 2008-03-20  Ira Rosen  <irar@il.ibm.com>
6494
6495         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
6496         optimizations turned on under -O3.
6497         (ftree-vectorize): Add that the flag is turned on with -O3.
6498
6499 2008-03-20  Ben Elliston  <bje@au.ibm.com>
6500
6501         * regmove.c (try_auto_increment): Fix spelling error in comment.
6502         * final.c (final_scan_insn): Likewise.
6503
6504 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
6505
6506         PR target/14552
6507         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
6508         allocator preferences for "y" and "r" class registers.
6509         ("*mov<mode>_internal"): Ditto.
6510         ("*movv2sf_internal_rex64"): Ditto.
6511         ("*movv2sf_internal"): Ditto.
6512
6513 2008-03-19  Michael Matz  <matz@suse.de>
6514
6515         PR middle-end/35616
6516         * calls.c (expand_call): Check overlap of arguments with call
6517         address for sibcalls.
6518
6519 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
6520
6521         PR target/35496
6522         * stor-layout.c (update_alignment_for_field): Set minimum alignment
6523         of the underlying type of a MS bitfield layout to the natural
6524         alignment of the type.
6525
6526 2008-03-19  Jan Hubicka  <jh@suse.cz>
6527
6528         PR other/35094
6529         * toplev.c (decode_d_option): Handle all CPP flags.
6530         * tree-vrp.c: Update tree_pass descriptors.
6531         * regrename.c: Update tree_pass descriptors.
6532         * fwprop.c: Update tree_pass descriptors.
6533         * doc/invoke.texi: Remove documentation of dropped -d? flags.
6534         * tree-into-ssa.c: Update tree_pass descriptors.
6535         * tree-dump.c: Update tree_pass descriptors.
6536         * tree-complex.c: Update tree_pass descriptors.
6537         * tree-dump.h: Update tree_pass descriptors.
6538         * see.c: Update tree_pass descriptors.
6539         * cgraphbuild.c: Update tree_pass descriptors.
6540         * tracer.c: Update tree_pass descriptors.
6541         * tree-loop-distribution.c: Update tree_pass descriptors.
6542         * cgraph.c: Update tree_pass descriptors.
6543         * postreload-gcse.c: Update tree_pass descriptors.
6544         * postreload.c: Update tree_pass descriptors.
6545         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
6546         * tree-tailcall.c: Update tree_pass descriptors.
6547         * tree-pass.h (tree_opt_pass): Rename to ...
6548         (opt_pass) ... this one; add "type" field and remove letter field.
6549         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
6550         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
6551         all_lowering_passes): Update declaration.
6552         * ipa-cp.c: Update tree_pass descriptors.
6553         * final.c: Update tree_pass descriptors.
6554         * omp-low.c: Update tree_pass descriptors.
6555         * tree-ssa-dse.c: Update tree_pass descriptors.
6556         * ipa-reference.c: Update tree_pass descriptors.
6557         * tree-ssa-uncprop.c: Update tree_pass descriptors.
6558         * auto-inc-dec.c: Update tree_pass descriptors.
6559         * reorg.c: Update tree_pass descriptors.
6560         * cgraphunit.c: Update tree_pass descriptors.
6561         * tree-ssa-copyrename.c: Update tree_pass descriptors.
6562         * tree-ssa-ccp.c: Update tree_pass descriptors.
6563         * df-core.c: Update tree_pass descriptors.
6564         * mode-switching.c: Update tree_pass descriptors.
6565         * tree-nomudflap.c: Update tree_pass descriptors.
6566         * modulo-sched.c: Update tree_pass descriptors.
6567         * ipa-pure-const.c: Update tree_pass descriptors.
6568         * cse.c: Update tree_pass descriptors.
6569         * web.c: Update tree_pass descriptors.
6570         * tree-stdarg.c: Update tree_pass descriptors.
6571         * tree-ssa-math-opts.c: Update tree_pass descriptors.
6572         * tree-ssa-dom.c: Update tree_pass descriptors.
6573         * tree-nrv.c: Update tree_pass descriptors.
6574         * tree-ssa-alias.c: Update tree_pass descriptors.
6575         * loop-init.c: Update tree_pass descriptors.
6576         * gimple-low.c: Update tree_pass descriptors.
6577         * ipa-inline.c: Update tree_pass descriptors.
6578         * tree-ssa-sink.c: Update tree_pass descriptors.
6579         * global.c: Update tree_pass descriptors.
6580         * ifcvt.c: Update tree_pass descriptors.
6581         * jump.c: Update tree_pass descriptors.
6582         * predict.c: Update tree_pass descriptors.
6583         * tree-ssa-loop.c: Update tree_pass descriptors.
6584         * recog.c: Update tree_pass descriptors.
6585         * dse.c: Update tree_pass descriptors.
6586         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
6587         * tree-eh.c: Update tree_pass descriptors.
6588         * regmove.c: Update tree_pass descriptors.
6589         * local-alloc.c
6590         * function.c: Update tree_pass descriptors.
6591         * tree-vectorizer.c: Update tree_pass descriptors.
6592         * gcse.c: Update tree_pass descriptors.
6593         * ipa-type-escape.c: Update tree_pass descriptors.
6594         * tree-if-conv.c: Update tree_pass descriptors.
6595         * init-regs.c: Update tree_pass descriptors.
6596         * ipa.c: Update tree_pass descriptors.
6597         * tree-ssa-phiopt.c: Update tree_pass descriptors.
6598         * rtl-factoring.c: Update tree_pass descriptors.
6599         * lower-subreg.c: Update tree_pass descriptors.
6600         * bt-load.c: Update tree_pass descriptors.
6601         * tree-dfa.c: Update tree_pass descriptors.
6602         * except.c: Update tree_pass descriptors.
6603         * emit-rtl.c: Update tree_pass descriptors.
6604         * cfgexpand.c: Update tree_pass descriptors.
6605         * tree-cfgcleanup.c: Update tree_pass descriptors.
6606         * cfgcleanup.c: Update tree_pass descriptors.
6607         * tree-ssa-pre.c: Update tree_pass descriptors.
6608         * tree-sra.c: Update tree_pass descriptors.
6609         * tree-mudflap.c: Update tree_pass descriptors.
6610         * tree-ssa-copy.c: Update tree_pass descriptors.
6611         * cfglayout.c: Update tree_pass descriptors.
6612         * tree-ssa-forwprop.c: Update tree_pass descriptors.
6613         * tree-ssa-dce.c: Update tree_pass descriptors.
6614         * tree-ssa.c: Update tree_pass descriptors.
6615         * regclass.c: Update tree_pass descriptors.
6616         * integrate.c: Update tree_pass descriptors.
6617         * tree-optimize.c: Update tree_pass descriptors.
6618         * tree-ssa-phiprop.c: Update tree_pass descriptors.
6619         * tree-object-size.c: Update tree_pass descriptors.
6620         * combine.c: Update tree_pass descriptors.
6621         * tree-outof-ssa.c: Update tree_pass descriptors.
6622         * bb-reorder.c: Update tree_pass descriptors.
6623         * stack-ptr-mod.c: Update tree_pass descriptors.
6624         * var-tracking.c: Update tree_pass descriptors.
6625         * tree-profile.c: Update tree_pass descriptors.
6626         * tree-vect-generic.c: Update tree_pass descriptors.
6627         * reg-stack.c: Update tree_pass descriptors.
6628         * sched-rgn.c: Update tree_pass descriptors.
6629         * tree-ssa-structalias.c: Update tree_pass descriptors.
6630         * tree-cfg.c: Update tree_pass descriptors.
6631         * passes.c (current_pass): Update declaration.
6632         (finish_optimization_passes): Update.
6633         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
6634         (register_one_dump_file, register_dump_files_1, next_pass_1):
6635         Update arguments.
6636         (init_optimization_passes): Update handling of new types.
6637         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
6638         * ipa-struct-reorg.c: Update tree_pass descriptors.
6639         * tree-ssa-reassoc.c: Update tree_pass descriptors.
6640         * combine-stack-adj.c: Update tree_pass descriptors.
6641         * cfgrtl.c: Update tree_pass descriptors.
6642         * dce.c: Update tree_pass descriptors.
6643         * tree-ssanames.c: Update tree_pass descriptors.
6644
6645 2008-03-19  Richard Guenther  <rguenther@suse.de>
6646
6647         PR middle-end/35609
6648         * tree-ssa.c (walk_data): New structure.
6649         (warn_uninitialized_var): If not always_executed warn with "maybe"
6650         instead of "is".
6651         (execute_early_warn_uninitialized): Compute post-dominators.
6652         Initialize always_executed before processing each basic block.
6653
6654 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
6655
6656         PR target/35504
6657         * config/i386/i386.c (x86_this_parameter): Calculate correct location
6658         of "this" pointer when "regparm = N" or "fastcall" is in effect.
6659
6660 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6661
6662         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
6663
6664 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
6665
6666         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
6667         is true.
6668         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
6669         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
6670         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
6671         target after ignore has been set, and move there also the commputation
6672         of subtarget and original_target.
6673         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
6674         (LANG_HOOKS_INITIALIZER): Remove it.
6675         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
6676
6677 2008-03-18  Richard Guenther  <rguenther@suse.de>
6678
6679         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
6680         found an expression with constants, note that in the VN for the lhs.
6681         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
6682         fold them to constants if possible.  Run cleanup_cfg if done so.
6683         (execute_pre): Return todo.
6684         (do_pre): Likewise.
6685         (execute_fre): Likewise.
6686         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
6687         of constants.
6688         (get_prop_source_stmt): Look through pointer conversions.
6689
6690 2008-03-18  Jan Hubicka  <jh@suse.cz>
6691
6692         * tree-pretty-print.c: Include predict.h.
6693         (dump_generic_node): Dump predictor.
6694         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
6695         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
6696         * gimple-low.c (lower_stmt): Likewise.
6697         * expr.c (expand_expr_real): Likewise.
6698         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
6699         them.
6700         (build_predict_expr, build_predict_expr): New.
6701         * predict.h (predictor_name, build_predict_expr): Update.
6702         * c-typeck.c (c_finish_bc_stmt): Add prediction.
6703         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
6704         * predict.def (PRED_CONTINUE): Update hitrate.
6705         * tree.def (PREDICT_EXPR): Define.
6706         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
6707         do not handle BIND_EXPR.
6708         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
6709         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
6710         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
6711         operands.
6712
6713 2008-03-18  Michael Matz  <matz@suse.de>
6714
6715         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
6716
6717 2008-03-18  Richard Guenther  <rguenther@suse.de>
6718
6719         * tree-gimple.h (is_gimple_invariant_address): Declare.
6720         (is_gimple_constant): Likewise.
6721         * tree-gimple.c (is_gimple_constant): New function.
6722         (is_gimple_invariant_address): Likewise.
6723         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
6724         and is_gimple_invariant_address.
6725         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
6726         previous change.
6727         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
6728         an addressable base.
6729
6730 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
6731
6732         PR middle-end/35611
6733         * gimplify.c (gimplify_expr): Gimplify second operand of
6734         OMP_ATOMIC_LOAD.
6735
6736 2008-03-17  Richard Guenther  <rguenther@suse.de>
6737
6738         PR tree-optimization/19637
6739         * fold-const.c (fold_unary): Remove restrictions of removing
6740         intermediate pointer-conversions (P2)(P1)P0.
6741         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
6742         conversion to void pointer.
6743         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
6744
6745 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
6746
6747         PR debug/31510
6748         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
6749         emulated thread local variables.
6750
6751 2008-03-16  Richard Guenther  <rguenther@suse.de>
6752
6753         PR middle-end/35607
6754         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
6755         expand TREE_INVARIANT operations that are not gimple invariant.
6756
6757 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
6758
6759         * doc/extend.texi (Alignment): Say that the ABI controls
6760         the __alignof__ for non-strict-alignment targets rather
6761         than being a recommendation.
6762
6763 2008-03-15  Paul Brook  <paul@codesourcery.com>
6764
6765         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
6766         annotations.
6767         (arm_output_fn_unwind): Mark functions that can not be unwound.
6768
6769 2008-03-15  Paul Brook  <paul@codesourcery.com>
6770
6771         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
6772         extension instructions.
6773
6774 2008-03-15  Richard Guenther  <rguenther@suse.de>
6775
6776         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
6777         and fold constant aggregate refs.
6778         (fold_const_aggregate_ref): Handle string constants
6779         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
6780         (evaluate_stmt): Simplify now that ccp_fold folds constant
6781         aggregate refs.
6782
6783 2008-03-15  Paul Brook  <paul@codesourcery.com>
6784
6785         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
6786         (extzv): Use gen_extzv_t2.
6787         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
6788
6789 2008-03-15  Richard Guenther  <rguenther@suse.de>
6790
6791         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
6792         (fold_const_aggregate_ref): Likewise.
6793         (get_value): Return NULL if we don't have any values.
6794         (ccp_finalize): Set const_val to NULL after freeing it.
6795         * tree-flow.h (get_symbol_constant_value): Declare.
6796         (fold_const_aggregate_ref): Likewise.
6797         * tree-ssa-sccvn.c (try_to_simplify): Use them.
6798
6799 2008-03-15  Richard Guenther  <rguenther@suse.de>
6800
6801         PR middle-end/35593
6802         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
6803         to not produce negative array indices if not allowed.  Add
6804         parameter to indicate that.
6805         (maybe_fold_offset_to_component_ref): Allow negative array
6806         indices only for the first member of a structure.
6807         (maybe_fold_offset_to_reference): Allow negative array indices.
6808         (maybe_fold_stmt_addition): Likewise.
6809
6810 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
6811             Anatoly Sokolov <aesok@post.ru>
6812
6813         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
6814         (avr_arch): Add ARCH_AVR6.
6815         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
6816         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
6817         instead of fixed value 2.
6818         (print_operand_address): Use gs() asm specifier instead of pm().
6819         (avr_assemble_integer): (Ditto.).
6820         (avr_output_addr_vec_elt): (Ditto.).
6821         (print_operand): Handle "!" code.
6822         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
6823         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
6824         (AVR_HAVE_EIJMP_EICALL): Define.
6825         (AVR_3_BYTE_PC): Redefine.
6826         (AVR_2_BYTE_PC): (Ditto.).
6827         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
6828         (LINK_SPEC): Add atmega2560 and atmega2561.
6829         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
6830         (crtm2561.o).
6831         * config/avr/avr.md (call_insn): Use eicall instead of icall 
6832         for 3 byte PC devices.
6833         (call_value_insn): (Ditto.).
6834         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
6835         (indirect_jump): Use only for for 2 byte PC devices.
6836         (*tablejump): (Ditto.).
6837         (*indirect_jump_avr6): Add insn.
6838         (*tablejump_rjmp): Don't use for 3 byte PC devices.
6839         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
6840         instead of ijmp for 3 byte PC devices.
6841         (__tablejump2__): (Ditto.).
6842         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
6843         (MULITLIB_DIRNAMES): (Ditto.). 
6844         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
6845
6846 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
6847
6848         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
6849         "sse2_umulsidi3".  Use V1DI mode for operand 0.
6850         ("mmx_psadbw"): Use V1DI mode for operand 0.
6851         * config/i386/i386-modes.def (V1SI): New vector mode.
6852         * config/i386/i386.c (struct builtin_description)
6853         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
6854         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
6855         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
6856         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
6857         v1di_ftype_v8qi_v8qi type.
6858         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
6859
6860         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
6861         __builtin_ia32_pmuludq]: Fix the mode of return value.
6862
6863 2008-03-15  Richard Guenther  <rguenther@suse.de>
6864
6865         PR middle-end/35595
6866         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
6867         being a PHI_NODE.
6868
6869 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
6870         
6871         * doc/invoke.texi (Option Summary, Xtensa Options): Document
6872         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
6873         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
6874         unless TARGET_SERIALIZE_VOLATILE is enabled.
6875         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
6876         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
6877         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
6878
6879 2008-03-14  Richard Guenther  <rguenther@suse.de>
6880
6881         PR tree-optimization/34172
6882         * tree-flow.h (refs_may_alias_p): Declare.
6883         (get_single_def_stmt): Likewise.
6884         (get_single_def_stmt_from_phi): Likewise.
6885         (get_single_def_stmt_with_phi): Likewise.
6886         * tree-dfa.c (refs_may_alias_p): New function.
6887         (get_single_def_stmt): Likewise.
6888         (get_single_def_stmt_from_phi): Likewise.
6889         (get_single_def_stmt_with_phi): Likewise.
6890         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
6891         (vn_reference_lookup_1): New helper function.
6892         (vn_reference_lookup): Walk the virtual use-def chain to
6893         continue searching for a match if the def does not alias the
6894         reference we are looking for.
6895
6896 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
6897
6898         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
6899         archive and Perzl.  Update The Written Word listing.
6900
6901 2008-03-14  Richard Guenther  <rguenther@suse.de>
6902
6903         PR tree-optimization/34043
6904         PR tree-optimization/33989
6905         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
6906         when doing FRE.
6907         (bitmap_find_leader): Use extra argument to verify dominance
6908         relationship inside a basic-block.
6909         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
6910         (find_leader_in_sets): Adjust.
6911         (create_component_ref_by_pieces): Take extra argument for
6912         dominance check, handle lookup failures.
6913         (find_or_generate_expression): Likewise.
6914         (create_expression_by_pieces): Likewise.
6915         (insert_into_preds_of_block): Adjust.
6916         (create_value_expr_from): If asked for, verify all operands
6917         are in the blocks AVAIL_OUT set.
6918         (make_values_for_stmt): Check for SSA_NAMEs that are life
6919         over an abnormal edge.
6920         (compute_avail): Remove such check.
6921         (do_SCCVN_insertion): New function.
6922         (eliminate): If we do not find a leader suitable for replacement
6923         insert a replacement expression from SCCVN if available.
6924         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
6925         (struct vn_ssa_aux): Add needs_insertion flag.
6926         * tree-ssa-sccvn.c (may_insert): New global flag.
6927         (copy_reference_ops_from_ref): Value-number union member access
6928         based on its size, not type and member if insertion is allowed.
6929         (visit_reference_op_load): For a weak match from union type
6930         punning lookup a view-converted value and insert a SSA_NAME
6931         for that value if that is not found.
6932         (visit_use): Make dumps shorter.  Do not disallow value numbering
6933         SSA_NAMEs that are life over an abnormal edge to constants.
6934         (free_scc_vn): Release inserted SSA_NAMEs.
6935         (run_scc_vn): New flag to specify whether insertion is allowed.
6936         Process SSA_NAMEs in forward order.
6937         * tree-ssa-loop-im.c (for_each_index): Handle invariant
6938         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
6939         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
6940         pointer type to/from integral types that do not change the
6941         precision to regular conversions.
6942
6943 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
6944
6945         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
6946         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
6947         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
6948         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
6949         input arguments and the mode of return value.  Built-in functions
6950         that operate on whole 64-bit MMX register now use V1DI mode.
6951
6952 2008-03-13  Alon Dayan  <alond@il.ibm.com>
6953             Olga Golovanevsky  <olga@il.ibm.com>
6954
6955         PR tree-optimization/35041
6956         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
6957         to locate the right position in a statement.
6958
6959 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
6960
6961         PR target/34000
6962         PR target/35553
6963         * config/i386/xmmintrin.h:  Change all static inline functions to
6964         extern inline and add __gnu_inline__ attribute.
6965         * config/i386/bmintrin.h: Ditto.
6966         * config/i386/smmintrin.h: Ditto.
6967         * config/i386/tmmintrin.h: Ditto.
6968         * config/i386/mmintrin-common.h: Ditto.
6969         * config/i386/ammintrin.h: Ditto.
6970         * config/i386/emmintrin.h: Ditto.
6971         * config/i386/pmmintrin.h: Ditto.
6972         * config/i386/mmintrin.h: Ditto.
6973         * config/i386/mm3dnow.h: Ditto.
6974
6975 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
6976
6977         PR middle-end/35185
6978         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
6979         (lower_omp_2): New function.
6980         (lower_omp_1, lower_omp): Rewritten.
6981
6982 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
6983
6984         PR 35054
6985         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
6986         with the phrase "Microsoft Windows compilers".
6987         (Push/Pop Macro Pragmas): New subsection. Document
6988         #pragma push_macro and pragma pop_macro.
6989
6990 2008-03-12  Paul Brook  <paul@codesourcery.com>
6991
6992         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
6993
6994 2008-03-12  Paul Brook  <paul@codesourcery.com>
6995
6996         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
6997         (thumb2_alusi3_short): Exclude PLUS and MINUS.
6998         (thumb2_addsi_shortim): Rename ...
6999         (thumb2_addsi_short): ... to this.  Allow register operands.
7000         (thumb2_subsi_short): New pattern.
7001         (thumb2_one_cmplsi2_short,
7002         thumb2_negsi2_short): New patterns and peepholes.
7003
7004 2008-03-12  Paul Brook  <paul@codesourcery.com>
7005
7006         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
7007
7008 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
7009
7010         * config/i386/i386.md (int_cond): New code iterator.
7011         (fp_cond): Ditto.
7012         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
7013         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
7014         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
7015         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
7016         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
7017         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
7018         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
7019         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
7020
7021 2008-03-12  Paul Brook  <paul@codesourcery.com>
7022
7023         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
7024         instead of {arm,thumb}_compute_save_reg_mask.
7025         (output_return_instruction): Ditto.
7026         (thumb_unexpanded_epilogue): Ditto.
7027         (thumb1_expand_prologue): Ditto.
7028         (thumb1_output_function_prologue): Ditto.
7029         (arm_set_return_address): Ditto.
7030         (thumb_set_return_address): Ditto.
7031         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
7032         regs to achieve stack alignment.
7033         (thumb1_compute_save_reg_mask): Fix compiler warning.
7034         (arm_output_epilogue): Use offsets->saved_regs_mask.
7035         Adjust stack pointer by poping call clobered registers.
7036         (arm_expand_prologue): Use offsets->saved_regs_mask.
7037         Adjust stack pointer by pushing extra registers.
7038         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
7039
7040 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
7041
7042         PR tree-opt/35422
7043         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
7044         conversion to the operands of a multiplication.
7045
7046 2008-03-12  Richard Guenther  <rguenther@suse.de>
7047
7048         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
7049         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
7050         * timevar.def (TV_TREE_PHIPROP): Add.
7051         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
7052         pass description.  Use TV_TREE_PHIPROP.
7053         * tree-ssa-forwprop.c: Remove phiprop code.
7054
7055 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
7056
7057         PR middle-end/35549
7058         * omp-low.c (maybe_lookup_decl): Constify first argument.
7059         (use_pointer_for_field): Change last argument from bool to
7060         omp_context *.  Disallow shared copy-in/out in nested
7061         parallel if decl is shared in outer parallel too.
7062         (build_outer_var_ref, scan_sharing_clauses,
7063         lower_rec_input_clauses, lower_copyprivate_clauses,
7064         lower_send_clauses, lower_send_shared_vars): Adjust callers.
7065
7066 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
7067             Ira Rosen  <irar@il.ibm.com>
7068
7069         * tree-vectorizer.c (free_stmt_vec_info): New function.
7070         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
7071         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
7072         * tree-vectorizer.h (free_stmt_vec_info): Declare.
7073         * tree-vect-transform.c (vectorizable_conversion): Free
7074         vec_oprnds0 if it was allocated.
7075         (vect_permute_store_chain): Remove unused VECs.
7076         (vectorizable_store): Free VECs that are allocated in the..
7077         function.
7078         (vect_transform_strided_load, vectorizable_load): Likewise.
7079         (vect_remove_stores): Simplify the code.
7080         (vect_transform_loop): Move code to vect_remove_stores().
7081         Call vect_remove_stores() and free_stmt_vec_info().
7082
7083 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7084
7085         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
7086         TARGET_HPUX.  Revise comment.
7087         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
7088         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
7089         Use sr4 variant of `be' instruction when not generating PIC code.
7090         (attr_length_call): Adjust for above change.
7091
7092 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7093
7094         * ipa-reference.c (static_execute): Remove module_statics_const and
7095         associated setting code.
7096
7097 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
7098
7099         PR target/35540
7100         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
7101         predicate for operand 1.
7102         (paritysi2_cmp): Use register_operand predicate for operand 2.
7103         Use earlyclobber modifier for operand 1.  Remove support for
7104         memory operands.
7105         (paritydi2_cmp): Use register_operand predicate for operand 3.
7106         Use earlyclobber modifier for operand 1.  Remove support for
7107         memory operands.
7108
7109 2008-03-11  Paul Brook  <paul@codesourcery.com>
7110             Vladimir Prus  <vladimir@codesourcery.com>
7111
7112         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
7113         (arm_compute_save_reg0_reg12_mask): Always
7114         check if register 11 must be saved.  Always safe hard frame pointer
7115         when frame_pointer_needeed.
7116         (arm_compute_save_reg_mask): Save IP and PC
7117         only with apcs frames.
7118         (arm_output_epilogue): Adjust Thumb2 codepath to
7119         be also invoked and work for ARM non-apcs frames.
7120         (arm_expand_prologue): Don't bother saving IP
7121         for non-apcs frame, since it's not clobbered by
7122         prologue code.  Implement non-apcs frame
7123         layout.
7124
7125 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
7126
7127         PR rtl-optimization/35281
7128         * expr.c (convert_move): Use a new pseudo for the intermediate
7129         from_mode->word_mode result.
7130
7131 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
7132
7133         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
7134         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
7135         * toplev.c (compile_file): Don't call it.
7136
7137 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
7138
7139         PR middle-end/35526
7140         * expr.c (store_expr): Call emit_block_move if the mode
7141         of "temp" RTX is BLKmode.
7142
7143 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7144             Richard Guenther  <rguenther@suse.de>
7145
7146         PR tree-optimization/31358
7147         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
7148         the step with a NULL_TREE.
7149         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
7150         to sizetype if type is a pointer type.
7151         (add_candidate_1): Don't convert the base and step to
7152         the generic type if the orginal type is a pointer type.
7153         (add_iv_value_candidates): Use sizetype for the step
7154         if type is a pointer type.
7155         (cand_value_at): Likewise.
7156         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
7157         for pointer types.
7158         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
7159         Don't convert the tem affine to the type.
7160         (add_elt_to_tree): Use sizetype for the step if a pointer.
7161         Use POINTER_PLUS_EXPR for pointers.
7162         (aff_combination_to_tree): Use sizetype for the step if a
7163         pointer.
7164
7165 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
7166
7167         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
7168         Remove commutativity hint.
7169
7170 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
7171
7172         PR c/35438
7173         PR c/35439
7174         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
7175         errorneous type.  Check that v is a VAR_DECL.
7176
7177         PR middle-end/35099
7178         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
7179
7180 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
7181
7182         PR tree-optimization/35494
7183         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
7184         may be overriden at link and run time.
7185
7186 2008-03-10  Richard Guenther  <rguenther@suse.de>
7187
7188         PR tree-optimization/34677
7189         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
7190         (poolify_tree): Likewise.
7191         (modify_expr_template): Likewise.
7192         (poolify_modify_stmt): Likewise.
7193         (insert_fake_stores): Handle all component-ref style stores
7194         in addition to INDIRECT_REF.  Also handle complex types.
7195         Do not poolify the inserted load.
7196         (realify_fake_stores): Do not rebuild the tree but only
7197         make it a SSA_NAME copy.
7198         (init_pre): Remove initialzation of modify_expr_template.
7199         Do not allocate modify_expr_node_pool.
7200         (fini_pre): Do not free modify_expr_node_pool.
7201
7202 2008-03-10  Paul Brook  <paul@codesourcery.com>
7203
7204         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
7205         to avoid conflicts.
7206
7207 2008-03-10  Paul Brook  <paul@codesourcery.com>
7208             Mark Shinwell  <shinwell@codesourcery.com>
7209
7210         * config/arm/cortex-r4.md: New.
7211         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
7212         insn attributes.
7213         * config/arm/arm.md: Include cortex-r4.md.
7214         (insn): Add smmls, sdiv and udiv values.
7215         (generic_sched): Don't use generic scheduling for Cortex-R4.
7216         (arm_issue_rate): New function.
7217         (TARGET_SCHED_ISSUE_RATE): Define.
7218
7219 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
7220
7221         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
7222
7223 2008-03-10  Richard Guenther  <rguenther@suse.de>
7224
7225         * tree-ssa-pre.c (get_sccvn_value): Simplify.
7226         (compute_avail): Do not add stmt uses to AVAIL_OUT.
7227
7228 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
7229
7230         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
7231         Set default to true.
7232
7233 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7234
7235         * c.opt (Wsynth): Deprecate.
7236         * doc/invoke.texi (Option Summary, Warning Options): Document
7237         -Wno-format-contains-nul.
7238
7239 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
7240
7241         PR target/35496
7242         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
7243         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
7244
7245 2008-03-09  Ira Rosen  <irar@il.ibm.com>
7246
7247         * config/rs6000/rs6000.c (builtin_description): Rename vector
7248         left shift operations.
7249         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
7250         (altivec_vsl<VI_char>): Rename to ...
7251         (ashl<mode>3): ... new name.
7252         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
7253         gen_ashlv4si3.
7254         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
7255
7256 2008-03-08  Richard Guenther  <rguenther@suse.de>
7257
7258         * coverage.h (tree_coverage_counter_addr): Declare.
7259         * coverage.c (tree_coverage_counter_addr): New function.
7260         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
7261         before using again.
7262         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
7263         (tree_gen_one_value_profiler): Likewise.
7264         (tree_gen_ic_profiler): Likewise.
7265         (tree_gen_average_profiler): Likewise.
7266         (tree_gen_ior_profiler): Likewise.
7267
7268 2008-03-08  Richard Guenther  <rguenther@suse.de>
7269
7270         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
7271         (vn_binary_op_insert): Likewise.
7272         (vn_unary_op_lookup): Likewise.
7273         (vn_unary_op_insert): Likewise.
7274         (vn_nary_op_lookup): Declare.
7275         (vn_nary_op_insert): Likewise.
7276         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
7277         and binary hashes, use a single obstack for unary_op_pool
7278         and binary_op_pool.
7279         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
7280         a single struct vn_nary_op_s.  Store tree code length and
7281         a variable number of operands.
7282         (struct vn_reference_op_struct): Remove unused op2.
7283         (vn_reference_op_eq): Do not compare op2.
7284         (vn_reference_op_compute_hash): Do not compute hash of op2.
7285         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
7286         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
7287         with vn_nary_op_compute_hash.
7288         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
7289         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
7290         vn_nary_op_lookup.
7291         (vn_unary_op_insert, vn_binary_op_insert): Replace with
7292         vn_nary_op_insert.
7293         (visit_unary_op): Call nary functions.
7294         (visit_binary_op): Likewise.
7295         (process_scc): Adjust for struct vn_tables_s changes.
7296         (allocate_vn_table): Likewise.
7297         (free_vn_table): Likewise.
7298         * tree-vn.c (vn_add): Call nary functions.
7299         (vn_lookup): Likewise.
7300
7301 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
7302
7303         PR target/35498
7304         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
7305         wdst back after sync_compare_and_swapqhi_internal.
7306
7307 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
7308
7309         PR target/22152
7310         * config/i386/i386-modes.def (V1DI): New vector mode.
7311         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
7312         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
7313         (MMXMODE248): Ditto.
7314         (MMXMODE): Add V1DI mode.
7315         (mmxvecsize): Change DI mode to V1DI mode.
7316         ("mov<mode>): Use MMXMODEI8 mode iterator.
7317         ("*mov<mode>_internal_rex64"): Ditto.
7318         ("*mov<mode>_internal"): Ditto.
7319         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
7320         ("mmx_sub<mode>3"): Ditto.
7321         ("mmx_adddi3"): Remove insn pattern.
7322         ("mmx_subdi3"): Ditto.
7323         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
7324         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
7325         ("mmx_ashl<mode>3"): Ditto.
7326         ("mmx_lshrdi3"): Remove insn pattern.
7327         ("mmx_ashldi3"): Ditto.
7328         * config/i386/i386.c (classify_argument): Handle V1DImode.
7329         (function_arg_advance_32): Ditto.
7330         (function_arg_32): Ditto.
7331         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
7332         mmx_addv1di3 insn pattern.
7333         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
7334         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
7335         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
7336         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
7337         Remove definitions of built-in functions.
7338         (V1DI_type_node): New node.
7339         (v1di_ftype_v1di_int): Ditto.
7340         (v1di_ftype_v1di_v1di): Ditto.
7341         (v2si_ftype_v2si_si): Ditto.
7342         (v4hi_ftype_v4hi_di): Remove node.
7343         (v2si_ftype_v2si_di): Ditto.
7344         (ix86_init_mmx_sse_builtins): Handle V1DImode.
7345         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
7346         Redefine builtins using def_builtin_const with *_ftype_*_int node.
7347         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
7348         Add new builtins using def_builtin_const.
7349         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
7350         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
7351         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
7352         * config/i386/mmintrin.h (__v1di): New typedef.
7353         (_mm_add_si64): Cast arguments to __v1di type.
7354         (_mm_sub_si64): Ditto.
7355         (_mm_sll_pi16): Cast __count to __v4hi type.
7356         (_mm_sll_pi32): Cast __count to __v2si type.
7357         (_mm_sll_si64): Cast arguments to __v1di type.
7358         (_mm_srl_pi16): Cast __count to __v4hi type.
7359         (_mm_srl_pi32): Cast __count to __v2si type.
7360         (_mm_srl_si64): Cast arguments to __v1di type.
7361         (_mm_sra_pi16): Cast __count to __v4hi type.
7362         (_mm_sra_pi32): Cast __count to __v2si type.
7363         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
7364         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
7365         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
7366         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
7367         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
7368         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
7369         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
7370         (_mm_srai_pi32): Use __builtin_ia32_psradi.
7371         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
7372         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
7373         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
7374         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
7375
7376 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
7377
7378         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
7379
7380 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
7381
7382         PR target/35373
7383         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
7384         reg+const addressing for Altivec modes.  Don't generate reg+reg
7385         addressing for TFmode or TDmode quantities.
7386
7387 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
7388
7389         * c-common.c (vector_types_convertible_p): Call langhook
7390         instead of comptypes.
7391
7392 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7393
7394         PR tree-opt/35402
7395         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
7396         integral and scalar float variables which have a
7397         NULL DECL_INITIAL.
7398
7399 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
7400
7401         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
7402         dwarf_register_span hook when emitting unwind information for
7403         register-to-memory saves.
7404         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
7405         (rs6000_frame_related): Remove call to spe_synthesize_frame.
7406
7407 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
7408
7409         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
7410         for the same VAR_DECL.
7411
7412 2008-03-06  Tom Tromey  <tromey@redhat.com>
7413
7414         * treelang: Delete.
7415         * doc/standards.texi (Standards): Don't mention treelang.
7416         * doc/invoke.texi (Overall Options): Don't mention treelang.
7417         * doc/install.texi (Prerequisites): Don't mention bison or
7418         treelang.
7419         (Configuration): Don't mention treelang.
7420         (Building): Likewise.
7421         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
7422
7423 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
7424
7425         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
7426         word-extractions out of a multi-word object.
7427
7428 2008-03-06  Richard Guenther  <rguenther@suse.de>
7429
7430         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
7431         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
7432         result type and precision.
7433         * expr.c (get_inner_reference): Set unsignedp based on the result
7434         type of BIT_FIELD_REF.
7435         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
7436         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
7437         (try_instantiate_multiple_fields): Likewise.  Use the correct type
7438         for BIT_FIELD_REF.
7439         (sra_build_assignment): Likewise.
7440         (sra_build_elt_assignment): Likewise.
7441         (sra_explode_bitfield_assignment): Likewise.
7442         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
7443         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
7444         set BIT_FIELD_REF_UNSIGNED.
7445         (vectorizable_load): Likewise.
7446
7447 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
7448
7449         * cse.c (cse_extended_basic_block): Invalidate artificial defs
7450         at bb start.
7451
7452 2008-03-06  Richard Guenther  <rguenther@suse.de>
7453
7454         * alias.c (struct alias_set_entry): Move has_zero_child field
7455         to pack with alias_set.
7456
7457 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
7458
7459         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
7460         32bit host.
7461
7462 2008-03-05  Ian Lance Taylor  <iant@google.com>
7463
7464         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
7465
7466 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
7467
7468         * fwprop.c (update_df): Support width and offset parameters of
7469         df_ref_create.
7470         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
7471         global_conflicts): Change DF_REF_EXTRACT to either
7472         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7473         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7474         * df-scan.c (df_ref_record, df_defs_record,
7475         df_ref_create_structure, df_def_record_1, df_uses_record,
7476         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
7477         df_bb_refs_collect, df_entry_block_defs_collect,
7478         df_exit_block_uses_collect): Support new width and offset fields.
7479         (ref_extract_pool): New storage pool.
7480         (df_free_ref): New function.
7481         (df_reg_chain_unlink, df_free_collection_rec,
7482         df_sort_and_compress_refs): Call df_free_ref.
7483         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
7484         of df_ref_extract.
7485         (df_ref_create_structure): Allocate df_ref_extract if offset and
7486         width fields are used.
7487         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
7488         (df_uses_record): Get offset and width from ZERO_EXTRACT 
7489         and SIGN_EXTRACT.
7490         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
7491         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7492         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7493         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
7494         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7495         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7496         (df_ref_extract): New structure.
7497         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
7498         (df_ref_create): Add width and offset parameters.
7499         
7500 2008-03-05  Richard Guenther  <rguenther@suse.de>
7501
7502         * tree-ssa-structalias.c (get_constraint_for_component_ref):
7503         Use ranges_overlap_p.
7504         (offset_overlaps_with_access): Rename
7505         to ranges_overlap_p and move ...
7506         * tree-flow-inline.h (ranges_overlap_p): ... here.
7507
7508         * tree.h (get_inner_reference, handled_component_p): Update
7509         comments.
7510
7511         * tree.h (record_component_aliases, get_alias_set,
7512         alias_sets_conflict_p, alias_sets_must_conflict_p,
7513         objects_must_conflict_p): Move declarations ...
7514         * alias.h (record_component_aliases, get_alias_set,
7515         alias_sets_conflict_p, alias_sets_must_conflict_p,
7516         objects_must_conflict_p): ... here.
7517         Include coretypes.h.
7518         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
7519
7520 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
7521
7522         * cfg.c: Include tree-flow.h.
7523         (remove_edge_raw): Call redirect_edge_var_map_clear.
7524         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
7525         * tree-flow-inline.h (redirect_edge_var_map_def): New.
7526         (redirect_edge_var_map_result): New.
7527         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
7528         PENDING_STMT use with redirect_edge_var_map_*.
7529         * tree-ssa.c (edge_var_maps): New definition.
7530         (redirect_edge_var_map_add): New.
7531         (redirect_edge_var_map_clear): New.
7532         (redirect_edge_var_map_dup): New.
7533         (redirect_edge_var_map_vector): New.
7534         (redirect_edge_var_map_destroy): New.
7535         (ssa_redirect_edge): Replace PENDING_STMT use with
7536         redirect_edge_var_map_*.
7537         (flush_pending_stmts): Same.
7538         (delete_tree_ssa): Destroy edge var map.
7539         * tree-flow.h (struct _edge_var_map): New.
7540         Define edge_var_map vector type.
7541         Declare redirect_edge_var_map_* prototypes.
7542         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
7543         * tree-cfg.c (reinstall_phi_args): Replace
7544         PENDING_STMT use with redirect_edge_var_map_*.
7545
7546 2008-03-05  Richard Guenther  <rguenther@suse.de>
7547
7548         PR tree-optimization/35472
7549         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
7550         whose single use_stmt has a overlapping set of loaded and
7551         stored symbols as that use_stmt might be a noop assignment then.
7552
7553 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
7554
7555         * gthr-rtems.h: Implement __gthread_mutex_destroy.
7556
7557 2008-03-05  Richard Guenther  <rguenther@suse.de>
7558
7559         PR c++/35336
7560         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
7561         should be constants.
7562         * tree-cfg.c (verify_expr): Verify it.
7563         * fold-const.c (fold_truthop): Remove code generating
7564         BIT_FIELD_REFs of structure bases.
7565         (fold_binary): Likewise.
7566         (fold_ternary): Position and size of BIT_FIELD_REFs are
7567         always host integers.
7568         (make_bit_field_ref): Remove.
7569         (optimize_bit_field_compare): Remove.
7570         (all_ones_mask_p): Remove.
7571
7572 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
7573
7574         PR gcc/33009
7575         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
7576         (split_block_and_df_analyze): New. Split basic block and rebuild
7577         dataflow.
7578         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
7579         SPLIT_BLOCK.
7580         (split_pattern_seq): Likewise.
7581         (erase_matching_seqs): Likewise.
7582         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
7583
7584 2008-03-04  Geoff Keating  <geoffk@apple.com>
7585
7586         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
7587         declaration and code.
7588         (tree_invalid_nonnegative_warnv_p): Likewise.
7589
7590 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
7591
7592         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
7593         examples.  Truncate option-names then causing overfull hbox.
7594
7595 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7596
7597         PR target/35222
7598         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
7599         on hpux10.
7600         * configure: Rebuilt.
7601
7602 2008-03-04  Rafael Espindola  <espindola@google.com>
7603
7604         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
7605         (tree_unary_nonnegative_warnv_p): New.
7606         (tree_binary_nonnegative_warnv_p): New.
7607         (tree_single_nonnegative_warnv_p): New.
7608         (tree_invalid_nonnegative_warnv_p): New.
7609         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
7610
7611 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7612
7613         PR 28322
7614         * opts.c (handle_option): Postpone 'unknown option' errors only for
7615         warning options.
7616
7617 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
7618
7619         PR target/35453
7620         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
7621         (_SIDD_XXX): This.
7622
7623 2008-03-04  Rafael Espindola  <espindola@google.com>
7624
7625         * fold-const.c (tree_unary_nonzero_warnv_p): New.
7626         (tree_binary_nonzero_warnv_p): New.
7627         (tree_single_nonzero_warnv_p): New.
7628         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
7629
7630 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
7631
7632         PR middle-end/35456
7633         * fold-const.c (fold_cond_expr_with_comparison): Prevent
7634         transformations for modes that have signed zeros.
7635         * ifcvt.c (noce_try_abs): Ditto.
7636
7637 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
7638
7639         * config/i386/i386.c (override_options): Force
7640         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
7641
7642 2008-03-04  Jan Hubicka  <jh@suse.cz>
7643
7644         PR c++/35262
7645         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
7646         in last commit.
7647
7648 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
7649
7650         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
7651         label to probe the stack.
7652
7653 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
7654
7655         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
7656         (__gthr_win32_mutex_destroy): Declare.
7657         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
7658         __gthr_win32_mutex_destroy.
7659         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
7660
7661 2008-03-03  Jan Hubicka  <jh@suse.cz>
7662
7663         PR c++/35262
7664         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
7665         aggressive on inlining cold calls.
7666
7667 2008-03-03  Richard Guenther  <rguenther@suse.de>
7668
7669         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
7670         struct copies into the expression table.
7671         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
7672         (try_to_simplify): Likewise.
7673         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
7674         integral and pointer arguments which do not change the
7675         precision to NOP_EXPRs.
7676         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
7677         VIEW_CONVERT_EXPR case.
7678
7679 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
7680
7681         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
7682         defined in a loop at depth 0 is invariant.
7683         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
7684         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
7685         be called at loop depth 0.
7686
7687 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
7688
7689         PR driver/35420
7690         * gcc.c (process_command): Update copyright notice dates.
7691         * gcov.c (print_version): Likewise.
7692         * gcov-dump.c (print_version): Likewise.
7693         * mips-tfile.c (main): Likewise.
7694         * mips-tdump.c (main): Likewise.
7695
7696 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7697
7698         PR 24924
7699         * c-common.c (flag_permissive): Delete.
7700         (constant_expression_warnings): Check flags first.
7701         (constant_expression_error): New.
7702         * c-common.h (flag_permissive): Delete.
7703         (constant_expression_error): Declare.
7704         * flags.h (flag_permissive): Declare. Update description.
7705         * diagnostic.c (pedwarn): Update.
7706         (permerror): New.
7707         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
7708         (permissive_error_kind): New.
7709         * toplev.c (flag_permissive): Define. Update description.
7710         * toplev.h (permissive_error_kind): Declare.
7711         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
7712         (pedwarn_c90): Use pedantic_warning_kind.
7713         * c-opts.c (c_common_post_options): flag_permissive does not affect
7714         flag_pedantic_errors.
7715
7716 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
7717
7718         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
7719         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
7720         __absvsi2, __absvDI2): Use unsigned arithmetic.
7721
7722 2008-03-02  Andi Kleen  <ak@suse.de>
7723             Richard Guenther  <rguenther@suse.de>
7724
7725         * struct-equiv.c: Remove file.
7726         * cfg_cleanup.c (condjump_equiv_p): Remove.
7727         * Makefile.in (OBJS-common): Remove struct-equiv.o.
7728         (struct-equiv.o): Remove rule.
7729         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
7730         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
7731         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
7732
7733 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7734
7735         * ifcvt.c (noce_process_if_block): Try to handle only the then
7736         block if the else block exists but isn't suitable.
7737
7738 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
7739
7740         PR gcc/35063
7741         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
7742         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
7743         regression from previous patch.
7744
7745 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
7746
7747         PR gcc/35063
7748         * gthr.h: Add __gthread_mutex_destroy as a function that must be
7749         implemented.
7750         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
7751         * gthr-single.h (__gthread_mutex_destroy): Likewise.
7752         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
7753         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
7754         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
7755         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
7756         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
7757         (__gthread_mutex_destroy_function): Rename to
7758         __gthread_mutex_destroy.
7759         * gthr-dce.h (__gthread_mutex_destroy): Call
7760         pthread_mutex_destroy.
7761         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
7762         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
7763         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
7764
7765 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7766
7767         * df-scan.c (df_ref_chain_change_bb): Simplify.
7768         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
7769         set_block_for_insn if there's any change.
7770         * df.h ((df_insn_change_bb): Fix prototype.
7771         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
7772         df_insn_change_bb, don't call set_block_for_insn.
7773         * emit-rtl.c (reorder_insns): Likewise.
7774         * haifa-sched.c (move_insn): Likewise.
7775
7776 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7777
7778         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
7779
7780 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7781
7782         * tree-flow-inline.h (next_readonly_imm_use): Return
7783         NULL_USE_OPERAND_P after the end.
7784
7785 2008-03-01  Richard Guenther  <rguenther@suse.de>
7786
7787         PR tree-optimization/35411
7788         * tree-sra.c (sra_build_assignment): Split conversion to
7789         final type to a separate statement if we are not assigning
7790         to a register.
7791
7792 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
7793
7794         * fold-const.c (fold_convertible_p): Correct the logic to follow
7795         that in fold_convert().
7796
7797 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
7798
7799         PR c++/35315
7800         * tree-inline.c (build_duplicate_type): When we make a
7801         duplicate type, make it unique in the canonical types system.
7802
7803 2008-02-29  Tom Tromey  <tromey@redhat.com>
7804
7805         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
7806         input_file_stack_history, input_file_stack_restored): Remove.
7807         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
7808         * input.h (struct file_stack): Remove.
7809         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
7810         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
7811         Likewise.
7812         * diagnostic.h (struct diagnostic_context) <last_module>: Change
7813         type.
7814         (diagnostic_last_module_changed): Add 'map' argument.
7815         (diagnostic_set_last_function): Likewise.
7816         * diagnostic.c (undiagnostic_report_current_module): Iterate using
7817         line map, not input_file_stack.
7818         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
7819
7820 2008-02-29  Paul Brook  <paul@codesourcery.com>
7821
7822         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
7823
7824 2008-02-29  Paul Brook  <paul@codesourcery.com>
7825
7826         * config/arm/ieee754-df.S (muldf3): Use RET macros.
7827
7828 2008-02-29  Richard Guenther  <rguenther@suse.de>
7829
7830         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
7831         vn_lookup_or_add.
7832         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
7833         value for comparing for a store match.
7834         (simplify_unary_expression): Do nothing for SSA_NAMEs.
7835         (try_to_simplify): Do not do a full-blown reference lookup.
7836
7837 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
7838
7839         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
7840         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
7841
7842         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
7843
7844 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
7845
7846         * tree-loop-linear.c (try_interchange_loops): Compare memory access
7847         strides against cache sizes.
7848
7849 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
7850
7851         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
7852         constant to fpul.
7853
7854 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
7855
7856         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
7857         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
7858         is smaller than the original promoted value.
7859         (simplify_subreg): If OP is a SUBREG, try to preserve its
7860         SUBREG_PROMOTED_VAR_P information.
7861
7862 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
7863
7864         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
7865         (VN_INFO_GET): Allocate new objects on the obstack.
7866         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
7867         for rpo_numbers_temp, for consistency.
7868         (free_scc_vn): Free the obstack.
7869
7870 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
7871
7872         * doc/invoke.texi: Document -ftree-loop-distribution.
7873         * tree-loop-distribution.c: New.
7874         * tree-pass.h (pass_loop_distribution): New.
7875         * graphds.h (struct graph): Add htab_t indices.
7876         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
7877         * tree-vectorizer.c (rename_variables_in_loop): Extern.
7878         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
7879         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
7880         * tree-data-ref.c (debug_data_dependence_relations): New.
7881         (dump_data_dependence_relation): Also print data references.
7882         (free_data_ref): Extern.
7883         (same_access_functions): Moved...
7884         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
7885         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
7886         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
7887         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
7888         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
7889         (stmts_from_loop): Skip LABEL_EXPR.
7890         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
7891         New.
7892         (build_rdg): Initialize rdg->indices htab.
7893         (free_rdg, stores_from_loop, ref_base_address,
7894         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
7895         have_similar_memory_accesses_1, ref_base_address_1,
7896         remove_similar_memory_refs): New.
7897         * tree-data-ref.h: Depend on tree-chrec.h.
7898         (debug_data_dependence_relations, free_data_ref): Declared.
7899         (same_access_functions): ... here.
7900         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
7901         New.
7902         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
7903         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
7904         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
7905         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
7906         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
7907         rdg_vertex_for_stmt): Declared.
7908         (struct rdg_edge): Add level.
7909         (RDGE_LEVEL): New.
7910         (free_rdg, stores_from_loop, remove_similar_memory_refs,
7911         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
7912         Declared.
7913         (rdg_has_similar_memory_accesses): New.
7914         * tree-vect-analyze.c: Remove unused static decls.
7915         * lambda.h (dependence_level): New.
7916         * common.opt (ftree-loop-distribution): New.
7917         * tree-flow.h (mark_virtual_ops_in_bb, 
7918         slpeel_tree_duplicate_loop_to_edge_cfg,
7919         rename_variables_in_loop): Declared.
7920         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
7921         (OBJS-common): Add tree-loop-distribution.o.
7922         (tree-loop-distribution.o): New rule.
7923         * tree-cfg.c (mark_virtual_ops_in_bb): New.
7924         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
7925         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
7926
7927 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
7928
7929         PR target/33963
7930         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
7931         other than structures and unions.
7932
7933 2008-02-28  Richard Guenther  <rguenther@suse.de>
7934
7935         Revert:
7936         2008-02-26  Richard Guenther  <rguenther@suse.de>
7937
7938         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
7939         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
7940         (lookup_decl_from_uid): Declare.
7941         (remove_decl_from_map): Likewise.
7942         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
7943         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
7944         (decl_for_uid_map): New global hashtable mapping DECL_UID
7945         to the decl tree.
7946         (init_ttree): Allocate it.
7947         (insert_decl_to_uid_decl_map): New helper function.
7948         (make_node_stat): Insert new decls into the map.
7949         (copy_node_stat): Likewise.
7950         (lookup_decl_from_uid): New function.
7951         (remove_decl_from_map): Likewise.
7952         (print_decl_for_uid_map_statistics): New helper.
7953         (dump_tree_statistics): Call it.
7954
7955         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
7956         (referenced_var_iterator): Adjust.
7957         (FOR_EACH_REFERENCED_VAR): Adjust.
7958         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
7959         (num_referenced_vars): Adjust.
7960         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
7961         (first_referenced_var): Remove.
7962         (end_referenced_vars_p): Likewise.
7963         (next_referenced_var): Likewise.
7964         (referenced_var_iterator_set): New helper function.
7965         * tree-dfa.c (referenced_var_lookup): Adjust.
7966         (referenced_var_check_and_insert): Likewise.
7967         (remove_referenced_var): Likewise.
7968         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
7969         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7970         (verify_call_clobbering): Likewise.
7971         (verify_memory_partitions): Likewise.
7972         (init_tree_ssa): Allocate bitmap instead of hashtable for
7973         referenced_vars.
7974         (delete_tree_ssa): Adjust.
7975         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
7976         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7977         (compute_tag_properties): Likewise.
7978         (set_initial_properties): Likewise.
7979         (find_partition_for): Likewise.
7980         (update_reference_counts): Likewise.
7981         (dump_may_aliases_for): Likewise.
7982         * tree-ssa-operands.c (add_virtual_operand): Likewise.
7983         (add_call_clobber_ops): Likewise.
7984         (add_call_read_ops): Likewise.
7985         (get_asm_expr_operands): Likewise.
7986         * tree-into-ssa.c (dump_decl_set): Likewise.
7987         (update_ssa): Likewise.
7988         * tree-sra.c (scan_function): Likewise.
7989         (decide_instantiations): Likewise.
7990         (scalarize_parms): Likewise.
7991         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
7992         (dsa_named_for): Likewise.
7993         * tree-ssa-structalias.c (update_alias_info): Likewise.
7994         (merge_smts_into): Likewise.
7995
7996 2008-02-27  David Daney  <ddaney@avtrex.com>
7997
7998         PR target/34409
7999         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
8000         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
8001         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
8002         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
8003         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
8004
8005 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
8006
8007         PR target/25477
8008         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
8009         (BUILT_IN_NEXTTOWARD): Remove.
8010         (BUILT_IN_NEXTTOWARDF): Ditto.
8011         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
8012         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
8013
8014 2008-02-27  Tom Tromey  <tromey@redhat.com>
8015
8016         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
8017         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
8018
8019 2008-02-27  Jan Beulich  <jbeulich@novell.com>
8020
8021         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
8022         update the respective field on newdecl.
8023
8024 2008-02-27  Revital Eres  <eres@il.ibm.com>
8025
8026         PR rtl-optimization/34999
8027         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
8028         crossing edges that ends with a call insn.
8029         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
8030         call insn and clear the EDGE_CROSSING flag of the crossing edge
8031         when fixing fallthru edges.
8032
8033 2008-02-27  Richard Guenther  <rguenther@suse.de>
8034
8035         PR middle-end/35390
8036         * fold-const.c (fold_unary): Return the correct argument,
8037         converted to the result type.
8038
8039 2008-02-27  Richard Guenther  <rguenther@suse.de>
8040
8041         PR middle-end/34971
8042         * expr.c (expand_expr_real_1): Assert on rotates that operate
8043         on partial modes.
8044         * fold-const.c (fold_binary): Use the types precision, not the
8045         bitsize of the mode if folding rotate expressions.  Build rotates
8046         only for full modes.
8047
8048 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
8049
8050         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
8051         and CPP_PRAGMA_EOL.
8052         * c-pragma.c (pragma_ns_name): New typedef.
8053         (registered_pp_pragmas): New variable.
8054         (c_pp_lookup_pragma): New function.
8055         (c_register_pragma_1): If flag_preprocess_only, do nothing
8056         for non-expanded pragmas, for expanded ones push pragma's
8057         namespace and name into registered_pp_pragmas vector.
8058         (c_invoke_pragma_handler): Register OpenMP pragmas even when
8059         flag_preprocess_only, don't register GCC pch_preprocess
8060         pragma if flag_preprocess_only.
8061         * c-opts.c (c_common_init): Call init_pragma even if
8062         flag_preprocess_only.
8063         * c-pragma.c (c_pp_lookup_pragma): New prototype.
8064         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
8065         cpp_register_pragma if flag_preprocess_only.
8066
8067 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8068
8069         PR c/28800
8070         * c-parser.c (c_parser_translation_unit): Warn for empty
8071         translation unit, not empty source file.
8072
8073 2008-02-26  Paul Brook  <paul@codesourcery.com>
8074
8075         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
8076         operand for Thumb-2.
8077         * config/arm/arm.h (reg_class): Add CORE_REGS.
8078         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
8079         (BASE_REG_CLASS): Use CORE_REGS.
8080         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
8081         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
8082         (REGNO_OK_FOR_INDEX_P): Exclude SP.
8083         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
8084         ARM_REGNO_OK_FOR_INDEX_P.
8085         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
8086         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
8087         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
8088         (ldm/stm peepholes): Ditto.
8089         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
8090         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
8091         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
8092         * config/arm/constraints.md: Enable "k" constraint on ARM.
8093
8094 2008-02-27  Ben Elliston  <bje@au.ibm.com>
8095
8096         * config/rs6000/rs6000.c: Annotate cache line size field in all
8097         instances of struct processor_costs.
8098
8099 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
8100
8101         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
8102         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
8103         jump_bypass): New counters.
8104         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
8105         * dce.c (gate_ud_dce): Same.
8106         (gate_fast_dce): Same.
8107         * dse.c (gate_dse1): New function.
8108         (gate_dse2): New function.
8109         (gate_dse): Merge results of new gate functions.
8110         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
8111         (gate_handle_jump_bypass): Add dbg_cnt.
8112         (gate_handle_gcse): Add dbg_cnt.
8113         * ifcvt.c (gate_handle_if_conversion): Same.
8114         (gate_handle_if_after_combine): Same.
8115         (gate_handle_if_after_reload): Same.
8116         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
8117
8118 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
8119
8120         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
8121         line sizes.
8122         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
8123
8124 2008-02-26  Jason Merrill  <jason@redhat.com>
8125
8126         PR c++/35315
8127         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
8128         alone if it's the naming decl for the type's main variant.
8129
8130 2008-02-26  Tom Tromey  <tromey@redhat.com>
8131
8132         * system.h (USE_MAPPED_LOCATION): Poison.
8133         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
8134         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
8135         (make_goto_expr_edges): Likewise.
8136         (remove_bb): Likewise.
8137         (execute_warn_function_return): Likewise.
8138         * basic-block.h (struct edge_def) <goto_locus>: Change type to
8139         location_t.
8140         * c-common.c (fname_decl): Remove old location code.
8141         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
8142         location code.
8143         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
8144         variant.
8145         (ASM_INPUT_SOURCE_LOCATION): Likewise.
8146         (gen_rtx_ASM_INPUT): Likewise.
8147         (gen_rtx_ASM_INPUT_loc): Likewise.
8148         (get_rtx_asm_OPERANDS): Remove.
8149         * cfglayout.c (insn_locators_alloc): Remove old location code.
8150         (set_curr_insn_source_location): Likewise.
8151         (curr_insn_locator): Likewise.
8152         * print-tree.c (print_node): Remove old location code.
8153         * tree-mudflap.c (mf_varname_tree): Remove old location code.
8154         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
8155         * cfgexpand.c (expand_gimple_cond_expr): Don't use
8156         location_from_locus.
8157         (construct_exit_block): Remove old location code.
8158         * emit-rtl.c (force_next_line_note): Remove old location code.
8159         * profile.c (branch_prob): Remove old location code.
8160         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
8161         LOC_LINE): Remove old-location variants.
8162         * langhooks.c (lhd_print_error_function): Remove old location
8163         code.
8164         * configure, config.in: Rebuilt.
8165         * configure.ac (--enable-mapped-location): Remove.
8166         * c-decl.c (c_init_decl_processing): Remove old location code.
8167         (finish_function): Likewise.
8168         * recog.c (decode_asm_operands): Remove old location code.
8169         * c-pch.c (c_common_read_pch): Remove old location code.
8170         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
8171         variants.
8172         * gimple-low.c (lower_function_body): Remove old location code.
8173         * toplev.c (unknown_location): Remove.
8174         (push_srcloc): Remove old-location variant.
8175         (process_options): Remove old location code.
8176         (lang_dependent_init): Likewise.
8177         * input.h (UNKNOWN_LOCATION): Move definition.
8178         (location_t): Undeprecate.
8179         (source_locus): Remove.
8180         (location_from_locus): Remove.
8181         (struct location_s): Remove.
8182         Remove all old-location code.
8183         (input_line, input_filename): Remove.
8184         * final.c (final_scan_insn): Remove old location code.
8185         * diagnostic.c (diagnostic_build_prefix): Remove
8186         USE_MAPPED_LOCATION test.
8187         * tree.h (gimple_stmt) <locus>: Now a location_t.
8188         (tree_exp) <locus>: Likewise.
8189         (DECL_IS_BUILTIN): Remove old-location variant.
8190         (annotate_with_file_line, annotate_with_locus): Likewise.
8191         (expr_locus, set_expr_locus): Update.
8192         * tree.c (build1_stat): Remove old location code.
8193         (last_annotated_node): Remove.
8194         (annotate_with_file_line): Remove old-location variant.
8195         (annotate_with_locus): Likewise.
8196         (expr_location): Remove old location code.
8197         (set_expr_location): Likewise.
8198         (expr_has_location): Likewise.
8199         (expr_locus): Likewise.
8200         (set_expr_locus): Likewise.
8201         (expr_filename): Don't use location_from_locus.
8202         (expr_lineno): Likewise.
8203         * rtl-error.c (location_for_asm): Remove old location code.
8204         * c-lex.c (cb_line_change): Remove old location code.
8205         (fe_file_change): Likewise.
8206         (cb_def_pragma): Likewise.
8207         (c_lex_with_flags): Likewise.
8208         * gengtype.c (do_typedef): Don't special-case location types.
8209         (define_location_structures): Remove.
8210         (main): Don't call define_location_structures.
8211         * tree-pretty-print.c (dump_implicit_edges): Remove old location
8212         code.
8213
8214 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8215
8216         PR 26264
8217         * builtins.def (BUILT_IN_STDARG_START): Remove.
8218         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
8219         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
8220         * tree-inline.c (inline_forbidden_p_1): Likewise.
8221         
8222 2008-02-26  Richard Guenther  <rguenther@suse.de>
8223
8224         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8225         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8226         (lookup_decl_from_uid): Declare.
8227         (remove_decl_from_map): Likewise.
8228         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8229         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8230         (decl_for_uid_map): New global hashtable mapping DECL_UID
8231         to the decl tree.
8232         (init_ttree): Allocate it.
8233         (insert_decl_to_uid_decl_map): New helper function.
8234         (make_node_stat): Insert new decls into the map.
8235         (copy_node_stat): Likewise.
8236         (lookup_decl_from_uid): New function.
8237         (remove_decl_from_map): Likewise.
8238         (print_decl_for_uid_map_statistics): New helper.
8239         (dump_tree_statistics): Call it.
8240
8241         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8242         (referenced_var_iterator): Adjust.
8243         (FOR_EACH_REFERENCED_VAR): Adjust.
8244         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8245         (num_referenced_vars): Adjust.
8246         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8247         (first_referenced_var): Remove.
8248         (end_referenced_vars_p): Likewise.
8249         (next_referenced_var): Likewise.
8250         (referenced_var_iterator_set): New helper function.
8251         * tree-dfa.c (referenced_var_lookup): Adjust.
8252         (referenced_var_check_and_insert): Likewise.
8253         (remove_referenced_var): Likewise.
8254         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8255         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8256         (verify_call_clobbering): Likewise.
8257         (verify_memory_partitions): Likewise.
8258         (init_tree_ssa): Allocate bitmap instead of hashtable for
8259         referenced_vars.
8260         (delete_tree_ssa): Adjust.
8261         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8262         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8263         (compute_tag_properties): Likewise.
8264         (set_initial_properties): Likewise.
8265         (find_partition_for): Likewise.
8266         (update_reference_counts): Likewise.
8267         (dump_may_aliases_for): Likewise.
8268         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8269         (add_call_clobber_ops): Likewise.
8270         (add_call_read_ops): Likewise.
8271         (get_asm_expr_operands): Likewise.
8272         * tree-into-ssa.c (dump_decl_set): Likewise.
8273         (update_ssa): Likewise.
8274         * tree-sra.c (scan_function): Likewise.
8275         (decide_instantiations): Likewise.
8276         (scalarize_parms): Likewise.
8277         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8278         (dsa_named_for): Likewise.
8279         * tree-ssa-structalias.c (update_alias_info): Likewise.
8280         (merge_smts_into): Likewise.
8281
8282 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8283
8284         PR 34351
8285         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
8286         * c-opts.c (c_common_handle_option): Wall enables
8287         Wvolatile-register-var.
8288         * common.opt: Move Wvolatile-register-var to...
8289         * c.opt: ...here.
8290         
8291 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8292
8293         * common.opt (Wlarger-than=): New.
8294         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
8295         -Wlarger-than=.
8296         * opts.c (common_handle_option): Handle -Wlarger-than=.
8297         * optc-gen.awk: Likewise.
8298         * opth-gen.awk: Likewise.
8299         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
8300         * tree-optimize.c (tree_rest_of_compilation): Likewise.
8301         
8302 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8303
8304         * c-common.c (match_case_to_enum_1): Add appropriate
8305         OPT_W* parameter to warning.
8306         (c_do_switch_warnings): Likewise.
8307         * c-typeck.c (warning_init): Add one more parameter following
8308         'warning' function.
8309         (push_init_level): Update call to warning_init.
8310         (pop_init_level): Likewise.
8311         (add_pending_init): Likewise.
8312         (output_init_element: Likewise.
8313
8314 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8315
8316         PR 28322
8317         * toplev.c (toplev_main): If there are warnings or error, print
8318         errors for ignored options.
8319         * opts.c (ignored_options): New static variable.
8320         (postpone_unknown_option_error): New.
8321         (print_ignored_options): New.
8322         (handle_option): Postpone errors for unknown -Wno-* options.
8323         * opts.h (print_ignored_options): Declare.
8324         
8325 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
8326
8327         * config/mips/mips.md (loadgp_blockage, blockage): Change type
8328         to "ghost".
8329
8330 2008-02-25  Richard Guenther  <rguenther@suse.de>
8331
8332         Revert:
8333         2008-02-25  Richard Guenther  <rguenther@suse.de>
8334
8335         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8336         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8337         (lookup_decl_from_uid): Declare.
8338         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8339         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8340         (decl_for_uid_map): New global hashtable mapping DECL_UID
8341         to the decl tree.
8342         (init_ttree): Allocate it.
8343         (insert_decl_to_uid_decl_map): New helper function.
8344         (make_node_stat): Insert new decls into the map.
8345         (copy_node_stat): Likewise.
8346         (lookup_decl_from_uid): New function.
8347         (print_decl_for_uid_map_statistics): New helper.
8348         (dump_tree_statistics): Call it.
8349
8350         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8351         (referenced_var_iterator): Adjust.
8352         (FOR_EACH_REFERENCED_VAR): Adjust.
8353         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8354         (num_referenced_vars): Adjust.
8355         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8356         (first_referenced_var): Remove.
8357         (end_referenced_vars_p): Likewise.
8358         (next_referenced_var): Likewise.
8359         (referenced_var_iterator_set): New helper function.
8360         * tree-dfa.c (referenced_var_lookup): Adjust.
8361         (referenced_var_check_and_insert): Likewise.
8362         (remove_referenced_var): Likewise.
8363         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8364         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8365         (verify_call_clobbering): Likewise.
8366         (verify_memory_partitions): Likewise.
8367         (init_tree_ssa): Allocate bitmap instead of hashtable for
8368         referenced_vars.
8369         (delete_tree_ssa): Adjust.
8370         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8371         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8372         (compute_tag_properties): Likewise.
8373         (set_initial_properties): Likewise.
8374         (find_partition_for): Likewise.
8375         (update_reference_counts): Likewise.
8376         (dump_may_aliases_for): Likewise.
8377         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8378         (add_call_clobber_ops): Likewise.
8379         (add_call_read_ops): Likewise.
8380         (get_asm_expr_operands): Likewise.
8381         * tree-into-ssa.c (dump_decl_set): Likewise.
8382         (update_ssa): Likewise.
8383         * tree-sra.c (scan_function): Likewise.
8384         (decide_instantiations): Likewise.
8385         (scalarize_parms): Likewise.
8386         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8387         (dsa_named_for): Likewise.
8388         * tree-ssa-structalias.c (update_alias_info): Likewise.
8389         (merge_smts_into): Likewise.
8390
8391 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
8392
8393         PR fortran/29549
8394         * doc/invoke.texi (-fcx-limited-range): Document new option.
8395         * toplev.c (process_options): Handle -fcx-fortran-rules.
8396         * common.opt: Add documentation for -fcx-fortran-rules.
8397
8398 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
8399
8400         PR c/35162
8401         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
8402         actual behaviour and C99.
8403         
8404 2008-02-26  Ben Elliston  <bje@au.ibm.com>
8405
8406         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
8407         (ASM_CPU_POWER6_SPEC): Likewise.
8408         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
8409         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
8410         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
8411
8412 2008-02-25  Richard Guenther  <rguenther@suse.de>
8413
8414         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8415         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8416         (lookup_decl_from_uid): Declare.
8417         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8418         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8419         (decl_for_uid_map): New global hashtable mapping DECL_UID
8420         to the decl tree.
8421         (init_ttree): Allocate it.
8422         (insert_decl_to_uid_decl_map): New helper function.
8423         (make_node_stat): Insert new decls into the map.
8424         (copy_node_stat): Likewise.
8425         (lookup_decl_from_uid): New function.
8426         (print_decl_for_uid_map_statistics): New helper.
8427         (dump_tree_statistics): Call it.
8428
8429         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8430         (referenced_var_iterator): Adjust.
8431         (FOR_EACH_REFERENCED_VAR): Adjust.
8432         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8433         (num_referenced_vars): Adjust.
8434         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8435         (first_referenced_var): Remove.
8436         (end_referenced_vars_p): Likewise.
8437         (next_referenced_var): Likewise.
8438         (referenced_var_iterator_set): New helper function.
8439         * tree-dfa.c (referenced_var_lookup): Adjust.
8440         (referenced_var_check_and_insert): Likewise.
8441         (remove_referenced_var): Likewise.
8442         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8443         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8444         (verify_call_clobbering): Likewise.
8445         (verify_memory_partitions): Likewise.
8446         (init_tree_ssa): Allocate bitmap instead of hashtable for
8447         referenced_vars.
8448         (delete_tree_ssa): Adjust.
8449         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8450         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8451         (compute_tag_properties): Likewise.
8452         (set_initial_properties): Likewise.
8453         (find_partition_for): Likewise.
8454         (update_reference_counts): Likewise.
8455         (dump_may_aliases_for): Likewise.
8456         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8457         (add_call_clobber_ops): Likewise.
8458         (add_call_read_ops): Likewise.
8459         (get_asm_expr_operands): Likewise.
8460         * tree-into-ssa.c (dump_decl_set): Likewise.
8461         (update_ssa): Likewise.
8462         * tree-sra.c (scan_function): Likewise.
8463         (decide_instantiations): Likewise.
8464         (scalarize_parms): Likewise.
8465         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8466         (dsa_named_for): Likewise.
8467         * tree-ssa-structalias.c (update_alias_info): Likewise.
8468         (merge_smts_into): Likewise.
8469
8470 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
8471
8472         PR target/35258
8473         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
8474         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
8475         * alias.h (nonoverlapping_memrefs_p): Likewise.
8476
8477 2008-02-25  Jan Beulich  <jbeulich@novell.com>
8478
8479         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
8480         * config/i386/netware-libgcc.exp: Add __bswap?i2,
8481         __emultls_get_address, __emultls_register_common,
8482         __floatundi?f, and _Unwind_GetIPInfo.
8483         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
8484         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
8485         (gen_regparm_prefix): Likewise.
8486         (i386_nlm_encode_section_info): Sync with
8487         config/i386/winnt.c:i386_pe_encode_section_info().
8488         (i386_nlm_maybe_mangle_decl_assembler_name): New.
8489         i386_nlm_mangle_decl_assembler_name): New.
8490         (netware_override_options): New.
8491         * config/i386/netware.h (netware_override_options): Declare.
8492         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
8493         (i386_nlm_mangle_decl_assembler_name): Declare.
8494         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
8495
8496 2008-02-25  Ben Elliston  <bje@au.ibm.com>
8497
8498         PR other/32948
8499         * c-decl.c (grokdeclarator): Remove unused local variables
8500         `typedef_type' and `type_as_written'.
8501         * bb-reorder.c
8502         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
8503         unused local variable `has_hot_blocks'.
8504         (fix_crossing_conditional_branches): Remove unused local variable
8505         `prev_bb'.
8506         
8507 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
8508
8509         PR middle-end/19984
8510         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
8511         using DEF_C99_BUILTIN.
8512         (BUILT_IN_NANF): Ditto.
8513         (BUILT_IN_NANL): Ditto.
8514
8515 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
8516             Revital Eres  <eres@il.ibm.com>
8517
8518         * modulo-sched.c (calculate_must_precede_follow): Address TODO
8519         regarding the order of two dependent insns in the same row.
8520
8521 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
8522
8523         * stor-layout.c (layout_decl): Do not bump the alignment of a
8524         bit-field to more than byte alignment if it is packed.
8525
8526 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
8527
8528         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
8529         e300c2 and e300c3.
8530
8531 2008-02-24  Diego Novillo  <dnovillo@google.com>
8532
8533         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
8534
8535         PR 33738
8536         * tree-vrp.c (vrp_evaluate_conditional): With
8537         -Wtype-limits, emit a warning when comparing against a
8538         constant outside the natural range of OP0's type.
8539         * c.opt (Wtype-limits): Move ...
8540         * common.opt (Wtype-limits): ... here.
8541
8542 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
8543
8544         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
8545         * config/rs6000/e300c2c3.md: New file.
8546         * config/rs6000/rs6000.c (processor_costs): Add new costs for
8547         e300c2 and e300c3.
8548         (rs6000_override_options): Add e300c2 and e300c3 cases to
8549         processor_target_table. Do not allow usage of Altivec or Spe
8550         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
8551         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
8552         * config/rs6000/rs6000.h (processor_type): Add
8553         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
8554         (ASM_CPU_SPEC): Add e300c2 and e300c3.
8555         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
8556         and ppce300c3. Include e300c2c3.md.
8557
8558 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
8559
8560         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
8561         instead of TARGET_STRICT_ALIGN.
8562
8563 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
8564
8565         * explow.c (memory_address): Assert that the generated address is
8566         valid.
8567
8568 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
8569
8570         PR target/25477
8571         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
8572         * config/darwin-ppc-ldouble-patch.def: New file.
8573         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
8574         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
8575         SUBTARGET_INIT_BUILTINS if defined.
8576         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
8577         New functions.
8578
8579 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8580
8581         PR rtl-opt/33512
8582         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
8583         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
8584
8585 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8586
8587         PR pch/35027
8588         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
8589         file" warning condtional on -Winvalid-PCH.
8590
8591 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
8592
8593         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
8594
8595 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
8596
8597         PR target/22076
8598         PR target/34256 
8599         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
8600         prevent reload from using MMX registers.
8601         (*mov<mode>_internal): Ditto.
8602         (*movv2sf_internal_rex64): Ditto.
8603         (*movv2sf_internal): Ditto.
8604
8605 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8606
8607         PR documentation/31569
8608         * doc/install.texi2html: Use makeinfo --no-number-sections.
8609
8610 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8611
8612         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
8613         ensure that we can address an entire entity > 8 bytes.  Don't
8614         generate reg+reg addressing for such data.
8615
8616 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8617
8618         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
8619         strings when optimizing for size, unless the target cares about
8620         alignment.
8621
8622 2008-02-22  Tom Tromey  <tromey@redhat.com>
8623
8624         * regclass.c (current_pass): Remove declaration.
8625
8626 2008-02-22  Anatoly Sokolov <aesok@post.ru>
8627
8628         * config/avr/libgcc.S (__RAMPZ__): Define.
8629         (__do_copy_data): Add for devices with 128KB code memory.
8630
8631 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8632
8633         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
8634         Use spe_abi.
8635         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
8636
8637 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
8638
8639         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
8640         GENNONACR_REGS.
8641
8642 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8643
8644         PR c/19999
8645         * c-typeck.c (build_binary_op): Warn about floating point
8646         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
8647
8648 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
8649
8650         PR target/34526
8651         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
8652         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
8653         add vrsave.
8654         (rs6000_override_options): Set altivec_abi as default, not override,
8655         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
8656         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
8657         is used; use new member spe_abi.
8658         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
8659         spe_abi and altivec_abi.
8660
8661 2008-02-22  Tomas Bily  <tbily@suse.cz>
8662
8663         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
8664
8665 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8666
8667         PR bootstrap/35273
8668         * config.build (build_file_translate): Set to `CMD //c' only if
8669         it works.
8670         * Makefile.in (build_file_translate): Improve comment.
8671
8672 2008-02-21  Jan Hubicka  <jh@suse.cz>
8673
8674         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
8675         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
8676         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
8677
8678 2008-02-21  Michael Matz  <matz@suse.de>
8679
8680         PR target/35264
8681         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
8682
8683 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
8684
8685         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
8686         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
8687         as insn constraint.
8688         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
8689         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
8690         SSE_VEC_FLOAT_MODE_P as insn constraint.
8691         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
8692         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
8693         sse4a_movntdf using MODEF mode iterator.
8694         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
8695         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
8696         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
8697         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
8698         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
8699         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
8700         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
8701
8702 2008-02-21  Richard Guenther  <rguenther@suse.de>
8703
8704         * tree.def (PAREN_EXPR): New tree code.
8705         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
8706         and PAREN_EXPR.
8707         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
8708         * expr.c (expand_expr_real_1): Likewise.
8709         * tree-inline.c (estimate_num_insns_1): Likewise.
8710         * tree-complex.c (expand_complex_move): Likewise.
8711         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
8712         as plain x.
8713
8714 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8715
8716         PR target/35225
8717         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
8718
8719 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8720
8721         PR target/35190
8722         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
8723
8724         * config/sh/sh.c (find_barrier): Don't go past
8725         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
8726
8727 2008-02-20  DJ Delorie  <dj@redhat.com>
8728
8729         * config/h8300/h8300.md (insv): Force source operand to be a register.
8730
8731         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
8732         as a jump, not as a plain insn.
8733         
8734 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
8735
8736         * doc/invoke.texi (Warning Options): Add new option
8737         -Wframe-larger-than=.
8738         (-Wframe-larger-than): Document.
8739
8740         * flags.h (warn_frame_larger_than, frame_larger_than_size):
8741         Add declarations for new option variables.
8742
8743         * final.c (final_start_function): Check the frame size
8744         before emission and issue a Wframe-larger-than warning.
8745
8746         * opts.c (warn_frame_larger_than, frame_larger_than_size):
8747         Add definitions for new option variables.
8748         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
8749
8750         * common.opt (Wframe-larger-than=): New option.
8751
8752 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
8753
8754         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
8755         (<sse>_div<mode>3): Ditto.
8756         (<sse>_vmdiv<mode>3): Ditto.
8757         (<sse>_vmsqrt<mode>2): Ditto.
8758         (*smax<mode>3): Ditto.
8759         (sse5_frcz<mode>2): Ditto.
8760         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
8761         as insn constraint.
8762
8763 2008-02-20  Richard Guenther  <rguenther@suse.de>
8764
8765         PR middle-end/35265
8766         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
8767         be happy with INTEGRAL_TYPE_P.
8768
8769 2008-02-20  Richard Guenther  <rguenther@suse.de>
8770
8771         * fold-const.c (split_tree): Associate floatig-point expressions
8772         if flag_associative_math is set.
8773
8774 2008-02-20  Richard Guenther  <rguenther@suse.de>
8775
8776         * tree.h (fold_real_zero_addition_p): Declare.
8777         * fold-const.c (fold_real_zero_addition_p): Export.
8778         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
8779         floating-point operations with zero and one.
8780
8781 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
8782
8783         * doc/install.texi: Correct references to CFLAGS, replacing them
8784         with BOOT_CFLAGS.  Document flags used during bootstrap for
8785         target libraries.
8786                                 
8787 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
8788
8789         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
8790         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
8791         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
8792         insn constraint.
8793         (smin<mode>3): Ditto from similar patterns.
8794         (smax<mode>3): Ditto.
8795         (*ieee_smin<mode>3): Ditto.
8796         (*ieee_smax<mode>3): Ditto.
8797         * config/i386/sse.md (sse): New mode attribute.
8798         (mov<mode>): Macroize expander from movv4sf and movv2df using
8799         SSEMODEF2P mode iterator.
8800         (<sse>_movnt<mode>): Ditto from similar patterns. Use
8801         SSE_VEC_FLOAT_MODE_P as insn constraint.
8802         (storent<mode>): Ditto.
8803         (storent<mode>): Macroize expander from storentsf and storentdf using
8804         MODEF mode iterator.
8805         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
8806         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
8807         (abs<mode>2): Ditto from similar patterns.
8808         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
8809         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
8810         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
8811         (<sse>_vmsqrt<mode>2): Ditto.
8812         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
8813         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
8814         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
8815         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
8816         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
8817         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
8818         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
8819         insn constraint.
8820         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
8821         iterator and SSE_FLOAT_MODE_P as insn constraint.
8822         (<sse>_ucomi): Ditto from similar patterns.
8823         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
8824         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
8825         SSE_VEC_FLOAT_MODE_P as insn constraint.
8826         (vcond<mode>): Ditto from similar patterns.
8827         (and<mode>3, *and<mode>3): Ditto.
8828         (<sse>_nand<mode>3): Ditto.
8829         (ior<mode>3, *ior<mode>3): Ditto.
8830         (xor<mode>3, *xor<mode>3): Ditto.
8831         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
8832         iterator and SSE_FLOAT_MODE_P as insn constraint.
8833         (*nand<mode>3): Ditto from similar patterns.
8834         (*ior<mode>3): Ditto.
8835         (*xor<mode>3): Ditto.
8836
8837 2008-02-20  Ira Rosen  <irar@il.ibm.com>
8838
8839         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
8840         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
8841         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
8842
8843 2008-02-19  Jan Hubicka  <jh@suse.cz>
8844
8845         * predict.c (tree_bb_level_predictions): Remove variable next
8846         mistakely introduced by previous commit.
8847
8848 2008-02-19  Jan Hubicka  <jh@suse.cz>
8849
8850         * predict.c (predict_paths_leading_to): Rewrite.
8851         (predict_paths_for_bb): New.
8852         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
8853
8854 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8855
8856         PR bootstrap/35218
8857         * Makefile.in (build_file_translate): New.
8858         (gcc-vers.texi): Use it for translating $(abs_srcdir).
8859         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
8860         * configure.ac (build_file_translate): Substitute it.
8861         * configure: Regenerate.
8862
8863 2008-02-19  Jan Hubicka  <jh@suse.cz>
8864
8865         PR rtl-optimization/34408
8866         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
8867         invalid sharing.
8868
8869 2008-02-19  Jan Hubicka  <jh@suse.cz>
8870
8871         PR middle-end/28779
8872         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
8873         call_expr.
8874
8875 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
8876
8877         PR Ada/35186
8878         * config/i386/i386-modes.def: Revert the last DI alignment
8879         change until Ada people can look into it.
8880
8881 2008-02-19  Nick Clifton  <nickc@redhat.com>
8882
8883         * opts.c (print_specific_help): Fix typo in --help text.
8884
8885 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
8886
8887         PR target/35239
8888         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
8889         32-bit inline asm without asm alternatives for host GCC < 3.0.
8890
8891 2008-02-19  Richard Guenther  <rguenther@suse.de>
8892
8893         PR tree-optimization/34989
8894         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
8895         Allow propagation to INDIRECT_REF if we can simplify only.
8896
8897 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8898
8899         * c-common.c (warn_for_collisions_1): Use appropriate option when
8900         warning.
8901
8902 2008-02-19  Nick Clifton  <nickc@redhat.com>
8903
8904         PR other/31349
8905         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
8906         (handle_options): Fix indentation.
8907         (print_filtered_help): If no language-specific options were
8908         displayed tell the user how to list all the options supported by
8909         the language's front-end.
8910         (print_specific_help): Fix indentation and remove duplicate line.
8911         (common_handle_option): Handle the -v option.
8912         For --help enable the display of undocumented options if the -v
8913         switch has been included on the command line.
8914         For --help= check for overlaps in the arguments between the option
8915         classes and the language names and issue a warning when they
8916         cannot be disambiguated.
8917         * c.opt (v): Pass on to the common option handler.
8918
8919 2008-02-19  Revital Eres  <eres@il.ibm.com> 
8920
8921         * modulo-sched.c (sms_schedule): Change dump message when
8922         create_ddg function fails.
8923         (try_scheduling_node_in_cycle): Rename row to cycle.
8924         (print_partial_schedule): Rename CYCLE to ROW.
8925
8926 2008-02-19  Christian Bruel  <christian.bruel@st.com>
8927             Zdenek Dvorak  <ook@ucw.cz>
8928
8929         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
8930
8931 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
8932
8933         PR target/33555
8934         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
8935         (*x86_movdicc_0_m1_se): Ditto.
8936
8937 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
8938
8939         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
8940         (CMPtype): Define as __gcc_CMPtype.
8941         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
8942         (CMPtype): Define as __gcc_CMPtype.
8943
8944 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
8945
8946         Support valgrind 3.3 for --enable-checking=valgrind.
8947         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
8948         here.
8949         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
8950         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
8951         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
8952         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
8953         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
8954         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
8955         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
8956         respectively.
8957         * ggc-zone.c: Similar.
8958         * ggc-page.c: Similar.
8959
8960 2008-02-19  Paul Brook  <paul@codesourcery.com>
8961
8962         PR target/35071
8963         * config/arm/ieee754-df.S: Fix do_it typo.
8964         * config/arm/ieee754-sf.S: Fix do_it typo.
8965
8966 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
8967
8968         PR target/35189
8969         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
8970         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
8971         (OPTION_MASK_ISA_SSE_SET): Likewise.
8972         (OPTION_MASK_ISA_SSE2_SET): Likewise.
8973         (OPTION_MASK_ISA_SSE3_SET): Likewise.
8974         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
8975         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
8976         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
8977         (OPTION_MASK_ISA_SSE4_SET): Likewise.
8978         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
8979         (OPTION_MASK_ISA_SSE5_SET): Likewise.
8980         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
8981         (OPTION_MASK_ISA_MMX_UNSET): Updated.
8982         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
8983         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
8984         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
8985         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
8986         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
8987         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
8988         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
8989         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
8990         (OPTION_MASK_ISA_SSE4): Removed.
8991         (ix86_handle_option): Turn on bits in ix86_isa_flags and
8992         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
8993         (override_options): Don't turn on implied SSE/MMX bits in
8994         ix86_isa_flags.
8995
8996 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
8997
8998         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
8999         32bit host.
9000
9001 2008-02-18  Joey Ye  <joey.ye@intel.com>
9002
9003         PR middle-end/34921
9004         * tree-nested.c (insert_field_into_struct): Set type alignment
9005         to field alignment if the former is less than the latter.
9006
9007 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
9008
9009         * BASE-VER: Set to 4.4.0.
9010
9011 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9012
9013         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
9014         * doc/cfg.texi: Likewise.
9015         * doc/extend.texi: Likewise.
9016         * doc/gty.texi: Likewise.
9017         * doc/invoke.texi: Likewise.
9018         * doc/loop.texi: Likewise.
9019         * doc/md.texi: Likewise.
9020         * doc/passes.texi: Likewise.
9021         * doc/rtl.texi: Likewise.
9022         * doc/sourcebuild.texi: Likewise.
9023         * doc/tm.texi: Likewise.
9024         * doc/tree-ssa.texi: Likewise.
9025
9026 2008-02-17  Richard Guenther  <rguenther@suse.de>
9027
9028         PR middle-end/35227
9029         * tree-complex.c (init_parameter_lattice_values): Handle parameters
9030         without default definition.
9031
9032 2008-02-17  Richard Guenther  <rguenther@suse.de>
9033
9034         PR tree-optimization/35231
9035         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
9036         if A | B != 1.
9037
9038 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
9039
9040         Revert:
9041         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
9042         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
9043         libgcc_cmp_return mode.
9044
9045 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9046
9047         PR c/28368
9048         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
9049
9050 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
9051
9052         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
9053         multilibs.
9054
9055 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9056
9057         * doc/c-tree.texi: Use `@.' where appropriate.
9058         * doc/extend.texi: Likewise.
9059         * doc/install.texi: Likewise.
9060         * doc/invoke.texi: Likewise.
9061         * doc/loop.texi: Likewise.
9062         * doc/makefile.texi: Likewise.
9063         * doc/md.texi: Likewise.
9064         * doc/passes.texi: Likewise.
9065         * doc/standards.texi: Likewise.
9066         * doc/tm.texi: Likewise.
9067
9068 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
9069
9070         PR middle-end/35196
9071         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
9072         in entry_bb.
9073         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
9074         rather than in entry_bb.
9075
9076 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
9077
9078         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
9079         libgcc_cmp_return mode.
9080
9081 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
9082
9083         PR middle-end/35130
9084         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
9085         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
9086
9087 2008-02-15  Richard Guenther  <rguenther@suse.de>
9088             Zdenek Dvorak  <ook@ucw.cz>
9089
9090         PR tree-optimization/35164
9091         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
9092         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
9093         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
9094         Only propagate addresses which do not have abnormal SSA_NAMEs
9095         in their operands.
9096
9097 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
9098
9099         PR target/35088
9100         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
9101
9102 2008-02-15  Jan Hubicka  <jh@suse.cz>
9103
9104         PR middle-end/35149
9105         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
9106
9107 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
9108
9109         PR middle-end/34621
9110         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
9111         when calculating alignment_pad.
9112
9113 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
9114
9115         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
9116         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
9117         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
9118         and STACK_BOUNDARY define.
9119
9120 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
9121
9122         PR preprocessor/35061
9123         * c-pragma.c (handle_pragma_pop_macro): Check that
9124         pushed_macro_table has been allocated.
9125
9126 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
9127
9128         PR middle-end/35136
9129         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
9130         (force_gimple_operand): Likewise.
9131         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
9132         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
9133         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
9134         (find_interesting_uses_address): Check addressability and alignment
9135         of the base expression only after substituting bases of IVs into it.
9136
9137 2008-02-14  Michael Matz  <matz@suse.de>
9138
9139         PR target/34930
9140         * function.c (instantiate_virtual_regs_in_insn): Reload address
9141         before falling back to reloading the whole operand.
9142
9143 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
9144
9145         * config/s390/s390.c (s390_mainpool_start): Emit the pool
9146         before the first section switch note.
9147
9148 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9149
9150         * doc/bugreport.texi: Update copyright years.
9151         * doc/c-tree.texi: Likewise.
9152         * doc/cfg.texi: Likewise.
9153         * doc/cpp.texi: Likewise.
9154         * doc/cppinternals.texi: Likewise.
9155         * doc/fragments.texi: Likewise.
9156         * doc/frontends.texi: Likewise.
9157         * doc/gcc.texi: Likewise.
9158         * doc/gty.texi: Likewise.
9159         * doc/hostconfig.texi: Likewise.
9160         * doc/implement-c.texi: Likewise.
9161         * doc/libgcc.texi: Likewise.
9162         * doc/loop.texi: Likewise.
9163         * doc/makefile.texi: Likewise.
9164         * doc/options.texi: Likewise.
9165         * doc/passes.texi: Likewise.
9166         * doc/rtl.texi: Likewise.
9167         * doc/sourcebuild.texi: Likewise.
9168         * doc/standards.texi: Likewise.
9169         * doc/tree-ssa.texi: Likewise.
9170         * doc/trouble.texi: Likewise.
9171
9172         * doc/extend.texi: Use @: or add comma where appropriate.
9173         * doc/invoke.texi: Likewise.
9174         * doc/tm.texi: Likewise.
9175
9176 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
9177
9178         PR target/34393
9179         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
9180         to a reg.
9181
9182 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
9183
9184         * doc/md.texi (clz, ctz): Add reference.
9185         * doc/rtl.texi (clz, ctz): Likewise.
9186
9187 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9188
9189         PR other/35148
9190         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
9191         srcdir.
9192
9193 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
9194
9195         * config/s390/s390.c (struct constant_pool): New field
9196         emit_pool_after added.
9197         (s390_mainpool_start): Set the emit_pool_after flag according
9198         to the section switch notes.
9199         (s390_mainpool_finish): Consider emit_pool_after when emitting
9200         the literal pool at the end of the function.
9201         (s390_chunkify_start): Force literal pool splits at section
9202         switch notes.
9203
9204 2008-02-13  Michael Matz  <matz@suse.de>
9205
9206         PR debug/35065
9207         * var-tracking.c (clobber_variable_part): Correctly traverse the
9208         list.
9209
9210 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9211
9212         PR 29673
9213         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
9214         Add -fdump-ipa-inline.
9215         * tree-dump.c (dump_files): Remove tree-inlined dump.
9216         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
9217         
9218 2008-02-12  Richard Guenther  <rguenther@suse.de>
9219
9220         PR tree-optimization/35171
9221         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
9222         default defs.
9223
9224 2008-02-12  Richard Guenther  <rguenther@suse.de>
9225
9226         PR middle-end/35163
9227         * fold-const.c (fold_widened_comparison): Use get_unwidened in
9228         value-preserving mode.  Disallow final truncation.
9229
9230 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
9231
9232         PR middle-end/35136
9233         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
9234         code from here to...
9235         (force_gimple_operand): ...here.
9236
9237 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
9238
9239         PR c++/35144
9240         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
9241         non-compatible pointers.
9242         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
9243         different FIELD_DECLs, try harder by comparing field offsets, sizes
9244         and types.
9245
9246         PR inline-asm/35160
9247         * function.c (match_asm_constraints_1): Don't replace the same input
9248         multiple times.
9249
9250 2008-02-12  Anatoly Sokolov <aesok@post.ru>
9251
9252         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
9253         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
9254         (expand_epilogue): Restore RAMPZ register.
9255         * config/avr/avr.md (RAMPZ_ADDR): New constant.
9256
9257 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
9258
9259         * config/i386/cygwin.asm: (__alloca): Correct calling
9260         convention and alignment.
9261         (__chkstk): Force 8 byte stack alignment.
9262
9263 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
9264             Richard Guenther  <rguenther@suse.de>
9265
9266         PR tree-optimization/33992
9267         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
9268         the zero we compare against.
9269
9270 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
9271
9272         PR libfortran/35063
9273         * gthr-win32.h (__gthread_mutex_destroy_function): New function
9274         to CloseHandle after unlocking to prevent accumulation of handle
9275         count.
9276
9277 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9278
9279         PR middle_end/34150
9280         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
9281         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
9282         and update LABEL_NUSES during and after reload.
9283
9284 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
9285
9286         PR middle-end/34627
9287         * combine.c (simplify_if_then_else): Make sure the comparison is
9288         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
9289
9290 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
9291
9292         PR bootstrap/35051
9293         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
9294         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
9295         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
9296         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
9297         * tree.h (get_type_static_bounds): Likewise.
9298
9299 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9300
9301         * doc/invoke.texi (Option Summary, C++ Dialect Options)
9302         (Objective-C and Objective-C++ Dialect Options, Warning Options):
9303         Make -Wfoo language annotations match what the compiler outputs.
9304
9305 2008-02-08  Sa Liu  <saliu@de.ibm.com>
9306
9307         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
9308         intrinsics spu_convts, spu_convtu, spu_convtf.
9309
9310 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
9311
9312         * doc/extend.texi (Function Attributes) <noinline>: Mention
9313         asm ("") as method to keep calls.
9314
9315 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9316
9317         PR other/32754
9318         * doc/options.texi (Options): Replace references to opts.sh with
9319         optc-gen.awk.
9320         * opts-common.c: Likewise.
9321         * optc-gen.awk: Likewise.
9322         
9323 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
9324
9325         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
9326
9327 2008-02-07  Richard Henderson  <rth@redhat.com>
9328
9329         PR rtl-opt/33410
9330         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
9331         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
9332         funny mode.
9333
9334 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
9335
9336         PR tree-optimization/35085
9337         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
9338         for operand entry oe2 in addition to operand entry oe3 in order to
9339         expose more opportunities for vectorizer sum reduction.
9340
9341 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9342
9343         PR other/35107
9344         * Makefile.in (LIBS): Remove $(GMPLIBS).
9345         (cc1-dummy, cc1): Add $(GMPLIBS).
9346
9347 2008-02-06  Jan Hubicka  <jh@suse.cz>
9348
9349         PR target/23322
9350         * i386.md (moddf_integer): Do not produce partial memory stalls for
9351         targets where it hurts.
9352
9353 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
9354
9355         PR target/35083
9356         * optabs.c (expand_float): Do not check for decimal modes when
9357         expanding unsigned integer through signed conversion.
9358
9359 2008-02-06  Nick Clifton  <nickc@redhat.com>
9360
9361         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
9362         inside the clobber with a match_operand and duplicated operand
9363         number in the constraint.
9364         (ineqbranchsi): Delete redundant comment.
9365
9366 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
9367
9368         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
9369         builtin_define ("__USE_INIT_FINI__").
9370         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
9371         -msx multilibs.
9372         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
9373
9374 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9375
9376         PR documentation/30330
9377         * doc/invoke.texi (C++ Dialect Options)
9378         (Objective-C and Objective-C++ Dialect Options, Warning Options):
9379         For each warning option -Wfoo that allows -Wno-foo, ensure both
9380         -Wfoo and -Wno-foo are listed in the option index.  Fix index
9381         entry of -Wswitch-default, index -Wnormalized= including the
9382         `=', and -Wlarger-than-@var{len} including @var{len}.
9383
9384 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
9385
9386         * config/i386/i386.md (floatunssisf2): Use
9387         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
9388         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
9389         Macroize expander using MODEF mode iterator.
9390
9391 2008-02-05  Diego Novillo  <dnovillo@google.com>
9392
9393         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
9394
9395         PR 33738
9396         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
9397
9398 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9399
9400         PR other/35070
9401         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
9402
9403 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
9404
9405         PR target/35084
9406         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
9407         to indicate if a message should be generated.
9408         (init_cumulative_args): Updated.
9409         (function_value_32): Likewise.
9410
9411 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
9412
9413         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
9414
9415 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
9416
9417         PR target/35083
9418         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
9419         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
9420
9421 2008-02-04  Diego Novillo  <dnovillo@google.com>
9422
9423         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
9424
9425         PR 33738
9426         * tree-vrp.c (vrp_evaluate_conditional): With
9427         -Wtype-limits, emit a warning when comparing against a
9428         constant outside the natural range of OP0's type.
9429
9430 2008-02-04  Richard Guenther  <rguenther@suse.de>
9431
9432         PR middle-end/33631
9433         * expr.c (count_type_elements): Give for unions instead of
9434         guessing.
9435
9436 2008-02-04  Richard Guenther  <rguenther@suse.de>
9437
9438         PR middle-end/35043
9439         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
9440         to TYPE_DOMAINs base type instead of using bitsizetype here.
9441
9442 2008-02-03  Jason Merrill  <jason@redhat.com>
9443
9444         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
9445
9446 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9447
9448         PR other/29972
9449         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
9450         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
9451         (RS/6000 and PowerPC Options): Fix typos and markup.
9452         * doc/passes.texi (Tree-SSA passes): Likewise.
9453
9454 2008-02-02  Michael Matz  <matz@suse.de>
9455
9456         PR target/35045
9457         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
9458         from record_last_reg_set_info.
9459         (record_last_reg_set_info): Take an RTX argument, iterate over all
9460         constituent hardregs.
9461         (record_last_set_info, record_opr_changes): Change calls to
9462         new signature or to record_last_reg_set_info_regno.
9463
9464 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
9465
9466         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
9467
9468 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
9469
9470         PR rtl-optimization/34773
9471         * reg-notes.def (EQUAL): Mention significance of combination of
9472         REG_EQUAL and REG_RETVAL.
9473         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
9474         insn that has a REG_RETVAL.
9475
9476 2008-02-01  Roger Sayle  <roger@eyesopen.com>
9477
9478         PR bootstrap/33781
9479         * configure.ac (--enable-fixed-point): Disable unless explicitly
9480         requested on IRIX.
9481         * configure: Regenerate.
9482
9483 2008-02-01  Richard Guenther  <rguenther@suse.de>
9484
9485         PR other/35042
9486         * invoke.texi (-finline-limit): Remove no longer true parts
9487         of the documentation.  Note that there is no default value.
9488
9489 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
9490             Mark Mitchell  <mark@codesourcery.com>
9491             Ben Elliston  <bje@au.ibm.com>
9492
9493         PR c/29326
9494         * doc/extend.texi (Other Builtins): Document.
9495
9496 2008-01-31  Tom Browder <tom.browder@gmail.com>
9497
9498         * doc/c-tree.texi (Types): Fix grammar.
9499         (Expression trees): Ditto.
9500         * doc/passes.texi (Tree-SSA passes): Ditto.
9501         
9502         * doc/configterms.texi (Configure Terms): Fix typo.
9503         * doc/cpp.texi (Common Predefined Macros): Ditto.
9504         * doc/md.texi (Machine Constraints): Ditto.
9505         
9506         * doc/makefile.texi (Makefile): Add comma.
9507
9508 2008-01-31  Tom Browder  <tom.browder@gmail.com>
9509             Gerald Pfeifer  <gerald@pfeifer.com>
9510         
9511         * doc/sourcebuild.texi (Front End): Remove references to CVS
9512         and CVSROOT/modules.
9513         (Texinfo Manuals): Replace reference to CVS by one to SVN.
9514         (Back End): Remove reference to CVS.
9515
9516 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
9517
9518         PR target/34900
9519         * config/mips/mips.c (gen_load_const_gp): New function, taking a
9520         comment from...
9521         (mips16_gp_pseudo_reg): ...here.
9522         * config/mips/mips.md (load_const_gp): Replace with...
9523         (load_const_gp_<mode>): ...this :P-based insn.
9524
9525 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9526
9527         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
9528         options. Minor fixes.
9529         (-std): Move reference to standards closer to where language
9530         standards are first mentioned.
9531         
9532 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
9533
9534         PR rtl-optimization/34995
9535         * reload.c (alternative_allows_const_pool_ref): Take an rtx
9536         parameter and return a bool.  If the rtx parameter is nonnull,
9537         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
9538         (find_reloads): Update call accordingly.  Pass the new operand
9539         if it needed no address reloads, otherwise pass null.
9540
9541 2008-01-30  Richard Henderson  <rth@redhat.com>
9542
9543         PR c/34993
9544         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
9545         for unbounded arrays.
9546
9547 2008-01-30  Silvius Rus  <rus@google.com>
9548
9549         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
9550
9551 2008-01-30  Jan Hubicka  <jh@suse.cz>
9552
9553         PR target/34982
9554         * i386.c (init_cumulative_args): Use real function declaration when
9555         calling locally.
9556
9557 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
9558
9559         PR rtl-optimization/34998
9560         * global.c (build_insn_chain): Treat non-subreg_lowpart
9561         SUBREGs of pseudos as clobbering all the words covered by the
9562         SUBREG, not just all the bytes.
9563         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
9564         original df_ref rather than an extract parameter.
9565         (global_conflicts): Update call accordingly.
9566
9567 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
9568
9569         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
9570         the overflow check to make it easier to read.
9571         (__fixtfdi): Change the type of the ll member in union
9572         long_double to UDItype_x.
9573
9574 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
9575
9576         PR middle-end/34969
9577         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
9578         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
9579         * tree-inline.c (fold_marked_statements): Call
9580         cgraph_update_edges_for_call_stmt if folding a call statement.
9581         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
9582         debug_generic_stmt calls, reset it back afterwards.
9583
9584         PR c/35017
9585         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
9586         static decls.
9587         * c-typeck.c (build_external_ref): Don't pedwarn about
9588         static vars in current function's scope.
9589
9590 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
9591
9592         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
9593
9594 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
9595
9596         PR c/35002
9597         * ipa-struct-reorg.c: Fix spelling.
9598         * params.def: Ditto.
9599
9600 2008-01-29  Richard Guenther  <rguenther@suse.de>
9601
9602         PR middle-end/35006
9603         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
9604         field.
9605         * tree-inline.c (remap_type): Increment remapping_type_depth
9606         around remapping types.
9607         (copy_body_r): Only add referenced variables if they are referenced
9608         from code, not types.
9609
9610 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
9611
9612         PR c++/34055
9613         PR c++/34103
9614         PR c++/34219
9615         PR c++/34606
9616         PR c++/34753
9617         PR c++/34754
9618         PR c++/34755
9619         PR c++/34919
9620         PR c++/34961
9621         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
9622         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
9623
9624 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
9625
9626         PR target/34412
9627         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
9628         pointer for tiny stack.
9629
9630 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
9631
9632         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
9633
9634 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
9635
9636         * config/vx-common.h: Fix typo in comment.
9637
9638 2008-01-28  Ian Lance Taylor  <iant@google.com>
9639
9640         PR c++/34862
9641         PR c++/33407
9642         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
9643         coalesce pointers if they have different DECL_NO_TBAA_P values.
9644         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
9645         between variables with different DECL_NO_TBAA_P values.
9646
9647 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
9648
9649         PR 31535
9650         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
9651         are not legitimate small data references on SPE targets.
9652
9653 2008-01-28  David Daney  <ddaney@avtrex.com>
9654
9655         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
9656
9657 2008-01-28  David Daney  <ddaney@avtrex.com>
9658
9659         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
9660
9661 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
9662
9663         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
9664         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
9665         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
9666         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
9667         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
9668         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
9669         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
9670         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
9671
9672 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9673
9674         * basic-block.h (condjump_equiv_p): Fix comment.
9675
9676 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9677
9678         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
9679         print_generic_stmt_indented): Fix comment.
9680
9681 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9682
9683         * configure.ac (__stack_chk_fail): Add detecion for availability
9684         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
9685         * configure: Regenerate.
9686
9687 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
9688
9689         PR middle-end/34688
9690         * final.c (output_addr_const): Handle TRUNCATE.
9691
9692 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
9693
9694         PR target/34711
9695         * tree-ssa-loop-ivopts.c (comp_cost): New type.
9696         (zero_cost, infinite_cost): New constants.
9697         (struct cost_pair): Change type of cost to comp_cost.
9698         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
9699         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
9700         New functions.
9701         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
9702         split_address_cost, ptr_difference_cost, difference_cost,
9703         get_computation_cost_at, get_computation_cost,
9704         determine_use_iv_cost_generic, determine_use_iv_cost_address,
9705         determine_use_iv_cost_condition, determine_use_iv_costs,
9706         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
9707         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
9708         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
9709         Change type of cost to comp_cost.
9710         (determine_iv_cost): Increase cost of non-original ivs, instead
9711         of decreasing the cost of original ones.
9712         (get_address_cost): Indicate the complexity of the addressing mode 
9713         in comp_cost.
9714         (try_add_cand_for): Prefer using ivs not specific to some object.
9715         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
9716
9717 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
9718             Janis Johnson  <janis187@us.ibm.com>
9719
9720         PR target/34814
9721         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
9722         (TARGET_INSTANTIATE_DECLS): Likewise.
9723         * target.h (expand_to_rtl_hook): New target hook.
9724         (instantiate_decls): Likewise.
9725         * function.c (instantiate_decl): Make non-static.  Rename to...
9726         (instantiate_decl_rtl): ... this.
9727         (instantiate_expr): Use instantiate_decl_rtl.
9728         (instantiate_decls_1): Likewise.
9729         (instantiate_decls): Likewise.
9730         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
9731         * function.h (instantiate_decl_rtl): Add prototype.
9732         * cfgexpand.c (target.h): New include.
9733         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
9734         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
9735         (TARGET_INSTANTIATE_DECLS): Likewise.
9736         (TARGET_INITIALIZER): New target hooks added.
9737         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
9738         New prototype.
9739         * config/rs6000/rs6000.c (tree-flow.h): New include.
9740         (machine_function): Add sdmode_stack_slot field.
9741         (rs6000_alloc_sdmode_stack_slot): New function.
9742         (rs6000_instantiate_decls): Likewise.
9743         (rs6000_secondary_memory_needed_rtx): Likewise.
9744         (rs6000_check_sdmode): Likewise.
9745         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
9746         (TARGET_INSTANTIATE_DECLS): Likewise.
9747         (rs6000_hard_regno_mode_ok): Allow SDmode.
9748         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
9749         (rs6000_emit_move): Handle SDmode.
9750         (function_arg_advance): Likewise.
9751         (function_arg): Likewise.
9752         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
9753         SDmode var args for 32-bit compiles.
9754         (rs6000_secondary_reload_class): Handle SDmode.
9755         (rs6000_output_function_epilogue): Likewise.
9756         (rs6000_function_value): Simplify if statement.
9757         (rs6000_libcall_value): Likewise.
9758         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
9759         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
9760         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
9761         (movsd_hardfloat): New define_insn.
9762         (movsd_softfloat): Likewise.
9763         (movsd_store): Likewise.
9764         (movsd_load): Likewise.
9765         (extendsddd2): Likewise.
9766         (extendsdtd2): Likewise.
9767         (truncddsd2): Likewise.
9768         (movdd_hardfloat64): Fixup comment.
9769         (UNSPEC_MOVSD_LOAD): New constant.
9770         (UNSPEC_MOVSD_STORE): Likewise.
9771
9772 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
9773
9774         PR c++/34965
9775         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
9776         TRUTH_XOR_EXPR.
9777         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
9778         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
9779         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
9780         and TRUTH_XOR_EXPR.
9781
9782 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
9783
9784         PR target/34794
9785         * config.gcc: Separate AIX 5.3 from AIX 6.1.
9786         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
9787         __LONGDOUBLE128 too.
9788         * config/rs6000/aix61.h: New file.
9789
9790 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
9791
9792         PR rtl-optimization/34959
9793         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
9794         popcount and parity rtxes the same mode as their operand.
9795         Truncate or extend the result to the return value's mode
9796         if necessary.
9797
9798 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
9799
9800         PR target/34981
9801         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
9802         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
9803         to GOT_VERSION_REGNUM.
9804         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
9805         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
9806         * config/mips/mips.c (mips_emit_call_insn): New function.
9807         (mips_call_tls_get_addr): Call mips_expand_call directly.
9808         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
9809         emit_call_insn.
9810         (mips16_build_call_stub): Likewise.  Return the call insn or null.
9811         (mips_expand_call): Update the call to mips16_build_call_stub
9812         accordingly and a remove redundant condition.  Assert that MIPS16
9813         stubs do not use lazy binding.  Use mips_emit_call_insn and return
9814         the call insn.
9815         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
9816         TARGET_USE_GOT.
9817         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
9818         (mips_avoid_hazard): Remove hazard_set handling.
9819         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
9820         (UNSPEC_RESTORE_GP): ...this.
9821         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
9822         (FAKE_CALL_REGNO): Rename to...
9823         (GOT_VERSION_REGNUM): ...this.
9824         (type): Add "ghost" value.  Add an associated insn reservation.
9825         (hazard_set): Remove.
9826         (exception_receiver): Rename to...
9827         (restore_gp): ...this and update the unspec identifier accordingly.
9828         (exception_receiver, nonlocal_got_receiver): New expanders.
9829         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
9830         FAKE_CALL_REGNO.  Remove hazard_set attribute.
9831         (set_got_version, update_got_version): New patterns.
9832
9833 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
9834
9835         PR target/34970
9836         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
9837
9838 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
9839
9840         PR other/31955
9841         * doc/install.texi2html: Generate gcc-vers.texi.
9842
9843 2008-01-25  DJ Delorie  <dj@redhat.com>
9844
9845         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
9846
9847 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
9848
9849         * config/c4x: Remove directory.
9850         * config.gcc (crx-*, mt-*): Mark obsolete.
9851         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
9852         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
9853         sh-*-rtemscoff*): Remove cases.
9854         * defaults.h (C4X_FLOAT_FORMAT): Remove.
9855         * real.c (encode_c4x_single, decode_c4x_single,
9856         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
9857         c4x_extended_format): Remove.
9858         * real.h (c4x_single_format, c4x_extended_format): Remove.
9859         * doc/extend.texi (interrupt, naked): Remove mention of attributes
9860         on C4x.
9861         (Pragmas): Remove comment about c4x pragmas.
9862         * doc/install.texi (c4x): Remove target-specific instructions.
9863         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
9864         * doc/md.texi (Machine Constraints): Remove C4x documentation.
9865         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
9866         refer to C4x source files as examples.
9867         (C4X_FLOAT_FORMAT): Remove documentation.
9868
9869 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
9870
9871         * config/bfin/bfin.c (override_options): Reorder tests so that
9872         flag_pic gets enabled for -msep-data.
9873
9874 2008-01-25  Richard Guenther  <rguenther@suse.de>
9875
9876         PR middle-end/32244
9877         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
9878         to its bitfield precision if required.
9879
9880 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
9881
9882         PR middle-end/33880
9883         * tree-nested.c (walk_omp_for): New function.
9884         (convert_nonlocal_reference, convert_local_reference): Call
9885         walk_omp_for on OMP_FOR.
9886         (convert_call_expr): Call walk_body on OMP_FOR's
9887         OMP_FOR_PRE_INIT_BODY.
9888
9889 2008-01-25  Richard Guenther  <rguenther@suse.de>
9890
9891         PR tree-optimization/34966
9892         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
9893         default defs and PHI_NODEs we have to insert after the
9894         defining statement.
9895
9896 2008-01-24  Nick Clifton  <nickc@redhat.com>
9897
9898         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
9899         Provide a default definition.
9900         (LIBGCC2_UNITS_PER_WORD): Likewise.
9901
9902         * config/stormy16/stormy16.c: Include df.h for the prototype
9903         for df_regs_ever_live_p.
9904         (xstormy16_expand_builtin_va_start): Convert the stack offset
9905         into a component_ref and then use POINTER_PLUS_EXPR to add it
9906         to the incoming_virtual_args_rtx.
9907         (xstormy16_gimplify_va_arg_expr): Rename to
9908         xstormy16_gimplify_va_arg_expr.
9909         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
9910         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
9911         xstormy16_gimplify_va_arg_expr.
9912         Fix up some formatting issues.
9913
9914         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
9915         Move to predicates.md.
9916         (xs_hi_general_operand): Likewise.
9917         (xs_hi_nonmemory_operand): Likewise.
9918         * config/stormy16/predicates.md:
9919         (xstormy16_carry_plus_operand): New predicate.
9920         (xs_hi_general_operand): New predicate.
9921         (xs_hi_nonmemory_operand): New predicate.
9922         * config/stormy16/stormy16-protos.h:
9923         (xstormy16_carry_plus_operand): Delete prototype.
9924         (xs_hi_general_operand): Likewise.
9925         (xs_hi_nonmemory_operand): Likewise.
9926
9927         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
9928         modifiers as they are no longer needed and they can trigger
9929         reload spill failures.
9930
9931         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
9932         with a match_operand in order to help reload.
9933
9934         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
9935         constraint with 'e' for the 8th alternative as this version of
9936         the mov.w instruction only accepts the lower 8 registers.
9937
9938 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
9939
9940         PR target/34856
9941         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
9942         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
9943         vector elements.
9944
9945 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
9946
9947         PR middle-end/33333
9948         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
9949
9950 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
9951
9952         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
9953         New functions.
9954         (remove_structure): Update allocations list before removing structure.
9955         
9956 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
9957
9958         * ipa-struct-reorg.c (is_safe_cond_expr, 
9959         create_new_stmts_for_cond_expr): Use integer_zerop function,
9960         that recognize not only zero-pointer, but zero-integer too.
9961
9962 2008-01-25  Ben Elliston  <bje@au.ibm.com>
9963
9964         PR other/22232
9965         * fixproto: Escape "." in sed expression that strips leading "./".
9966
9967 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
9968
9969         PR driver/34904
9970         * gcc.c (SWITCH_OK): Removed.
9971         (SWITCH_LIVE): Changed to bit.
9972         (SWITCH_FALSE): Likewise.
9973         (SWITCH_IGNORE): Likewise.
9974         (switchstr): Change live_cond to unsigned int.
9975         (process_command): Replace SWITCH_OK with 0.
9976         (do_self_spec): Likewise.
9977         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
9978         (give_switch): Likewise.
9979         (used_arg): Likewise.
9980         (do_spec_1): Set the SWITCH_IGNORE bit.
9981         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
9982         bits.  Set the SWITCH_LIVE bit.
9983
9984 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
9985
9986         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
9987
9988 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
9989
9990         PR tree-optimization/34472
9991         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
9992         parameter to a "bool *" and set *DATA to false if there is
9993         an unsafe access.  Do not delete the structure here.
9994         (check_cond_exprs): Delete it here instead.
9995         (check_cond_exprs, exclude_cold_structs): Do not increase
9996         I when removing a structure.
9997
9998 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
9999
10000         PR target/34856
10001         * config/i386/i386.c (ix86_expand_vector_init): Consider only
10002         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
10003
10004 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
10005
10006         PR middle-end/34934
10007         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
10008         a fixed vector for stack.
10009
10010 2008-01-24  Ben Elliston  <bje@au.ibm.com>
10011
10012         PR c++/25701
10013         * doc/gcc.texi (Software development): Add a direntry for g++.
10014         
10015 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
10016
10017         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
10018         stale and straggling -fforce-addr comments above.
10019
10020         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
10021         define.
10022         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
10023         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
10024
10025 2008-01-23  Michael Matz  <matz@suse.de>
10026
10027         PR debug/34895
10028         * dwarf2out.c (force_type_die): Use modified_type_die instead of
10029         gen_type_die.
10030
10031 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
10032
10033         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
10034         malloc result type.
10035
10036 2008-01-23 Anatoly Sokolov <aesok@post.ru>
10037
10038         * config/avr/avr.c (avr_current_arch): New variable.
10039         (avr_arch_types): Add 'avr31' and 'avr51' entries.
10040         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
10041         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
10042         (avr_override_options): Init 'avr_current_arch'. 
10043         (base_arch_s): Move from here...
10044         * config/avr/avr.h (base_arch_s): ... here. Add new members 
10045         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
10046         'mega' to 'have_jmp_call'.
10047         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
10048         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
10049         macros.
10050         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
10051         architectures.
10052         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
10053         MULTILIB_MATCHES): (Ditto.).
10054
10055 2008-01-23  Richard Guenther  <rguenther@suse.de>
10056
10057         PR middle-end/31529
10058         * cgraphunit.c (cgraph_reset_node): Always mark the node
10059         not reachable if it is not queued already.
10060
10061 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
10062
10063         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
10064         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
10065         (cputype_selected): New static variable.
10066         (bfin_handle_option): Set it if -mcpu is used.
10067         (override_option): Select default set of workarounds if no cpu type
10068         selected on the command line.
10069         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
10070
10071         From  Michael Frysinger  <michael.frysinger@analog.com>
10072         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
10073         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
10074
10075         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
10076         for bf547, bf523, bf524, and bf526.
10077         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
10078         bf526.
10079         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
10080         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
10081         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
10082         __ADSPBF547__ and __ADSPBF54x__ for bf547.
10083         * doc/invoke.texi (Blackfin Options): Document that
10084         -mcpu now accept bf547, bf523, bf524, and bf526.
10085
10086 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
10087
10088         PR rtl-optimization/34628
10089         * combine.c (try_combine): Stop and undo after the first combination
10090         if an autoincrement side-effect on the first insn has effectively
10091         been lost.
10092
10093 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
10094
10095         PR target/34529
10096         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
10097         Offset addresses are not valid for Altivec or paired float modes.
10098
10099 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
10100
10101         PR c++/34607
10102         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
10103         if DECL_INITIAL (decl) is error_mark_node.
10104
10105         PR c++/34914
10106         * c-common.c (handle_vector_size_attribute): Only allow
10107         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
10108         the same way as pointer, array etc. types.
10109         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
10110
10111         PR c++/34917
10112         * tree.c (build_type_attribute_qual_variant): Call
10113         build_qualified_type if attributes are equal, but quals are not.
10114
10115 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10116
10117         PR 32102
10118         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
10119         * flags.h (warn_strict_aliasing): Remove.
10120         (warn_strict_overflow): Remove.
10121         * opts.c (warn_strict_aliasing): Remove.
10122         (warn_strict_overflow): Remove.
10123         * c-opts.c (c_common_handle_option): -Wall only sets
10124         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
10125         (c_common_post_options): Give default values to -Wstrict-aliasing
10126         and -Wstrict-overflow if they are uninitialized.
10127         * common.opt (Wstrict-aliasing): Specify Var and Init.
10128         (Wstrict-overflow): Likewise.
10129
10130 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
10131
10132         PR rtl-optimization/26854
10133         PR rtl-optimization/34400
10134         PR rtl-optimization/34884
10135         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
10136         DF_RD->gen.
10137         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
10138         (df_rd_bb_info.expanded_lr_out): Deleted
10139         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
10140         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
10141         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
10142         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
10143         Removed code to allocate, initialize or free expanded_lr_out.
10144         (df_rd_bb_local_compute_process_def): Restructured to make more
10145         understandable.
10146         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
10147         sets if the sets are being trimmed.
10148
10149 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
10150
10151         PR bootstrap/32287
10152         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
10153         (as_vers): Likewise.
10154         * configure: Regenerated.
10155
10156 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10157
10158         PR middle-end/33092
10159         * tree-pass.h (pass_build_alias): New pass.
10160         * tree-ssa-alias.c (gate_build_alias): New.
10161         (pass_build_alias): New.
10162         * passes.c (init_optimization_passes): Add pass_build_alias after
10163         pass_create_structure_vars.
10164
10165 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
10166
10167         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
10168         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
10169         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
10170         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
10171         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
10172         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
10173         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
10174         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
10175         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
10176         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
10177         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
10178         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
10179         * config/s390/s390.md (FP_ALL): New mode iterator.
10180         (_d): New mode attribute.
10181         ("*signbit<mode>2>"): Changed mode of first operand.
10182         ("isinf<mode>2"): Changed mode of first operand.
10183         ("*TDC_insn"): Adaptation for DFP modes.
10184
10185 2008-01-22  Ben Elliston  <bje@au.ibm.com>
10186
10187         * tree.c (check_qualified_type): Improve function description.
10188
10189 2008-01-21  Jason Merrill  <jason@redhat.com>
10190
10191         PR c++/34196
10192         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
10193         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
10194         if it is set.
10195
10196 2008-01-21  DJ Delorie  <dj@redhat.com>
10197
10198         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
10199         return zero.
10200
10201 2008-01-21  Richard Guenther  <rguenther@suse.de>
10202
10203         PR middle-end/34856
10204         * tree-cfg.c (verify_expr): Allow all invariant expressions
10205         instead of just constant class ones as reference argument.
10206         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
10207         like any other constant.
10208         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
10209
10210 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
10211
10212         * regmove.c (fixup_match_1): Update call crossed frequencies.
10213
10214 2008-01-21  Richard Guenther  <rguenther@suse.de>
10215
10216         PR c/34885
10217         * tree-inline.c (setup_one_parameter): Deal with mismatched
10218         types using a VIEW_CONVERT_EXPR.
10219
10220 2008-01-21  Alon Dayan  <alond@il.ibm.com>
10221             Olga Golovanevsky  <olga@il.ibm.com>
10222         
10223         PR tree-optimization/34701
10224         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
10225         when the structure size is not a power of 2.
10226
10227 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
10228
10229         * doc/install.texi: Add doc for --enable-checking=df.
10230         
10231 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10232
10233         PR rtl-optimization/34808
10234         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
10235
10236 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
10237
10238         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
10239         input.
10240
10241 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
10242
10243         PR rtl-optimization/26854
10244         PR rtl-optimization/34400
10245         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
10246         DF_RD->gen.
10247         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
10248         (df_rd_bb_info.expanded_lr_out): New.
10249         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
10250         * loop_iv.c (iv_analysis_loop_init): Ditto.
10251         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
10252         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
10253         Added code to allocate, initialize or free expanded_lr_out.
10254         (df_rd_bb_local_compute_process_def): Restructured to make
10255         more understandable.
10256         (df_rd_confluence_n): Add code to do nothing with fake edges and
10257         code to no apply invalidate_by_call sets if the sets are being trimmed.
10258         (df_lr_local_finalize): Renamed to df_lr_finalize.
10259         (df_live_local_finalize): Renamed to df_live_finalize.
10260
10261 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
10262
10263         PR target/34831
10264         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
10265         deciding whether to use reciprocal instructions.
10266
10267 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
10268
10269         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
10270         dwarf2out_note_section_used if cold_text_section is NULL.
10271
10272 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
10273
10274         PR gcov-profile/34610
10275         * tree-cfg.c (make_edges): Mark both outgoing edges from
10276         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
10277         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
10278         from OMP_FOR and OMP_CONTINUE outgoing edges.
10279
10280         * tree-profile.c (tree_profiling): Return early if
10281         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
10282         at the end.
10283         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
10284         from cfun to child_cfun.
10285         * function.h (struct function): Add after_tree_profile bit.
10286
10287 2008-01-19 Anatoly Sokolov <aesok@post.ru>
10288
10289         * config/avr/avr.S (_exit): Disable interrupt.
10290
10291 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
10292             Steven Bosscher  <stevenb.gcc@gmail.com>
10293
10294         PR rtl-optimization/26854
10295         PR rtl-optimization/34400
10296         * df-problems.c (df_live_scratch): New scratch bitmap.
10297         (df_live_alloc): Allocate df_live_scratch when doing df_live.
10298         (df_live_reset): Clear the proper bitmaps.
10299         (df_live_bb_local_compute): Only process the artificial defs once
10300         since the order is not important.
10301         (df_live_init): Init the df_live sets only with the variables
10302         found live by df_lr.
10303         (df_live_transfer_function): Use the df_lr sets to prune the
10304         df_live sets as they are being computed.  
10305         (df_live_free): Free df_live_scratch.
10306
10307 2008-01-18  Ian Lance Taylor  <iant@google.com>
10308
10309         * common.opt: Add fmerge-debug-strings.
10310         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
10311         flag_merge_debug_strings rather than flag_merge_constants.
10312         * doc/invoke.texi (Option Summary): Mention
10313         -fmerge-debug-strings.
10314         (Debugging Options): Document -fmerge-debug-strings.
10315
10316 2008-01-18  Ian Lance Taylor  <iant@google.com>
10317
10318         PR c++/33407
10319         * tree.h (DECL_IS_OPERATOR_NEW): Define.
10320         (struct tree_function_decl): Add new field operator_new_flag.
10321         * tree-inline.c (expand_call_inline): When inlining a call to
10322         operator new, force the return value to go into a variable, and
10323         set DECL_NO_TBAA_P on that variable.
10324         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
10325
10326 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
10327
10328         PR debug/34484
10329         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
10330         DWARF2_DEBUGGING_INFO.
10331         (dwarf2out_note_section_used): Ditto.  Add prototype.
10332         (have_multiple_function_sections, text_section_used,
10333         cold_text_section_used, *cold_text_sections): Move declarations
10334         before their uses.
10335
10336 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
10337
10338         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
10339         field and add signal_ra.
10340         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
10341         assignments to frame state pc.  Move end of stack check after
10342         MD_FALLBACK_FRAME_STATE_FOR.
10343         (uw_update_context_1): Use frame state signal_regs if set, instead
10344         of checking signal_frame flag.
10345         (uw_update_context): Use frame state signal_ra if set.
10346         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
10347         * config/xtensa/linux-unwind.h: New file.
10348
10349 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
10350
10351         * modulo-sched.c (get_sched_window): Fix comment typo.
10352
10353 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
10354
10355         PR tree-optimization/34648
10356         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
10357
10358 2008-01-17  Anatoly Sokolov <aesok@post.ru>
10359
10360         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
10361         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
10362
10363 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
10364
10365         PR rtl-optimization/34400
10366         * df-core.c (df_worklist_dataflow_overeager,
10367         df_worklist_dataflow_doublequeue): New functions.
10368         (df_worklist_dataflow): Two different worklist solvers.
10369         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
10370         New param.
10371
10372 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10373
10374         PR testsuite/34821
10375         * doc/invoke.texi: Document the dependence on pthread for fopenmp
10376         and ftree-parallelize-loops.
10377
10378 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
10379
10380         PR rtl-optimization/34826
10381         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
10382
10383 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
10384
10385         * global.c (find_reg): Mark the eh regs as used if necessary.
10386         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
10387         * ra.h (struct allocno): no_eh_reg field added.  Changed
10388         no_stack_reg type to bitfield.
10389
10390 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
10391
10392         * tree.c (substitute_in_expr): Add missing 'break'.
10393
10394 2008-01-17  Richard Guenther  <rguenther@suse.de>
10395
10396         PR tree-optimization/34825
10397         * tree-ssa-math-opts.c (is_division_by): Do not recognize
10398         x / x as division to handle.
10399
10400 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10401
10402         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
10403         "-pthread" is specified.
10404         * pa-hpux11.h (LIB_SPEC): Likewise.
10405
10406 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
10407             Peter Bergner  <bergner@vnet.ibm.com>
10408
10409         PR rtl-optimization/33796
10410         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
10411
10412 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10413
10414         PR libgfortran/34699
10415         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
10416         static links.
10417         * pa-hpux10.h (LINK_SPEC): Likewise.
10418         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
10419
10420 2008-01-16  Richard Guenther  <rguenther@suse.de>
10421
10422         PR middle-end/32628
10423         * fold-const.c (fold_convert_const_int_from_int): Do not
10424         set overflow if that occured only because of a sign extension
10425         change when converting from/to a sizetype with the same
10426         precision and signedness.
10427
10428 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
10429
10430         PR debug/34249
10431         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
10432         location address to the correct place.  Update copyright year.
10433
10434 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10435
10436         * lambda-code.c (lambda_transform_legal_p): Handle the case of
10437         no dependences in the dependence_relations vector.
10438
10439 2008-01-16  Jan Hubicka  <jh@suse.cz>
10440
10441         PR rtl-optimization/31396
10442         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
10443         * cfg.c (dump_reg_info): Print it.
10444         * regs.h (struct reg_info_t): add freq_calls_crossed.
10445         (REG_FREQ_CALLS_CROSSED): New macro.
10446         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
10447         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
10448         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
10449         regmove_optimize): Update call crossed frequencies.
10450         * local-alloc.c (struct qty): Add freq_calls_crossed.
10451         (alloc_qty): Copute freq_calls_crossed.
10452         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
10453         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
10454         * ra.h (struct allocno): Add freq_calls_crossed.
10455
10456 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10457
10458         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
10459         libgomp when compiling with ftree-parallelize-loops.
10460         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
10461
10462 2008-01-16  Richard Guenther  <rguenther@suse.de>
10463
10464         PR tree-optimization/34769
10465         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
10466         * tree.c (int_cst_value): Instead make this function more
10467         permissive in what it accepts as valid input.  Document this
10468         function always sign-extends the value.
10469
10470 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
10471             Richard Guenther  <rguenther@suse.de>
10472
10473         PR c/34668
10474         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
10475         (gimple_fold_indirect_ref_rhs): ... this.
10476         (gimple_fold_indirect_ref): New function with foldings
10477         that preserve lvalueness.
10478         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
10479         * tree-flow.h (gimple_fold_indirect_ref): Declare.
10480         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
10481         to fold an INDIRECT_REF, fall back to the old use of
10482         fold_indirect_ref_1.
10483
10484 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10485
10486         * tree-data-ref.c (subscript_dependence_tester_1): Call 
10487         free_conflict_function.
10488         (compute_self_dependence): Same.
10489
10490 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
10491
10492         PR debug/34249
10493         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
10494         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
10495         function global.
10496         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
10497         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
10498         for DWARF2_UNWIND_INFO targets.
10499
10500 2008-01-16  Richard Guenther  <rguenther@suse.de>
10501
10502         PR c/34768
10503         * c-typeck.c (common_pointer_type): Do not merge inconsistent
10504         type qualifiers for function types.
10505
10506 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
10507
10508         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
10509         loop_iterator li from previous commit.
10510
10511 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
10512
10513         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
10514
10515 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
10516
10517         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
10518         (parallelize_loops): Don't parallelize irreducible components.
10519
10520 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10521
10522         PR c++/24924
10523         * c-opts (c_common_post_options): Do not enable CPP
10524         flag_pedantic_errors by default.
10525         
10526 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
10527
10528         PR rtl-optimization/31944
10529         * cse.c (remove_pseudo_from_table): New function.
10530         (merge_equiv_classes): Use above function to remove pseudo-registers.
10531         (invalidate): Likewise.
10532
10533 2008-01-13  Richard Guenther  <rguenther@suse.de>
10534
10535         PR middle-end/34601
10536         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
10537         instead of TYPE_MODE to deal with calls from expand_one_error_var.
10538
10539 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
10540
10541         * gcse.c (cprop_jump): Call validate_unshare_change instead of
10542         validate_change to unshare the source of the PC set.
10543
10544 2008-01-12  Jan Hubicka  <jh@suse.cz>
10545
10546         PR middle-end/32135
10547         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
10548         references above array bounds.  This might trigger bounds checks for
10549         pointers to arrays.
10550
10551 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
10552
10553         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
10554         new_replaceable_dependencies.
10555
10556 2008-01-12  Doug Kwan  <dougkwan@google.com>
10557
10558         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
10559         instead of OPT_Wreturn_type in warning due to ignored return type
10560         qualifiers.
10561         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
10562         options included in -Wextra.
10563         * c.opt: New option -Wignored_qualifiers.
10564         * doc/invoke.texi (Warning Options, -Wextra): Add new option
10565         -Wignore_qualifiers.
10566         (-Wignored-qualifiers): Document.
10567         (-Wreturn-type): Remove description of functionality now handled
10568         by -Wignored-qualifiers.
10569
10570 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
10571
10572         PR ada/33788
10573         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
10574         NOP_EXPR if it is between integral types with the same precision.
10575
10576 2008-01-12  Jan Hubicka  <jh@suse.cz>
10577
10578         PR other/28023
10579         * invoke.texi (max-inline-recursive-depth): Fix default value.
10580
10581 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
10582
10583         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
10584         correct type.
10585
10586 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
10587         
10588         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
10589         
10590 2008-01-11  James E. Wilson  <wilson@specifix.com>
10591
10592         PR target/26015
10593         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
10594
10595 2008-01-11  Anatoly Sokolov <aesok@post.ru>
10596
10597         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
10598         save/restore frame pointer register and don't use 'call-prologues' 
10599         optimization in function with "OS_task" attribute.
10600
10601 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
10602
10603         PR middle-end/31309
10604         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
10605         when copying to memory.
10606
10607 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
10608
10609         PR rtl-optimization/30905
10610         * cfgcleanup.c: Include dce.h
10611         (crossjumps_occured): New global variable.
10612         (try_crossjump_bb): Exit loop after finding a fallthru edge.
10613         If something changed, set crossjumps_occured to true.
10614         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
10615         Don't add/remove fake edges to exit here...
10616         (cleanup_cfg): ...but do it here, when crossjumping.
10617         Run a fast DCE when successful crossjumps occured in the latest
10618         iteration of try_optimize_cfg.
10619
10620 2008-01-11  Richard Guenther  <rguenther@suse.de>
10621
10622         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
10623         (struct vn_unary_op_s): Likewise.
10624         (vn_reference_insert): Free old reference on hash collision.
10625
10626 2008-01-10  Raksit Ashok  <raksit@google.com>
10627
10628         PR rtl-optimization/27971
10629         * combine.c (find_split_point): Split PLUS expressions which are
10630         inside a MEM rtx, and whose first operand is complex.
10631
10632 2008-01-10  DJ Delorie  <dj@redhat.com>
10633
10634         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
10635         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
10636         (m32c_hard_regno_ok): Call the underlying function.
10637
10638 2008-01-10  Richard Guenther  <rguenther@suse.de>
10639
10640         PR middle-end/34683
10641         * tree-cfg.c (tree_merge_blocks): Do not go through the
10642         full-blown folding and stmt updating path if we just deal
10643         with virtual operands.
10644         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
10645         test for abnormal SSA_NAMEs.
10646
10647 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
10648
10649         PR middle-end/34641
10650         * reload.c (push_reload): Add assertions.  All constants from
10651         reg_equiv_constant should have been used for replacing the respective
10652         pseudo earlier.
10653         (find_reloads_address): Invoke find_reloads_address_part for
10654         constant taken from the reg_equiv_constant array.
10655
10656 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
10657
10658         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
10659         field (valnum) the first in the struct.  Replace bools with
10660         unit bit fields.
10661
10662 2008-01-10  Richard Guenther  <rguenther@suse.de>
10663
10664         PR tree-optimization/34651
10665         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
10666         types and ordering for masking and converting.
10667
10668 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
10669
10670         PR tree-optimization/34017
10671         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
10672         also for PHI_NODE expressions.
10673
10674 2008-01-09  Jan Hubicka  <jh@suse.cz>
10675
10676         PR tree-optimization/34708
10677         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
10678         based on number of case labels.
10679         (init_inline_once): Remove switch_cost.
10680         * tree-inline.h (eni_weights_d): Remove switch_cost.
10681
10682 2008-01-09  Richard Guenther  <rguenther@suse.de>
10683         Andrew Pinski  <andrew_pinski@playstation.sony.com>
10684
10685         PR middle-end/30132
10686         * gimplify.c (gimplify_cond_expr): Do not create an addressable
10687         temporary if an rvalue is ok or an lvalue is not required.
10688
10689 2008-01-09  Richard Guenther  <rguenther@suse.de>
10690
10691         PR middle-end/34458
10692         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
10693         adjust return type.
10694
10695 2008-01-09  Richard Guenther  <rguenther@suse.de>
10696
10697         PR middle-end/34679
10698         * tree.c (host_integerp): Check for sizetype only if the
10699         type is an integer type.
10700
10701 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
10702
10703         PR debug/26364
10704         * opts.c (decode_options): Disable inlining of functions called
10705         once if not in unit-at-a-time mode.
10706
10707 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
10708
10709         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
10710
10711 2008-01-08  Richard Guenther  <rguenther@suse.de>
10712
10713         PR middle-end/31863
10714         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
10715         out early if the result will be unused.
10716
10717 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
10718
10719         PR target/34709
10720         Revert:
10721
10722         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
10723         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
10724         for TARGET_RECIP.       
10725         
10726 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
10727         
10728         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
10729         for vectorization tuned.
10730         
10731 2008-01-08  Richard Guenther  <rguenther@suse.de>
10732
10733         PR tree-optimization/34683
10734         * tree-ssa-operands.c (operand_build_cmp): Export.
10735         * tree-ssa-operands.h (operand_build_cmp): Declare.
10736         * tree-vn.c (vuses_compare): Remove.
10737         (sort_vuses): Use operand_build_cmp.
10738         (sort_vuses_heap): Likewise.
10739         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
10740         to re-use old VEC if available.  Do not sort already sorted VUSEs.
10741         (vdefs_to_vec): Do not sort already sorted VDEFs.
10742
10743 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
10744
10745         PR middle-end/34694
10746         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
10747
10748 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
10749
10750         PR target/34702
10751         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
10752         limitations of reciprocal sequences on x86 targets.
10753
10754 2008-01-08  Richard Guenther  <rguenther@suse.de>
10755
10756         PR tree-optimization/34683
10757         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
10758
10759 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
10760
10761         PR target/34622
10762         * config/darwin.c (darwin_mergeable_string_section): Don't use
10763         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
10764
10765 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
10766
10767         PR target/34682
10768         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
10769         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
10770         predicates of op0 and op1 to register_operand.
10771         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
10772         expander using X87MODEF mode iterator.  Change predicates of
10773         op0 and op1 to register_operand.
10774         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
10775         corresponding patterns and macroize using MODEF macro.  Change
10776         predicates of op0 and op1 to register_operand and remove
10777         "m" constraint. Disparage "r" alternative with "!".
10778         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
10779         macroize using X87MODEF macro.  Change predicates of op0 and op1
10780         to register_operand and remove "m" constraint.  Disparage "r"
10781         alternative with "!".
10782         (absneg splitter with memory operands): Remove.
10783         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
10784         patterns and macroize using X87MODEF mode iterator.
10785         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
10786         Change predicate of op1 to register_operand.
10787         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
10788         for memory operands.
10789
10790 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
10791
10792         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
10793
10794 2008-01-07  Richard Guenther  <rguenther@suse.de>
10795
10796         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
10797         fields.
10798
10799 2008-01-07  Richard Guenther  <rguenther@suse.de>
10800
10801         PR tree-optimization/34683
10802         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
10803         VOPs of the needed size to save memory.  Use VEC_quick_push
10804         to save compile-time.
10805         (vdefs_to_vec): Likewise.
10806
10807 2008-01-07  Sa Liu  <saliu@de.ibm.com>
10808
10809         * config/spu/spu.md (divdf3): Genetate inline code for double
10810         division.  The implementation doesn't handle INF or NAN, therefore it
10811         only applies when -ffinite-math-only is given.
10812
10813 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
10814
10815         PR libstdc++/34680
10816         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
10817         * doc/cpp.texi ([Common Predefined Macros]): Document.
10818
10819 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
10820
10821         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
10822         order to use commutative addition instead of subtraction.
10823
10824 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10825             Mircea Namolaru  <namolaru@il.ibm.com>
10826             Vladimir Yanovsky  <yanov@il.ibm.com>
10827             Revital Eres  <eres@il.ibm.com>
10828
10829         PR tree-optimization/34263
10830         * tree-outof-ssa.c (process_single_block_loop_latch,
10831         contains_tree_r): New functions.
10832         (analyze_edges_for_bb): Call process_single_block_loop_latch
10833         function to empty single-basic-block latch block if possible.
10834
10835 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
10836
10837         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
10838         for TARGET_RECIP.
10839         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
10840
10841 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
10842
10843         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
10844
10845 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
10846
10847         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
10848
10849 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
10850
10851         PR tree-optimization/34618
10852         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
10853         flag from T.
10854
10855 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
10856
10857         PR target/34673
10858         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
10859         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
10860         Update copyright year.
10861
10862         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
10863         Update copyright year.
10864         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
10865         using NR fixup.
10866
10867 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
10868
10869         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
10870         edge does not point to current bb before changing need_assert.
10871
10872 2008-01-04  Richard Guenther  <rguenther@suse.de>
10873
10874         PR middle-end/34029
10875         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
10876         for verifying purposes if they are is_gimple_min_invariant.
10877
10878 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
10879
10880         PR tree-optimization/34448
10881         PR tree-optimization/34465
10882         * gimplify.c (gimplify_init_constructor): Add new parameter
10883         notify_temp_creation.  Use it.
10884         (gimplify_modify_expr_rhs): Take volatiles into account when
10885         optimizing constructors.
10886         Do not optimize constructors if gimplify_init_constructor will dump to
10887         memory.
10888         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
10889         * gcc.c-torture/compile/pr34448.c: New.
10890
10891 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
10892
10893         PR gcov-profile/34609
10894         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
10895         return_slot if result is TREE_ADDRESSABLE.
10896
10897 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
10898
10899         * config/mips/mips.md (sqrt_condition): Tweak comment.
10900         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
10901
10902 2008-01-03  Tom Tromey  <tromey@redhat.com>
10903
10904         PR c/34457
10905         * c-common.c (c_type_hash): Handle VLAs.
10906
10907 2008-01-03  Jan Hubicka  <jh@suse.cz>
10908
10909         PR tree-optimization/31081
10910         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
10911         0 when inlining and not inlining to first basic block.
10912         (remap_decl): When var is initialized to 0, don't set default_def.
10913         (expand_call_inline): Set entry_bb.
10914         * tree-inline.h (copy_body_data): Add entry_bb.
10915
10916 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
10917
10918         PR c++/34619
10919         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
10920         before returning.
10921
10922         PR tree-optimization/29484
10923         * tree-inline.c (inline_forbidden_p_2): New function.
10924         (inline_forbidden_p): Disallow inlining if some static var
10925         has an address of a local LABEL_DECL in its initializer.
10926         * doc/extend.texi (Labels as Values): Document &&foo behaviour
10927         vs. inlining.
10928
10929 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
10930
10931         PR tree-optimization/34635
10932         * tree-data-ref.c (add_other_self_distances): Make sure that the
10933         evolution step is constant.
10934
10935 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
10936
10937         PR middle-end/34608
10938         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
10939
10940 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
10941
10942         * tree-sra.c (scalarize_init): Insert the generate_element_init
10943         statements after the generate_element_zero statements.
10944
10945 2008-01-02  Richard Guenther  <rguenther@suse.de>
10946
10947         PR middle-end/34093
10948         PR middle-end/31976
10949         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
10950         for very large number of operands instead of ICEing.
10951
10952 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
10953
10954         PR target/34013
10955         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
10956         while stack probing.
10957
10958 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
10959
10960         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
10961         in C++0x mode.
10962
10963 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
10964
10965         PR libmudflap/26442
10966         * tree-mudflap.c (mx_register_decls): Guard warning by
10967         !DECL_ARTIFICIAL check.
10968
10969 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
10970
10971         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
10972         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
10973         sse5_perm<mode>): Fix constraints.