OSDN Git Service

* config/i386/i386.h (ix86_tune_indices)
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
2
3         * config/i386/i386.h (ix86_tune_indices)
4         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
5         (TARGET_FUSE_CMP_AND_BRANCH): New define.
6         * config/i386/i386.md (*jcc_fused_1): New insn pattern
7         (*jcc_fused_2): Ditto.
8         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
9         X86_TUNE_USE_VECTOR_COMPARES targets.
10         (print operand): Handle 'E' and 'e' code.
11
12 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
13
14         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
15         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
16         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
17
18 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
19
20         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
21         node->decl.
22         (cgraph_expand_function): Use local copy of decl.
23         (cgraph_expand_all_functions): Remove redundant initialization of
24         order_pos.
25         (cgraph_optimize): Reword internal_error message.
26
27 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
28
29         * arm-protos.h (arm_return_in_memory): Remove public
30         arm_return_in_memory() prototype.
31         * arm.c (arm_return_in_memory): Add static prototype, add target
32         hook macro, change definition and comments.
33         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
34
35 2008-06-19  Ben Elliston  <bje@au.ibm.com>
36
37         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
38         real.c: Remove references to IEEE 754R.
39         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
40         * doc/libgcc.texi (Decimal float library routines): Likewise.
41
42 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
43
44         * targhooks.h (struct gcc_target): New member unwind_word_mode.
45         (default_unwind_word_mode): Add prototype.
46         * targhooks.c (default_unwind_word_mode): New function.
47         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
48         instead of word_mode.
49         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
50         (TARGET_INITIALIZER): Use it.
51
52         * c-common.c (handle_mode_attribute): Support "unwind_word"
53         mode attribute.
54         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
55
56         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
57         word_mode to access SjLj_Function_Context member "data".
58         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
59         conversion from targetm.eh_return_filter_mode () to
60         targetm.unwind_word_mode () if they differ.
61
62         * builtin-types.def (BT_UNWINDWORD): New primitive type.
63         (BT_FN_UNWINDWORD_PTR): New function type.
64         (BT_FN_WORD_PTR): Remove.
65         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
66         * except.c (expand_builtin_extend_pointer): Convert pointer to
67         targetm.unwind_word_mode () instead of word_mode.
68
69         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
70         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
71         (spu_unwind_word_mode): New function.
72         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
73         (TARGET_UNWIND_WORD_MODE): Define.
74         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
75
76 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
77
78         * config/spu/spu.c (reg_align): Remove.
79         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
80         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
81         (spu_split_store): Likewise.
82
83 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
84
85         * gcc/tree-vn.c: Fix typo in comment.
86
87 2008-06-18  Jan Hubicka  <jh@suse.cz>
88
89         * cgraphunit.c (cgraph_optimize): Output debug info when doing
90         toplevel reorder too.
91
92 2008-06-18  Jan Hubicka  <jh@suse.cz>
93
94         * c-opts.c (c_common_post_options): PCH is not compatible with
95         no-unit-at-a-time.
96         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
97         -fno-toplevel-reorder by default now.
98
99 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
100
101         PR documentation/30739
102         * doc/install.texi (Prerequisites): Document dependency on awk.
103
104 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
105             Ian Lance Taylor  <iant@google.com>
106
107         PR rtl-optimization/35604
108         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
109         only want to change jump destinations, not eventual label comparisons.
110
111 2008-06-16  Jan Hubicka  <jh@suse.cz>
112
113         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
114         syntax errors.
115         (cgraph_analyze_function): Likewise.
116
117 2008-06-16  Jan Hubicka  <jh@suse.cz>
118
119         * cgraph.h (cgraph_mark_if_needed): New function.
120         * cgraphunit.c (cgraph_mark_if_needed): New function.
121         * c-decl.c (duplicate_decl): Use it.
122
123 2008-06-16  Jan Hubicka  <jh@suse.cz>
124
125         * cgraph.c (cgraph_add_new_function): When in expansion state, do
126         lowering.
127
128 2008-06-16  Jan Hubicka  <jh@suse.cz>
129
130         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
131
132 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
133             Kazu Hirata  <kazu@codesourcery.com>
134             Maxim Kuvyrkov  <maxim@codesourcery.com
135
136         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
137         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
138         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
139         EXTRA_SPEC_FUNCTIONS.
140         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
141         (DRIVER_SELF_SPECS): Adjust.
142         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
143         * config/mips/st.h, config/mips/t-st: New.
144         * config/mips/driver-native.c, config/mips/x-native: New.
145         * doc/invoke.texi (MIPS): Document 'native' value for -march and
146         -mtune options.
147
148 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
149
150         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
151         from it.
152         (ISA_HAS_FP_CONDMOVE): New macro.
153         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
154         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
155         (ISA_HAS_NMADD3_NMSUB3): New macro.
156         * config/mips/mips.c (mips_rtx_costs): Update.
157         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
158         compiling for ST Loongson 2E/2F.
159         (madd<mode>): Rename to madd4<mode>.  Update.
160         (madd3<mode>): New pattern.
161         (msub<mode>): Rename to msub4<mode>.  Update.
162         (msub3<mode>): New pattern.
163         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
164         (nmadd3<mode>): New pattern.
165         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
166         (nmadd3<mode>_fastmath): New pattern.
167         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
168         (nmsub3<mode>): New pattern.
169         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
170         (nmsub3<mode>_fastmath): New pattern.
171         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
172
173 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
174
175         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
176         (DF_REF_INSN_INFO): New.
177         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
178         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
179         with a NULL DF_REF_INSN_INFO.
180         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
181         DF_INSN_SET.
182         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
183         DF_INSN_INFO_EQ_USES): New.
184         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
185         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
186         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
187         * df-core.c: Update comment for above changes.
188         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
189         DF_INSN_UID_* macros.
190         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
191         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
192         insn rtx.  Update all callers.
193         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
194         df_ref_create_structure, df_insn_refs_collect): Likewise.
195         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
196         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
197         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
198         macros to access the insn refs.
199         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
200         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
201         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
202         for accessing the refs.
203         (try_fwprop_subst): Likewise.
204         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
205         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
206         for accessing the refs.
207         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
208         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
209         to look at the insn refs.
210         (record_uses): Likewise.
211         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
212         function anymore.
213         (mark_artificial_uses): Don't mark_insn for artificial refs.
214         (mark_reg_rependencies): Likewise.
215
216         * doc/rtl.texi: Remove documentation of ADDRESSOF.
217
218 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
219
220         * configure: Regenerate.
221
222 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
223
224         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
225         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
226         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
227
228 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
229
230         * config/avr/avr.c (avr_mcu_t): Add attiny167.
231         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
232         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
233
234 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
235
236         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
237         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
238         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
239
240 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
241
242         * tree-ssa-sccvn.c: Fix format of comments.
243
244 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
245
246         * cgraph.c: Remove unneeded forward declarations of eq_node()
247         and hash_node().
248
249 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
250
251         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
252         REG_RETVAL notes.
253         (see_update_relevancy): Likewise.
254         * fwprop.c (try_fwprop_subst): Likewise.
255         * rtlanal.c (noop_move_p): Likewise.
256         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
257         notes to non-existing libcall blocks.
258         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
259         Remove orig_set.
260         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
261         (dead_libcall_p): Remove.
262         (delete_trivially_dead_insns): Don't use it.
263         * web.c (union_defs): Remove comment about keeping nops.
264         * gcse.c (hash_scan_insn): Don't take libcall pointers.
265         (compute_hash_table_work): Don't track libcall notes.
266         (do_local_cprop): Don't take libcall pointers.  Don't update
267         libcall notes.
268         (adjust_libcall_notes): Deleted.
269         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
270         ever have existed in the first place).
271         (replace_store_insn): Don't try to remove libcall notes.
272         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
273         (resolve_reg_notes): Don't call them.
274         (resolve_simple_move): Likewise.
275         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
276         Don't remove REG_RETVAL notes.
277         * emit-rtl.c (try_split): Don't update libcall notes.
278         (emit_copy_of_insn_after): Dito.
279         * cselib.c (cselib_current_insn_in_libcall): Remove.
280         (cselib_process_insn): Don't set/clear it.
281         (new_elt_loc_list): Don't record it.
282         (cselib_init): Don't initialize it.
283         * cselib.c (struct elt_loc_list): Remove in_libcall field.
284         * loop-invariant.c (find_invariant_insn): Don't look for libcall
285         notes.
286         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
287         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
288         (init_deps): Don't initialize it.
289         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
290         * combine.c (delete_noop_moves): Don't update libcall notes.
291         (can_combine_p): Remove now pointless #if 0 block.
292         (try_combine): Remove another obsolete #if 0 block.
293         (distribute_notes): Don't distribute libcall notes.
294         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
295         * dce.c (libcall_dead_p): Remove.
296         (delete_unmarked_insns): Don't handle libcall blocks.
297         (preserve_libcall_for_dce): Remove.
298         (prescan_insns_for_dce): Don't special-case libcall block insns.
299         * reload1 (reload): Don't handle libcall notes. 
300         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
301         documentation.
302
303 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
304
305         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
306         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
307         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
308
309 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
310
311         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
312         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
313         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
314
315 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
316
317         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
318
319 2008-06-16  Ira Rosen  <irar@il.ibm.com>
320
321         PR tree-optimization/36493
322         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
323         the arguments list. Use VECTYPE to create vector pointer.
324         (vectorizable_store): Fail if accesses through a pointer to vectype
325         do not alias the original memory reference operands.
326         Call vect_create_data_ref_ptr without the removed argument.
327         (vectorizable_load): Likewise.
328         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
329         removed argument.
330
331 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
332
333         PR target/36336
334         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for 
335         reg_equiv_constant.
336
337 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
338
339         * config/mips/loongson2ef.md: New file.
340         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
341         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
342         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
343         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
344         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
345         and loongson_2f.
346         (loongson2ef.md): New include.
347         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
348         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
349         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
350         (loongson_gt_<mode>, loongson_extract_halfword)
351         (loongson_insert_halfword_0, loongson_insert_halfword_2)
352         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
353         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
354         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
355         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
356         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
357         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
358         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
359         (vec_interleave_low<mode>): Define type attribute.
360         * config/mips/mips.c (mips_ls2): New static variable.
361         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
362         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
363         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
364         Implement target scheduling hooks.
365         (mips_multipass_dfa_lookahead): Update to handle tuning for
366         Loongson 2E/2F.
367         (mips_sched_init): Initialize data for Loongson scheduling.
368         (mips_ls2_variable_issue): New static function.
369         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
370         Add sanity check.
371         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
372         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
373         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
374         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
375         Handle ST Loongson 2E/2F cores.
376         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
377
378 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
379
380         * omp-low.c (extract_omp_for_data): Fix comment typo.
381         * c.opt: Fix typo.
382
383 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
384
385         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
386         FIXME note about gcc/config.guess.
387         * doc/options.texi (Option file format): Remove non-ASCII bytes.
388         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
389         * doc/cppopts.texi: Likewise.
390         * doc/extend.texi: Likewise.
391         * doc/gcc.texi: Likewise.
392         * doc/gccint.texi: Likewise.
393         * doc/gcov.texi: Likewise.
394         * doc/gty.texi: Likewise.
395         * doc/hostconfig.texi: Likewise.
396         * doc/install.texi: Likewise.
397         * doc/invoke.texi: Likewise.
398         * doc/loop.texi: Likewise.
399         * doc/makefile.texi: Likewise.
400         * doc/md.texi: Likewise.
401         * doc/passes.texi: Likewise.
402         * doc/tm.texi: Likewise.
403         * doc/tree-ssa.texi: Likewise.
404         * doc/trouble.texi: Likewise.
405
406 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
407             Nathan Sidwell  <nathan@codesourcery.com>
408             Maxim Kuvyrkov  <maxim@codesourcery.com>
409             Richard Sandiford  <rdsandiford@googlemail.com>
410         
411         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
412         * config/mips/mips-protos.h (mips_expand_vector_init): New.
413         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
414         builtins.
415         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
416         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
417         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
418         V8QImode cases.
419         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
420         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
421         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
422         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
423         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
424         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
425         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
426         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
427         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
428         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
429         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
430         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
431         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
432         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
433         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
434         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
435         (mips_builtins): Add Loongson builtins.
436         (mips_loongson_2ef_bdesc): New.
437         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
438         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
439         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
440         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
441         New.
442         (mips_expand_vector_init): New.
443         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
444         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
445         if appropriate.
446         * config/mips/mips.md: Add unspec numbers for Loongson
447         builtins.  Include loongson.md.
448         (MOVE64): Include Loongson vector modes.
449         (SPLITF): Include Loongson vector modes.
450         (HALFMODE): Handle Loongson vector modes.
451         * config/mips/loongson.md: New.
452         * config/mips/loongson.h: New.
453         * config.gcc: Add loongson.h header for mips*-*-* targets.
454         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
455
456 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
457
458         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
459         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
460         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
461         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
462         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
463         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
464         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
465         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
466         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
467         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
468         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
469         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
470         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
471         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
472         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
473         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
474         Remove use_fixproto=yes.
475         (ia64*-*-hpux*): Remove comment about using fixproto.
476         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
477
478 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
479
480         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
481         library rebuilds.
482         * configure: Regenerate.
483
484 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
485
486         PR middle-end/36520
487         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
488         before evaluating it.
489
490 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
491
492         PR c/36507
493         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
494         nested inline functions.
495         (start_decl, start_function): Don't invert DECL_EXTERNAL
496         for nested inline functions.
497
498 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
499
500         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
501         splits that must be made for correctness.
502
503 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
504
505         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
506         (AVAIL_NON_MIPS16): Likewise.
507         (mips_builtin_description): Replace target_flags with a predicate.
508         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
509         (dspr2_32): New availability predicates.
510         (MIPS_BUILTIN): New macro.
511         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
512         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
513         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
514         Replace the TARGET_FLAGS parameters with AVAIL parameters.
515         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
516         (mips_dsp_32only_bdesc): Merge into...
517         (mips_builtins): ...this new array.
518         (mips_bdesc_map, mips_bdesc_arrays): Delete.
519         (mips_init_builtins): Update after above changes.
520         (mips_expand_builtin_1): Merge into...
521         (mips_expand_builtin): ...here and update after above changes.
522
523 2008-06-12  Paul Brook  <paul@codesourcery.com>
524
525         * longlong.h (__arm__): Define count_leading_zeros.
526         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
527         (clzsi2, clzdi2): New functions.
528         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
529         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
530         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
531         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
532         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
533         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
534         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
535         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
536         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
537         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
538
539 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
540
541         * config/m68k/m68k.c (m68k_tune_flags): New.
542         (override_options): Compute m68k_tune_flags.
543         (MULL_COST, MULW_COST): Update for various variants of CFV2.
544         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
545
546 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
547
548         PR middle-end/36506
549         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
550
551 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
552
553         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
554         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
555
556 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
557
558         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
559         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
560
561 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
562
563         PR middle-end/36506
564         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
565         reductions.
566
567 2008-06-12  Richard Guenther  <rguenther@suse.de>
568
569         PR tree-optimization/36345
570         * tree-flow.h (struct ptr_info_def): Align escape_mask,
571         add memory_tag_needed flag.
572         (may_alias_p): Declare.
573         * tree-ssa-alias.c (may_alias_p): Export.
574         (set_initial_properties): Use memory_tag_needed flag.
575         (update_reference_counts): Likewise.
576         (reset_alias_info): Reset memory_tag_needed flag.
577         (create_name_tags): Check memory_tag_needed flag.
578         (dump_points_to_info_for): Dump it.
579         * tree-ssa-structalias.c (struct variable_info): Remove
580         directly_dereferenced flag.
581         (new_var_info): Do not initialize it.
582         (process_constraint_1): Do not set it.
583         (update_alias_info): Set is_dereferenced flag.
584         (set_uids_in_ptset): Use may_alias_p.
585         (set_used_smts): Check memory_tag_needed flag.
586         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
587         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
588         memory_tag_needed flag.
589         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
590         from broken design.
591
592 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
593
594         * config/i386/i386.c (ix86_compute_frame_layout): Disable
595         red zone for w64 abi.
596         (ix86_expand_prologue): Likewise.
597         (ix86_force_to_memory): Likewise.
598         (ix86_free_from_memory): Likewise.
599
600 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
601
602         PR target/36425
603         * config/rs6000/rs6000.c (rs6000_override_options): Set
604         rs6000_isel conditionally to the absence of comand line override.
605         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
606         Remove duplicate rs6000_isel setting.
607         * config/rs6000/eabispe.h: Ditto.
608
609 2008-06-11  Richard Guenther  <rguenther@suse.de>
610
611         * alias.c (get_alias_set): Use the element alias-set for arrays.
612         (record_component_aliases): For arrays and vectors do nothing.
613         * c-common.c (strict_aliasing_warning): Handle the cases
614         of alias set zero explicitly.
615         * Makefile.in (dfp.o-warn): Add -Wno-error.
616
617 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
618
619         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
620         tune_32 tune_64.
621         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
622         tune_32 tune_64 to supported_defaults.  Allow values not
623         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
624         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
625         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
626         with_cpu_64 to generic for 64-bit-supporting configurations, not
627         with_cpu.  Remove FIXMEs.
628         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
629         --with-arch-64, --with-tune-32, --with-tune-64): Document.
630         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
631         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
632         arch_32 and arch_64.
633
634 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
635             Olivier Hainque  <hainque@adacore.com>
636
637         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
638         Use DECL_SIZE_UNIT to retrieve the size of the field.
639
640 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
641
642         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
643         with function calls after declarations.  Lay out
644         neon_float_type_node before further use.
645
646 2008-06-11  Richard Guenther  <rguenther@suse.de>
647
648         * tree-flow.h (may_point_to_global_var): Declare.
649         * tree-ssa-alias.c (may_point_to_global_var): New function.
650         * tree-ssa-sink.c (is_hidden_global_store): Use it.
651
652 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
653
654         * configure.ac: Teach that fido supports .debug_line.
655         * configure: Regenerate.
656
657 2008-06-10  Tom Tromey  <tromey@redhat.com>
658
659         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
660         debug hook.
661
662 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
663
664         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
665         (encode_decimal64, decode_decimal64, encode_decimal128,
666         decode_decimal128): Reverse order of 32-bit parts of value if host
667         and target endianness differ.
668
669 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
670
671         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
672         Avoid division by 0.
673         (tree_mod_pow2_value_transform): Likewise.
674         (tree_ic_transform): Likewise.
675         (tree_stringops_transform): Likewise.
676         (tree_mod_subtract_transform): Likewise.
677         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
678         (copy_edges_for_bb): Likewise.
679         (initialize_cfun): Likewise.
680
681 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
682
683         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
684         nonmemory_operand. Add "N" operand constraint.
685         (*btsi): Ditto.
686         (*jcc_btdi_mask_rex64): New instruction and split pattern.
687         (*jcc_btsi_mask): Ditto.
688         (*jcc_btsi_mask_1): Ditto.
689
690 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
691
692         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
693         TYPE_CANONICAL for copied element type.
694
695 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
696
697         PR target/36473
698         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
699         Add m_CORE2 and m_GENERIC.
700         * config/i386/predicates.md (bt_comparison_operator): New predicate.
701         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
702         (*btsi): Ditto.
703         (*jcc_btdi_rex64): New instruction and split pattern.
704         (*jcc_btsi): Ditto.
705         (*jcc_btsi_1): Ditto.
706         (*btsq): Fix Intel asm dialect operand order.
707         (*btrq): Ditto.
708         (*btcq): Ditto.
709
710 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
711
712         PR middle-end/36447
713         * simplify-rtx.c (simplify_subreg): Add check for shift count 
714         greater than size.
715
716 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
717
718         * doc/md.texi: Synchronize with later constraints.md change.
719         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
720         with a C implementation.
721         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
722         MFLO handling.
723         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
724         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
725         when moving to and from MD_REGNUM.
726         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
727         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
728         Handle byte and halfword moves.
729         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
730         separately.
731         * config/mips/constraints.md (h): Turn into NO_REGS.
732         (l, x): Update documentation.
733         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
734         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
735         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
736         (HILO): New mode iterator.
737         (MOVE128): Add TI.
738         (any_div): New code iterator.
739         (u): Extend code attribute to div and udiv.
740         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
741         d_operand in the splitters.  Remove redundant CONST_INT checks.
742         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
743         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
744         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
745         accordingly, using normal moves instead of unspecs to move LO into
746         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
747         (<u>mulsidi3): Handle expansion in C code.
748         (<u>mulsidi3_32bit_internal): Rename to...
749         (<u>mulsidi3_32bit): ...this.
750         (<u>mulsidi3_32bit_r4000): Fix insn separator.
751         (*<u>mulsidi3_64bit): Rename to...
752         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
753         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
754         to set LO and HI to the multiplication result.  Use a normal move
755         for MFLO and an unspec for MFHI.
756         (*<u>mulsidi3_64bit_parts): Replace with...
757         (<u>mulsidi3_64bit_hilo): ...this new instruction.
758         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
759         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
760         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
761         instead of HI.  Split the instruction into a separate multiplication
762         and MFHI if !TARGET_FIX_R4000.
763         (<su>muldi3_highpart): Likewise.
764         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
765         and the "=h" clobber.
766         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
767         (<u>mulditi3): New expander.
768         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
769         (madsi): Remove "=h" clobber.
770         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
771         Force the modulus result to be a GPR and split the instruction into
772         a division followed by an MFHI after reload.
773         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
774         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
775         the MIPS16 HIGH define_split.
776         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
777         of acc<->gpr moves to "multi".
778         (*movdi_64bit): Replace the single "x" alternative with
779         alternatives for moving into and out of "a".
780         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
781         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
782         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
783         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
784         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
785         (movti): New expander.
786         (*movti, *movti_mips16): New insns.
787         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
788         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
789         (mthi<GPR:mode>_<HILO:mode>): Likewise.
790         * config/mips/predicates.md (fpr_operand): Delete.
791         (d_operand): New predicate.
792
793 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
794
795         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
796         failure on some Bourne shells.
797         (x86_64-*-*): Ditto.
798
799 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
800
801         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
802
803 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
804
805         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
806         (sparc-sun-solaris2*): Likewise.
807
808 2008-06-09  Arnaud Charlet  <charlet@adacore.com
809
810         * doc/install.texi: Update requirements to build the Ada compiler.
811
812 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
813
814         * df-scan.c (struct df_scan_problem_data): Remove the
815         mw_link_pool alloc pool.
816         (df_scan_free_internal): Don't free it.
817         (df_scan_alloc): Don't allocate it.
818         * df.h (struct df_link): Update comment.
819
820 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
821
822         * except.h: Correct checks for when SJLJ exceptions must be used.
823
824 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
825
826         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
827         default.
828         
829 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
830
831         PR tree-optimization/36218
832         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
833         configure for the build system.
834         (BUILD_LDFLAGS): Define.
835         * configure: Regenerate.
836         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
837
838 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
839
840         PR target/36424
841         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
842         * config/avr/avr.c (avr_hard_regno_rename_ok): New function. 
843         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype. 
844
845 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
846
847         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
848
849 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
850
851         * config.gcc (Obsolete configurations): Remove list of
852         configurations.
853         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
854         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
855         targets matched by those patterns.
856         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
857         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
858         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
859         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
860         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
861         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
862         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
863         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
864         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
865         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
866         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
867         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
868         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
869         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
870         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
871         Make code for Solaris 7 and greater unconditional for Solaris.
872         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
873         Remove --with-* handling.
874         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
875         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
876         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
877         LINK_OS_WINDISS_SPEC): Remove.
878         * config/rs6000/sysv4.opt (mwindiss): Remove.
879         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
880         * configure: Regenerate.
881         * doc/cpp.texi: Don't mention BeOS.
882         * doc/extend.texi (interrupt): Don't mention MS1.
883         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
884         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
885         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
886         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
887         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
888         Remove.
889         * doc/invoke.texi (MT Options): Remove.
890         (-mwindiss): Remove.
891         (CRIS Options): Remove cris-axis-aout references.
892         (HPPA Options): Don't mention hppa1.1-*-pro.
893         * doc/md.texi: (MorphoTech family): Remove.
894         * libgcc2.c: Don't handle UWIN.
895         * config/alpha/t-unicosmk: Remove.
896         * config/alpha/unicosmk.h: Remove.
897         * config/arm/kaos-arm.h: Remove.
898         * config/arm/kaos-strongarm.h: Remove.
899         * config/arm/strongarm-coff.h: Remove.
900         * config/arm/strongarm-elf.h: Remove.
901         * config/arm/strongarm-pe.h: Remove.
902         * config/arm/t-strongarm-pe: Remove.
903         * config/arm/t-xscale-coff: Remove.
904         * config/arm/t-xscale-elf: Remove.
905         * config/arm/xscale-coff.h: Remove.
906         * config/arm/xscale-elf.h: Remove.
907         * config/chorus.h: Remove.
908         * config/cris/aout.h: Remove.
909         * config/cris/aout.opt: Remove.
910         * config/cris/t-aout: Remove.
911         * config/i386/beos-elf.h: Remove.
912         * config/i386/kaos-i386.h: Remove.
913         * config/i386/ptx4-i.h: Remove.
914         * config/i386/sco5.h: Remove.
915         * config/i386/sco5.opt: Remove.
916         * config/i386/sysv4-cpp.h: Remove.
917         * config/i386/sysv5.h: Remove.
918         * config/i386/t-beos: Remove.
919         * config/i386/t-sco5: Remove.
920         * config/i386/t-uwin: Remove.
921         * config/i386/uwin.asm: Remove.
922         * config/i386/uwin.h: Remove.
923         * config/kaos.h: Remove.
924         * config/mips/windiss.h: Remove.
925         * config/mt: Remove directory.
926         * config/pa/pa-osf.h: Remove.
927         * config/pa/pa-pro-end.h: Remove.
928         * config/pa/t-pro: Remove.
929         * config/ptx4.h: Remove.
930         * config/rs6000/beos.h: Remove.
931         * config/rs6000/kaos-ppc.h: Remove.
932         * config/rs6000/t-beos: Remove.
933         * config/rs6000/windiss.h: Remove.
934         * config/sh/kaos-sh.h: Remove.
935         * config/sol2-6.h: Remove.
936         * config/sparc/sol26-sld.h: Remove.
937         * config/sparc/sysv4-only.h: Remove.
938         * config/vax/bsd.h: Remove.
939         * config/vax/t-memfuncs: Remove.
940         * config/vax/ultrix.h: Remove.
941         * config/vax/vaxv.h: Remove.
942         * config/windiss.h: Remove.
943
944 2008-06-06 Uros Bizjak <ubizjak@gmail.com>
945
946         PR rtl-optimization/36438
947         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
948         for vector shifts with constant scalar shift operands.
949
950 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
951
952         * doc/invoke.texi: Document -march=xlr.
953         * config/mips/xlr.md: New file.
954         * config/mips/mips.md: Include it.
955         (cpu): Add "xlr".
956         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
957         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
958         (mips_rtx_cost_data): Likewise.
959
960 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
961
962         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
963         PRE_INC and PRE_DEC cases.
964
965 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
966
967         PR rtl-optimization/36419
968         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
969         the emitting jump insn.
970
971         PR target/36362
972         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
973         is not bool, boolify the whole *expr_p and convert to the desired type.
974
975 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
976
977         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
978         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
979         Add omp_private_outer_ref hook, add another argument to
980         omp_clause_default_ctor hook.
981         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
982         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
983         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
984         hook_tree_tree_tree_tree_null.
985         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
986         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
987         * hooks.c (hook_tree_tree_tree_tree_null): New function.
988         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
989         * tree.def (OMP_TASK): New tree code.
990         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
991         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
992         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
993         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
994         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
995         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
996         OMP_CLAUSE_COLLAPSE_EXPR): Define.
997         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
998         (OMP_DIRECTIVE_P): Add OMP_TASK.
999         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
1000         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
1001         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
1002         and OMP_CLAUSE_UNTIED entries.
1003         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
1004         num_ops to 2.
1005         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1006         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
1007         * tree-pretty-print.c (dump_omp_clause): Handle
1008         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
1009         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
1010         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
1011         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
1012         warning about unsigned iterators.  Change decl/init/cond/incr
1013         arguments to TREE_VECs, check arguments for all collapsed loops.
1014         (c_finish_omp_taskwait): New function.
1015         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
1016         ws_clauses.
1017         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
1018         default_function_array_conversion on init.  Add par_clauses argument.
1019         If decl is present in parallel's lastprivate clause, change it to
1020         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
1021         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
1022         collapse count in clauses.
1023         (c_parser_omp_for, c_parser_omp_parallel): Adjust
1024         c_parser_omp_for_loop callers.
1025         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
1026         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
1027         (c_parser_omp_clause_name): Handle collapse and untied clauses.
1028         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
1029         functions.
1030         (c_parser_omp_clause_schedule): Handle schedule(auto).
1031         Include correct location in the error message.
1032         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
1033         and PRAGMA_OMP_CLAUSE_UNTIED.
1034         (OMP_TASK_CLAUSE_MASK): Define.
1035         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
1036         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
1037         * tree-nested.c (convert_nonlocal_omp_clauses,
1038         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
1039         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
1040         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1041         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
1042         OMP_CLAUSE_DECL.
1043         (conver_nonlocal_reference, convert_local_reference,
1044         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
1045         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
1046         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
1047         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
1048         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
1049         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
1050         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
1051         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
1052         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
1053         OMP_CLAUSE_UNTIED.
1054         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
1055         * c-common.h (c_finish_omp_taskwait): New prototype.
1056         * gimple-low.c (lower_stmt): Handle OMP_TASK.
1057         * tree-parloops.c (create_parallel_loop): Create 1 entry
1058         vectors for OMP_FOR_{INIT,COND,INCR}.
1059         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
1060         (make_edges): Handle OMP_TASK.
1061         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
1062         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1063         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
1064         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
1065         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
1066         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
1067         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
1068         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
1069         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
1070         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
1071         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
1072         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
1073         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
1074         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
1075         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
1076         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
1077         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
1078         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
1079         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
1080         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
1081         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
1082         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
1083         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
1084         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
1085         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
1086         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
1087         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
1088         original iterator is present in lastprivate clause or if
1089         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
1090         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1091         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
1092         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
1093         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
1094         if it is set, lookup var in outer contexts too.  Handle
1095         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
1096         to be implicitly determined firstprivate for task regions.
1097         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
1098         if it is set, lookup var in outer contexts too.  Set
1099         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
1100         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
1101         OMP_CLAUSE_UNTIED.  Take region_type as last argument
1102         instead of in_parallel and in_combined_parallel.
1103         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
1104         Adjust callers.
1105         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
1106         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
1107         (new_omp_context): Set default_kind to
1108         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
1109         (omp_region_type): New enum.
1110         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
1111         fields, add region_type.
1112         (new_omp_context): Take region_type as argument instead of is_parallel
1113         and is_combined_parallel.
1114         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
1115         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
1116         ctx->is_combined_parallel checks.
1117         (gimplify_omp_task): New function.
1118         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
1119         OMP_CLAUSE_UNTIED.
1120         * omp-low.c (extract_omp_for_data): Use schedule(static)
1121         for schedule(auto).  Handle pointer and unsigned iterators.
1122         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
1123         Add loops argument.  Extract data for collapsed OMP_FOR loops.
1124         (expand_parallel_call): Assert sched_kind isn't auto,
1125         map runtime schedule to index 3.
1126         (struct omp_for_data_loop): New type.
1127         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
1128         Add loop, loops, collapse and iter_type fields.
1129         (workshare_safe_to_combine_p): Disallow combined for if
1130         iter_type is unsigned long long.  Don't combine collapse > 1 loops
1131         unless all bounds and steps are constant.  Adjust extract_omp_for_data
1132         caller.
1133         (expand_omp_for_generic): Handle pointer, unsigned and long long
1134         iterators.  Handle collapsed OMP_FOR loops.  Adjust
1135         for struct omp_for_data changes.  If libgomp function doesn't return
1136         boolean_type_node, add comparison of the return value with 0.
1137         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
1138         pointer, unsigned and long long iterators.  Adjust for struct
1139         omp_for_data changes.
1140         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
1141         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
1142         unsigned long long.  Allocate loops array, pass it to
1143         extract_omp_for_data.  For collapse > 1 loops use always
1144         expand_omp_for_generic.
1145         (omp_context): Add sfield_map and srecord_type fields.
1146         (is_task_ctx, lookup_sfield): New functions.
1147         (use_pointer_for_field): Use is_task_ctx helper.  Change first
1148         argument's type from const_tree to tree.  Clarify comment.
1149         In OMP_TASK disallow copy-in/out sharing.
1150         (build_sender_ref): Call lookup_sfield instead of lookup_field.
1151         (install_var_field): Add mask argument.  Populate both record_type
1152         and srecord_type if needed.
1153         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
1154         in srecord_type.
1155         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
1156         and DECL_FIELD_OFFSET.
1157         (scan_sharing_clauses): Adjust install_var_field callers.  For
1158         firstprivate clauses on explicit tasks allocate the var by value in
1159         record_type unconditionally, rather than by reference.
1160         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
1161         Use is_taskreg_ctx instead of is_parallel_ctx.
1162         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1163         (create_omp_child_function_name): Add task_copy argument, use
1164         *_omp_cpyfn* names if it is true.
1165         (create_omp_child_function): Add task_copy argument, if true create
1166         *_omp_cpyfn* helper function.
1167         (scan_omp_parallel): Adjust create_omp_child_function callers.
1168         Rename parallel_nesting_level to taskreg_nesting_level.
1169         (scan_omp_task): New function.
1170         (lower_rec_input_clauses): Don't run constructors for firstprivate
1171         explicit task vars which are initialized by *_omp_cpyfn*.  
1172         Pass outer var ref to omp_clause_default_ctor hook if
1173         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
1174         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
1175         OMP_CLAUSE_REDUCTION_INIT.
1176         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
1177         avoid duplicate setting of fields.  Handle
1178         OMP_CLAUSE_PRIVATE_OUTER_REF.
1179         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
1180         copy-out if TREE_READONLY, only copy-in.
1181         (expand_task_copyfn): New function.
1182         (expand_task_call): New function.
1183         (struct omp_taskcopy_context): New type.
1184         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
1185         New functions.
1186         (lower_omp_parallel): Rename to...
1187         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
1188         Call create_task_copyfn if srecord_type is needed.  Adjust
1189         sender_decl type.
1190         (task_shared_vars): New variable.
1191         (check_omp_nesting_restrictions): Warn if work-sharing,
1192         barrier, master or ordered region is closely nested inside OMP_TASK.
1193         Add warnings for barrier if closely nested inside of work-sharing,
1194         ordered, or master region.
1195         (scan_omp_1): Call check_omp_nesting_restrictions even for
1196         GOMP_barrier calls.  Rename parallel_nesting_level to
1197         taskreg_nesting_level.  Handle OMP_TASK.
1198         (lower_lastprivate_clauses): Even if some lastprivate is found on a
1199         work-sharing construct, continue looking for them on parent parallel
1200         construct.
1201         (lower_omp_for_lastprivate): Add lastprivate clauses
1202         to the beginning of dlist rather than end.  Adjust for struct
1203         omp_for_data changes.
1204         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
1205         not after it.  Handle collapsed OMP_FOR loops, adjust for
1206         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
1207         (get_ws_args_for): Adjust extract_omp_for_data caller.
1208         (scan_omp_for): Handle collapsed OMP_FOR
1209         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1210         (lower_omp_single_simple): If libgomp function doesn't return
1211         boolean_type_node, add comparison of the return value with 0.
1212         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
1213         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
1214         (parallel_nesting_level): Rename to...
1215         (taskreg_nesting_level): ... this.
1216         (is_taskreg_ctx): New function.
1217         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
1218         of is_parallel_ctx.
1219         (execute_lower_omp): Rename parallel_nesting_level to
1220         taskreg_nesting_level.
1221         (expand_omp_parallel): Rename to...
1222         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
1223         Call omp_task_call for OMP_TASK regions.
1224         (expand_omp): Adjust caller, handle OMP_TASK.
1225         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
1226
1227         * bitmap.c (bitmap_default_obstack_depth): New variable.
1228         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
1229         if argument is NULL and bitmap_default_obstack is already initialized.
1230         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
1231         at the end.
1232         * matrix-reorg.c (matrix_reorg): Likewise.
1233
1234 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
1235
1236         * config/i386/i386.md (*indirect_jump): Macroize using P
1237         mode iterator.  Remove !TARGET_64BIT from insn constraints.
1238         (*tablejump_1): Ditto.
1239         (*indirect_jump_rex64): Remove insn pattern.
1240         (*tablejump_1_rex64): Ditto.
1241         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
1242         and eh_return_si insn patterns.
1243
1244 2008-06-06  Richard Guenther  <rguenther@suse.de>
1245
1246         * tree-ssa-structalias.c (merge_smts_into): Remove.
1247         (find_what_p_points_to): Do not bother to compute the
1248         points-to set for pt_anything pointers.
1249         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
1250         for pt_anything pointers is ok.
1251
1252 2008-06-06  Jan Hubicka  <jh@suse.cz>
1253
1254         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
1255
1256 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1257
1258         * cgraph.c: Fix typos in comments.
1259         (cgraph_availability_names): Fix string typo.
1260         * fold-const.c: Fix typos in comments.
1261         (fold_binary): Fix typo in warning.
1262         * genautomata.c: Fix typos in comments.
1263         (check_presence_pattern_sets): Fix typo in local variable.
1264         (output_description): Fix typo in output.
1265         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
1266         * hwint.h: Likewise.
1267         * matrix-reorg.c (check_allocation_function): Likewise.
1268         * omega.c (smooth_weird_equations): Likewise.
1269         * auto-inc-dec.c: Fix typos in comments.
1270         * bb-reorder.c: Likewise.
1271         * builtins.c: Likewise.
1272         * c-common.c: Likewise.
1273         * c-cppbuiltin.c: Likewise.
1274         * c-parser.c: Likewise.
1275         * c-pretty-print.c: Likewise.
1276         * cfgcleanup.c: Likewise.
1277         * cfgexpand.c: Likewise.
1278         * cfghooks.c: Likewise.
1279         * cfglayout.c: Likewise.
1280         * cfgloopmanip.c: Likewise.
1281         * cgraphunit.c: Likewise.
1282         * coverage.c: Likewise.
1283         * dbxout.c: Likewise.
1284         * df-byte-scan.c: Likewise.
1285         * df-core.c: Likewise.
1286         * df-problems.c: Likewise.
1287         * df-scan.c: Likewise.
1288         * dfp.c: Likewise.
1289         * dominance.c: Likewise.
1290         * domwalk.c: Likewise.
1291         * dse.c: Likewise.
1292         * dwarf2out.c: Likewise.
1293         * emit-rtl.c: Likewise.
1294         * et-forest.c: Likewise.
1295         * function.c: Likewise.
1296         * function.h: Likewise.
1297         * gcc.c: Likewise.
1298         * gcov-io.c: Likewise.
1299         * gcov.c: Likewise.
1300         * gcse.c: Likewise.
1301         * genattrtab.c: Likewise.
1302         * ggc-page.c: Likewise.
1303         * gimplify.c: Likewise.
1304         * gthr-lynx.h: Likewise.
1305         * haifa-sched.c: Likewise.
1306         * ipa-cp.c: Likewise.
1307         * ipa-inline.c: Likewise.
1308         * ipa-prop.h: Likewise.
1309         * ipa-pure-const.c: Likewise.
1310         * ipa-struct-reorg.c: Likewise.
1311         * ipa-struct-reorg.h: Likewise.
1312         * ipa-type-escape.c: Likewise.
1313         * ipa.c: Likewise.
1314         * loop-doloop.c: Likewise.
1315         * mips-tfile.c: Likewise.
1316         * mkmap-flat.awk: Likewise.
1317         * mkmap-symver.awk: Likewise.
1318         * modulo-sched.c: Likewise.
1319         * omp-low.c: Likewise.
1320         * optabs.c: Likewise.
1321         * optabs.h: Likewise.
1322         * opts.c: Likewise.
1323         * passes.c: Likewise.
1324         * postreload-gcse.c: Likewise.
1325         * postreload.c: Likewise.
1326         * predict.c: Likewise.
1327         * pretty-print.h: Likewise.
1328         * profile.c: Likewise.
1329         * protoize.c: Likewise.
1330         * ra-conflict.c: Likewise.
1331         * real.c: Likewise.
1332         * recog.c: Likewise.
1333         * regclass.c: Likewise.
1334         * regs.h: Likewise.
1335         * reload.c: Likewise.
1336         * rtl-error.c: Likewise.
1337         * rtlanal.c: Likewise.
1338         * scan.h: Likewise.
1339         * sched-rgn.c: Likewise.
1340         * see.c: Likewise.
1341         * stmt.c: Likewise.
1342         * target.h: Likewise.
1343         * tree-dfa.c: Likewise.
1344         * tree-eh.c: Likewise.
1345         * tree-flow-inline.h: Likewise.
1346         * tree-inline.c: Likewise.
1347         * tree-into-ssa.c: Likewise.
1348         * tree-loop-distribution.c: Likewise.
1349         * tree-nested.c: Likewise.
1350         * tree-parloops.c: Likewise.
1351         * tree-pass.h: Likewise.
1352         * tree-pretty-print.c: Likewise.
1353         * tree-profile.c: Likewise.
1354         * tree-scalar-evolution.c: Likewise.
1355         * tree-sra.c: Likewise.
1356         * tree-ssa-alias-warnings.c: Likewise.
1357         * tree-ssa-ccp.c: Likewise.
1358         * tree-ssa-coalesce.c: Likewise.
1359         * tree-ssa-dom.c: Likewise.
1360         * tree-ssa-dse.c: Likewise.
1361         * tree-ssa-forwprop.c: Likewise.
1362         * tree-ssa-live.c: Likewise.
1363         * tree-ssa-live.h: Likewise.
1364         * tree-ssa-loop-im.c: Likewise.
1365         * tree-ssa-loop-ivopts.c: Likewise.
1366         * tree-ssa-loop-niter.c: Likewise.
1367         * tree-ssa-loop-prefetch.c: Likewise.
1368         * tree-ssa-phiopt.c: Likewise.
1369         * tree-ssa-phiprop.c: Likewise.
1370         * tree-ssa-sccvn.c: Likewise.
1371         * tree-ssa-ter.c: Likewise.
1372         * tree-ssa-threadupdate.c: Likewise.
1373         * tree-ssa.c: Likewise.
1374         * tree-vect-analyze.c: Likewise.
1375         * tree-vect-transform.c: Likewise.
1376         * tree-vectorizer.c: Likewise.
1377         * tree-vn.c: Likewise.
1378         * tree-vrp.c: Likewise.
1379         * tree.c: Likewise.
1380         * tree.def: Likewise.
1381         * tree.h: Likewise.
1382         * unwind-dw2-fde.c: Likewise.
1383         * unwind.inc: Likewise.
1384         * value-prof.c: Likewise.
1385         * vmsdbgout.c: Likewise.
1386
1387 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
1388
1389         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
1390         always place FP constants in the TOC for TARGET_POWERPC64.
1391         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
1392
1393 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
1394
1395         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
1396         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
1397         enable for TARGET_E500_DOUBLE.
1398         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
1399         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
1400         floating-point modes like integer modes for E500 double.
1401         (rs6000_legitimate_offset_address_p): Likewise.
1402         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
1403         addressing for DDmode for E500 double.
1404         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
1405         modes as using 64-bits of registers for E500 double.
1406         (spe_build_register_parallel): Do not handle DDmode or TDmode.
1407         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
1408         specially for E500 double.
1409         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
1410         TDmode for E500 double.
1411         (rs6000_gimplify_va_arg): Only handle SDmode in registers
1412         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
1413         (rs6000_split_multireg_move): Do not handle TDmode specially for
1414         E500 double.
1415         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
1416         using 64-bit registers for E500 double.
1417         (emit_frame_save): Do not handle DDmode specially for E500 double.
1418         (gen_frame_mem_offset): Likewise.
1419         (rs6000_function_value): Do not call spe_build_register_parallel
1420         for DDmode or TDmode.
1421         (rs6000_libcall_value): Likewise.
1422         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
1423         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
1424         for E500 double.
1425
1426 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
1427
1428         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
1429         in comments.
1430
1431 2008-06-04  Junjie Gu <jgu@tensilica.com>
1432
1433         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
1434         comparison for frame pointers.
1435
1436 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
1437
1438         PR target/27386
1439         * config/avr/avr.h (PUSH_ROUNDING): Remove.
1440
1441 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
1442
1443         PR target/30243
1444         * builtins.c (expand_builtin_signbit): Don't take lowpart when
1445         register is already smaller or equal to required mode. 
1446
1447 2008-06-04  Xinliang David Li  <davidxl@google.com>
1448
1449         * tree-call-cdce.c: New file. 
1450         (cond_dead_built_in_calls): New static variable.
1451         (input_domain): New struct.
1452         (check_pow): New function.
1453         (check_builtin_call): Ditto.
1454         (check_target_format): Ditto.
1455         (is_call_dce_candidate): Ditto.
1456         (gen_one_condition): Ditto.
1457         (gen_conditions_for_domain): Ditto.
1458         (get_domain): Ditto.
1459         (gen_conditions_for_pow_cst_base): Ditto.
1460         (gen_conditions_for_pow_int_base): Ditto.
1461         (gen_conditions_for_pow): Ditto.
1462         (get_no_error_domain): Ditto.
1463         (gen_shrink_wrap_conditions): Ditto.
1464         (shrink_wrap_one_built_in_call): Ditto.
1465         (shink_wrap_conditional_dead_built_in_calls): Ditto.
1466         (tree_call_cdce): Ditto.
1467         (gate_call_cdce): Ditto.
1468         (pass_call_cdce): New gimple pass.
1469         * passes.c: (init_optimization_passes): New pass.
1470         * tree-pass.h: New pass declaration.
1471         * opts.c (decode_options): New flag setting.
1472         * common.opt: Add -ftree-builtin-call-dce flag.
1473         * Makefile.in: Add new source file.
1474         * tempvar.def: New tv_id.
1475         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
1476
1477 2008-06-04  Richard Guenther  <rguenther@suse.de>
1478
1479         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
1480         (is_call_clobbered): Always check var_ann->call_clobbered.
1481         (mark_call_clobbered): Always set var_ann->call_clobbered.
1482         (clear_call_clobbered): Always clear var_ann->call_clobbered.
1483         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
1484         (reset_alias_info): Clear call clobbering info on MTAGs and
1485         globals as well.
1486         (set_pt_anything): Set pt_global_mem.
1487         (create_tag_raw): Adjust comment.
1488         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
1489
1490 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
1491             Maxim Kuvyrkov  <maxim@codesourcery.com>
1492
1493         * config/m68k/m68k.opt (mxgot): New option.
1494         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
1495         (m68k_output_addr_const_extra): New.
1496         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
1497         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
1498         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
1499         * doc/invoke.texi (M680x0 Options): Document -mxgot.
1500
1501 2008-06-04  Richard Guenther  <rguenther@suse.de>
1502
1503         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
1504         negative or non-representable offsets.
1505
1506 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
1507
1508         * config/i386/i386.c (ix86_gen_leave): New.
1509         (ix86_gen_pop1): Likewise.
1510         (ix86_gen_add3): Likewise.
1511         (ix86_gen_sub3): Likewise.
1512         (ix86_gen_sub3_carry): Likewise.
1513         (ix86_gen_one_cmpl2): Likewise.
1514         (ix86_gen_monitor): Likewise.
1515         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
1516         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
1517         ix86_gen_one_cmpl2 and ix86_gen_monitor.
1518         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
1519         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
1520         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
1521         (ix86_expand_epilogue): Updated.
1522         (print_operand): Handle integer register operand for 'z'.
1523         (ix86_expand_strlensi_unroll_1): Likewise.
1524         (ix86_expand_strlen): Likewise.
1525         (ix86_expand_builtin): Likewise.
1526         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
1527         mov{q}/mov{l} and add{q}/add{l}.
1528
1529 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
1530
1531         * config/i386/i386.md (P): New mode iterator.
1532         (SFmode push_operand splitter): Macroize DImode and SImode pushes
1533         using P mode iterator.
1534         (DFmode push_operand splitter): Ditto.
1535         (XFmode push_operand splitter): Ditto.
1536         (DFmode float_extend SFmode push_operand splitter): Ditto.
1537         (XFmode float_extend SFmode push_operand splitter): Do not generate
1538         SImode pushes for 64bit target.  Macroize Dimode and SImode
1539         pushes using P mode iterator.
1540         (XFmode float_extend DFmode push_operand splitter): Ditto.
1541
1542 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
1543
1544         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
1545         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
1546         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
1547         return type to int.
1548         (ix86_call_abi_override): Remove check for call_used_regs.
1549
1550 2008-06-03  Richard Guenther  <rguenther@suse.de>
1551
1552         * tree-ssa-structalias.c (find_func_aliases): Add constraints
1553         for the lhs of calls if the return type contains pointers.
1554
1555 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
1556
1557         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
1558         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
1559         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
1560         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
1561         of cfun and DEFAULT_ABI to deceide abi mode.
1562         (DEFAULT_ABI): New.
1563         (REG_PARM_STACK_SPACE): Removed.
1564         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
1565         (STACK_BOUNDARY): Use default target to deceide stack boundary.
1566         * config/i386/i386-protos.h (ix86_cfun_abi): New.
1567         (ix86_function_abi): Likewise.
1568         (ix86_function_type_abi): Likewise.
1569         (ix86_call_abi_override): Likewise.
1570         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
1571         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
1572         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
1573         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
1574         specific defines.
1575         (X86_64_REGPARM_MAX): New.
1576         (X86_64_SSE_REGPARM_MAX): New.
1577         (X64_REGPARM_MAX): New.
1578         (X64_SSE_REGPARM_MAX): New.
1579         (X86_32_REGPARM_MAX): New.
1580         (X86_32_SSE_REGPARM_MAX): New.
1581         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
1582         (ix86_function_regparm): Handle user calling abi.
1583         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
1584         by DEFAULT_ABI versus SYSV_ABI check.
1585         (ix86_reg_parm_stack_space): New.
1586         (ix86_function_type_abi): New.
1587         (ix86_call_abi_override): New.
1588         (ix86_function_abi): New.
1589         (ix86_cfun_abi): New.
1590         (init_cumulative_args): Call abi specific initialization.
1591         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
1592         (function_arg_64): Extend SSE_REGPARM_MAX check.
1593         (function_arg (): Remove TARGET_64BIT_MS_ABI.
1594         (ix86_pass_by_reference): Likewise.
1595         (ix86_function_value_regno_p): Likewise.
1596         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
1597         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
1598         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
1599         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
1600         (setup_incoming_varargs_64): Adjust regparm for call abi.
1601         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
1602         (ix86_va_start): Likewise.
1603         (ix86_gimplify_va_arg): Likewise.
1604         (ix86_expand_prologue): Likewise.
1605         (output_pic_addr_const): Likewise.
1606         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
1607         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
1608         (x86_output_mi_thunk): Likewise.
1609         (x86_function_profiler): Likewise.
1610         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
1611         (SYSV_ABI, MS_ABI): New constants.
1612         (DEFAULT_ABI): New.
1613         (init_regs): Add prototype of function in regclass.c file.
1614         (OVERRIDE_ABI_FORMAT): New.
1615         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
1616         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
1617         (OUTGOING_REG_PARM_STACK_SPACE): New.
1618         (ix86_reg_parm_stack_space): New prototype.
1619         (CUMULATIVE_ARGS): Add call_abi member.
1620         (machine_function): Add call_abi member.
1621         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
1622         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
1623
1624 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
1625
1626         PR target/34879
1627         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
1628         (avr_builtin_setjmp_frame_value): New function.
1629         * config/avr/avr.md (nonlocal_goto_receiver): Define.
1630         (nonlocal_goto): Define.
1631
1632 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
1633
1634         * config/mips/mips.c (mips_emit_loadgp): Return early if
1635         there is nothing do to, otherwise emit a blockage if
1636         !TARGET_EXPLICIT_RELOCS || crtl->profile.
1637         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
1638
1639 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1640
1641         * configure.ac: Drop unneeded backslash ending up in config.in.
1642         * acinclude.m4: Likewise.
1643         * config.in: Regenerate.
1644
1645 2008-05-26  Jan Hubicka  <jh@suse.cz>
1646
1647         * predict.c (maybe_hot_frequency_p): Break out of...
1648         (maybe_hot_bb_p): ... here.
1649         (maybe_hot_edge_p): New.
1650         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
1651         * basic-block.h (maybe_hot_edge_p): Declare.
1652
1653 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
1654
1655         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
1656         (*cmpfp_<mode>_cc): Ditto.
1657         (*fp_jcc_8<mode>_387): Ditto.
1658         (*fop_<MODEF:mode>_2_i387): Ditto.
1659         (*fop_<MODEF:mode>_3_i387): Ditto.
1660         (*fop_xf_2_i387): Ditto.
1661         (*fop_xf_3_i387): Ditto.
1662
1663 2008-06-02  Tomas Bily  <tbily@suse.cz>
1664
1665         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
1666
1667 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
1668
1669         * config/mips/mips.c (mips_valid_offset_p): New function.
1670         (mips_valid_lo_sum_p): Likewise.
1671         (mips_classify_address): Use them.
1672         (mips_force_address): New function.
1673         (mips_legitimize_address): Use it.
1674         * config/mips/mips.md (MOVE128): New mode iterator.
1675         (movtf): Require TARGET_64BIT.  Remove empty strings.
1676         (*movtf_internal): Rename to...
1677         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
1678         of "R" and use {,fp}{load,store} attributes instead of "multi".
1679         Use a separate define_split.
1680         (*movtf_mips16): New pattern.
1681
1682 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
1683
1684         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
1685         * config/mips/mips.c (mips_expand_before_return): New function.
1686         (mips_expand_epilogue): Call it.
1687         * config/mips/mips.md (return): Turn into a define_expand.
1688         (*return): New insn.
1689
1690 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
1691
1692         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
1693         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
1694         functions.  Do not emit uses and clobbers of CONCATs; individually
1695         use and clobber their operands.
1696         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
1697         gen_clobber, emit_use and gen_use.
1698         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
1699         (expand_builtin_return): Likewise.
1700         * cfgbuild.c (count_basic_blocks): Likewise.
1701         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
1702         * explow.c (emit_stack_restore): Likewise.
1703         * expmed.c (extract_bit_field_1): Likewise.
1704         * expr.c (convert_move, emit_move_complex_parts): Likewise.
1705         (emit_move_multi_word, store_constructor): Likewise.
1706         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
1707         (thread_prologue_and_epilogue_insns): Likewise.
1708         * lower-subreg.c (resolve_simple_move): Likewise.
1709         * optabs.c (widen_operand, expand_binop): Likewise.
1710         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
1711         * reload.c (find_reloads): Likewise.
1712         * reload1.c (eliminate_regs_in_insn): Likewise.
1713         * stmt.c (expand_nl_goto_receiver): Likewise.
1714         * config/alpha/alpha.md (builtin_longjmp): Likewise.
1715         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
1716         * config/arm/arm.c (arm_load_pic_register): Likewise.
1717         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
1718         * config/arm/arm.md (untyped_return): Likewise.
1719         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
1720         * config/avr/avr.c (expand_prologue): Likewise.
1721         * config/bfin/bfin.c (do_unlink): Likewise.
1722         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
1723         * config/cris/cris.c (cris_expand_prologue): Likewise.
1724         * config/darwin.c (machopic_indirect_data_reference): Likewise.
1725         (machopic_legitimize_pic_address): Likewise.
1726         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
1727         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
1728         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
1729         (ix86_expand_convert_uns_didf_sse): Likewise.
1730         (ix86_expand_vector_init_general): Likewise.
1731         * config/ia64/ia64.md (eh_epilogue): Likewise.
1732         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
1733         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
1734         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
1735         (config/iq2000/iq2000.c): Likewise.
1736         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
1737         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
1738         (builtin_longjmp): Likewise.
1739         * config/mn10300/mn10300.md (call, call_value): Likewise.
1740         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
1741         * config/pdp11/pdp11.md (abshi2): Likewise.
1742         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
1743         * config/s390/s390.c (s390_emit_prologue): Likewise.
1744         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
1745         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
1746         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
1747         * config/sh/sh.c (prepare_move_operands): Likewise.
1748         (output_stack_adjust, sh_expand_epilogue): Likewise.
1749         (sh_set_return_address, sh_expand_t_scc): Likewise.
1750         * config/sparc/sparc.c (load_pic_register): Likewise.
1751         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
1752         * config/spu/spu.c (spu_expand_epilogue): Likewise.
1753         * config/v850/v850.c (expand_epilogue): Likewise.
1754
1755 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
1756
1757         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
1758         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
1759         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
1760         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
1761         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
1762         stack pointer register.
1763         (output_movhi): Remove code for interrupt specific writing to the 
1764         stack pointer register.
1765
1766 2008-05-31  Richard Guenther  <rguenther@suse.de>
1767
1768         PR tree-optimization/34244
1769         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
1770         (tree_expr_nonzero_warnv_p): Likewise.
1771         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
1772         ssa_name_nonnegative_p.
1773         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
1774         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
1775         not tree_expr_nonzero_warnv_p.
1776
1777         PR tree-optimization/36262
1778         Revert
1779         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
1780
1781         PR tree-optimization/34244
1782         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
1783         (record_numbers_of_iterations): New function.
1784         (execute_vrp): Cache the numbers of iterations of loops.
1785         * tree-scalar-evolution.c (scev_reset_except_niters):
1786         New function.
1787         (scev_reset): Use scev_reset_except_niters.
1788         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
1789
1790 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
1791
1792         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
1793         __WORKAROUND_RETS when appropriate.
1794
1795 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
1796
1797         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
1798         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
1799         mode iterator.
1800         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
1801         *fop_df_comm_sse insn patterns using MODEF mode iterator.
1802         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
1803         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
1804         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
1805         *fop_df_1_mixed insn patterns using MODEF mode iterator.
1806         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
1807         *fop_df_1_sse insn patterns using MODEF mode iterator.
1808         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
1809         *fop_df_1_i387 insn patterns using MODEF mode iterator.
1810         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
1811         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
1812         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
1813         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
1814         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
1815         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
1816         (*fop_xf_4_i387): Use <MODE> for mode attribute.
1817         (*fop_xf_5_i387): Ditto.
1818         (*fop_xf_6_i387): Ditto.
1819
1820 2008-05-30  Richard Guenther  <rguenther@suse.de>
1821
1822         * builtins.c (build_string_literal): Avoid generating
1823         a non-gimple_val result.
1824
1825 2008-05-30  DJ Delorie  <dj@redhat.com>
1826
1827         * exec-tool.in: Use an environment variable (private) instead of a
1828         file (shared) as a semaphore, so as to not break parallel builds.
1829
1830 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
1831
1832         * optabs.c (maybe_encapsulate_block): Remove.
1833         (emit_libcall_block): Adjust accordingly.
1834         * optabs.h (maybe_encapsulate_block): Remove prototype.
1835
1836         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
1837         Don't use maybe_encapsulate_block.
1838
1839 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
1840
1841         * config/rs6000/rs6000.c (rs6000_legitimize_address,
1842         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
1843         rtx is a SYMBOL_REF before calling get_pool_constant.
1844
1845 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
1846
1847         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
1848
1849 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
1850
1851         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
1852         rather than OS names to choose INO_T_EQ definition.
1853         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
1854         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
1855
1856 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
1857
1858         PR target/36348
1859         * config/darwin-f.c: New.
1860         * config/t-darwin: Added rule to build darwin-f.o.
1861         * config.gcc: Defined new variable, fortran_target_objs.
1862         (*-*-darwin*): Set fortran_target_objs.
1863         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
1864         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
1865         * configure: Regenerated.
1866
1867 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
1868
1869         PR target/35771
1870         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
1871         canonical type if needed.
1872
1873 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
1874
1875         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
1876
1877 2008-05-29  Richard Guenther  <rguenther@suse.de>
1878
1879         PR tree-optimization/36343
1880         PR tree-optimization/36346
1881         PR tree-optimization/36347
1882         * tree-flow.h (clobber_what_p_points_to): Declare.
1883         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
1884         pointed-to variable is dereferenced is irrelevant to whether
1885         the pointer can access the pointed-to variable.
1886         (clobber_what_p_points_to): New function.
1887         * tree-ssa-alias.c (set_initial_properties): Use it.
1888         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
1889         call clobber check for NMTs.
1890
1891 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
1892         
1893         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
1894         for printing gcov_type.
1895
1896 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
1897
1898         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
1899         and the eh region information.
1900         * value-prof.c (gimple_move_stmt_histograms): New function.
1901         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
1902
1903 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
1904
1905         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
1906
1907 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
1908
1909         * value-prof.c (tree_ic_transform): Print counts.
1910         * tree-profile.c (tree_gen_ic_func_profiler):
1911         Clear __gcov_indreict_call_callee variable to avoid misattribution
1912         of the profile.
1913
1914 2008-05-28  Rafael Espindola  <espindola@google.com>
1915
1916         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
1917         invalid sharing.
1918
1919 2008-05-28  Richard Guenther  <rguenther@suse.de>
1920
1921         PR tree-optimization/36339
1922         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
1923         and clobbering code out of the loop.
1924
1925 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
1926
1927         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
1928         letters defined.
1929
1930         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
1931         s390_contiguous_bitmask_p, s390_symref_operand_p,
1932         s390_check_symref_alignment, s390_reload_larl_operand,
1933         s390_reload_symref_address): New functions.
1934         (s390_branch_condition_mnemonic): Support compare and branch
1935         instructions.
1936         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
1937         and 'W' constraints.
1938         (s390_secondary_reload): Add secondary reloads for unaligned
1939         symbol refs or symbol refs to floating point or QI/TI mode
1940         integer values.
1941         (legitimate_address_p): Accept symbol references as addresses.
1942         (s390_expand_insv): Use rotate and insert selected bits
1943         instruction for insv when building for z10.
1944         (print_operand_address): Handle symbol ref addresses.
1945         (print_operand): Output modifier 'c' added for signed byte values.
1946         (s390_encode_section_info): Mark symbol refs with
1947         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
1948
1949         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
1950         (length attribute): RRF, RRR have 4 byte length.
1951         (FPALL, INTALL): New mode iterators added.
1952         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
1953         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
1954         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
1955         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
1956         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
1957         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
1958         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
1959         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
1960         instructions.
1961         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
1962         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
1963         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
1964         reload<INTALL:mode><P:mode>_toreg_z10,
1965         reload<FPALL:mode><P:mode>_tomem_z10,
1966         reload<FPALL:mode><P:mode>_toreg_z10,
1967         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
1968         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
1969         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
1970         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
1971         definition.
1972         (movmem, clrmem, cmpmem): New splitters added.
1973
1974         * config/s390/predicates.md (larl_operand): Use
1975         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
1976         SYMBOL_REF_ALIGN1_P.
1977         (s390_signed_integer_comparison,
1978         s390_unsigned_integer_comparison): New predicates.
1979
1980         * config/s390/s390-protos.h (s390_check_symref_alignment,
1981         s390_contiguous_bitmask_p, s390_reload_larl_operand,
1982         s390_reload_symref_address,
1983         s390_compare_and_branch_condition_mask): Prototypes added.
1984
1985         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
1986         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
1987         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
1988
1989 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
1990
1991         * config/s390/s390.c (z10_cost): New cost function for z10.
1992         (s390_handle_arch_option, override_options): Support -march=z10 switch.
1993         (s390_issue_rate): Adjust issue rate for z10.
1994         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
1995         (processor_flags): Add PF_Z10.
1996         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
1997         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
1998         * gcc/config.gcc: Add z10.
1999
2000 2008-05-28  Richard Guenther  <rguenther@suse.de>
2001
2002         PR tree-optimization/36291
2003         * tree-flow. h (struct gimple_df): Remove var_anns member.
2004         * tree-flow-inline.h (gimple_var_anns): Remove.
2005         (var_ann): Simplify.
2006         * tree-dfa.c (create_var_ann): Simplify.
2007         (remove_referenced_var): Clear alias info from var_anns of globals.
2008         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
2009         (delete_tree_ssa): Clear alias info from var_anns of globals.
2010         Do not free var_anns.
2011         (var_ann_eq): Remove.
2012         (var_ann_hash): Likewise.
2013
2014 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
2015
2016         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
2017         and loongson2f entries.
2018         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
2019         * config/mips/mips.h (processor_type): Add Loongson-2E
2020         and Loongson-2F entries.
2021         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
2022         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
2023         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
2024         * doc/invoke.texi (MIPS Options): Document loongson2e
2025         and loongson2f processor names.
2026
2027 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
2028
2029         PR target/35767
2030         PR target/35771
2031         * config/i386/i386.c (ix86_function_arg_boundary): Use
2032         alignment of canonical type.
2033         (ix86_expand_vector_move): Check unaligned memory access for
2034         all SSE modes.
2035
2036 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
2037
2038         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
2039         Moved to the front of file.
2040
2041 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
2042             H.J. Lu  <hongjiu.lu@intel.com>
2043
2044         * dwarf2out.c (current_fde): New.
2045         (add_cfi): Use it.
2046         (lookup_cfa:): Likewise.
2047         (dwarf2out_end_epilogue): Likewise.
2048         (dwarf2out_note_section_used): Likewise.
2049
2050 2008-05-27  Michael Matz  <matz@suse.de>
2051
2052         PR c++/27975
2053         * c.opt (Wenum-compare): New warning option.
2054         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
2055
2056 2008-05-27  Michael Matz  <matz@suse.de>
2057
2058         PR middle-end/36326
2059         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
2060         non-BLKmode types.
2061         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
2062         into memory as tail calls.
2063
2064 2008-05-27  Richard Guenther  <rguenther@suse.de>
2065
2066         PR tree-optimization/36339
2067         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
2068         pointers cause all addressable variables to be call clobbered.
2069
2070 2008-05-27  Richard Guenther  <rguenther@suse.de>
2071
2072         PR tree-optimization/36245
2073         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
2074
2075 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2076
2077         * config/s390/s390.md: Replace all occurences of the 'm'
2078         constraint with 'RT'.
2079
2080 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2081
2082         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
2083         definitions added.
2084         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
2085         "*movdi_64".
2086         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
2087         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
2088         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
2089
2090 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2091
2092         * reload.c: (find_reloads): Skip alternatives according to the
2093         "enabled" attribute. Constify the constraint variable.
2094         * recog.c (get_attr_enabled): Add default implementation.
2095         (extract_insn): Set the alternative_enabled_p array
2096         in the recog_data struct.
2097         (preprocess_constraints, constrain_operands): Skip
2098         alternatives according to the "enabled" attribute
2099         * recog.h (struct recog_data): New field alternative_enabled_p.
2100         (skip_alternative): New inline function.
2101         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
2102         (record_reg_classes): Skip alternative according to the
2103         "enabled" attribute.
2104
2105         * doc/md.texi: Add documention for the "enabled" attribute.
2106
2107 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2108
2109         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
2110         * postreload.c (reload_cse_simplify_operands): Replace 'm'
2111         constraint with TARGET_MEM_CONSTRAINT.
2112         * recog.c (asm_operand_ok, preprocess_constraints,
2113         constrain_operands): Likewise.
2114         * regclass.c (record_reg_classes): Likewise.
2115         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
2116         * reload1.c (maybe_fix_stack_asms): Likewise.
2117         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
2118         * recog.h: Adjust comment.
2119         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
2120         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
2121         * doc/md.texi: Add a note to description of 'm' constraint.
2122         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
2123
2124 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
2125
2126         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
2127         that the bitfield is of integral type before testing its precision.
2128
2129 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
2130             Sa Liu  <saliu@de.ibm.com> 
2131
2132         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
2133         __modti3, __udivti3, __umodti3 and __udivmodti4.
2134         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
2135         that implement TImode mul and div functions.
2136         * config/spu/multi3.c: New. Implement __multi3.
2137         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
2138         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
2139         functions on SPU.
2140
2141 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
2142
2143         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
2144         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
2145         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
2146         tls_sysv_suffix): New mode and mode attribute iterators.
2147         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
2148         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
2149         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
2150         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
2151         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
2152         iterators.
2153
2154 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
2155
2156         PR tree-optimization/36329
2157         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
2158         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
2159         * cgraphbuild.c (initialize_inline_failed): Use the latter
2160         macro in lieu of the former.
2161         * ipa-inline.c (cgraph_mark_inline): Likewise.
2162         (cgraph_decide_inlining_of_small_function): Likewise.
2163         (cgraph_decide_inlining): Likewise.
2164         (cgraph_decide_inlining_incrementally): Likewise.
2165
2166 2008-05-26  Tristan Gingold  <gingold@adacore.com>
2167             Anatoly Sokolov  <aesok@post.ru>
2168
2169         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
2170         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
2171         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
2172         optimization for 'avr6' architecture.
2173
2174 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
2175
2176         PR target/34932
2177         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
2178
2179 2008-05-26  Richard Guenther  <rguenther@suse.de>
2180
2181         * tree-ssa-sccvn.c (expr_has_constants): Declare.
2182         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
2183
2184 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
2185
2186         PR middle-end/36253
2187         * caller-save.c (insert_restore): Verify alignment of spill space.
2188         (insert_save): Likewise.
2189         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
2190         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
2191         (STACK_SLOT_ALIGNMENT): Likewise.
2192         * function.c (LOCAL_ALIGNMENT): Removed.
2193         (get_stack_local_alignment): New.
2194         (assign_stack_local): Use it.  Set alignment on stack slot.
2195         (assign_stack_temp_for_type): Use get_stack_local_alignment.
2196         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
2197         (STACK_SLOT_ALIGNMENT): New.
2198         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
2199         stack slot in XFmode.
2200
2201         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
2202
2203 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
2204
2205         PR/36321
2206         * config/i386/i386.md (allocate_stack_worker_64): Make sure
2207         argument operand in rax isn't removed.
2208
2209 2008-05-26  Richard Guenther  <rguenther@suse.de>
2210
2211         PR middle-end/36300
2212         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
2213         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
2214
2215 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
2216
2217         PR bootstrap/36331
2218         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
2219
2220 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
2221
2222         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
2223         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
2224
2225 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2226
2227         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
2228         build a trampoline if we don't want one.
2229         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
2230         return zero for nested functions if we don't want a trampoline.
2231
2232 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
2233
2234         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
2235
2236 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
2237
2238         PR fortran/18428
2239         * c.opt: Removed undocumented option '-lang-fortran'.
2240         * c-common.h: Removed global variable 'lang_fortran'.
2241         * c-opts.c (c_common_handle_option): Removed code to handle
2242         option '-lang-fortran'. Updated includes.
2243         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
2244         definition of '__GFORTRAN__'.
2245         (define__GNUC__): Reimplemented to use BASEVER and
2246         cpp_define_formatted.
2247         (builtin_define_with_value_n): Removed.
2248         * c-incpath.h: Renamed to ...
2249         * incpath.h: ... this.
2250         * c-incpath.c: Renamed to ...
2251         * incpath.c: ... this. Updated includes.
2252         * fix-header.c: Updated includes.
2253         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
2254         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
2255         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
2256
2257 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2258
2259         * tree.h: Update the table of flags used on tree nodes.
2260         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
2261         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
2262         (FORCED_LABEL): Add access check.
2263         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
2264         (ASM_INPUT_P): Likewise.
2265         (ASM_VOLATILE_P): Likewise.
2266         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
2267         (OMP_SECTION_LAST): Access private_flag directly.
2268         (OMP_RETURN_NOWAIT): Likewise.
2269         (OMP_PARALLEL_COMBINED): Likewise.
2270         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
2271         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
2272         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
2273         deprecated_flag directly.
2274
2275 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
2276
2277         * final.c (frame_pointer_needed): Removed.
2278         * flags.h (frame_pointer_needed): Likewise.
2279
2280         * function.h (rtl_data): Add frame_pointer_needed.
2281         (frame_pointer_needed): New.
2282
2283 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
2284
2285         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
2286
2287 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
2288
2289         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
2290         SRC is a REG.
2291
2292 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
2293
2294         * c-common.c (strip_array_types): Move function to..
2295         * tree.c: ..here.
2296         (get_inner_array_type): Delete.
2297         * c-common.h (strip_array_types): Move declaration to..
2298         * tree.h: ..here.
2299         (get_inner_array_type): Delete.
2300         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
2301         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
2302         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
2303         * config/pa/pa.c (emit_move_sequence): Likewise.
2304
2305 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
2306
2307         * config/i386/i386.md (*sse_prologue_save_insn): Set length
2308         attribute to 34.
2309
2310 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
2311
2312         * function.c: Include target hook for nonlocal_goto frame value.
2313
2314 2008-05-24  Richard Guenther  <rguenther@suse.de>
2315
2316         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
2317         variable can be only accessed through a pointer or a union.
2318
2319 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2320
2321         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
2322         * doc/extend.texi: Likewise.
2323
2324 2008-05-23  DJ Delorie  <dj@redhat.com>
2325
2326         * config/m32c/jump.md (untyped_call): Add.
2327
2328         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
2329         for A24 to PSImode.
2330         (m32c_address_cost): Detail costs for indirect offsets.
2331
2332 2008-05-23  Rafael Espindola  <espindola@google.com>
2333
2334         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
2335         if a node is a SUBREG.
2336         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
2337         is a SUBREG.
2338
2339 2008-05-23  Paul Brook  <paul@codesourcery.com>
2340             Carlos O'Donell  <carlos@codesourcery.com>
2341
2342         * doc/extend.texi: Clarify use of __attribute__((naked)).
2343         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
2344         * target.h (gcc_target): Add allocate_stack_slots_for_args.
2345         * function.c (use_register_for_decl): Use
2346         targetm.calls.allocate_stack_slots_for_args.
2347         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
2348         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
2349         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
2350
2351 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
2352
2353         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
2354
2355 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
2356
2357         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
2358         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
2359         is only rounded once.
2360
2361 2008-05-23  Richard Guenther  <rguenther@suse.de>
2362
2363         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
2364
2365 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
2366             Jakub Jelinek  <jakub@redhat.com>
2367
2368         PR target/36079
2369         * configure.ac: Handle --enable-cld.
2370         * configure: Regenerated.
2371         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
2372         * config/i386/i386.h (struct machine_function): Add needs_cld field.
2373         (ix86_current_function_needs_cld): New define.
2374         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
2375         (cld): New isns pattern.
2376         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
2377         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
2378         * config/i386/i386.opt (mcld): New option.
2379         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
2380         TARGET_CLD and ix86_current_function_needs_cld.
2381         (override_options): Use -mcld by default for 32-bit code if
2382         USE_IX86_CLD.
2383
2384         * doc/install.texi (Options specification): Document --enable-cld.
2385         * doc/invoke.texi (Machine Dependent Options)
2386         [i386 and x86-64 Options]: Add -mcld option.
2387         (Intel 386 and AMD x86-64 Options): Document -mcld option.
2388
2389 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
2390         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
2391         (return_in_memory_64): Likewise.
2392         (return_in_memory_ms_64): Likewise.
2393
2394 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2395
2396         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
2397         * builtins.c (fold_builtin_fpclassify): New.
2398         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
2399         * builtins.def (BUILT_IN_FPCLASSIFY): New.
2400         * c-common.c (handle_type_generic_attribute): Adjust to accept
2401         fixed arguments before an elipsis.
2402         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
2403         * doc/extend.texi: Document __builtin_fpclassify.
2404
2405 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
2406
2407         * omp-low.c (gate_expand_omp_ssa): Remove.
2408         (pass_expand_omp_ssa): Remove.
2409         (gate_expand_omp): Do not check for flag_openmp_ssa.
2410         * common.opt (-fopenmp-ssa): Remove.
2411         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
2412
2413 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
2414
2415         * config/sh/sh.opt (mfixed-range): New option.
2416         * config/sh/sh-protos.h (sh_fix_range): Declare.
2417         * config/sh/sh.c (sh_fix_range): New function.
2418         * config/sh/sh.h (sh_fixed_range_str): Declare.
2419         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
2420         is not empty.
2421         * doc/invoke.texi (SH Options): Document -mfixed-range.
2422
2423 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
2424
2425         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
2426         it before the redeclaration.
2427
2428 2008-05-22  Anatoly Sokolov <aesok@post.ru>
2429
2430         * config/avr/avr.c (get_sequence_length): Add new function.
2431         (expand_prologue, expand_epilogue): Remove duplicate code.
2432
2433 2008-05-22  Rafael Espindola  <espindola@google.com>
2434
2435         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
2436         sharing.
2437
2438 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
2439
2440         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
2441         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
2442
2443         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
2444         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
2445         (vect_update_misalignment_for_peel): Likewise.
2446         (vector_alignment_reachable_p): Likewise.
2447         * tree-vect-transform.c (vectorizable_load): Likewise.
2448         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
2449         (get_vectype_for_scalar_type): Pass mode of scalar_type
2450         to UNITS_PER_SIMD_WORD.
2451
2452         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
2453         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
2454         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
2455         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
2456         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
2457
2458 2008-05-22  Ira Rosen  <irar@il.ibm.com>
2459
2460         PR tree-optimization/36293
2461         * tree-vect-transform.c (vect_transform_strided_load): Don't check
2462         if the first load must be skipped because of a gap.
2463
2464 2008-05-22  Richard Guenther  <rguenther@suse.de>
2465
2466         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
2467         more cases of offset disambiguation that is possible if
2468         strict-aliasing rules apply.
2469         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
2470         for basic offset and type-based disambiguation.
2471
2472 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2473
2474         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
2475         ix86_expand_vector_set on V16QImode for SSE4.1.
2476
2477 2008-05-21  Tom Tromey  <tromey@redhat.com>
2478
2479         * c.opt (Wimport): Mark as undocumented.
2480         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
2481         -Wno-import.
2482         (Warning Options): Likewise.
2483         * doc/cppopts.texi: Don't mention -Wimport.
2484
2485 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
2486
2487         PR tree-optimization/36287
2488         PR tree-optimization/36286
2489         * lambda-code.c (build_access_matrix): Do not use the loop->num
2490         for computing the number of induction variables: use the loop depth
2491         instead.
2492
2493 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
2494
2495         PR/36280
2496         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
2497         option -f(no-)leading-underscore.
2498
2499 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2500
2501         * config/i386/i386.c (ix86_expand_vector_init_general): Use
2502         GET_MODE_NUNITS (mode).
2503
2504 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
2505
2506         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
2507         (-mmulhw): Add 464 to description.
2508         (-mdlmzb): Likewise.
2509         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
2510         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
2511         464fp entries.
2512         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
2513         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
2514         * config/rs6000/rs6000.md: Update comments for 464.
2515
2516 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
2517
2518         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
2519
2520 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2521
2522         * config/i386/sse.md (vec_extractv4sf): Removed.
2523         (vec_extractv2df): Likewise.
2524         (vec_extractv2di): Likewise.
2525         (vec_extractv4si): Likewise.
2526         (vec_extractv8hi): Likewise.
2527         (vec_extractv16qi): Likewise.
2528         (vec_extract<mode>): New.
2529
2530 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2531
2532         * config/i386/sse.md (vec_setv4sf): Removed.
2533         (vec_setv2df): Likewise.
2534         (vec_setv2di): Likewise.
2535         (vec_setv4si): Likewise.
2536         (vec_setv8hi): Likewise.
2537         (vec_setv16qi): Likewise.
2538         (vec_set<mode>): New.
2539
2540 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2541
2542         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
2543         goto for vec_concat and vec_interleave.
2544
2545 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2546
2547         * config/i386/sse.md (vec_initv4sf): Removed.
2548         (vec_initv2df): Likewise.
2549         (vec_initv2di): Likewise.
2550         (vec_initv4si): Likewise.
2551         (vec_initv8hi): Likewise.
2552         (vec_initv16qi): Likewise.
2553         (vec_init<mode>): New.
2554
2555 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
2556
2557         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
2558
2559 2008-05-21  Tom Tromey  <tromey@redhat.com>
2560
2561         * ggc-zone.c (lookup_page_table_if_allocated): New function.
2562         (zone_find_object_offset): Likewise.
2563         (gt_ggc_m_S): Likewise.
2564         (highest_bit): Likewise.
2565         * ggc-page.c (gt_ggc_m_S): New function.
2566         * stringpool.c (string_stack): Remove.
2567         (init_stringpool): Update.
2568         (ggc_alloc_string): Use ggc_alloc.
2569         (maybe_delete_ident): New function.
2570         (ggc_purge_stringpool): Likewise.
2571         (gt_ggc_m_S): Remove.
2572         * ggc-common.c (ggc_protect_identifiers): New global.
2573         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
2574         ggc_protect_identifiers.
2575         * ggc.h (ggc_protect_identifiers): Declare.
2576         (gt_ggc_m_S): Update.
2577         (ggc_purge_stringpool): Declare.
2578         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
2579         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
2580         special case.
2581         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
2582
2583 2008-05-21  David S. Miller  <davem@davemloft.net>
2584
2585         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
2586         tmake_file.
2587
2588 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
2589
2590         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
2591         once finished.
2592
2593 2008-05-20  David Daney  <ddaney@avtrex.com>
2594
2595         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
2596         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
2597         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
2598         UNSPEC_UPDATE_GOT_VERSION): Renumber.
2599         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
2600         (atomic_hiqi_op): New define_code_iterator.
2601         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
2602         mips_expand_compare_and_swap_12.
2603         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
2604         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
2605         (sync_<optab><mode>, sync_old_<optab><mode>,
2606         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
2607         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
2608         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
2609         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
2610         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
2611         (test_and_set_12): New insn.
2612         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
2613         sync_new_<optab><mode>, sync_old_nand<mode>,
2614         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
2615         clobber to operand 0 for SI and DI mode insns.
2616         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
2617         mips_gen_fn_4): New typedefs.
2618         (mips_gen_fn_ptrs): Define new union type.
2619         (mips_expand_compare_and_swap_12): Remove declaration.
2620         (mips_expand_atomic_qihi): Declare function.
2621         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
2622         (mips_expand_atomic_qihi): ... this.  Use new generator function
2623         parameter.
2624         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
2625         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
2626         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
2627         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
2628         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
2629         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
2630         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
2631         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
2632         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
2633         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
2634         New macros.
2635
2636 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
2637
2638         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
2639         the missing break.
2640
2641 2008-05-20  Anatoly Sokolov <aesok@post.ru>
2642
2643         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
2644         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
2645         (avr_attribute_table): Add 'OS_main' function attribute.
2646         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
2647         functions with 'OS_main' attribute.
2648
2649 2008-05-20  Richard Guenther  <rguenther@suse.de>
2650
2651         PR tree-optimization/35204
2652         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
2653         helper, split out from ...
2654         (DFS): ... here.  Make the DFS walk non-recursive.
2655
2656 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
2657             Jan Sjodin  <jan.sjodin@amd.com>
2658
2659         PR tree-optimization/36181
2660         * tree-parloops.c (loop_has_vector_phi_nodes): New.
2661         (parallelize_loops): Don't parallelize when the loop has vector
2662         phi nodes.
2663
2664 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
2665             Sebastian Pop  <sebastian.pop@amd.com>
2666
2667         * tree-loop-linear.c (gather_interchange_stats): Look in the access
2668         matrix, and never look at the tree representation of the memory
2669         accesses.
2670         (linear_transform_loops): Computes parameters and access matrices.
2671         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
2672         when fails.
2673         (access_matrix_get_index_for_parameter): New.
2674         * tree-data-ref.h (struct access_matrix): New.
2675         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
2676         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
2677         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
2678         am_vector_index_for_loop): New.
2679         (struct data_reference): Add field access_matrix.
2680         (DR_ACCESS_MATRIX): New.
2681         (compute_data_dependences_for_loop): Update declaration.
2682         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
2683         * lambda.h (lambda_vector_vec_p): Declared.
2684         * lambda-code.c: Depend on pointer-set.h.
2685         (lambda_collect_parameters_from_af, lambda_collect_parameters,
2686         av_for_af_base, av_for_af, build_access_matrix,
2687         lambda_compute_access_matrices): New.
2688         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
2689
2690 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
2691
2692         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
2693         $SOURCEDIR/include.
2694
2695 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
2696             Sebastian Pop  <sebastian.pop@amd.com>
2697
2698         PR tree-optimization/36206
2699         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
2700         FOLD_CONVERSIONS.
2701         (instantiate_scev_1): Rename flags to fold_conversions.
2702         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
2703         outeside instantiation_loop.
2704         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
2705         (evolution_function_is_affine_or_constant_p): Removed.
2706         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
2707         instantiate_scev.
2708         (analyze_siv_subscript): Pass in the loop nest number.
2709         Call evolution_function_is_affine_in_loop instead of 
2710         evolution_function_is_affine_p.
2711         (analyze_overlapping_iterations): Pass in the loop nest number.
2712
2713 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
2714             Sebastian Pop  <sebastian.pop@amd.com>
2715
2716         PR tree-optimization/36206
2717         * tree-chrec.h (chrec_fold_op): New.
2718         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
2719         and other trees.
2720
2721 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
2722
2723         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
2724         (DIRS_EQ): New.
2725         (remove_duplicates): Do not set inode on non-inode systems.
2726         Use DIRS_EQ.
2727
2728 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
2729
2730         * config.gcc (tm_file): Update comments about relative pathnames.
2731
2732 2008-05-20  Richard Guenther  <rguenther@suse.de>
2733
2734         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
2735         * tree-ssa-sccvn.c (process_scc): Likewise.
2736         * tree-ssa-sink.c (execute_sink_code): Likewise.
2737         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
2738         * tree-vrp.c (process_assert_insertions): Likewise.
2739         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
2740         (perform_tree_ssa_dce): Likewise.
2741         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
2742         (dump_dominator_optimization_stats): Likewise.
2743         * tree-vectorizer.c (vectorize_loops): Likewise.
2744
2745 2008-05-20  Richard Guenther  <rguenther@suse.de>
2746
2747         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
2748
2749 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
2750
2751         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
2752         (ix86_i386elf_return_in_memory): Likewise.
2753         (ix86_i386interix_return_in_memory): Likewise.
2754         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
2755         (SUBTARGET_RETURN_IN_MEMORY): New.
2756         * config/i386/i386elf.h: Likewise.
2757         * config/i386/ptx4-i.h: Likewise.
2758         * config/i386/sol2-10.h: Likewise.
2759         * config/i386/sysv4.h: Likewise.
2760         * config/i386/vx-common.h: Likewise.
2761         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
2762         * config/i386/i386.c (ix86_return_in_memory): Made static and
2763         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
2764         (ix86_i386elf_return_in_memory): Removed.
2765         (ix86_i386interix_return_in_memory): Removed.
2766         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
2767         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
2768
2769 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
2770
2771         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
2772
2773 2008-05-19  Xinliang David Li  <davidxl@google.com>
2774
2775         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
2776         * opts.c: Ditto.
2777         * common.opt: Ditto.
2778         * doc/invoke.texi: Ditto.
2779
2780 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
2781
2782         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
2783         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
2784
2785 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2786
2787         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
2788         sizes of operand array from 8/4 to 4/2.
2789         (ix86_expand_vector_init_general): Change size of operand array
2790         from 32 to 16.  Remove op0, op1 and half_mode.
2791
2792 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2793
2794         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
2795         (ix86_expand_vector_init_interleave): Likewise.
2796         (ix86_expand_vector_init_general): Use them.  Assert
2797         word_mode == SImode when n_words == 4.
2798
2799 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
2800
2801         * config/i386/i386.c (ix86_secondary_reload): New static function.
2802         (TARGET_SECONDARY_RELOAD): New define.
2803         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
2804         * config/i386/i386.md (reload_outqi): Remove.
2805
2806 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2807
2808         PR middle-end/35509
2809         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
2810         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
2811         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
2812         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
2813         (fold_builtin_1): Likewise.
2814         * builtins.def (BUILT_IN_ISINF_SIGN): New.
2815         c-common.c (check_builtin_function_arguments): Handle
2816         BUILT_IN_ISINF_SIGN.
2817         * doc/extend.texi: Document __builtin_isinf_sign.
2818         * fold-const.c (operand_equal_p): Handle COND_EXPR.
2819
2820 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
2821
2822         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
2823         EH cleanup at the end of the pass, search for those that have been
2824         turned into forwarder blocks and do the cleanup on their successor.
2825
2826 2008-05-18  Richard Guenther  <rguenther@suse.de>
2827
2828         * tree-cfg.c (verify_gimple_expr): Allow conversions from
2829         pointers to sizetype and vice versa.
2830
2831 2008-05-18 Xinliang David Li   <davidxl@google.com>
2832
2833         * gcc/tree-ssa-dce.c: Coding style fix.
2834         (check_pow): Documentation comment. 
2835         (check_log): Documenation comment. Coding style fix.
2836         (is_unnecessary_except_errno_call): Ditto.
2837         (gen_conditions_for_pow): Ditto.
2838         (gen_conditions_for_log): Ditto.
2839         (gen_shrink_wrap_conditions): Ditto.
2840         (shrink_wrap_one_built_in_calls): Ditto.
2841         * gcc/doc/invoke.texi: Better documentation string.
2842         * ChangeLog: Fix wrong change log entries from 
2843         May 17 checkin on function call DCE.
2844
2845 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
2846
2847         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
2848
2849 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
2850
2851         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
2852         * df-problems.c (simulation routines): Fixed block comment to
2853         properly say how to add forwards scanning functions.
2854         
2855 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
2856
2857         * tree-inline.c (setup_one_parameter): Remove dead code.
2858
2859 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
2860
2861         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
2862         a BIT_AND_EXPR only for an INTEGER_TYPE.
2863
2864 2008-05-17 Xinliang David Li   <davidxl@google.com>
2865
2866         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
2867         (check_pow, check_log, is_unnecessary_except_errno_call): New 
2868         functions to check for eliminating math functions that are pure 
2869         except for setting errno.
2870         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
2871         general condition expressions for shrink-wrapping pow/log calls.
2872         (gen_shrink_wrap_conditions): Ditto.
2873         (shrink_wrap_one_built_in_call): Ditto.
2874         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
2875         (mark_operand_necessary): If debugging, output if OP is necessary.
2876         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
2877         unnecessary.
2878         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
2879         opt level >= 2.
2880         * gcc/common.opt: New user flag -ftree-builtin-dce.
2881         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
2882
2883 2008-05-16  David S. Miller  <davem@davemloft.net>
2884
2885         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
2886         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
2887
2888 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
2889
2890         PR target/36246
2891         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
2892
2893 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2894
2895         * ifcvt.c (dead_or_predicable): Rename
2896         df_simulate_one_insn_backwards to df_simulate_one_insn.
2897         * recog.c (peephole2_optimize): Ditto.
2898         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
2899         Ditto.
2900         * df.h: Rename df_simulate_one_insn_backwards to
2901         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
2902         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
2903         scanning of defs and uses.
2904         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
2905         (df_simulate_one_insn_forwards): Removed.
2906
2907 2008-05-16  Doug Kwan  <dougkwan@google.com>
2908
2909         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
2910         QNaN & SNaN.
2911         (real_from_string): Handle NaNs and Inf as approriate.
2912
2913 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
2914
2915         * doc/gty.texi (Source Files Containing Type Information): Note
2916         that headers should appear first in the gtfiles list.
2917
2918 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2919
2920         * tree.def (COND_EXEC): Properly documented this code.
2921
2922 2008-05-16  Diego Novillo  <dnovillo@google.com>
2923
2924         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
2925         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
2926         the new field.
2927
2928 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2929
2930         * tree-ssa-dse (max_stmt_uid): Removed.
2931         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
2932         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
2933         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
2934         * function.h (cfun.last_stmt_uid): New field.
2935         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
2936         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
2937         New functions.
2938         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
2939         (create_stmt_ann): Initialize the ann->uid field.
2940         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
2941         with new calls.
2942         * tree-flow.h (renumber_gimple_stmt_uids): New function.
2943
2944 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
2945
2946         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
2947         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
2948         (init_empty_tree_cfg): Call it.
2949
2950 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2951
2952         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
2953         Update all users.
2954
2955 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2956
2957         * doc/invoke.text (-fdump-tree-*-verbose): New option.
2958         * tree-dump.c (dump_options): New verbose option.
2959         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
2960         Add verbose dump.
2961         * tree-pass.h (TDF_VERBOSE): New dump flag.
2962         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
2963         (tree-flow.h): Added include.
2964         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
2965
2966 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
2967
2968         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
2969
2970         From Jie Zhang  <jie.zhang@analog.com>
2971         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2972         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
2973         mcpu=bf561-none and mcpu=bf561-0.2.
2974         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2975         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
2976         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2977         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
2978         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
2979         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
2980         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
2981         option.
2982         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
2983         (cputype_selected): Remove.
2984         (bfin_handle_option): Don't use cputype_selected.
2985         (override_options): When no mcpu option, enable all workarounds.
2986         Don't use bfin_workarounds.
2987         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
2988         processor type.
2989         (DEFAULT_CPU_TYPE): Don't define.
2990
2991 2008-05-16  Richard Guenther  <rguenther@suse.de>
2992
2993         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
2994         on deletion of the last stmt.
2995
2996 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
2997
2998         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
2999         V8HImode for SSE2 and V16QImode for SSE4.1.
3000
3001 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
3002
3003         * cgraph.h (compute_inline_parameters): Made public.
3004         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
3005         variable_generate_summary, function_write_summary,
3006         variable_write_summary, variable_read_summary.  Added generate_summary,
3007         write_summary, read_summary.
3008         * cgraphunit.c (cgraph_process_new_functions): Changed call from
3009         pass_ipa_inline.function_generate_summary, to
3010         compute_inline_parameters. 
3011         * ipa-inline.c (compute_inline_parameters): Made public and added
3012         node parameter.
3013         (compute_inline_parameters_for_current): New function.
3014         (pass_inline_param): Now calls compute_inline_parameters_for_current.
3015         (inline_generate_summary): Removed parameter and made to loop over
3016         all cgraph nodes.
3017         (pass_ipa_inline): Updated for new IPA_PASS structure.
3018         * passes.c (execute_ipa_summary_passes): Now is called once per
3019         pass rather than once per node*pass.
3020         
3021 2008-05-15  Anatoly Sokolov <aesok@post.ru>
3022
3023         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
3024         avr_have_mul_p, avr_asm_only_p): Remove variables.
3025         (avr_override_options): Remove initialization of removed variables.
3026         (avr_file_start):  Convert removed variables to fields of 
3027         'struct base_arch_s *avr_current_arch'. 
3028         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
3029         (AVR_HAVE_MUL): (Ditto.).
3030         (AVR_HAVE_MOVW): (Ditto.).
3031         (AVR_HAVE_LPMX): (Ditto.). 
3032         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
3033         avr_asm_only_p): Remove declaration.
3034
3035 2008-05-15  Diego Novillo  <dnovillo@google.com>
3036
3037         * config/arm/arm.c (arm_return_in_memory): Fix return type.
3038         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
3039
3040 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
3041
3042         PR middle-end/36194
3043         * combine.c (check_conversion): Rename back to check_promoted_subreg.
3044         Don't call record_truncated_value from here.
3045         (record_truncated_value): Turn it into a for_each_rtx callback.
3046         (record_truncated_values): New function.
3047         (combine_instructions): Call note_uses with record_truncated_values.
3048         Change name of check_conversion to check_promoted_subreg. 
3049
3050 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
3051
3052         * doc/sourcebuild.texi: Document support for torture tests.
3053
3054 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
3055
3056         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
3057         to alternative 4 of operand 2.
3058
3059 2008-05-15  Richard Guenther  <rguenther@suse.de>
3060
3061         * tree-pass.h (current_pass): Declare.
3062         (get_pass_for_id): Likewise.
3063         * passes.c (passes_by_id, passes_by_id_size): New globals.
3064         (set_pass_for_id): New function.
3065         (get_pass_for_id): Likewise.
3066         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
3067         (execute_function_todo): Flush per function statistics.
3068         * toplev.c (compile_file): Init statistics.
3069         (general_init): Do early statistics initialization.
3070         (finalize): Finish statistics.
3071         * statistics.h (statistics_early_init): Declare.
3072         (statistics_init): Likewise.
3073         (statistics_fini): Likewise.
3074         (statistics_fini_pass): Likewise.
3075         (statistics_counter_event): Likewise.
3076         (statistics_histogram_event): Likewise.
3077         * statistics.c: New file.
3078         * Makefile.in (OBJS-common): Add statistics.o.
3079         (statistics.o): Add dependencies.
3080         * doc/invoke.texi (-fdump-statistics): Document.
3081
3082         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
3083         (insert): Likewise.
3084         (execute_pre): Use statistics_counter_event.
3085         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
3086         (substitute_and_fold): Increment it.  Use statistics_counter_event.
3087
3088 2008-05-15  Diego Novillo  <dnovillo@google.com>
3089
3090         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
3091
3092         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
3093         * tree-ssa-alias.c (new_type_alias): Remove references to
3094         sub-variables from comment.
3095         * tree-ssa-operands.c (swap_tree_operands): Likewise.
3096
3097 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
3098
3099         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
3100         attribute to 1 only for insertps alternative.
3101
3102 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
3103
3104         * config/bfin/bfin.md (loadbytes): New pattern.
3105         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
3106         (bfin_init_builtins): Initialize it.
3107         (bdesc_1arg): Add it.
3108
3109 2008-05-15  Sa Liu  <saliu@de.ibm.com>
3110
3111         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
3112         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
3113         * testsuite/lib/target-supports.exp: Add
3114         check_effective_target_fortran_integer_16.
3115
3116 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
3117
3118         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
3119         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
3120         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
3121         (TARGET_RETURN_IN_MEMORY): Define.
3122
3123 2008-05-15  Richard Guenther  <rguenther@suse.de>
3124
3125         PR middle-end/36244
3126         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
3127         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
3128         represent unmodifiable vars.
3129
3130 2008-05-15  Richard Guenther  <rguenther@suse.de>
3131
3132         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
3133         INDIRECT_REF and TARGET_MEM_REF.
3134         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
3135         TARGET_MEM_REF.
3136
3137 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
3138             H.J. Lu  <hongjiu.lu@intel.com>
3139
3140         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
3141         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
3142         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
3143         insn alternatives.  Add missing alternatives.
3144         (*vec_concatv2di_rex64_sse4_1): Likewise.
3145         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
3146         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
3147         Require TARGET_SSE.
3148
3149 2008-05-15  Richard Guenther  <rguenther@suse.de>
3150
3151         PR tree-optimization/36009
3152         PR tree-optimization/36204
3153         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
3154         (determine_invariantness_stmt): Record the loop a store is
3155         always executed in.
3156         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
3157         dependency.
3158
3159 2008-05-15  Richard Guenther  <rguenther@suse.de>
3160
3161         PR tree-optimization/34330
3162         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
3163         through the pointer will alias the SMT.
3164
3165 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
3166
3167         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
3168
3169 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
3170
3171         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
3172
3173 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
3174             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
3175
3176         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
3177         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
3178         (vashl_optab): New optab for vector/vector shifts.
3179         (vashr_optab): Ditto.
3180         (vlshr_optab): Ditto.
3181         (vrotl_optab): Ditto.
3182         (vrotr_optab): Ditto.
3183         (optab_subtype): New enum for optab_for_tree_code call.
3184         (optab_for_tree_code): Add enum optab_subtype argument.
3185
3186         * optabs.c (optab_for_tree_code): Take an additional argument to
3187         distinguish between a vector shift by a scalar and vector shift by
3188         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
3189         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
3190         vector shift by a vector.
3191         (expand_widen_pattern_expr): Pass additional argument to
3192         optab_for_tree_code.
3193
3194         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
3195         vrotl_optab, vrotr_optab.
3196
3197         * expr.c (expand_expr_real_1): Update calls to
3198         optab_for_tree_code to distinguish between vector shifted by a
3199         scalar and vector shifted by a vector.
3200         * tree-vectorizer.c (supportable_widening_operation): Ditto.
3201         (supportable_narrowing_operation): Ditto.
3202         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
3203         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
3204         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
3205         (vect_create_epilog_for_reduction): Ditto.
3206         (vectorizable_reduction): Ditto.
3207         (vectorizable_operation): Ditto.
3208         (vect_strided_store_supported): Ditto.
3209         (vect_strided_load_supported): Ditto.
3210         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
3211         * expmed.c (expand_shift): Ditto.
3212
3213         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
3214         scalar type.
3215         (ashr@var{m}3): Ditto.
3216         (vashl@var{m}3): Document new vector/vector shift standard name.
3217         (vashr@var{m}3): Ditto.
3218         (vlshr@var{m}3): Ditto.
3219         (vrotl@var{m}3): Ditto.
3220         (vrotr@var{m}3): Ditto.
3221
3222         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
3223         (PPERM_INVERT): Ditto.
3224         (PPERM_REVERSE): Ditto.
3225         (PPERM_REV_INV): Ditto.
3226         (PPERM_ZERO): Ditto.
3227         (PPERM_ONES): Ditto.
3228         (PPERM_SIGN): Ditto.
3229         (PPERM_INV_SIGN): Ditto.
3230         (PPERM_SRC1): Ditto.
3231         (PPERM_SRC2): Ditto.
3232
3233         * config/i386/sse.md (mulv2di3): Add SSE5 support.
3234         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
3235         allows a memory operand to be the value being added, and split it
3236         to improve vectorization.
3237         (sse5_pmacsdqh_mem): Ditto.
3238         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
3239         (sse5_mulv2div2di3_high): Ditto.
3240         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
3241         (vec_pack_trunc_v4si): Ditto.
3242         (vec_pack_trunc_v2di): Ditto.
3243         (sse5_pcmov_<mode>): Remove code that tried to use use
3244         andps/andnps instead of pcmov.
3245         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
3246         pmacsdqh instructions.
3247         (vec_widen_smult_lo_v4si): Ditto.
3248
3249         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
3250         (PPERM_INVERT): Ditto.
3251         (PPERM_REVERSE): Ditto.
3252         (PPERM_REV_INV): Ditto.
3253         (PPERM_ZERO): Ditto.
3254         (PPERM_ONES): Ditto.
3255         (PPERM_SIGN): Ditto.
3256         (PPERM_INV_SIGN): Ditto.
3257         (PPERM_SRC1): Ditto.
3258         (PPERM_SRC2): Ditto.
3259         (ix86_expand_sse_movcc): Move the SSE5 test after the if
3260         true/false tests.
3261         (ix86_expand_int_vcond): If SSE5 generate all possible integer
3262         comparisons.
3263         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
3264         says ignore whether the last reference is a memory operand.
3265
3266 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
3267             Paolo Bonzini <bonzini at gnu dot org>
3268
3269         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
3270         shift patterns.
3271
3272         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
3273         (vlshr<mode>3): Rename from vlshr<mode>3.
3274         (vashr<mode>3): Rename from vashr<mode>3.
3275         (mulv4sf3): Change the names of vector shift patterns.
3276         (mulv4si3): Ditto.
3277         (negv4sf2): Ditt.
3278
3279         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
3280         shift insns.
3281
3282         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
3283         (SI_SHLHI): Ditto.
3284         (SI_SHL): Ditto.
3285         (SI_SHLI): Ditto.
3286         (SI_ROTH): Ditto.
3287         (SI_ROTHI): Ditto.
3288         (SI_ROT): Ditto.
3289         (SI_ROTI): Ditto.
3290         (SPU_RL_0): Ditto.
3291         (SPU_RL_1): Ditto.
3292         (SPU_RL_2): Ditto.
3293         (SPU_RL_3): Ditto.
3294         (SPU_RL_4): Ditto.
3295         (SPU_RL_5): Ditto.
3296         (SPU_RL_6): Ditto.
3297         (SPU_RL_7): Ditto.
3298         (SPU_SL_0): Ditto.
3299         (SPU_SL_1): Ditto.
3300         (SPU_SL_2): Ditto.
3301         (SPU_SL_3): Ditto.
3302         (SPU_SL_4): Ditto.
3303         (SPU_SL_5): Ditto.
3304         (SPU_SL_6): Ditto.
3305         (SPU_SL_7): Ditto.
3306
3307         * config/spu/spu.md (v): New iterator macro to add v for vector types.
3308         (floatunssidf2_internal): Change vector/vector shift names.
3309         (floatunsdidf2_internal): Ditto.
3310         (mulv8hi3): Ditto.
3311         (ashrdi3): Ditto.
3312         (ashrti3): Ditto.
3313         (cgt_df): Ditto.
3314         (cgt_v2df): Ditto.
3315         (dftsv): Ditto.
3316         (vashl<mode>3): Rename from ashl<mode>3.
3317         (vashr<mode>3): Rename from ashr<mode>3.
3318         (vlshr<mode>3): Rename from lshr<mode>3.
3319         (vrotl<mode>3): Rename from rotl<mode>3.
3320
3321 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
3322
3323         PR target/36224
3324         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
3325         multiply gives the wrong value when doing widening multiplies.
3326         (vec_widen_smult_lo_v4si): Ditto.
3327
3328 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
3329
3330         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
3331         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
3332         emit_library_call_value. 
3333         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
3334         * tree.h (ECF_LIBCALL_BLOCK): Removed.
3335         * calls.c (initialize_argument_information, precompute_arguments, 
3336         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
3337         (precompute_arguments): Removed flags parameter.
3338         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
3339         
3340 2008-05-14  Richard Guenther  <rguenther@suse.de>
3341
3342         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
3343         Make sure to register the store if the use is a PHI_NODE.
3344
3345 2008-05-14  Olivier Hainque  <hainque@adacore.com>
3346
3347         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
3348         memory if the component is to be referenced in BLKmode according
3349         to get_inner_reference.
3350
3351 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
3352
3353         * calls.c (emit_library_call_value_1): Restore code clearing
3354         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
3355
3356 2008-05-14  Olivier Hainque  <hainque@adacore.com>
3357             Nicolas Roche  <roche@adacore.com>
3358
3359         * configure.ac: Add support for a "gcc_subdir" variable in
3360         config-lang.in, to denote a subdirectory where the language/GCC
3361         integration files are to be found.
3362         * configure: Regenerate.
3363
3364 2008-05-14  Ira Rosen  <irar@il.ibm.com>
3365
3366         PR tree-optimization/36098
3367         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
3368         value for the first load in the group in case of a gap.
3369         (vect_build_slp_tree): Check that there are no gaps in loads.
3370
3371 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
3372
3373         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
3374         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
3375         expand_copysign_bit, ): Change call to emit_no_conflict_block to
3376         emit_insn and remove unneeded code to construct extra args.
3377         (emit_no_conflict_block): Removed.
3378         * optabls.h: (emit_no_conflict_block): Removed.
3379         * cse.c (cse_extended_basic_block): Remove search for
3380         REG_NO_CONFLICT note.
3381         * global.c: Removed incorrect comment added in revision 117.
3382         * expr.c (convert_move): Change call to emit_no_conflict_block to
3383         emit_insn.
3384         * recog.c: Change comments so that they do not mention
3385         REG_NO_CONFLICT.
3386         * local_alloc.c (combine_regs): Removed last parameter.
3387         (no_conflict_p): Removed.
3388         (block_alloc): Removed note, no_conflict_combined_regno and set
3389         local vars. Removed all code to process REG_NO_CONFLICT blocks.
3390         (combine_regs): Removed already_dead and code to look for
3391         REG_NO_CONFLICT notes.
3392         * lower_subreg (remove_retval_note): Removed code to look for
3393         REG_NO_CONFLICT block.
3394         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
3395         (resolve_clobber): Remove code to process libcalls that have
3396         REG_NO_CONFLICT notes.
3397         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
3398         case.
3399         * combine.c (can_combine_p, distribute_notes):  Removed
3400         REG_NO_CONFLICT case.
3401         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
3402         to emit_insns.
3403         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
3404         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
3405         Ditto.
3406         * reg-notes.def (NO_CONFLICT): Removed.
3407
3408 2008-05-14  David S. Miller  <davem@davemloft.net>
3409
3410         * config/sparc/sparc.c (sparc_profile_hook): If
3411         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
3412         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
3413         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
3414
3415 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
3416
3417         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
3418
3419 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
3420
3421         PR target/36222
3422         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
3423         and op1 expansion before vector concat to have less live pseudos.
3424
3425 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
3426
3427         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
3428         ix86_expand_vector_set if supported.
3429
3430 2008-05-13  Diego Novillo  <dnovillo@google.com>
3431             Kenneth Zadeck  <zadeck@naturalbridge.com>
3432
3433         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
3434
3435         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
3436         phinodes_print_statistics, init_ssanames, fini_ssanames,
3437         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
3438         release_ssa_name, release_defs, replace_ssa_name_symbol,
3439         ssanames_print_statistics): Move ...
3440         * tree-flow.h: ... here.
3441         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
3442         Use FN instead of cfun.
3443         (make_ssa_name_fn): Rename from make_ssa_name.
3444         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
3445         * tree-flow-inline.h (make_ssa_name): Move from
3446         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
3447         * omp-low.c (expand_omp_parallel):
3448         * tree-flow-inline.h (redirect_edge_var_map_result):
3449         * tree-ssa.c (init_tree_ssa): Add argument FN.
3450         Use it instead of cfun.  Update all users.
3451
3452 2008-05-13  Tom Tromey  <tromey@redhat.com>
3453
3454         PR preprocessor/22168:
3455         * doc/cpp.texi (Top): Update menu.
3456         (Alternatives to Wrapper #ifndef): New node.
3457         (Other Directives): Document deprecation.
3458         (Obsolete Features): Remove menu.
3459         (Assertions): Merge node into Obsolete Features.
3460         (Obsolete once-only headers): Move earlier; rename to Alternatives
3461         to Wrapper #ifndef.
3462         * doc/cppopts.texi: Update.
3463         * c.opt (Wdeprecated): Enable for C and ObjC.
3464         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
3465         (C++ Dialect Options): Move -Wno-deprecated from here to...
3466         (Warning Options): ... here.
3467
3468 2008-05-13  Richard Guenther  <rguenther@suse.de>
3469
3470         PR middle-end/36227
3471         * fold-const.c (fold_sign_changed_comparison): Do not allow
3472         changes in pointer-ness.
3473
3474 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
3475
3476         PR target/24713
3477         * config/sh/sh.c (sh_expand_prologue): Don't clear
3478         RTX_FRAME_RELATED_P for push insns.
3479
3480 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
3481
3482         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
3483
3484 2008-05-12  Anatoly Sokolov <aesok@post.ru>
3485
3486         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
3487         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
3488         Use 'machine->is_leaf' instead of 'leaf_func_p'.
3489
3490 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
3491
3492         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
3493         (*vec_concatv4sf_sse): This.
3494         (*sse2_concatv2si): Renamed to ...
3495         (*vec_concatv2si_sse2): This.
3496         (*sse1_concatv2si): Renamed to ...
3497         (*vec_concatv2si_sse): This.
3498         (*vec_concatv2di_rex): Renamed to ...
3499         (*vec_concatv2di_rex64): This.
3500         (*vec_concatv2si_sse4_1): New.
3501         (*vec_concatv2di_rex64_sse4_1): Likewise.
3502
3503 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
3504
3505         PR rtl-optimization/36111
3506         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
3507         that was created for swappable operands.
3508
3509 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
3510
3511         PR ada/36001
3512         * Makefile.in: Substitute GNATMAKE and GNATBIND.
3513         * configure.ac: Add call to ACX_PROG_GNAT.
3514
3515 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
3516
3517         * optc-gen.awk: Fix comment typo.
3518
3519 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
3520
3521         * pretty-print.c (pp_integer_with_precision): Use
3522         HOST_LONG_LONG_FORMAT.
3523
3524 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
3525
3526         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
3527                 
3528 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
3529
3530         * config/i386/i386.c (bdesc_ptest): Removed.
3531         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
3532         (bdesc_args): Add __builtin_ia32_ptestz128,
3533         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
3534         (ix86_init_mmx_sse_builtins): Updated.
3535         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
3536         (ix86_expand_builtin): Updated.
3537
3538 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
3539
3540         * tree-cfg.c (valid_fixed_convert_types_p): New function.
3541         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
3542
3543 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
3544
3545         * value-prof.c (interesting_stringop_to_profile): Do not
3546         return early for BUILT_IN_MEMPCPY.
3547
3548 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
3549
3550         * calls.c (expand_call): Don't use callgraph to increase
3551         preferred_stack_boundary.
3552
3553         * cgraph.h (cgraph_rtl_info): Use unsigned on
3554         preferred_incoming_stack_boundary.
3555
3556         * final.c (rest_of_clean_state): Use unsigned on
3557         preferred_stack_boundary.
3558
3559 2008-05-09  Tom Tromey  <tromey@redhat.com>
3560
3561         PR preprocessor/22231:
3562         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
3563         proceeding.
3564
3565 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
3566
3567         PR tree-optimization/36129
3568         * tree-ssa-ccp.c: Include value-prof.h.
3569         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
3570         built-in function was folded to a constant.
3571         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
3572
3573 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
3574             Sebastian Pop  <sebastian.pop@amd.com>
3575
3576         * tree-scalar-evolution.c: Document instantiate_scev.
3577         (instantiate_parameters_1): Renamed instantiate_scev_1.
3578         Don't use the same loop for instantiation_loop and evolution_loop.
3579         (instantiate_scev): New.
3580         (instantiate_parameters): Moved...
3581         (resolve_mixers): Update call to instantiate_scev_1 to pass the
3582         same loop twice.  Maintains the semantics for this function.
3583         * tree-scalar-evolution.h (instantiate_scev): Declare.
3584         (instantiate_parameters): ...here.  Now static inline.
3585         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
3586         instead of resolve_mixers.
3587
3588 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
3589
3590         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
3591
3592 2008-05-09  Tomas Bily  <tbily@suse.cz>
3593
3594         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
3595         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
3596         * tree-ssa-structalias.c (get_constraint_for): Likewise.
3597         * c-common.c (c_common_truthvalue_conversion): Likewise.
3598         * tree-object-size.c (compute_object_offset): Likewise.
3599         * tree-inline.c (estimate_num_insns_1): Likewise.
3600         * varasm.c (const_hash_1, compare_constant, copy_constant)
3601         (compute_reloc_for_constant, output_addressed_constants)
3602         (initializer_constant_valid_p): Likewise.
3603         * c-omp.c (check_omp_for_incr_expr): Likewise.
3604         * gimplify.c (gimplify_expr): Likewise.
3605         * c-typeck.c (c_finish_return): Likewise.
3606         * tree-vectorizer.c (supportable_widening_operation)
3607         (supportable_narrowing_operation): Likewise.
3608         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
3609         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
3610         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
3611         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
3612         (descr_info_loc): Likewise.
3613         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
3614         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
3615         (fold_unary): Likewise.
3616         * builtins.c (get_pointer_alignment): Likewise.
3617         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
3618         (instantiate_parameters_1): Likewise.
3619         * tree.c (expr_align, stabilize_reference): Likewise.
3620         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
3621         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
3622         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
3623         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
3624         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
3625         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
3626         Likewise.
3627         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
3628         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
3629         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
3630         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
3631         (forward_propagate_comparison)
3632         (tree_ssa_forward_propagate_single_use_vars): Likewise.
3633         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
3634         * emit-rtl.c (component_ref_for_mem_expr)
3635         (set_mem_attributes_minus_bitpos): Likewise.
3636         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
3637         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
3638         Likewise.
3639         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
3640         (build_function_call, pointer_diff, build_compound_expr)
3641         (c_finish_return): Likewise.
3642         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
3643         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
3644         Likewise.
3645         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
3646         * expr.c (is_aligning_offset): Likewise.
3647         * tree-ssa-alias.c (is_escape_site): Likewise.
3648         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
3649         (check_all_va_list_escapes): Likewise.
3650         * tree-ssa-loop-ivopts.c (determine_base_object)
3651         (determine_common_wider_type): Likewise.
3652         * dojump.c (do_jump): Likewise.
3653         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
3654         * tree-gimple.c (is_gimple_cast): Likewise.
3655         * fold-const.c (decode_field_reference, )
3656         (fold_sign_changed_comparison, fold_unary, fold_comparison)
3657         (fold_binary): Likewise.
3658         * tree-ssa-alias-warnings.c (find_alias_site_helper)
3659         (already_warned_in_frontend_p): Likewise.
3660         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
3661         * tree.c (really_constant_p, get_unwidened): Likewise.
3662         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
3663         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
3664         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
3665         Likewise.
3666         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
3667         CONVERT_EXPR_P.
3668         (CONVERT_EXPR_P): Define.
3669         (CASE_CONVERT): Define.
3670         
3671 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
3672
3673         PR middle-end/36117
3674         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
3675         (delete_unmarked_insns): When deleting a call, call
3676         delete_unreachable_blocks.
3677         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
3678         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
3679
3680 2008-05-08  Richard Guenther  <rguenther@suse.de>
3681
3682         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
3683         (-ftree-salias): Likewise.
3684         (salias-max-implicit-fields): Remove param documentation.
3685         (salias-max-array-elements): Likewise.
3686         * tree-pass.h (pass_create_structure_vars): Remove.
3687         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
3688         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
3689         * tree-ssa-alias.c (create_structure_vars): Remove.
3690         (gate_structure_vars): Likewise.
3691         (pass_create_structure_vars): Likewise.
3692         (gate_build_alias): Likewise.
3693         (pass_build_alias): Adjust to run always and dump the function.
3694         * common.opt (ftree-salias): Hide.
3695         * passes.c (init_optimization_passes): Remove
3696         pass_create_structure_vars, adjust comment.
3697         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
3698         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
3699         * opts.c (decode_options): Do not set flag_tree_salias.
3700         (common_handle_option): Add OPT_ftree_salias to the backward
3701         compatibility section.
3702
3703 2008-05-08  Richard Guenther  <rguenther@suse.de>
3704
3705         * tree-flow-inline.h (var_can_have_subvars): Move ...
3706         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
3707         * tree-flow.h (var_can_have_subvars): Remove.
3708         (push_fields_onto_fieldstack): Remove.
3709         (sort_fieldstack): Likewise.
3710         (struct fieldoff): Move ...
3711         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
3712         alias_set and base_for_components fields.
3713         (sort_fieldstack): Make static.
3714         (push_fields_onto_fieldstack): Likewise.  Remove code that
3715         handles anything but RECORD_TYPEs.  Remove alias_set and
3716         base_for_components handling.
3717         (create_variable_info_for): Adjust.
3718
3719 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
3720
3721         * common.opt (Wframe-larger-than=): Shorten the help message
3722         to one line.
3723         * doc/invoke.texi (Wframe-larger-than=): Add more description.
3724
3725 2008-05-08  Rafael Espindola  <espindola@google.com>
3726
3727         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
3728         trap.
3729         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
3730         trap and that both operands are gimple values.
3731         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
3732         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
3733         is a fp operation.
3734
3735 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
3736
3737         * read-rtl.c (join_c_conditions): Return the first string if the
3738         two strings are equal.
3739
3740 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
3741
3742         * gensupport.h (pred_data): Add a "num_codes" field.
3743         (add_predicate_code): Declare.
3744         * gensupport.c (add_predicate_code): New function.
3745         (std_pred_table): Add an "allows_const_p" field.
3746         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
3747         Remove the (incomplete) list of such codes from the codes field.
3748         (init_predicate_table): Use add_predicate_code.  Add all
3749         RTX_CONST_OBJs if allows_const_p is true.
3750         * genrecog.c (process_define_predicate): Use add_predicate_code.
3751
3752 2008-05-08  David Daney  <ddaney@avtrex.com>
3753             Richard Sandiford  <rsandifo@nildram.co.uk>
3754         
3755         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
3756         special case of constant zero operands.
3757         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
3758         old and new values.  Special case constant zero values.
3759         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
3760         fails.
3761         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
3762         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
3763
3764 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
3765
3766         PR target/36090
3767         * simplify-rtx.c (simplify_plus_minus): Create CONST of
3768         similar RTX_CONST_OBJ before CONST_INT.
3769
3770 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
3771
3772         * stmt.c (expand_stack_restore): Change sa mode if needed.
3773
3774 2008-05-08  Richard Guenther  <rguenther@suse.de>
3775
3776         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
3777         return type to bool.
3778         (ix86_sol10_return_in_memory): Likewise.
3779         (ix86_i386elf_return_in_memory): Likewise.
3780         (ix86_i386interix_return_in_memory): Likewise.
3781         * config/i386/i386.c (ix86_return_in_memory): Likewise.
3782         (ix86_sol10_return_in_memory): Likewise.
3783         (ix86_i386elf_return_in_memory): Likewise.
3784         (ix86_i386interix_return_in_memory): Likewise.
3785
3786 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
3787
3788         PR bootstrap/36180
3789         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
3790         fndecl argument.
3791         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
3792         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
3793         declared in front.
3794
3795 2008-05-08  Richard Guenther  <rguenther@suse.de>
3796
3797         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
3798         * tree-data-ref.h (struct dr_alias): Remove subvars field.
3799         (DR_SUBVARS): Remove.
3800         * tree-dfa.c (dump_subvars_for): Remove.
3801         (debug_subvars_for): Likewise.
3802         (dump_variable): Do not dump subvars.
3803         (remove_referenced_var): Do not remove subvars.
3804         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
3805         (lookup_subvars_for_var): Remove.
3806         (get_subvars_for_var): Likewise.
3807         (get_subvars_at): Likewise.
3808         (get_first_overlapping_subvar): Likewise.
3809         (overlap_subvar): Likewise.
3810         * tree-flow.h (subvar_t): Remove.
3811         (struct var_ann_d): Remove subvars field.
3812         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
3813         argument.  Remove special handling of SFTs.
3814         (compute_tag_properties): Likewise.
3815         (set_initial_properties): Likewise.
3816         (compute_call_clobbered): Likewise.
3817         (count_mem_refs): Likewise.
3818         (compute_memory_partitions): Likewise.
3819         (compute_flow_insensitive_aliasing): Likewise.
3820         (setup_pointers_and_addressables): Likewise.
3821         (new_type_alias): Likewise.
3822         (struct used_part): Remove.
3823         (used_portions): Likewise.
3824         (struct used_part_map): Likewise.
3825         (used_part_map_eq): Likewise.
3826         (used_part_map_hash): Likewise.
3827         (free_used_part_map): Likewise.
3828         (up_lookup): Likewise.
3829         (up_insert): Likewise.
3830         (get_or_create_used_part_for): Likewise.
3831         (create_sft): Likewise.
3832         (create_overlap_variables_for): Likewise.
3833         (find_used_portions): Likewise.
3834         (create_structure_vars): Likewise.
3835         * tree.def (STRUCT_FIELD_TAG): Remove.
3836         * tree.h (MTAG_P): Adjust.
3837         (struct tree_memory_tag): Remove base_for_components and
3838         unpartitionable flags.
3839         (struct tree_struct_field_tag): Remove.
3840         (SFT_PARENT_VAR): Likewise.
3841         (SFT_OFFSET): Likewise.
3842         (SFT_SIZE): Likewise.
3843         (SFT_NONADDRESSABLE_P): Likewise.
3844         (SFT_ALIAS_SET): Likewise.
3845         (SFT_UNPARTITIONABLE_P): Likewise.
3846         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
3847         (union tree_node): Remove sft field.
3848         * alias.c (get_alias_set): Remove special handling of SFTs.
3849         * print-tree.c (print_node): Remove handling of SFTs.
3850         * tree-dump.c (dequeue_and_dump): Likewise.
3851         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
3852         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
3853         * tree-predcom.c (set_alias_info): Do not set subvars.
3854         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
3855         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
3856         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
3857         (add_vars_for_offset): Remove.
3858         (add_virtual_operand): Remove special handling of SFTs.
3859         (add_call_clobber_ops): Likewise.
3860         (add_call_read_ops): Likewise.
3861         (get_asm_expr_operands): Likewise.
3862         (get_modify_stmt_operands): Likewise.
3863         (get_expr_operands): Likewise.
3864         (add_to_addressable_set): Likewise.
3865         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
3866         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
3867         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
3868         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
3869         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
3870         (tree_node_structure): Likewise.
3871         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
3872         handling of SFTs.
3873         (find_what_p_points_to): Likewise.
3874
3875 2008-05-08  Sa Liu  <saliu@de.ibm.com>
3876
3877         * config/spu/spu.md: Fixed subti3 pattern.
3878
3879 2008-05-08  Richard Guenther  <rguenther@suse.de>
3880
3881         PR middle-end/36154
3882         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
3883         sure to create a representative for trailing arrays for PTA.
3884
3885 2008-05-08  Richard Guenther  <rguenther@suse.de>
3886
3887         PR middle-end/36172
3888         * fold-const.c (operand_equal_p): Two objects which types
3889         differ in pointerness are not equal.
3890
3891 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
3892
3893         * calls.c (compute_argument_block_size): Add argument tree fndecl.
3894         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
3895         (emit_library_call_value_1): Add new variable fndecl initialized by
3896         NULL_TREE. It should be the decl type of orgfun, but this information
3897         seems not to be available here, so it uses the default calling abi.
3898         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
3899         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
3900         by TARGET_RETURN_IN_MEMORY.
3901         * config/i386/i386-interix.h: Likewise.
3902         * config/i386/i386.h: Likewise.
3903         * config/i386/i386elf.h: Likewise.
3904         * config/i386/ptx4-i.h: Likewise.
3905         * config/i386/sol2-10.h: Likewise.
3906         * config/i386/sysv4.h: Likewise.
3907         * config/i386/vx-common.h: Likewise.
3908         * config/cris/cris.h: Removed #if 0 clause.
3909         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
3910         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
3911         argument.
3912         (ix86_sol10_return_in_memory): Likewise.
3913         (ix86_i386elf_return_in_memory): New.
3914         (ix86_i386interix_return_in_memory): New.
3915         * config/mt/mt-protos.h (mt_return_in_memory): New.
3916         * config/mt/mt.c: Likewise.
3917         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
3918         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
3919         * config/bfin/bfin.h: Likewise.
3920         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
3921         argument.
3922         * config/bfin/bfin.c: Likewise.
3923         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
3924         * config/alpha/unicosmk.h: Likewise.
3925         * config/i386/cygming.h: Likewise.
3926         * config/iq2000/iq2000.h: Likewise.
3927         * config/mips/mips.h: Likewise.
3928         * config/mn10300/mn10300.h: Likewise.
3929         * config/rs6000/rs6000.h: Likewise.
3930         * config/score/score.h: Likewise.
3931         * config/spu/spu.h: Likewise.
3932         * config/v850/v850.h: Likewise.
3933         * defaults.h: Likewise.
3934         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
3935         * expr.c (emit_block_move): Adjust use of
3936         OUTGOING_REG_PARM_STACK_SPACE.
3937         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
3938         OUTGOING_REG_PARM_STACK_SPACE.
3939         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
3940
3941 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
3942
3943         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
3944         on OMP_RETURN for OMP_FOR.
3945
3946         PR debug/35896
3947         * dwarf2out.c (dw_expand_expr, common_check): Removed.
3948         (fortran_common): New function.
3949         (gen_variable_die): Call fortran_common instead of common_check,
3950         adjust for it returning tree instead of rtx.  Formatting.
3951
3952 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
3953
3954         PR rtl/7335
3955         PR rtl/33826
3956         * see.c (see_copy_insn): Copy new pure const attributes for new call.
3957         * c-decl.c (merge_decls): Ditto.
3958         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
3959         to RTL_CONST_OR_PURE_CALL_P.
3960         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
3961         Initialized DECL_LOOPING_CONST_PURE.
3962         (process_call_operands): Set tree_side_effects properly.
3963         * tree.h (TREE_READONLY_DECL_P): Removed.
3964         (DECL_IS_PURE): Renamed to DECL_PURE_P.
3965         (DECL_LOOPING_OR_CONST_P): New macro.
3966         (struct tree_function_decl): Added looping_const_or_pure_p.
3967         (ECF_*) Renumbered.
3968         (ECF_LOOPING_OR_CONST_P): New macro.
3969         * rtlanal.c (pure_const_p): Removed.
3970         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
3971         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
3972         to RTL_CONST_CALL_P.
3973         * ipa-pure-const.c (pure_const_state_e): Added looping field.
3974         (check_decl, check_tree, check_call, scan_function): Initialize
3975         looping.
3976         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
3977         (static_execute): Set looping true for recursive functions.
3978         Undo setting state to IPA_NEITHER for recursive functions.
3979         * cse.c (cse_insn): 
3980         * ifcvt.c (noce_can_store_speculate_p): Changed
3981         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
3982         RTL_CONST_OR_PURE_CALL_P.
3983         * dse.c (scan_insn): Ditto.
3984         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
3985         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
3986         RTL_CONST_OR_PURE_CALL_P.
3987         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
3988         pure_call_p to RTL_CONST_CALL_P.
3989         * gimplify.c (gimplify_call_expr): Clear side effects for
3990         non-looping pure and constant calls.
3991         * calls.c (emit_call_1): Set rtl flags from ecf flags.
3992         (flags_from_decl_or_type): Set ecf flags from decl flags.
3993         (initialize_argument_information): Turn off
3994         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
3995         Change const to pure if callee_copies is true rather than just
3996         turning off const.
3997         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
3998         way of marking pure calls.
3999         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
4000         Remove hack that was supposed to fix pr7335 and remove old
4001         way of marking pure calls.
4002         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
4003         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
4004         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
4005         RTL_CONST_OR_PURE_CALL_P.
4006         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
4007         * loop-invariant.c (find_exits, find_invariant_bb): Changed
4008         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
4009         * sched-deps.c (schedule_analyze): Ditto.
4010         * rtl.h (struct rtx_def): Use call field, unchanging field, and
4011         return_val field of calls to represent pure and const function info.
4012         (CONST_OR_PURE_CALL_P): Deleted macro.
4013         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
4014         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
4015         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
4016         TREE_READONLY.
4017         * tree-optimize.c (execute_fixup_cfg): Added test for
4018         ECF_LOOPING_CONST_OR_PURE.
4019         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
4020         DECL_PURE_P.
4021         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
4022         effects for looping pure or const calls.
4023         (verify_gimple_expr): Added verification code. 
4024         * config/alpha/alpha.c (alpha_legitimize_address,
4025         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
4026         RTL_CONST_CALL_P.
4027         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
4028         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
4029         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
4030         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
4031         RTL_CONST_OR_PURE_CALL_P.
4032         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
4033         and const calls to be deleted.
4034
4035 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
4036
4037         PR target/35714
4038         * config/i386/mmx.md (mmx_subv2sf3): New expander.
4039         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
4040         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
4041         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
4042         to handle nonimmediate operands.
4043         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
4044         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
4045         to handle nonimmediate operands.
4046         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
4047         (mmx_pmulhrwv4hi3): New expander.  Use
4048         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4049         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
4050         (sse2_umulv1siv1di3): New expander.  Use
4051         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4052         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
4053         (mmx_eq<mode>3): New expander.  Use
4054         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4055         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
4056         (mmx_uavgv8qi3): New expander.  Use
4057         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4058         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
4059         (mmx_uavgv4hi3): New expander.  Use
4060         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4061
4062         * config/i386/sse.md
4063         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
4064         to handle nonimmediate operands.
4065         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
4066         to handle nonimmediate operands.
4067         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
4068         to handle nonimmediate operands.
4069         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
4070         to handle nonimmediate operands.
4071         (sse2_unpckhpd_exp): New expander.  Use
4072         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4073         (sse2_unpcklpd_exp): New expander.  Use
4074         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4075         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
4076         to handle nonimmediate operands.
4077         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
4078         to handle nonimmediate operands.
4079         (*sse2_<plusminus_insn><mode>3): Rename from
4080         sse2_<plusminus_insn><mode>3 insn pattern.
4081         (sse2_<plusminus_insn><mode>3): New expander.  Use
4082         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4083         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
4084         (sse2_umulv2siv2di3): New expander.  Use
4085         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4086         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
4087         (sse4_1_mulv2siv2di3): New expander.  Use
4088         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4089         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
4090         (sse2_pmaddwd): New expander.  Use
4091         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4092         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
4093         (sse2_eq<mode>3): New expander.  Use
4094         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4095         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
4096         (sse4_1_eqv2di3): New expander.  Use
4097         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4098         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
4099         (sse2_uavgv16qi3): New expander.  Use
4100         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4101         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
4102         (sse2_uavgv16qi3): New expander.  Use
4103         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4104         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
4105         (sse2_uavgv8hi3): New expander.  Use
4106         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4107         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
4108         (ssse3_pmulhrswv8hi3): New expander.  Use
4109         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4110         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
4111         (ssse3_pmulhrswv4hi3): New expander.  Use
4112         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4113
4114         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
4115         (<sse>_vmmul<mode>3): Ditto.
4116         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
4117         (divv2df3): Ditto.
4118         (ssse3_pmaddubsw128): Use register_operand for operand 1.
4119         (ssse3_pmaddubsw): Ditto.
4120
4121         * config/i386/i386.c (struct_builtin_description)
4122         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
4123         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
4124         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
4125         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
4126         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
4127         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
4128         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
4129         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
4130         (ix86_fixup_binary_operands): Assert that src1
4131         and src2 must have the same mode when swapped.
4132         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
4133         and ix86_binary_operator_ok.  Do not force operands in registers
4134         when optimizing.
4135
4136 2008-05-07  Jan Hubicka  <jh@suse.cz>
4137
4138         * cgraph.c (dump_cgraph_node): Update.
4139         * cgraph.h (cgraph_local_info): Break out inline summary.
4140         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
4141         hook.
4142         * ipa-inline (inline_summary): New accestor function.
4143         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
4144         cgraph_decide_inlining, compute_inline_parameters): Update.
4145         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
4146
4147 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
4148
4149         Cleanup ColdFire scheduling support and add V4 pipeline model.
4150
4151         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
4152         (define_attr cpu): Add cfv4 value.
4153         (define_attr type, define_attr type1): Merge into a single 'type'
4154         attribute.  Update all uses.
4155         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
4156         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
4157         Update all uses.
4158         (define_attr opx_mem, define_attr opy_mem): Remove.
4159         (define_attr op_mem): Clean up, update comment.
4160         (define_attr size): Use specific values instead of general int.
4161         (define_attr guess, define_attr split): Remove.  Update all uses.
4162         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
4163         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
4164         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
4165         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
4166         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
4167         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
4168         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
4169         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
4170         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
4171         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
4172         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
4173         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
4174         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
4175         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
4176         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
4177         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
4178         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
4179         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
4180         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
4181         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
4182         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
4183         Update or set attributes.
4184         (stack_tie): New fake instruction.
4185
4186         * config/m68k/m68k.h (TUNE_CFV4): New macro.
4187         (m68k_sched_attr_size): Update declaration.
4188         (m68k_sched_attr_type2): Remove.
4189         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
4190         Declare new bypass predicates.
4191
4192         * config/m68k/m68k.c (m68k_sched_issue_rate,
4193         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
4194         implementations.
4195         (TARGET_SCHED_ISSUE_RATE,
4196         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
4197         (override_options): Handle scheduling for ColdFire V4 core.
4198         (m68k_expand_prologue): Emit stack_tie.
4199         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
4200         'OP_TYPE_FPN'.  Update all uses.
4201         (sched_guess_p): Remove.
4202         (sched_address_type): Handle symbolic addresses.
4203         (sched_get_operand): New static function.
4204         (sched_operand_type): Merge into sched_attr_op_type.
4205         (sched_attr_op_type): Handle FP registers, handle quick constants,
4206         update.
4207         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
4208         (m68k_sched_attr_size): Update.  Move logic to ...
4209         (sched_get_attr_size_int): New static function.
4210         (sched_get_opxy_mem_type): New static function.
4211         (m68k_sched_attr_op_mem): Update.
4212         (m68k_sched_attr_type2): Remove.
4213         (sched_cfv4_bypass_data): New static variable.
4214         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
4215         (m68k_sched_issue_rate): Implement scheduler hook.
4216         (struct _sched_ib: enabled_p): New field.
4217         (m68k_sched_variable_issue): Update.  Handle V4.
4218         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
4219         sched_dump_class_func_t, sched_dump_split_class,
4220         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
4221         sched_dump_dfa_class, m68k_sched_dump): Remove.
4222         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
4223         hook.
4224         (m68k_sched_init_global): Remove statisctics dumping, introduce
4225         sanity check that all instructions have pipeline reservations.  Handle
4226         ColdFire V4 core.
4227         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
4228         Handle ColdFire V4 core.
4229         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
4230         New static functions.
4231         (m68k_sched_address_bypass_p): New bypass predicate.
4232         (sched_get_indexed_address_scale): New static function.
4233         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
4234
4235         * cf.md: Update comments.
4236         (define_attr type2): Remove.  Use 'type' attribute instead.
4237         Update all uses.
4238         (cf_ib): Rename to cfv123_ib.  Update all uses.
4239         (cf_oep): Rename to cfv123_oep.  Update all uses.
4240         (cf_chr): Rename to cfv123_chr.  Update all uses.
4241         (cf_mem): Rename to cfv123_mem.  Update all uses.
4242         (cf_mac): Move to more appropriate place.
4243         (cfv123_guess): New automaton and cpu_unit.
4244         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
4245         Update uses of 'size' attribute.  Handle before reload scheduling.
4246         (cfv123_guess): New dummy reservation for unhandled instructions.
4247         (cfv4_*): Pipeline description of ColdFire V4 core.
4248         (ignore): New reservation to handle 'ignore' type.
4249
4250 2008-05-07  Ian Lance Taylor  <iant@google.com>
4251
4252         PR middle-end/36013
4253         * gimplify.c (find_single_pointer_decl_1): Don't look through
4254         indirections.
4255         (find_single_pointer_decl): Adjust comments.
4256
4257 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
4258
4259         PR middle-end/36137
4260         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
4261         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
4262
4263         PR middle-end/36106
4264         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
4265         integral type rather than floating point, then VIEW_CONVERT_EXPR
4266         to the floating point type.
4267
4268 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
4269
4270         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
4271         TFmode op0 to register.
4272
4273 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
4274
4275         * c-decl.c (grokdeclarator): Comment typo.
4276
4277 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
4278
4279         * tree-flow.h: Remove prototype for computed_goto_p.
4280         * tree-cfg.c (computed_goto_p): Make static.
4281
4282 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
4283
4284         PR target/35657
4285         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
4286         (contains_aligned_value_p): This.  Handle _Decimal128.
4287         (ix86_function_arg_boundary): Only align _Decimal128 to its
4288         natural boundary and handle it properly.
4289
4290 2008-05-06  Martin Jambor  <mjambor@suse.cz>
4291
4292         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
4293         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
4294         (ipcp_method_set_orig_node): Removed.
4295         (ipcp_cval_get_cvalue_type): Removed.
4296         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
4297         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
4298         (ipcp_cval_set_cvalue_type): Removed.
4299         (ipcp_cval_get_cvalue): Removed.
4300         (ipcp_cval_set_cvalue): Removed.
4301         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
4302         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
4303         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
4304         (ipcp_cval_meet): Renamed to ipa_lattice_meet
4305         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
4306         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
4307         (ipcp_get_ith_lattice): Changed parameters.
4308         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
4309         (ipcp_lattice_from_jfunc): Changed parameters.
4310         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
4311         (ipcp_method_cval_print): Added temporary variable info.
4312         (ipcp_redirect): Removed already unused local variable caller.
4313         (ipcp_redirect): New temporary variable orig_callee_info
4314         (ipcp_redirect): Removed newly unused local variable callee.
4315         (ipcp_redirect): Removed (a bit confusing) local variable type.
4316         (ipcp_insert_stage): Added local variable info.
4317         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
4318         renamed too
4319         (ipcp_formal_create): Removed.
4320         (ipcp_method_cval_set): Removed.
4321         (ipcp_propagate_stage): Renamed lattice variables.
4322         (ipcp_method_cval_set_cvalue_type): Removed.
4323         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
4324         (ipcp_print_all_lattices): Changed printed strings to refer to 
4325         lattices rather than cvals.
4326         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
4327         (ipcp_propagate_const): Changed formal parameters.
4328         (build_const_val): Changed formal parameters.
4329         (ipcp_insert_stage): Removed useless variable cvalue
4330         (build_const_val): Changed formal parameters.
4331         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
4332         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
4333         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
4334         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
4335         (ipcp_print_func_profile_counts): Changed string from "method" to 
4336         "function"
4337         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
4338         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
4339         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
4340         (ipcp_structures_print): Renamed to ipcp_print_all_structures
4341         (ipcp_profile_print): Renamed to ipcp_print_profile_data
4342         (ipcp_lat_is_const): Changed parameters and made inline.
4343         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
4344         (ipcp_redirect): Renamed to ipcp_need_redirect_p
4345         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
4346         the predicate condition directly
4347         (ipcp_propagate_stage): Added local variable args. Removed local
4348         variable callee.  (Both are mere code simplifications.)
4349         (ipcp_method_dont_insert_const): Renamed to
4350         ipcp_node_not_modifiable_p.
4351         (ipcp_node_not_modifiable_p): Made inline.
4352         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
4353         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
4354         (ipcp_print_all_lattices): Removed variable cvalue
4355         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
4356         Updated comments.
4357
4358 2008-05-06  Olivier Hainque  <hainque@adacore.com>
4359
4360         * tree-sra.c (try_instantiate_multiple_fields): Early return
4361         if field has POINTER_TYPE.
4362
4363 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
4364
4365         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
4366         by using 'q' specifier for instruction.
4367         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
4368
4369 2008-05-06  Anatoly Sokolov <aesok@post.ru>
4370
4371         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
4372         Change mode of zero_extract from QImode to HImode.
4373         (sign bit tests peepholes): (Ditto.).
4374
4375 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
4376
4377         * config/i386/mmx.md: Remove double backslashes from asm templates.
4378         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
4379         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
4380         to handle nonimmediate operands.
4381         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
4382         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
4383         to handle nonimmediate operands.
4384         (*mmx_<code>v2sf3_finite): New insn pattern.
4385         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
4386         (mmx_<code>v2sf3): New expander.  Use
4387         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4388         (mmx_<plusminus_insn><mode>3): New expander.  Use
4389         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4390         (*mmx_<plusminus_insn><mode>3): New insn pattern.
4391         (mmx_add<mode>3): Removed.
4392         (mmx_ssadd<mode>3): Ditto.
4393         (mmx_usadd<mode>3): Ditto.
4394         (mmx_sub<mode>3): Ditto.
4395         (mmx_sssub<mode>3): Ditto.
4396         (mmx_ussub<mode>3): Ditto.
4397         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
4398         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
4399         to handle nonimmediate operands.
4400         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
4401         insn pattern.
4402         (mmx_smulv4hi3_highpart): New expander.  Use
4403         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4404         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
4405         insn pattern.
4406         (mmx_umulv4hi3_highpart): New expander.  Use
4407         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4408         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
4409         (mmx_<code>v4hi3): New expander.  Use
4410         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4411         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
4412         (mmx_<code>v8qi3): New expander.  Use
4413         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4414         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
4415         (mmx_<code><mode>3): New expander.  Use
4416         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4417
4418 2008-05-05  Jan Hubicka  <jh@suse.cz>
4419
4420         PR tree-optimization/36118
4421         * passes.c (pass_init_dump_file): Fix dump header.
4422
4423 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4424
4425         PR middle-end/36141
4426         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
4427         VCE for function decls.
4428
4429 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
4430
4431         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
4432
4433 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
4434
4435         * config/i386/i386.md (sat_plusminus): New.
4436         (plusminus_insn): Likewise.
4437         (plusminus_mnemonic): Likewise.
4438         (addsub): Removed.
4439         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
4440         (*<addsub><mode>3_cc_overflow): Renamed to ...
4441         (*<plusminus_insn><mode>3_cc_overflow): This.
4442         (*<addsub>si3_zext_cc_overflow): Renamed to ...
4443         (*<plusminus_insn>si3_zext_cc_overflow): This.
4444
4445         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
4446         (<plusminus_insn><mode>3): This.
4447         (*<addsub><mode>3): Renamed to ...
4448         (*<plusminus_insn><mode>3): This.
4449         (<sse>_vm<addsub><mode>3): Renamed to ...
4450         (<sse>_vm<plusminus_insn><mode>3): This.
4451         (sse3_h<addsub>v4sf3): Renamed to ...
4452         (sse3_h<plusminus_insn>v4sf3): This.
4453         (sse3_h<addsub>v2df3): Renamed to ...
4454         (sse3_h<plusminus_insn>v2df3): This.
4455         (<plusminus_insn><mode>3): New.
4456         (*<plusminus_insn><mode>3): Likewise.
4457         (sse2_<plusminus_insn><mode>3): Likewise.
4458         (add<mode>): Removed.
4459         (*add<mode>3): Likewise.
4460         (sse2_ssadd<mode>3): Likewise.
4461         (sse2_usadd<mode>3): Likewise.
4462         (sub<mode>3): Likewise.
4463         (*sub<mode>3): Likewise.
4464         (sse2_sssub<mode>3): Likewise.
4465         (sse2_ussub<mode>3): Likewise.
4466
4467 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
4468
4469         * gthr-single.h: Add in required interface elements as per gthr.h.
4470         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
4471         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
4472         Generalize UNUSED macro. 
4473         (__gthread_once): Add.
4474         (__gthread_key_create): Add.
4475         (__gthread_key_delete): Add.
4476         (__gthread_getspecific): Add.
4477         (__gthread_setspecific): Add.
4478         
4479 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
4480
4481         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
4482         the same size types for the indirect reference on the rhs, then
4483         create a VCE.
4484
4485 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
4486
4487         * config/i386/i386.md
4488         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
4489         one insn template instead of template series.
4490         (*xordi_1_rex64): Ditto.
4491         (*xordi_2_rex64): Ditto.
4492
4493 2008-05-05  Ira Rosen  <irar@il.ibm.com>
4494
4495         PR tree-optimization/36119
4496         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
4497         in case of SLP.
4498
4499 2008-06-04  Jan Hubicka  <jh@suse.cz>
4500
4501         tree-optimization/36100
4502         * tree-pass.h (pass_O0_always_inline): Declare.
4503         * ipa-inline.c (inline_transform): Remove dead code.
4504         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
4505         pass_O0_always_inline): New.
4506         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
4507
4508 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
4509
4510         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
4511         mnemonic in this_param move for TARGET_64BIT.
4512
4513 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
4514
4515         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
4516         (*strmovsi_rex_1): Ditto.
4517         (*strsetsi_1): Ditto.
4518         (*strsetsi_rex_1): Ditto.
4519
4520         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
4521         adddicc expanders using SWI mode iterator.
4522
4523 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
4524
4525         PR target/36121
4526         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
4527         argument handling.
4528
4529 2008-05-04  David S. Miller  <davem@davemloft.net>
4530
4531         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
4532         (sparc*-*-linux*): Use linux.h in tm_file.
4533         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
4534         compiler defaulting to 32-bit.
4535         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
4536         no longer needed.
4537         * config/sparc/linux.h: Remove definitions now obtained
4538         properly from linux.h
4539         * config/sparc/linux64.h: Likewise.
4540         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
4541         don't want this setting for 32-bit builds in a biarch compiler.
4542         * doc/install.texi: Add sparc-linux to list of targets
4543         supporting --enable-targets=all.
4544
4545 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
4546
4547         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
4548
4549 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
4550
4551         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
4552         after V4SI_FTYPE_V8HI.
4553         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
4554         case V4SI_FTYPE_V2DF.
4555
4556 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
4557
4558         * doc/invoke.texi (max-flow-memory-locations): Removed.
4559         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
4560         
4561 2008-05-03  Richard Guenther  <rguenther@suse.de>
4562
4563         PR middle-end/34973
4564         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
4565
4566 2008-05-02  David S. Miller  <davem@davemloft.net>
4567
4568         * config.gcc (need_64bit_hwint): Document libcpp dependency.
4569
4570 2008-05-02  Simon Baldwin <simonb@google.com>
4571
4572         PR bootstrap/36108
4573         * c-common.h (warn_array_subscript_range): Removed.
4574         * c-common.c (warn_array_subscript_range): Ditto.
4575         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
4576         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
4577
4578 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
4579
4580         * config/i386/i386.c (ix86_special_builtin_type): New.
4581         (bdesc_special_args): Likewise.
4582         (ix86_expand_special_args_builtin): Likewise.
4583         (ix86_init_mmx_sse_builtins): Updated.
4584         (ix86_expand_builtin): Updated.
4585         (ix86_expand_store_builtin): Removed.
4586         (ix86_expand_unop_builtin): Likewise.
4587
4588         * config/i386/mm3dnow.h (__v2sf): Moved to ...
4589         * config/i386/mmintrin.h (__v2sf): Here.
4590
4591         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
4592         const __v2sf.
4593         (_mm_loadl_pi): Likewise.
4594         (_mm_storeh_pi): Replace __v2si with __v2sf.
4595         (_mm_storel_pi): Likewise.
4596
4597         * doc/extend.texi: Correct __builtin_ia32_loadhps,
4598         __builtin_ia32_loadlps, __builtin_ia32_storehps,
4599         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
4600         __builtin_ia32_loadlpd.
4601
4602 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
4603
4604         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
4605         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
4606         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
4607         (ix86_init_mmx_sse_builtins): Updated.
4608         (ix86_expand_args_builtin): Likewise.
4609         (ix86_expand_builtin): Likewise.
4610         (ix86_expand_unop1_builtin): Renamed to ...
4611         (ix86_expand_unop_vec_merge_builtin): This.
4612
4613 2008-05-01  Jan Hubicka  <jh@suse.cz>
4614
4615         PR bootstrap/36100
4616         * ipa-inline.c (inline_generate_summary): Make static.
4617         (inline_transform): Do not call inlining at -O0; make static.
4618         * passes.c (execute_todo): Add sanity check.
4619         (execute_one_ipa_transform_pass): Execute proper flags.
4620
4621 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
4622
4623         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
4624         (DECL_NONADDRESSABLE_P): Likewise.
4625         * alias.c (record_component_aliases): Fix comment.
4626
4627 2008-05-01  Simon Baldwin <simonb@google.com>
4628
4629         * c-common.h (warn_array_subscript_range): New function.
4630         * c-common.c (warn_array_subscript_range): Ditto.
4631         * tree-vrp.c (check_array_ref): Corrected code to agree with
4632         comment, ignoring only arrays of size 0 or size 1.
4633         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
4634
4635 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
4636
4637         * config/i386/i386.c (ix86_builtin_type): Replace
4638         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
4639         (bdesc_args): Updated.
4640         (ix86_init_mmx_sse_builtins): Likewise.
4641         (ix86_expand_args_builtin): Likewise.
4642
4643         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
4644         with __v1di.
4645
4646         * doc/extend.texi: Correct __builtin_ia32_palignr.
4647
4648 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
4649
4650         PR target/36095
4651         * config/i386/i386.c (bdesc_crc32): Removed.
4652         (ix86_expand_crc32): Likewise.
4653         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
4654         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
4655         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
4656         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
4657         UINT_FTYPE_UINT_UCHAR.
4658         (bdesc_args): Updated. Add crc32 builtins.
4659         (ix86_init_mmx_sse_builtins): Updated.
4660         (ix86_expand_args_builtin): Updated to support subreg.
4661
4662         * doc/extend.texi: Correct __builtin_ia32_crc32di.
4663
4664 2008-05-01  Jan Hubicka  <jh@suse.cz>
4665
4666         * tree-pass.h (opt_pass): Add IPA_PASS.
4667         (varpool_node, cgraph_node): Forward declare.
4668         (ipa_opt_pass): Define.
4669         (pass_ipa_inline): Turn into ipa_opt_pass.
4670         (pass_apply_inline): Remove.
4671         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
4672         (apply_inline): Turn into ....
4673         (inline_transform): ... this one.
4674         (inline_generate_summary): New function.
4675         (pass_apply_inline): Remove.
4676         * function.h (ipa_opt_pass): Forward declare structure; typedef;
4677         vector.
4678         (struct function): Add ipa_transforms_to_apply.
4679         * passes.c (register_one_dump_file): Work on IPA_PASS.
4680         (init_optimization_passes): Remove pass_inline_parameters and
4681         pass_apply_inline.
4682         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
4683         (execute_one_pass) ... here; apply transforms when possible.
4684         (add_ipa_transform_pass, execute_ipa_summary_asses,
4685         execute_one_ipa_transform_pass): New.
4686         (execute_ipa_pass_list): Update for IPA_PASS type.
4687
4688 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
4689
4690         * config/i386/i386.c (ix86_builtin_type): Add
4691         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
4692         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
4693         (bdesc_args): Add SSE4a builtins.
4694         (ix86_init_mmx_sse_builtins): Updated.
4695         (ix86_expand_args_builtin): Likewise.
4696         (ix86_expand_builtin): Likewise.
4697
4698 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
4699
4700         * config/i386/i386.c (ix86_builtin_type): Add
4701         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
4702         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
4703         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
4704         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
4705         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
4706         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
4707         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
4708         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
4709         and DI_FTYPE_DI_DI_INT.
4710         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
4711         (ix86_init_mmx_sse_builtins): Updated.
4712         (ix86_expand_args_builtin): Likewise.
4713         (ix86_expand_builtin): Likewise.
4714         (ix86_expand_binop_imm_builtin): Removed.
4715
4716         * doc/extend.texi: Correct __builtin_ia32_palignr128.
4717
4718 2008-04-30  Richard Guenther  <rguenther@suse.de>
4719
4720         PR tree-optimization/32921
4721         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
4722
4723 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
4724
4725         * config/arm/arm.c (arm_unwind_emit): Use
4726         crtl->all_throwers_are_sibcalls instead of
4727         cfun->all_throwers_are_sibcalls.
4728         (arm_output_fn_unwind): Likewise.
4729         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
4730         instead of cfun->uses_pic_offset_table.
4731         (frv_expand_prologue): Likewise.
4732         (frv_frame_pointer_required): Likewise.
4733         (frv_expand_fdpic_call): Likewise.
4734         (frv_emit_movsi): Likewise.
4735         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
4736         cfun->returns_pcc_struct instead of
4737         current_function_returns_pcc_struct.
4738         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
4739         instead of cfun->calls_eh_return.
4740         (m32c_pushm_popm): Likewise.
4741         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
4742         "extern" declaration.
4743
4744 2008-04-30  Richard Guenther  <rguenther@suse.de>
4745
4746         PR tree-optimization/21636
4747         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
4748         constant address.
4749         (evaluate_stmt): Print the likely value.
4750         (ccp_visit_stmt): Avoid excessive vertical spacing.
4751
4752 2008-04-30  Rafael Espindola  <espindola@google.com>
4753
4754         * builtins.c (fold_call_expr): Return realret.
4755         * tree-ssa-threadedge.c
4756         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
4757         __builtin_object_size.
4758
4759 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
4760
4761         * gcc.c (wrapper_string): New variable.
4762         (insert_wrapper): New function.
4763         (execute): New option -wrapper.
4764         * doc/invoke.texi (Overall Options): New driver option -wrapper.
4765
4766 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
4767
4768         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
4769         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
4770         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
4771         from...
4772         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
4773         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
4774         config/rs6000/e500crtres64gprctr.asm,
4775         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
4776         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
4777         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
4778         config/rs6000/e500crtsav64gprctr.asm,
4779         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
4780         config/rs6000/e500crtsavg64gprctr.asm: New files.
4781         * config/rs6000/t-ppccomm: Add build rules for new files.
4782         (LIB2FUNCS_STATIC_EXTRA): Add new files.
4783         * config/rs6000/t-netbsd: Add build rules for new files.
4784         (LIB2FUNCS_STATIC_EXTRA): New variable.
4785         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
4786         (CRTSAVRES_DEFAULT_SPEC): Likewise.
4787         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
4788
4789 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
4790
4791         * config/i386/i386.c (ix86_builtin_type): Add
4792         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
4793         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
4794         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
4795         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
4796         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
4797         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
4798         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
4799         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
4800         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
4801         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
4802         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
4803         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
4804         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
4805         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
4806         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
4807         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
4808         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
4809         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
4810         V1DI_FTYPE_V2SI_V2SI.
4811         (bdesc_2arg): Moved to ...
4812         (bdesc_args): Here.
4813         (ix86_init_mmx_sse_builtins): Updated.
4814         (ix86_expand_args_builtin): Updated.  Take a pointer
4815         to const struct builtin_description.  Handle comparison
4816         builtin functions.
4817         (ix86_expand_sse_compare): Take a new argument for swapping operands.
4818         (ix86_expand_builtin): Updated.
4819
4820         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
4821         (ssse3_pmaddubsw128): This.
4822         (ssse3_pmaddubswv4hi3): Renamed to ...
4823         (ssse3_pmaddubsw): This.
4824
4825         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
4826         (__builtin_ia32_packssdw128): Likewise.
4827         (__builtin_ia32_packuswb128): Likewise.
4828         (__builtin_ia32_pmaddubsw): Likewise.
4829         (__builtin_ia32_pmaddubsw128): Likewise.
4830
4831 2008-04-30  Richard Guenther  <rguenther@suse.de>
4832
4833         PR tree-optimization/14847
4834         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
4835         (recognize_bits_test): Use it.
4836         (recognize_single_bit_test): Likewise.
4837
4838 2008-04-30  Martin Jambor  <mjambor@suse.cz>
4839
4840         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
4841         instead of setting number of formal parameters to zero.
4842         (ipcp_init_stage): Do not set the number of actual parameters to zero 
4843         either.
4844         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
4845         which are called with variable number of arguments.
4846         (ipcp_insert_stage): Explicitely skipping all nodes which are
4847         called with variable number of arguments.
4848         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
4849         number of parameters.
4850
4851         * ipa-prop.h (struct ipa_node_params): Added flag
4852         called_with_var_arguments
4853         (ipa_set_param_count): Added.  Changed sole setter to use it.
4854         (ipa_get_param_count): Added.  All readers of param_count
4855         converted to use it instead.
4856         (ipa_set_called_with_variable_arg): Added.
4857         (ipa_is_called_with_var_arguments): Added.
4858         (ipa_get_ith_param): Added.  All readers of param_decls converted
4859         to use it instead.
4860         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
4861         changed to use it. 
4862         (ipa_get_cs_argument_count): Added, all readers of argument_count
4863         changed to cal it.
4864         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
4865         to use it.
4866         
4867         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
4868         (struct ipcp_lattice): Renamed cval_type to type
4869         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
4870
4871         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
4872         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
4873         (ipcp_insert_stage): Changed the type of variable cvalue to tree
4874         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
4875         (build_const_val): Changed the type of parameter cvalue to tree
4876         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
4877         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
4878         
4879         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
4880         constant 
4881
4882         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
4883         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
4884         (ipa_add_method): Renamed to ipa_push_func_to_list
4885         (ipa_remove_method): Renamed to ipa_pop_func_from_list
4886         (ipa_callsite_param_count): Removed.
4887         (ipa_callsite_param_count_set): Removed.
4888         (ipa_callsite_param): Removed.
4889         (ipa_callsite_callee): Removed.
4890         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
4891         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
4892         (ipa_method_formal_count): Removed.
4893         (ipa_method_formal_count_set): Removed.
4894         (ipa_method_get_tree): Removed.
4895         (ipa_method_tree_map_create): Removed.
4896         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
4897         (ipa_create_param_decls_array): Creates the array itself
4898         (ipa_create_param_decls_array): Temporary variable info instead of 
4899         a few dereferences.
4900         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
4901         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
4902         (get_type): Removed.
4903         (ipa_jf_get_info_type): Removed.
4904         (ipa_node_create): Renamed to ipa_create_node_params
4905         (ipa_free): Renamed to ipa_free_all_node_params
4906         (ipa_nodes_create): Renamed to ipa_create_all_node_params
4907         (ipa_edges_create): Renamed to ipa_create_all_edge_args
4908         (ipa_edges_free): Renamed to ipa_free_all_edge_args
4909         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
4910         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
4911         ipa_free_all_edge_args
4912         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
4913         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
4914         (ipa_create_methodlist_node): Removed.
4915         (ipa_methodlist_method): Removed.
4916         (ipa_methodlist_method_set): Removed.
4917         (ipa_methodlist_next_method): Removed.
4918         (ipa_methodlist_next_method_set): Removed.
4919         (ipa_method_is_modified): Removed.
4920         (ipa_method_modify_create): Removed.
4921         (ipa_method_modify_init): Temporary variable info instead of a few 
4922         dereferences.
4923         (ipa_detect_param_modifications): Temporary variable info instead of 
4924         a few dereferences.
4925         (ipa_compute_jump_functions): Temporary variable info instead of 
4926         a few dereferences.
4927         (ipa_method_modify_set): Removed.
4928         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
4929         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
4930         than craph_node as the first parameter.
4931         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
4932         (ipa_method_modify_init): Removed.
4933         (ipa_compute_jump_functions): Added a temp variable instead of 
4934         repeatadly dereferencing the cgraph_edge.aux pointer
4935         (ipa_callsite_param_set_type): Removed.
4936         (ipa_compute_jump_functions): i renamed to index and moved to 
4937         an inner block
4938         (ipa_callsite_param_set_info_type_formal): Removed.
4939         (ipa_callsite_param_set_info_type): Removed.
4940         (ipa_callsite_param_map_create): Removed.
4941         (ipa_callsite_tree): Removed.
4942         (ipa_callsite_caller): Removed.
4943         (ipa_pop_func_from_list): return_method removed to return_func
4944
4945         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
4946         prefixed all values with IPA_. Changed all users.
4947         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
4948         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
4949         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
4950         (union parameter_info): Renamed to jump_func_value.
4951         (union jump_func_value): Renamed value to constant
4952         (struct ipa_jump_func): Renamed info_type to value
4953         (struct ipa_node): Renamed to ipa_node_params
4954         (struct ipa_node_params): Renamed ipa_arg_num to param_count
4955         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
4956         (struct ipa_node_params): Renamed ipa_mod to modified_flags
4957         (struct ipa_edge): Renamed to ipa_edge_args
4958         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
4959         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
4960         (struct ipa_methodlist): Renamed to ipa_func_list
4961         (struct ipa_func_list): method_p renamed to node, next_method
4962         renamed to next
4963         (ipa_methodlist_p): Removed, switched all users to struct pointer
4964         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
4965
4966 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
4967
4968         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
4969         (rs6000_emit_epilogue): Use backchain to restore only when we
4970         have a large frame.  Make use of frame pointer to restore if we
4971         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
4972
4973 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
4974
4975         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
4976         Add mode to zero_extract.
4977         (sign bit tests peepholes): (Ditto.).
4978
4979 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
4980
4981         * config/i386/i386.c (ix86_builtins): Replace Prescott New
4982         Instructions in comments with SSE3.
4983         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
4984         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
4985         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
4986         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
4987         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
4988         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
4989         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
4990         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
4991         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
4992         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
4993         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
4994         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
4995         (bdesc_sse_args): Renamed to ...
4996         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
4997         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
4998         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
4999         IX86_BUILTIN_FABSQ.
5000         (bdesc_1arg): Moved to ...
5001         (bdesc_args): Here.
5002         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
5003         Instructions in comments with SSE3.
5004         (ix86_expand_sse_operands_builtin): Renamed to ...
5005         (ix86_expand_args_builtin): This.  Updated.
5006         (ix86_expand_unop1_builtin): Update comments.
5007         (ix86_expand_builtin): Updated.
5008
5009 2008-04-29  Richard Guenther  <rguenther@suse.de>
5010
5011         PR tree-optimization/36078
5012         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
5013         Update virtual SSA form after cleaning up the CFG.
5014
5015 2008-04-29  Richard Guenther  <rguenther@suse.de>
5016
5017         PR middle-end/15255
5018         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
5019
5020 2008-04-29  Richard Guenther  <rguenther@suse.de>
5021
5022         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
5023         (compute_may_aliases): Do not call finalize_ref_all_pointers.
5024         (compute_flow_insensitive_aliasing): Do not treat
5025         PTR_IS_REF_ALL pointers special.
5026         (get_smt_for): Likewise.
5027         (may_alias_p): Re-structure.
5028         (is_escape_site): A ref-all pointer conversion is not an escape site.
5029         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
5030         PTR_IS_REF_ALL pointers special.
5031         * tree-ssa-structalias.h (struct alias_info): Remove
5032         ref_all_symbol_mem_tag field.
5033         (PTR_IS_REF_ALL): Remove.
5034
5035 2008-04-29  Richard Guenther  <rguenther@suse.de>
5036
5037         PR middle-end/36077
5038         * fold-const.c (extract_muldiv_1): In combining division constants
5039         make sure to never overflow.
5040
5041 2008-04-29  Nick Clifton  <nickc@redhat.com>
5042
5043         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
5044
5045 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5046
5047         PR bootstrap/35169
5048         * optc-gen.awk: Work around HP-UX/IA awk bug.
5049
5050 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
5051
5052         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
5053         2008-04-25 commit.
5054
5055 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
5056
5057         PR target/36073
5058         * config/i386/i386.md
5059         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
5060         Change operand 1 predicate to nonimmediate_operand.
5061
5062 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
5063
5064         PR debug/36060
5065         * dwarf2out.c (struct die_struct): Mark as chain_circular through
5066         die_sub field.
5067         * gengtype.c (walk_type, write_func_for_structure): Handle
5068         chain_circular.
5069         * doc/gty.texi: Document chain_circular.
5070
5071 2008-04-28  Richard Guenther  <rguenther@suse.de>
5072
5073         PR tree-optimization/36066
5074         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
5075         SCEV and loop.
5076
5077 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
5078
5079         PR target/36064
5080         * config/i386/i386.md
5081         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
5082         Use match_scratch instead of match_operand for operands 3 and 4.
5083
5084 2008-04-27  Richard Guenther  <rguenther@suse.de>
5085
5086         PR tree-optimization/18754
5087         PR tree-optimization/34223
5088         * tree-pass.h (pass_complete_unrolli): Declare.
5089         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
5090         loop size before and after unconditionally of UL_NO_GROWTH in effect.
5091         Rewrite loop into loop closed SSA form if it is not already.
5092         (tree_unroll_loops_completely): Re-structure to iterate over
5093         innermost loops with intermediate CFG cleanups.
5094         Unroll outermost loops only if requested or the code does not grow
5095         doing so.
5096         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
5097         loops are available.
5098         (tree_vectorize): Instead do so here.
5099         (tree_complete_unroll): Also unroll outermost loops.
5100         (tree_complete_unroll_inner): New function.
5101         (gate_tree_complete_unroll_inner): Likewise.
5102         (pass_complete_unrolli): New pass.
5103         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
5104         uses outside of the loop.
5105         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
5106         form if it is available.  
5107         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
5108         * passes.c (init_optimization_passes): Schedule complete inner
5109         loop unrolling pass before the first CCP pass after final inlining.
5110
5111 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
5112
5113         * targhooks.h (default_emutls_var_fields,
5114         default_emutls_var_init): Declare.
5115         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
5116         * target.h (struct gcc_target): Add struct emutls member.
5117         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
5118         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
5119         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
5120         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
5121         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
5122         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
5123         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
5124         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
5125         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
5126         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
5127         emit debug information.
5128         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
5129         * varasm.c: Include targhooks.h.
5130         (emutls_object_section, emutls_tmpl_section): New.
5131         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
5132         (EMUTLS_SEPARATOR): New.
5133         (prefix_name): New.
5134         (get_emutls_object_name): New.
5135         (default_emutls_var_fields): New, broken out of ...
5136         (get_emutls_object_type): ... here.  Adjust to use target hooks.
5137         (get_emutls_init_templ_addr): Adjust to use target hooks.
5138         (emutls_decl): Adjust to use target hooks.
5139         (emutls_finish): Likewise.
5140         (default_emutls_var_init): New, broken out of ...
5141         (assemble_variable): ... here.  Adjust to use target hooks.
5142         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
5143         SECCAT_EMUTLS_TMPL.
5144         * c-common.c (handle_section_attribute): Prevent overriding
5145         sections for emulated tls with special sections.
5146         * config/i386/i386.c (x86_64_elf_select_section): Add
5147         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
5148         (x86_64_elf_unique_section): Likewise.
5149         * config/vxworks.c: Include tree.h.
5150         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
5151         (vxworks_override_options): Set TLS scheme.
5152         * doc/tm.texi (Emulated TLS): New node.
5153
5154 2008-04-26  Simon Baldwin <simonb@google.com>
5155
5156         PR c/35652
5157         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
5158         with propagated string constants.
5159
5160 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
5161
5162         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
5163         constraint for operand 2 when operand 0 is memory operand.
5164         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
5165         operand 0 is memory operand.
5166         (fix_trunc<mode>_i387_with_temp): Ditto.
5167         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
5168         operand 2 when operand 1 is memory operand.
5169         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
5170         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
5171         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
5172         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
5173         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
5174         operands 2,3 and 4 when operand 1 is memory operand.
5175         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
5176         is memory operand.
5177         (fistdi2_floor_with_temp): Ditto.
5178         (fist<mode>2_floor_with_temp): Ditto.
5179         (fistdi2_ceil_with_temp): Ditto.
5180         (fist<mode>2_ceil_with_temp): Ditto.
5181         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
5182
5183 2008-04-26  David Daney  <ddaney@avtrex.com>
5184
5185         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
5186         unspec_volitile.
5187         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
5188         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
5189         UNSPEC_UPDATE_GOT_VERSION): Renumber.
5190         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
5191         (compare_and_swap_12): New insn.
5192         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
5193         * config/mips/mips.c (mips_force_binary): New function.
5194         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
5195         (mips_expand_compare_and_swap_12): New function.
5196         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
5197
5198 2008-04-25  Jan Hubicka  <jh@suse.cz>
5199
5200         PR testsuite/35843
5201         * cfgexpand.c (pass_expand): Turn into RTL pass.
5202         * passes.c (execute_one_pass): Do pass typechecking after execution.
5203         * tree-pass.h (pass_expand): Turn into RTL pass.
5204
5205         * function.h (struct rtl_data): Move here fields
5206         accesses_prior_frames, calls_eh_return, saves_all_registers,
5207         has_nonlocal_goto, has_asm_statement, is_thunk,
5208         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
5209         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
5210         arg_pointer_save_area_init from struct function; turn into bool.
5211         (struct function): Move
5212         calls_eh_return, saves_all_registers, has_nonlocal_goto,
5213         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
5214         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
5215         tail_call_emit, arg_pointer_save_area_init
5216         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
5217         (current_function_returns_struct, current_function_returns_pcc_struct,
5218         current_function_calls_setjmp, current_function_calls_alloca,
5219         current_function_accesses_prior_frames,
5220         current_function_calls_eh_return, current_function_is_thunk,
5221         current_function_stdarg, current_function_profile,
5222         current_function_limit_stack, current_function_uses_pic_offset_table,
5223         current_function_uses_const_pool, current_function_has_nonlocal_label,
5224         current_function_saves_all_registers,
5225         current_function_has_nonlocal_goto,
5226         current_function_has_asm_statement): Remove accesor macros.
5227         * ra-conflict.c (global_conflicts): Update.
5228         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
5229         (suitable_for_tail_call_opt_p): Update.
5230         * builtins.c (expand_builtin_return_addr): Update.
5231         (expand_builtin_setjmp_setup): Update.
5232         (expand_builtin_nonlocal_goto): Update.
5233         * final.c (final_start_function): Update.
5234         (profile_function): Update.
5235         (leaf_function_p): Update.
5236         (only_leaf_regs_used): Update.
5237         * df-scan.c (df_get_exit_block_use_set): Update.
5238         * dojump.c (clear_pending_stack_adjust): Update.
5239         * tree-stdarg.c (gate_optimize_stdarg): Update.
5240         * gimple-low.c (lower_function_body): Update.
5241         * global.c (compute_regsets): Update.
5242         (global_alloc): Update.
5243         * dwarf2out.c (dwarf2out_begin_prologue): Update.
5244         * expr.c (expand_assignment): Update.
5245         * dse.c (dse_step0): Update.
5246         (dse_step1): Update.
5247         * c-decl.c (store_parm_decls): Update.
5248         * local-alloc.c (combine_regs): Update.
5249         (find_free_reg): Update.
5250         * function.c (assign_parms_augmented_arg_list): Update.
5251         (assign_parm_find_data_types): Update.
5252         (assign_parms): Update.
5253         (allocate_struct_function): Update.
5254         (expand_function_start): Update.
5255         (expand_function_end): Update.
5256         (get_arg_pointer_save_area): Update.
5257         (thread_prologue_and_epilogue_insns): Update.
5258         (rest_of_match_asm_constraints): Update.
5259         * stor-layout.c (variable_size): Update.
5260         * gcse.c (gcse_main): Update.
5261         (bypass_jumps): Update.
5262         * gimplify.c (gimplify_function_tree): Update.
5263         * calls.c (emit_call_1): Update.
5264         (expand_call): Update.
5265         * bt-load.c (compute_defs_uses_and_gen): Update.
5266         * except.c (sjlj_assign_call_site_values): Update.
5267         (sjlj_emit_function_enter): Update.
5268         (can_throw_external): Update.
5269         (set_nothrow_function_flags): Update.
5270         (expand_builtin_unwind_init): Update.
5271         (expand_eh_return): Update.
5272         (convert_to_eh_region_ranges): Update.
5273         (output_function_exception_table): Update.
5274         * emit-rtl.c (gen_tmp_stack_mem): Update.
5275         * cfgexpand.c (expand_used_vars): Update.
5276         (tree_expand_cfg): Update.
5277         * cfgcleanup.c (rest_of_handle_jump): Update.
5278         * explow.c (allocate_dynamic_stack_space): Update.
5279         * varasm.c (assemble_start_function): Update.
5280         (force_const_mem): Update.
5281         (mark_constant_pool): Update.
5282         * tree-optimize.c (tree_rest_of_compilation): Update.
5283         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
5284         * tree-cfg.c (notice_special_calls): Update.
5285         (is_ctrl_altering_stmt): Update.
5286         (tree_can_make_abnormal_goto): Update.
5287         (tree_purge_dead_abnormal_call_edges): Update.
5288         * config/alpha/predicates.md: Update.
5289         * config/alpha/alpha.c (alpha_sa_mask): Update.
5290         (alpha_sa_size): Update.
5291         (alpha_does_function_need_gp): Update.
5292         (alpha_expand_prologue): Update.
5293         (alpha_start_function): Update.
5294         (alpha_output_function_end_prologue): Update.
5295         (alpha_expand_epilogue): Update.
5296         * config/frv/frv.c (frv_stack_info): Update.
5297         (frv_expand_epilogue): Update.
5298         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
5299         (s390_register_info): Update.
5300         (s390_frame_info): Update.
5301         (s390_init_frame_layout): Update.
5302         (s390_can_eliminate): Update.
5303         (save_gprs): Update.
5304         * config/spu/spu.c (spu_split_immediate): Update.
5305         (need_to_save_reg): Update.
5306         (spu_expand_prologue): Update.
5307         (spu_expand_epilogue): Update.
5308         * config/sparc/sparc.md: Update.
5309         * config/sparc/sparc.c (eligible_for_return_delay): Update.
5310         (sparc_tls_got): Update.
5311         (legitimize_pic_address): Update.
5312         (sparc_emit_call_insn): Update.
5313         (sparc_expand_prologue): Update.
5314         (output_return): Update.
5315         (print_operand): Update.
5316         (sparc_function_ok_for_sibcall): Update.
5317         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
5318         * config/m32r/m32r.md: Update.
5319         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
5320         (m32r_compute_frame_size): Update.
5321         (m32r_expand_prologue): Update.
5322         (m32r_expand_epilogue): Update.
5323         (m32r_legitimize_pic_address): Update.
5324         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
5325         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
5326         * config/i386/i386.c (ix86_frame_pointer_required): Update.
5327         (gen_push): Update.
5328         (ix86_save_reg): Update.
5329         (ix86_compute_frame_layout): Update.
5330         (ix86_expand_prologue): Update.
5331         (ix86_expand_epilogue): Update.
5332         * config/sh/sh.c (output_stack_adjust): Update.
5333         (calc_live_regs): Update.
5334         (sh5_schedule_saves): Update.
5335         (sh_expand_prologue): Update.
5336         (sh_expand_epilogue): Update.
5337         (sh_setup_incoming_varargs): Update.
5338         (sh_allocate_initial_value): Update.
5339         (sh_get_pr_initial_val): Update.
5340         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
5341         * config/sh/sh.md (label:): Update.
5342         * config/avr/avr.c (out_movhi_mr_r): Update.
5343         * config/crx/crx.h (enum): Update.
5344         * config/xtensa/xtensa.h (along): Update.
5345         * config/stormy16/stormy16.c Update.
5346         (xstormy16_compute_stack_layout): Update.
5347         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
5348         (fr30_expand_prologue): Update.
5349         * config/cris/cris.c (cris_conditional_register_usage): Update.
5350         (cris_reg_saved_in_regsave_area): Update.
5351         (cris_initial_frame_pointer_offset): Update.
5352         (cris_simple_epilogue): Update.
5353         (cris_expand_prologue): Update.
5354         (cris_expand_epilogue): Update.
5355         (cris_expand_pic_call_address): Update.
5356         (cris_asm_output_symbol_ref): Update.
5357         (cris_asm_output_label_ref): Update.
5358         * config/cris/cris.md Update.
5359         * config/iq2000/iq2000.c (compute_frame_size): Update.
5360         (iq2000_expand_epilogue): Update.
5361         * config/mt/mt.h (save_direction): Update.
5362         * config/mn10300/mn10300.c (mn10300_function_value): Update.
5363         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
5364         (ia64_secondary_reload_class): Update.
5365         * config/m68k/m68k.c (m68k_save_reg): Update.
5366         (m68k_expand_prologue): Update.
5367         (m68k_expand_epilogue): Update.
5368         (legitimize_pic_address): Update.
5369         * config/rs6000/rs6000.c (rs6000_got_register): Update.
5370         (first_reg_to_save): Update.
5371         (first_altivec_reg_to_save): Update.
5372         (compute_vrsave_mask): Update.
5373         (compute_save_world_info): Update.
5374         (rs6000_stack_info): Update.
5375         (spe_func_has_64bit_regs_p): Update.
5376         (rs6000_ra_ever_killed): Update.
5377         (rs6000_emit_eh_reg_restore): Update.
5378         (rs6000_emit_allocate_stack): Update.
5379         (rs6000_emit_prologue): Update.
5380         (rs6000_emit_epilogue): Update.
5381         (rs6000_output_function_epilogue): Update.
5382         (output_profile_hook): Update.
5383         (rs6000_elf_declare_function_name): Update.
5384         * config/rs6000/rs6000.h (rs6000_args): Update.
5385         * config/rs6000/rs6000.md: Update.
5386         * config/mcore/mcore.c (mcore_expand_prolog): Update.
5387         * config/arc/arc.c (arc_output_function_epilogue): Update.
5388         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
5389         * config/darwin.c (machopic_function_base_name): Update.
5390         * config/score/score3.c (score3_compute_frame_size): Update.
5391         (rpush): Update.
5392         (rpop): Update.
5393         (score3_epilogue): Update.
5394         * config/score/score7.c (score7_compute_frame_size): Update.
5395         (score7_prologue): Update.
5396         (score7_epilogue): Update.
5397         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
5398         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
5399         * config/arm/arm.c (use_return_insn): Update.
5400         (require_pic_register): Update.
5401         (arm_load_pic_register): Update.
5402         (arm_compute_save_reg0_reg12_mask): Update.
5403         (arm_compute_save_reg_mask): Update.
5404         (thumb1_compute_save_reg_mask): Update.
5405         (output_return_instruction): Update.
5406         (arm_output_function_prologue): Update.
5407         (arm_output_epilogue): Update.
5408         (arm_get_frame_offsets): Update.
5409         (arm_expand_prologue): Update.
5410         (thumb_pushpop): Update.
5411         (thumb_exit): Update.
5412         (thumb1_expand_prologue): Update.
5413         (thumb1_expand_epilogue): Update.
5414         (arm_unwind_emit): Update.
5415         (arm_output_fn_unwind): Update.
5416         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
5417         * config/arm/arm.md: Update.
5418         * config/pa/pa.md: Update.
5419         * config/pa/pa.c (legitimize_pic_address): Update.
5420         (compute_frame_size): Update.
5421         (hppa_expand_prologue): Update.
5422         (hppa_expand_epilogue): Update.
5423         (borx_reg_operand): Update.
5424         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
5425         (HARD_REGNO_RENAME_OK): Update.
5426         * config/mips/mips.c (mips_global_pointer): Update.
5427         (mips_save_reg_p): Update.
5428         (mips_compute_frame_info): Update.
5429         (mips_frame_pointer_required): Update.
5430         (mips_expand_prologue): Update.
5431         (mips_expand_epilogue): Update.
5432         (mips_can_use_return_insn): Update.
5433         (mips_reorg_process_insns): Update.
5434         * config/v850/v850.c (compute_register_save_size): Update.
5435         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
5436         * config/mmix/mmix.c (along): Update.
5437         (mmix_expand_epilogue): Update.
5438         * config/bfin/bfin.c (legitimize_pic_address): Update.
5439         (must_save_p): Update.
5440         (stack_frame_needed_p): Update.
5441         (add_to_reg): Update.
5442         (bfin_expand_prologue): Update.
5443         * stmt.c (expand_asm_operands): Update.
5444         * reload1.c (reload): Update.
5445         (init_elim_table): Update.
5446
5447 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
5448         
5449         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
5450         
5451 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
5452
5453         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
5454         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
5455         (mov<mode>): Removed.
5456         (*movv4sf_internal): Likewise.
5457         (*movv2df_internal): Likewise.
5458
5459 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
5460
5461         * config.gcc (crx-*-elf): Remove deprecation.
5462
5463 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
5464
5465         * config/i386/cygming-crtend.c (register_frame_ctor): Register
5466         __gcc_deregister_frame with atexit.
5467         (deregister_frame_dtor): Remove.
5468
5469 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
5470             Nathan Sidwell  <nathan@codesourcery.com>
5471
5472         * config/rs6000/rs6000.opt (mspe): Remove Var property.
5473         (misel): Likewise.
5474         * config/rs6000/rs6000.h (rs6000_spe): Declare.
5475         (rs6000_isel): Likewise.
5476         * config/rs6000/rs6000.c (rs6000_spe): New variable.
5477         (rs6000_isel): New variable.
5478         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
5479
5480 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
5481
5482         PR c++/35758
5483         * c-common.c (handle_vector_size_attribute): Call
5484         lang_hooks.types.reconstruct_complex_type instead of
5485         reconstruct_complex_type.
5486         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
5487         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
5488         * langhooks.h (struct lang_hooks_for_types): Add
5489         reconstruct_complex_type hook.
5490         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
5491         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
5492
5493 2008-04-24  Richard Guenther  <rguenther@suse.de>
5494
5495         * c-common.h (check_builtin_function_arguments): Declare.
5496         * c-common.c (validate_nargs): New function.
5497         (check_builtin_function_arguments): Likewise.
5498         * c-typeck.c (build_function_call): Call
5499         check_builtin_function_arguments.
5500         * builtins.c (fold_builtin_classify): Remove error reporting code.
5501         (fold_builtin_unordered_cmp): Likewise.
5502         (fold_builtin_1): Likewise.
5503         (fold_builtin_n): Likewise.
5504
5505 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
5506
5507         PR tree-optimization/36008
5508         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
5509         the original op1, rather than delta by step.
5510
5511 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
5512             Sebastian Pop  <sebastian.pop@amd.com>
5513
5514         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
5515         eliminate_local_variables_stmt, eliminate_local_variables,
5516         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
5517         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
5518         of code delimited by two edges in the CFG.
5519         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
5520         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
5521         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
5522         the case of parallelisation of reductions.
5523         (expr_invariant_in_region_p): New.
5524
5525         * tree-flow.h (gather_blocks_in_sese_region): Declared.
5526         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
5527
5528 2008-04-24  Ira Rosen  <irar@il.ibm.com>
5529             Richard Guenther  <rguenther@suse.de>
5530
5531         PR tree-optimization/36034
5532         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
5533         incapable of dealing with loads with gaps.
5534
5535 2008-04-24  Rafael Espindola  <espindola@google.com>
5536
5537         * tree-flow.h (vrp_evaluate_conditional): Change signature.
5538         * tree-ssa-propagate.c (fold_predicate_in): Update call to
5539         vrp_evaluate_conditional.
5540         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
5541         (vrp_evaluate_conditional): Split the cond argument.
5542         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
5543         (simplify_stmt_for_jump_threading): Update call to
5544         vrp_evaluate_conditional.
5545
5546 2008-04-24  Ira Rosen  <irar@il.ibm.com>
5547
5548         PR tree-optimization/35982
5549         * tree-vect-analyze.c (vect_check_interleaving): Check that the
5550         interleaved data-refs are of the same type.
5551
5552 2008-04-24  Danny Smith  <dannysmith@users.net>
5553
5554         * c-format.c (check_format_info_main): Use strncmp rather than a
5555         magic prefix to handle multichar length specs.
5556         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
5557         Don't prefix "I64" and "I32" with '\0'.
5558
5559 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
5560
5561         PR target/36015
5562         * config/i386/i386.c (init_cumulative_args): Don't pass anything
5563         in registers for -m32 only if stdarg_p (fntype).
5564
5565 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
5566
5567         PR rtl-optimization/36006
5568         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
5569         temp to op0 in order to avoid invalid rtx sharing.
5570
5571 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
5572
5573         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
5574         check TREE_INVARIANT.
5575         * tree-gimple.c (is_gimple_address): New.
5576         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
5577         * tree-gimple.h (is_gimple_address): New.
5578         * tree.h (decl_address_invariant_p): New.
5579         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
5580         (build_string): Likewise.
5581         (decl_address_invariant_p): New, from is_gimple_invariant_address.
5582         (tree_invariant_p_1): Likewise.
5583         (save_expr): Use it.
5584         (tree_invariant_p): New.
5585         (skip_simple_arithmetic): Use it.
5586         (stabilize_reference_1): Use it.
5587         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
5588         simplify.
5589         (build1_stat): Drop code to compute TREE_INVARIANT.
5590         (build2_stat): Drop code to compute TREE_INVARIANT.
5591         (build3_stat): Drop code to compute TREE_INVARIANT.
5592         (build4_stat): Drop code to compute TREE_INVARIANT.
5593         (build5_stat): Drop code to compute TREE_INVARIANT.
5594         (build7_stat): Drop code to compute TREE_INVARIANT.
5595         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
5596         * tree.h (struct tree_base): Remove invariant_flag.
5597         (TREE_INVARIANT): Remove.
5598         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
5599         (fold_builtin_expect): Check TREE_CONSTANT.
5600         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
5601         * c-tree.h (c_expr_to_decl): Drop third parameter.
5602         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
5603         (build_c_cast): Don't set TREE_INVARIANT.
5604         (pop_init_level): Don't set TREE_INVARIANT.
5605         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
5606         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
5607         TREE_CONSTANT.
5608         (gimplify_init_constructor): Don't set TREE_INVARIANT.
5609         (gimplify_addr_expr): Adjust comment.
5610         * tree-mudflap.c (mf_build_string):
5611         * print-tree.c (print_node): Don't print TREE_INVARIANT.
5612         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
5613         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
5614         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
5615         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
5616         * langhooks.h (struct lang_hooks): Drop third parameter from
5617         expr_to_decl.
5618
5619 2008-04-23  Richard Guenther  <rguenther@suse.de>
5620
5621         PR tree-optimization/27799
5622         PR tree-optimization/32921
5623         PR tree-optimization/32624
5624         * tree-ssa-structalias.c (merge_smts_into): Only merge the
5625         SMTs aliases and the tag itself into the solution.
5626         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
5627         merge the points-to solution back into the SMT aliases.
5628         (may_alias_p): Use alias_set_subset_of instead of
5629         aliases_conflict_p.  A pointer which points to
5630         memory with alias set zero may access any variable.
5631
5632 2008-04-23  Richard Guenther  <rguenther@suse.de>
5633
5634         * alias.c (alias_set_subset_of): Correctly handle asking
5635         if zero is a subset of an alias set with zero child.
5636         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
5637         (compute_flow_insensitive_aliasing): Correctly walk all
5638         pointers.  Do not unnecessarily union sets.
5639
5640 2008-04-23  Richard Guenther  <rguenther@suse.de>
5641
5642         PR middle-end/36021
5643         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
5644
5645 2008-04-22  Tomas Bily  <tbily@suse.cz>
5646
5647         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
5648         unreachable case.
5649         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
5650         NON_LVALUE_EXPR.
5651         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
5652         * tree-ssa-structalias.c (get_constraint_for): Likewise.
5653         * tree-inline.c (estimate_num_insns_1): Likewise.
5654         * varasm.c (const_hash_1, compare_constant, copy_constant)
5655         (compute_reloc_for_constant, output_addressed_constants): Likewise.
5656         * emit-rtl.c (component_ref_for_mem_expr)
5657         (set_mem_attributes_minus_bitpos): Likewise.
5658         * expr.c (highest_pow2_factor, expand_expr_real_1, )
5659         (is_aligning_offset): Likewise.
5660         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
5661         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
5662         * dojump.c (do_jump): Likewise.
5663         * builtins.c (get_pointer_alignment, get_memory_rtx)
5664         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
5665         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
5666
5667 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
5668
5669         PR rtl-optimization/36017
5670         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
5671         expanding the library call.
5672
5673 2008-04-22  Ian Lance Taylor  <iant@google.com>
5674
5675         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
5676         than size_in_bytes.
5677
5678 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
5679
5680         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
5681         of LR/CTR moves for Power6.
5682
5683 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
5684
5685         PR middle-end/36003
5686         * passes.c (init_optimization_passes): Remove
5687         pass_fast_rtl_byte_dce.
5688         
5689 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
5690
5691         PR target/29096
5692         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
5693         builtin functions to generate faster code.
5694         (_mm_cvtpu16_ps): Ditto.
5695         (_mm_cvtpi32x2_ps): Ditto.
5696
5697 2008-04-22  Nick Clifton  <nickc@redhat.com>
5698
5699         * common.opt (ftree-loop-distribution): Add Optimization
5700         attribute.
5701
5702         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
5703         (frv_expand_builtin_va_start): Likewise.
5704
5705         * config/arm/arm.c (thumb_find_work_register): Fix location of
5706         argument register count.
5707
5708 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
5709
5710         Support scheduling for ColdFire V1 and V3 microarchitecture.
5711         Improve scheduling of multiplication instructions.
5712
5713         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
5714         (mac): New instruction attribute.
5715         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
5716         (m68k_sched_mac): New variable.
5717         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
5718         Handle cfv1 and cfv3.
5719         (max_insn_size): New static variable.
5720         (struct _sched_ib): New type.
5721         (sched_ib): New static variable.
5722         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
5723         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
5724         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
5725         Update.
5726         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
5727         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
5728         new variables.  Update.
5729         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
5730         Add modeling of cfv3 instruction buffer.  Update.
5731         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
5732         * config/m68k/m68k.h (TUNE_CFV3): New macro.
5733         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
5734         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
5735         a particular reservation applies to.
5736         (type2): Reorganize attribute values.  Rename alu to alu_reg,
5737         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
5738         to mul_l and mul_w.
5739         (cf_ib_*): Simplify description of instruction buffer.
5740         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
5741         (cf_mem): Split into cf_mem1 and cf_mem2.
5742         (cf_v2_move_??): Rename to cfv12_alu_??.
5743         (cf_v2_move_l_??): Rename to cfv12_omove_??.
5744         (cf_v2_mul_??): Remove reservations.
5745         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
5746         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
5747         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
5748         appropriate place.
5749         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
5750         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
5751         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
5752         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
5753         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
5754         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
5755         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
5756         expansions of the above reservations for instructions of sizes
5757         1, 2 and 3 words.
5758
5759 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
5760
5761         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
5762
5763 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
5764
5765         * coverage.c: Include tree-pass.h.
5766         (coverage_counter_alloc): Print da_file_name to the dump file.
5767
5768 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
5769
5770         * sbitmap.c (sbitmap_range_empty_p): New function.
5771         * sbitmap.h (sbitmap_range_empty_p): New function.
5772         * bitmap.h: Now includes obstack.h.
5773
5774 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
5775             Kenneth Zadeck  <zadeck@naturalbridge.com>
5776
5777         * dbgcnt.def (ra_byte_scan): Added.
5778         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
5779         when the last hit happens for a counter.  
5780         * timevar.def (TV_DF_BYTE_LR): New variable.
5781         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
5782         * passes.c (pass_fast_rtl_byte_dce): New pass.
5783         * fwprop.c (update_df): Added mode to call df_ref_create.
5784         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
5785         DF_REF_EXTRACT_OFFSET.
5786         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
5787         DF_BYTE_LR_OUT, df_byte_lr): New macro.
5788         (df_mm): New enum.
5789         (df_ref_extract): Added mode field.
5790         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
5791         DF_REF_EXTRACT_OFFSET.
5792         (DF_REF_EXTRACT_MODE): New macro.
5793         (df_byte_lr_bb_info): New structure.
5794         (df_print_byte_regset, df_compute_accessed_bytes, 
5795         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
5796         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
5797         df_byte_lr_simulate_uses,
5798         df_byte_lr_simulate_artificial_refs_at_top,
5799         df_byte_lr_simulate_artificial_refs_at_end,
5800         df_compute_accessed_bytes): New function.
5801         (df_ref_create): Add parameter.
5802         (df_byte_lr_get_bb_info): New inline function.
5803         * df-scan.c (df_ref_record, df_uses_record,
5804         df_ref_create_structure): Added mode parameter.
5805         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
5806         df_defs_record, df_uses_record, df_get_conditional_uses,
5807         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
5808         df_entry_block_defs_collect, df_exit_block_uses_collect):
5809         Added mode parameter to calls to df_ref_record, df_uses_record,
5810         df_ref_create_structure.
5811         (df_ref_equal_p, df_ref_compare): Added test for modes.
5812         (df_ref_create_structure): Added code to set mode.  Renamed
5813         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
5814         DF_REF_EXTRACT_OFFSET.
5815         * df-core.c (df_print_byte_regset): New function.
5816         * df-byte-scan.c: New file.
5817         * df-problems.c (df_rd_transfer_function): Removed unnecessary
5818         calls to BITMAP_FREE.  
5819         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
5820         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
5821         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
5822         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
5823         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
5824         df_byte_lr_local_compute, df_byte_lr_init,
5825         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
5826         df_byte_lr_transfer_function, df_byte_lr_free, 
5827         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
5828         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
5829         df_byte_lr_simulate_uses,
5830         df_byte_lr_simulate_artificial_refs_at_top,
5831         df_byte_lr_simulate_artificial_refs_at_end): New function.
5832         * dce.c (byte_dce_process_block): New function.
5833         (dce_process_block): au is now passed in rather than computed
5834         locally.  Changed loops that look at artificial defs to not look
5835         for conditional or partial ones, because there never are any.  
5836         (fast_dce): Now is able to drive byte_dce_process_block or 
5837         dce_process_block depending on the kind of dce being done.
5838         (rest_of_handle_fast_dce): Add parameter to fast_dce.
5839         (rest_of_handle_fast_byte_dce): New function.
5840         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
5841         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
5842
5843 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
5844
5845         PR fortran/35019
5846         * gcc.h: Added fortran options that take arguments to
5847         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
5848         macros.
5849
5850 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
5851
5852         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
5853         scalarization if on the LHS and not a full access.
5854
5855 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5856
5857         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
5858
5859 2008-04-18  Rafael Espindola  <espindola@google.com>
5860
5861         * tree-vrp.c (find_case_label_index): Fix the binary search.
5862         (find_case_label_range): New.
5863         (vrp_visit_switch_stmt): Use find_case_label_range.
5864         (simplify_switch_using_ranges): Use find_case_label_range.
5865
5866 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5867
5868         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
5869         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
5870
5871 2008-04-18  Tom Tromey  <tromey@redhat.com>
5872
5873         PR libcpp/15500:
5874         * doc/cpp.texi (Implementation-defined behavior): Mention
5875         -finput-charset.
5876
5877 2008-04-18  Ian Lance Taylor  <iant@google.com>
5878
5879         * fold-const.c (pointer_may_wrap_p): New static function.
5880         (fold_comparison): Add another test for pointer overflow.  Use
5881         pointer_may_wrap_p to disable some false positives.
5882
5883 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
5884           
5885         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
5886         (fname_as_string): Match updated cpp_interpret_string prototype.
5887         (fix_string_type): Support char16_t* and char32_t*.
5888         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
5889         derivative) nodes.  Register as builtin if C++0x.
5890         (c_parse_error): Support CPP_CHAR{16,32}.
5891         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
5892         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
5893         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
5894         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
5895         CTI_CHAR32_ARRAY_TYPE>: New elements.
5896         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
5897         char32_type_node, signed_char32_type_node, char16_array_type_node,
5898         char32_array_type_node): New defines.
5899         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
5900         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
5901         (lex_string): Support CPP_STRING{16,32}, match updated
5902         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
5903         (lex_charconst): Support CPP_CHAR{16,32}.
5904         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
5905         and CPP_STRING{16,32}.
5906
5907 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
5908
5909         PR bootstrap/35457
5910         * aclocal.m4: Regenerate.
5911         * configure: Regenerate.
5912
5913 2008-04-18  Jan Hubicka  <jh@suse.cz>
5914
5915         * except.c (dw2_size_of_call_site_table,
5916         sjlj_size_of_call_site_table): Use vector API for call_site_record.
5917
5918         * cgraphbuild.c (build_cgraph_edges): Update.
5919         * tree-pass.h: Update comment.
5920         * final.c (leaf_function_p): Update.
5921         (leaf_renumber_regs): Update.
5922         (rest_of_clean_state): Update.
5923         * omp-low.c (expand_omp_parallel): Update.
5924         * ipa-reference.c (analyze_function): Update.
5925         * reorg.c (find_end_label): Update.
5926         (optimize_skip): Update.
5927         (fill_simple_delay_slots): Update.
5928         (fill_simple_delay_slots): Update.
5929         (make_return_insns): Update.
5930         (dbr_schedule): Update.
5931         * gimple-low.c (record_vars_into): Update.
5932         * cfgbuild.c (make_edges): Update.
5933         * function.c (assign_stack_local): Update.
5934         (assign_parm_adjust_stack_rtl): Update.
5935         (locate_and_pad_parm): Update.
5936         (allocate_struct_function): Do not initialize stack_alignment_needed
5937         and preferred_stack_boundary here.
5938         (stack_protect_prologue): Update.
5939         (stack_protect_epilogue): Update.
5940         (expand_function_start): Initialize stack_alignment_needed,
5941         preferred_stack_boundary and max_jumptable_ents.
5942         (expand_function_end): Update.
5943         (free_after_compilation): Do not NULLify epilogue_delay_list.
5944         * function.h (struct rtl_data): Add stack_protect_guard,
5945         stack_alignment_needed,
5946         preferred_stack_boundary, epilogue_delay_list.
5947         (struct function): Remove value_histograms, stack_alignment_needed,
5948         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
5949         last_label_uid,
5950         unexpanded_var_list, stack_protect_guard.
5951         (current_function_epilogue_delay_list): Remove.
5952         * ipa-type-escape.c (analyze_function): Update.
5953         * gimplify.c (pop_gimplify_context): Update comment.
5954         * calls.c (expand_call): Update.
5955         (emit_library_call_value_1): Update.
5956         * except.c (set_nothrow_function_flags): Update.
5957         * cfgexpand.c (get_decl_align_unit): Update.
5958         (create_stack_guard): Update.
5959         (estimated_stack_frame_size): Update.
5960         (expand_used_vars): Update.
5961         (tree_expand_cfg): Free histogram earliers, init expansion variables.
5962         * explow.c (allocate_dynamic_stack_space): Update.
5963         * tree-ssa-live.c (remove_unused_locals): Update.
5964         * varasm.c (mark_constant_pool): Update.
5965         * tree-inline.c (remap_decls): Update.
5966         (initialize_cfun): Update.
5967         (declare_return_variable): Update.
5968         (inline_forbidden_p): Update.
5969         (expand_call_inline): Update.
5970         (declare_inline_vars): Update.
5971         (tree_function_versioning): Update.
5972         * tree-flow.h (value_histograms): New.
5973         (VALUE_HISTOGRAMS): New macro.
5974         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
5975         last_label_uid.
5976         * tree-cfg.c (set_bb_for_stmt): Update.
5977         (replace_by_duplicate_decl): Update.
5978         (move_block_to_fn): Update.
5979         (new_label_mapper): Update.
5980         (dump_function_to_file): Update.
5981         * ipa-struct-reorg.c (build_data_structure): Update.
5982         * cfgrtl.c (print_rtl_with_bb): Update.
5983         * reload1.c (reload): Update.
5984         (reload): Update.
5985         * config/i386/i386.c (setup_incoming_varargs_64,
5986         ix86_compute_frame_layout): Update.
5987         * config/arc/arc.c (arc_output_function_epilogue): Update.
5988
5989 2008-04-18  Marius Strobl <marius@FreeBSD.org>
5990
5991         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
5992         for FreeBSD as well.
5993         * gthr-posix95.h: Likewise.
5994
5995 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
5996
5997         PR rtl-optimization/35838
5998         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
5999         out the byte offset of the first subreg.
6000
6001 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
6002
6003         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
6004         to split_ti instead of three separate calls with single member arrays.
6005         (subti3 splitter): Ditto.
6006         (adddi3 splitter): Ditto with split_di.
6007         (subdi3 splitter): Ditto.
6008         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
6009         two separate calls with single member arrays.  Swap match_dup
6010         operands 1 and 2 to better fit into the array.
6011         (negdi2 splitter): Ditto with split_di.
6012         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
6013         two separate calls with single member arrays.  Swap match_dup operands
6014         6 and 7 to better fit into the array.
6015
6016 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
6017
6018         * config/i386/i386.c (sse_builtin_type): New.
6019         (bdesc_sse_args): Likewise.
6020         (bdesc_sse_3arg): Removed.
6021         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
6022         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
6023         IX86_BUILTIN_ROUNDPS.
6024         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
6025         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
6026         IX86_BUILTIN_ROUNDPS.
6027         (ix86_expand_sse_4_operands_builtin): Removed.
6028         (ix86_expand_sse_operands_builtin): New.
6029         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
6030         and CODE_FOR_sse4_1_roundps.
6031         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
6032         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
6033
6034 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
6035
6036         PR target/35907
6037         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
6038         regs before frame pop when needed.  If use_backchain_to_restore_sp
6039         then load backchain into a temp reg to restore vr and vrsave.  Add
6040         code to restore vr after frame pop if possible.
6041
6042 2008-04-17  Richard Guenther  <rguenther@suse.de>
6043
6044         * tree-vn.c (expressions_equal_p): Do not check type
6045         equality or compatibility before calling operand_equal_p.
6046         * fold-const.c (operand_equal_p): Check equivalence of
6047         integer constants before bailing out due to signedness or
6048         precision differences.
6049         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
6050         spurious differences in type qualification.  Ignore types
6051         for COMPONENT_REFs at all.
6052
6053 2008-04-17  Christian Bruel  <christian.bruel@st.com>
6054
6055         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
6056         msw_skip comparison.
6057         
6058 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
6059
6060         PR c/35739
6061         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
6062         reg type.
6063
6064         PR tree-optimization/35899
6065         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
6066         rather than TREE_OPERAND.
6067
6068 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
6069
6070         PR target/35944
6071         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
6072         temporary registers.  Change operand predicate to general_operand.
6073         (remainderxf3): Ditto.
6074
6075 2008-04-16  Richard Guenther  <rguenther@suse.de>
6076
6077         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
6078         * tree-affine.c (aff_combination_expand): Look through some
6079         conversions.
6080
6081 2008-04-15  Doug Kwan  <dougkwan@google.com>
6082
6083         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
6084         for hex printing.
6085         * tree-pretty-print.c (dump_generic_node): Ditto.
6086         * final.c (output_addr_const): Ditto.
6087         * dwarf2out.c (output_cfi): Ditto.
6088         * c-pretty-print.c (pp_c_integer_constant): Ditto.
6089         * print-rtl.c (print_rtx): Ditto.
6090         * print-tree.c (print_node_brief, print_node): Ditto.
6091         * c-common.c (match_case_to_enum_1): Ditto.
6092         * sched-vis.c (print_value): Ditto.
6093         * config/i386/i386.c (print_operand): Cast to long unsigned int
6094         for hex printing.
6095
6096 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
6097         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
6098         MS Windows VirtualProtect function.
6099
6100 2008-04-15  Jan Hubicka  <jh@suse.cz>
6101
6102         * gengtype.c (write_root): Param_is argument is OK.
6103         * expr.c (expand_expr_real_1): Update call of get_exception_*.
6104         * function.h: Include varray.h
6105         (rtl_eh): New stucture based on except.c one.
6106         (call_site_record): New forward declaration and vector type.
6107         * calls.c (emit_call_1): Do not call
6108         note_current_region_may_contain_throw.
6109         * except.c (eh_status): Remove cur_region, try_region since they are
6110         unused.
6111         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
6112         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
6113         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
6114         Remove call_site_data_used, call_site_data_size.
6115         Turn call_site_record into vector in function.h.
6116         (note_current_region_may_contain_throw): Remove.
6117         (get_exception_pointer, get_exception_filter): Do not take struct
6118         function argument; update.
6119         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
6120         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
6121         build_post_landing_pads, dw2_build_landing_pads,
6122         sjlj_assign_call_site_values, sjlj_mark_call_sites,
6123         sjlj_emit_function_enter, sjlj_emit_function_enter, 
6124         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
6125         sjlj_build_landing_pads, finish_eh_generation,
6126         remove_exception_handler_label, remove_eh_handler,
6127         maybe_remove_eh_handler, add_reachable_handler,
6128         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
6129         add_action_record, collect_one_action_chain, add_call_site,
6130         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
6131         sjlj_output_call_site_table, output_function_exception_table,
6132         * except.h (note_current_region_may_contain_throw): Remove
6133         (get_exception_pointer, get_exception_filter): Do not take struct
6134         function argument.
6135         * Makefile.in (GTFILES): Put varargs before struct function.
6136
6137 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
6138
6139         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
6140         punt for STRING_CST.
6141         (get_constraint_for): Deal with STRING_CST here instead.
6142
6143 2008-04-15  Richard Guenther  <rguenther@suse.de>
6144
6145         * tree-ssa-propagate.c (substitute_and_fold): Substitute
6146         statements in a basic-block with a backward walk.  Do not
6147         substitute into dead statements but instead remove those.
6148
6149 2008-04-15  Richard Guenther  <rguenther@suse.de>
6150
6151         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
6152         to zero, thus disable creation of SFTs.
6153
6154 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
6155
6156         * tree-predcom.c (suitable_reference_p): Return false if the
6157         reference can throw.
6158
6159 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
6160
6161         PR c/35751
6162         * c-decl.c (finish_decl): If extern or static var has variable
6163         size, set TREE_TYPE (decl) to error_mark_node.
6164
6165 2008-04-15  Rafael Espindola  <espindola@google.com>
6166
6167         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
6168         variable arg1.
6169
6170 2008-04-15  Richard Guenther  <rguenther@suse.de>
6171
6172         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
6173         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
6174         (visit_reference_op_load): Do walk vuse-vdef chains on
6175         vn_reference_lookup.
6176         (visit_reference_op_store): But do not here.
6177         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
6178         vn_reference_lookup.
6179         (vn_lookup_with_vuses): But do so here.
6180
6181 2008-04-14  Ian Lance Taylor  <iant@google.com>
6182
6183         * fold-const.c (fold_overflow_warning): Remove assertion.
6184
6185 2008-04-15  Ben Elliston  <bje@au.ibm.com>
6186
6187         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
6188         temp1 local variables.
6189
6190 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
6191
6192         PR target/35661
6193         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
6194         ".text.unlikely" section as executable.
6195
6196 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
6197
6198         * config/ia64/ia64.c (rtx_needs_barrier): Handle
6199         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
6200         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
6201         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
6202         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
6203         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
6204         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
6205
6206 2008-04-14  Ian Lance Taylor  <iant@google.com>
6207
6208         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
6209         * fold-const.c (fold_comparison): If appropriate, test
6210         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
6211         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
6212         reassociating a pointer type.
6213         * doc/invoke.texi (Optimize Options): Document that
6214         -fstrict-overflow applies to pointer wraparound.
6215
6216 2008-04-13  Jan Hubicka  <jh@suse.cz>
6217
6218         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
6219
6220 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
6221
6222         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
6223         we are going to "save the world".
6224
6225 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
6226
6227         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
6228         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
6229         operand 0 constraint, not "=".
6230
6231 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
6232
6233         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
6234
6235 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
6236
6237         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
6238         of size of positions_needed * CHAR_BIT.
6239
6240 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
6241
6242         PR middle-end/35897
6243         * dse.c (store_info): Change positions_needed to unsigned
6244         HOST_WIDE_INT.
6245         (lowpart_bitmask): New.
6246         (record_store): Cast to unsigned HOST_WIDE_INT for
6247         positions_needed.  Assert width <= size of positions_needed *
6248         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
6249         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
6250         lowpart_bitmask to set mask.
6251
6252 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
6253
6254         * config/bfin/constraints.md: New file.
6255         * config/bfin/bfin.md: Include it.
6256         (adddi3): Use satisfies_constraint functions instead of the old macros.
6257         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
6258         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
6259         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
6260         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
6261         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
6262         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
6263         EXTRA_CONSTRAINT): Delete.
6264         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
6265         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
6266         of the old macros.
6267         * config/bfin/bfin.c: Include "tm-constrs.h".
6268         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
6269         Use satisfies_constraint functions instead of the old macros.
6270         * doc/md.texi (Blackfin Constraints): Update file name reference.
6271
6272 2008-04-11  Richard Guenther  <rguenther@suse.de>
6273
6274         PR tree-optimization/35869
6275         * tree-vrp.c (execute_vrp): Move switch statement update after
6276         jump threading.  Schedule another cfg cleanup run.
6277
6278 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
6279
6280         PR c/35744
6281         * attribs.c (decl_attributes): Return early on errorneous node.
6282
6283 2008-04-10  Oleg Ryjkov  <olegr@google.com>
6284
6285         * tree.h (struct tree_base): Added a new flag default_def_flag.
6286         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
6287
6288 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
6289
6290         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
6291
6292 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6293
6294         PR target/35768
6295         * pa.md: Define mode iterator P.  Define mode attribute dwc.
6296         (dcacheflush): Update pattern to use iterator P and attribute dwc.
6297         (icacheflush): Likewise.
6298         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
6299         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
6300
6301 2008-04-11  Ben Elliston  <bje@au.ibm.com>
6302
6303         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
6304
6305 2008-04-10  Rafael Espindola  <espindola@google.com>
6306
6307         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
6308         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
6309         (extract_range_from_expr): The same.
6310
6311 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
6312
6313         * config/mips/mips.md (GPR2): New mode iterator.
6314         (seq): Add comment.
6315         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
6316         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
6317         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
6318         Rewrite these to take two modes, the mode of comparison and the
6319         mode of the destination.
6320         * config/mips/mips.c (mips_expand_scc): Instead of having
6321         paradoxical subreg as destination, expand "narrowing" scc if mode
6322         of comparison is SI and target is requested in DI mode.
6323         (mips_emit_int_order_test): Update comment.  Make mode of
6324         comparison match CMP0 rather than TARGET.  When creating inverse
6325         target use mode of TARGET.
6326
6327 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
6328
6329         * gcov-dump.c (tag_summary): Only print summaries for the first
6330         GCOV_COUNTERS_SUMMABLE counters.
6331
6332 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
6333
6334         * config/i386/i386.md (absneg): New code iterator.
6335         (absnegprefix): New code attribute.
6336         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
6337         patterns using absneg code iterator.
6338         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
6339         using absneg code iterator.
6340         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
6341         *neg<mode>2 patterns using absneg code iterator.
6342         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
6343         *negextendsfdf2 patterns using absneg code iterator.
6344         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
6345         *negextendsfxf2 patterns using absneg code iterator.
6346         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
6347         *negextendsfdf2 patterns using absneg code iterator.
6348         * config/i386/sse.md (<code><mode>2): Macroize expander from
6349         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
6350
6351 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
6352
6353         * config/s390/s390.h: Remove the remains of the recent search
6354         & replace action of current_function_outgoing_args_size.
6355
6356 2008-04-10  Ira Rosen  <irar@il.ibm.com>
6357
6358         PR tree-optimization/35821
6359         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
6360         NEW_STMT_LIST is not NULL.
6361
6362 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
6363
6364         PR libstdc++/35597
6365         * toplev.c (process_options): Remove -ffunction-sections debugging
6366         warning.
6367
6368 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
6369
6370         PR middle-end/PR28690
6371         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
6372         than gen_rtx_fmt_ee to perform more canonicalizations.
6373
6374 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6375
6376         PR driver/35665
6377         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
6378
6379 2008-04-09  Richard Guenther  <rguenther@suse.de>
6380
6381         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
6382         (dump_function_to_file): Dump function arguments with types.
6383
6384 2008-04-08  Richard Guenther  <rguenther@suse.de>
6385
6386         * fold-const.c (fold_widened_comparison): Do not allow
6387         sign-changes that change the result.
6388
6389 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
6390
6391         PR target/35839
6392         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
6393         kinds of indirect references.
6394
6395 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
6396
6397         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
6398         GNU Fortran language string.
6399
6400 2008-04-08  Rafael Espindola  <espindola@google.com>
6401
6402         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
6403         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
6404         * tree.h (tree_call_nonnegative_warnv_p): New.
6405
6406 2008-04-08  Jan Hubicka  <jh@suse.cz>
6407
6408         * function.c (free_after_compilation): Clear out regno_reg_rtx
6409         pointer.
6410
6411 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
6412
6413         Revert
6414         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
6415
6416         PR middle-end/PR28690
6417         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
6418         same precedence as REG_POINTER and MEM_POINTER operands.
6419
6420 2008-04-08  Richard Guenther  <rguenther@suse.de>
6421
6422         PR middle-end/35834
6423         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
6424         for adding index to base.
6425
6426 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
6427
6428         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
6429         (MINGW_ENABLE_EXECUTE_STACK): New.
6430         (IN_LIBGCC2): For libgcc include windows.h file for
6431         function declarations.
6432
6433 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
6434
6435         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
6436         and tem2 if tem1 is not a REG or MULT.
6437
6438 2008-04-08  Jan Hubicka  <jh@suse.cz>
6439
6440         * function.h (incomming_args): Break out of struct function.
6441         (function_subsections): Break out of struct function.
6442         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
6443         return_rtx and hard_reg_initial_vals from struct function.
6444         Kill inl_max_label_num.
6445         (current_function_pops_args, current_function_args_info,
6446         current_function_args_size, current_function_args_size,
6447         current_function_pretend_args_size,
6448         current_function_outgoing_args_size,
6449         current_function_internal_arg_pointer, current_function_return_rtx):
6450         Kill compatibility accestor macros.
6451         * builtins.c (expand_builtin_apply_args_1): Update.
6452         (expand_builtin_next_arg): Update.
6453         * df-scan.c (df_get_call_refs): Update.
6454         * dbxout.c (dbxout_function_end): Update.
6455         * dwarf2out.c (dwarf2out_switch_text_section): Update.
6456         (output_line_info): Update.
6457         (secname_for_decl): Update.
6458         (dwarf2out_var_location): Update.
6459         * function.c (free_after_compilation): Update.
6460         (assign_parm_find_stack_rtl): Update.
6461         (assign_parms): Update.
6462         (expand_dummy_function_end): Update.
6463         (expand_function_end): Update.
6464         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
6465         (expand_call): Update.
6466         (emit_library_call_value_1): Update.
6467         (store_one_arg): Update.
6468         * varasm.c (initialize_cold_section_name): Update.
6469         (unlikely_text_section): Update.
6470         (unlikely_text_section_p): Update.
6471         (assemble_start_function): Update.
6472         (assemble_end_function): Update.
6473         (default_section_type_flags): Update.
6474         (switch_to_section): Update.
6475         * integrate.c (set_decl_abstract_flags): Update.
6476         (get_hard_reg_initial_val): Update.
6477         (has_hard_reg_initial_val): Update.
6478         (allocate_initial_values): Update.
6479         * resource.c (init_resource_info): Update.
6480         * config/alpha/alpha.c (NUM_ARGS): Update.
6481         (direct_return): Update.
6482         (alpha_va_start): Update.
6483         (alpha_sa_size): Update.
6484         (alpha_initial_elimination_offset): Update.
6485         (alpha_expand_prologue): Update.
6486         (alpha_start_function): Update.
6487         (alpha_expand_epilogue): Update.
6488         (unicosmk_initial_elimination_offset):
6489         * config/alpha/alpha.md (call expander): Update.
6490         * config/s390/s390.c (s390_register_info): Update.
6491         (s390_register_info): Update.
6492         (s390_frame_info): Update.
6493         (s390_initial_elimination_offset): Update.
6494         (s390_build_builtin_va_list): Update.
6495         (s390_va_start): Update.
6496         * config/spu/spu.c (direct_return): Update.
6497         (spu_expand_prologue): Update.
6498         (spu_initial_elimination_offset): Update.
6499         (spu_build_builtin_va_list): Update.
6500         (spu_va_start): Update.
6501         * config/sparc/sparc.c (sparc_init_modes): Update.
6502         (sparc_compute_frame_size): Update.
6503         (function_value): Update.
6504         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
6505         * config/i386/i386.md (return expander): Update.
6506         * config/i386/i386.c (ix86_va_start): Update.
6507         (ix86_can_use_return_insn_p): Update.
6508         (ix86_compute_frame_layout): Update.
6509         (ix86_expand_epilogue): Update.
6510         * config/sh/sh.c (output_stack_adjust): Update.
6511         (calc_live_regs): Update.
6512         (sh_expand_prologue): Update.
6513         (sh_builtin_saveregs): Update.
6514         (sh_va_start): Update.
6515         (initial_elimination_offset): Update.
6516         (sh_allocate_initial_value): Update.
6517         (sh_function_ok_for_sibcall): Update.
6518         (sh_get_pr_initial_val): Update.
6519         * config/sh/sh.md (return expander): Update.
6520         * config/avr/avr.c (frame_pointer_required_p): UPdate.
6521         * config/crx/crx.c (crx_compute_frame): UPdate.
6522         (crx_initial_elimination_offset): UPdate.
6523         * config/xtensa/xtensa.c (compute_frame_size): Update
6524         (xtensa_builtin_saveregs): Update.
6525         (xtensa_va_start): Update.
6526         (order_regs_for_local_alloc): Update.
6527         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
6528         (xstormy16_expand_builtin_va_start): Update.
6529         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
6530         * config/m68hc11/m68hc11.md (return expanders): Update.
6531         * config/m68hc11/m68hc11.c (expand_prologue): Update.
6532         (expand_epilogue): Update.
6533         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
6534         (cris_simple_epilogue): Update.
6535         (cris_expand_prologue): Update.
6536         (cris_expand_epilogue): Update.
6537         * config/iq2000/iq2000.c (iq2000_va_start): Update.
6538         (compute_frame_size): Update.
6539         * config/mt/mt.c (mt_compute_frame_size): Update.
6540         * config/mn10300/mn10300.c (expand_prologue): Update.
6541         (expand_epilogue): Update.
6542         (initial_offset): Update.
6543         (mn10300_builtin_saveregs):
6544         * config/mn10300/mn10300.md (return expander): Update.
6545         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
6546         (ia64_initial_elimination_offset): Update.
6547         (ia64_initial_elimination_offset): Update.
6548         (ia64_expand_prologue): Update.
6549         * config/m68k/m68k.md (return expander): Update.
6550         * config/rs6000/rs6000.c (rs6000_va_start): Update.
6551         (rs6000_stack_info): Update.
6552         * config/mcore/mcore.c (layout_mcore_frame): Update.
6553         (mcore_expand_prolog): Update.
6554         * config/arc/arc.c (arc_compute_frame_size): Update.
6555         * config/score/score3.c (score3_compute_frame_size): Update.
6556         * config/score/score7.c (score7_compute_frame_size): Update.
6557         * config/arm/arm.c (use_return_insn): Update.
6558         (thumb_find_work_register): Update.
6559         (arm_compute_save_reg_mask): Update.
6560         (arm_output_function_prologue): Update.
6561         (arm_output_epilogue): Update.
6562         (arm_size_return_regs): Update.
6563         (arm_get_frame_offsets): Update.
6564         (arm_expand_prologue): Update.
6565         (thumb_exit): Update.
6566         (thumb_unexpanded_epilogue): Update.
6567         (thumb1_output_function_prologue): Update.
6568         * config/pa/pa.md (return expander): Update.
6569         * config/pa/pa.c (compute_frame_size): Update.
6570         (hppa_builtin_saveregs): Update.
6571         * config/mips/mips.c (mips_va_start): Update.
6572         (mips16_build_function_stub): Update.
6573         (mips_compute_frame_info): Update.
6574         (mips_restore_gp): Update.
6575         (mips_output_function_prologue): Update.
6576         (mips_expand_prologue): Update.
6577         * config/v850/v850.c (compute_frame_size): Update.
6578         (expand_prologue): * config/mmix/mmix.c (along): update.
6579         (mmix_initial_elimination_offset): update.
6580         (mmix_reorg): update.
6581         (mmix_use_simple_return): update.
6582         (mmix_expand_prologue): update.
6583         (mmix_expand_epilogue): Update.
6584         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
6585         (emit_link_insn): Update.
6586
6587 2008-04-08  Anatoly Sokolov <aesok@post.ru>
6588
6589         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
6590         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
6591         instructions.
6592         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
6593         atmega103 device.
6594
6595 2008-04-07  Jan Hubicka  <jh@suse.cz>
6596
6597         * function.h (rtl): Rename to x_rtl.
6598         (crtl): New define.
6599         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
6600         frame_offset, stack_check_probe_note, arg_pointer_save_area,
6601         used_temp_slots avail_temp_slots, temp_slot_level,
6602         nonlocal_goto_handler_labels): Update accesstors.
6603         (rtl): New global variable.
6604         (struct function): Move some fileds to rtl_data.
6605         (get_arg_pointer_save_area): Update prototype.
6606         * builtins.c (expand_builtin_setjmp_receiver): Update call of
6607         get_arg_pointer_save_area.
6608         * expr.c (init_expr): Update
6609         * function.c (get_frame_size): Update
6610         (assign_stack_local): Update
6611         (expand_function_end): Update.
6612         (get_art_pointer_save_area): Update
6613         * function.h 
6614         * emit-rtl.c (rtl): Declare.
6615         (regno_reg_rtx): Declare.
6616         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
6617         Update.
6618         (gen_reg_rtx): Update.
6619         * varasm.c (n_deferred_constatns): Update accestor.
6620         (init_varasm_status): Do not allocate varasm_status.
6621         (force_const_mem, get_pool_size, output_constant_pool): Update.
6622         * stmt.c (force_label_rtx): Do not use x_ prefixes.
6623         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
6624         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
6625         * sparc/sparc.h (INIT_EXPANDERS): Update.
6626         * ia64/ia64.h (INIT_EXPANDERS): Update.
6627
6628 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
6629
6630         * reload.c (push_secondary_reload): Add missing break to for loop.
6631
6632 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
6633
6634         PR middle-end/PR28690
6635         * rtlanal.c: Update copyright years.
6636         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
6637         as REG_POINTER and MEM_POINTER operands.
6638         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
6639         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
6640         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
6641         * gcse.c: Update copyright years.
6642         (pre_delete): Call gen_reg_rtx_and_attrs.
6643         (hoist_code): Likewise.
6644         (build_store_vectors): Likewise.
6645         (delete_store): Likewise.
6646         * loop-invariant.c (move_invariant_reg): Likewise.
6647         Update copyright years.
6648
6649 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
6650
6651         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
6652         control string instead of quoted.
6653
6654 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
6655
6656         * doc/rtl.texi: Rewrite of subreg section.
6657
6658 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
6659
6660         PR/35842
6661         * config/i386/i386.c (legitimize_pic_address): Add treating
6662         of dllimport SYM_REF's.
6663         (legitimize_dllimport_symbol): Add prototype.
6664
6665 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
6666
6667         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
6668         reference in constructor with non self-referential type.
6669
6670 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
6671
6672         Removal of Return with Depressed Stack Pointer support
6673         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
6674         (ECF_SP_DEPRESSED): Likewise.
6675         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
6676         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
6677         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
6678         (expand_call): Do not test ECF_SP_DEPRESSED.
6679         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
6680         * function.c (keep_stack_depressed): Delete.
6681         (handle_epilogue_set): Likewise.
6682         (update_epilogue_consts): Likewise.
6683         (emit_equiv_load): Likewise.
6684         (thread_prologue_and_epilogue_insns): Remove support for Return with
6685         Depressed Stack Pointer.
6686         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
6687
6688 2008-04-06  Richard Guenther  <rguenther@suse.de>
6689
6690         PR tree-optimization/35400
6691         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
6692         information from SSA_NAMEs.
6693
6694 2008-04-06  Anatoly Sokolov <aesok@post.ru>
6695
6696         * config/avr/avr.h (avr_mega_p): Remove declaration.
6697         (AVR_MEGA): Remove macro.
6698         * config/avr/avr.c (avr_mega_p): Remove variable.
6699         (avr_override_options): Remove inicializion of avr_mega_p.
6700         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
6701         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
6702         (avr_jump_mode): (Ditto.).
6703         (avr_output_progmem_section_asm_op): (Ditto.).
6704         (avr_asm_init_sections): (Ditto.).
6705         (avr_asm_init_sections): (Ditto.).
6706         (avr_rtx_costs): (Ditto.).
6707         * config/avr/avr.md: (Ditto.).
6708         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
6709         '__AVR_MEGA__'.
6710
6711 2008-04-06  Richard Guenther  <rguenther@suse.de>
6712
6713         PR tree-optimization/35842
6714         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
6715         is_gimple_invariant_address.
6716
6717 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
6718
6719         * gcc.c (default_compilers): Sync Fortran extensions list with
6720         that in fortran/lang-specs.h.
6721         * doc/invoke.texi: Likewise.
6722         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
6723         * dwarf2out.c (gen_compile_unit_die): Likewise.
6724
6725 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
6726
6727         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
6728
6729 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
6730
6731         PR target/12329
6732         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
6733         attribute is used for nested functions.
6734
6735 2008-04-05  Jan Hubicka  <jh@suse.cz>
6736
6737         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
6738
6739         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
6740         letter argument.
6741         (dump_files): Update.
6742         (enable_rtl_dump_file): Do not accept letter argument.
6743         * tree-pass.h (dump_file_info): Remove letter argument.
6744         * toplev.c (decode_d_option): Update -da handling.
6745         * toplev.h (enable_rtl_dump_file): Update prototype.
6746         * passes.c (register_one_dump_file): Do not accept IPA argument; work
6747         it out based on pass type.
6748         (register_dump_files_1): Likewise.
6749         (init_optimization_passes): Update register_one_dump_file calls.
6750         (execute_one_pass): Sanity check that IPA passes are called at IPA
6751         level and RTL passes at RTL level.
6752         (execute_pass_list): IPA pass can not be after or subpass of
6753         GIMPLE/RTL pass.
6754         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
6755         disallov RTL subpasses of IPA subpasses.
6756
6757 2008-04-05  Ben Elliston  <bje@au.ibm.com>
6758
6759         * tree-cfg.c (need_fake_edge_p): Return false for calls to
6760         builtins that return exactly once and do not throw. Cache call to
6761         call_expr_flags.
6762
6763 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
6764
6765         PR rtl-optimization/34916
6766         PR middle-end/35519
6767         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
6768         between instruction pairs.
6769
6770 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
6771
6772         * doc/invoke.texi: Document -mbitops for SH.
6773         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
6774         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
6775         * config/sh/sh.c (print_operand): Add %t operand code.
6776         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
6777         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
6778         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
6779         (extendqihi2): Likewise.
6780         (movqi_i): Likewise.
6781         (insv): Use bset, bclr and bst instructions for SH2A if possible.
6782         (extv): Use bld instruction for SH2A if possible.
6783         (extzv): Likewise.
6784         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
6785         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
6786         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
6787         (bset.b, bclr.b): Define peepholes.
6788         * config/sh/sh.opt (mbitops): New option.
6789
6790 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
6791
6792         PR target/35620
6793         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
6794         and view convert expression.
6795
6796 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
6797
6798         PR target/35364
6799         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
6800
6801 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
6802
6803         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
6804
6805         * config/i386/cpuid.h (bit_AES): New.
6806         (bit_PCLMUL): Likewise.
6807
6808         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
6809         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
6810         SSE2 if AES or PCLMUL is enabled.
6811         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
6812         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
6813         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
6814         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
6815         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
6816         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
6817         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
6818         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
6819         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
6820         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
6821         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
6822         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
6823         __builtin_ia32_aeskeygenassist128 and
6824         __builtin_ia32_pclmulqdq128.
6825         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
6826         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
6827         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
6828
6829         * config/i386/i386.h (TARGET_AES): New.
6830         (TARGET_PCLMUL): Likewise.
6831         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
6832
6833         * config/i386/i386.md (UNSPEC_AESENC): New.
6834         (UNSPEC_AESENCLAST): Likewise.
6835         (UNSPEC_AESDEC): Likewise.
6836         (UNSPEC_AESDECLAST): Likewise.
6837         (UNSPEC_AESIMC): Likewise.
6838         (UNSPEC_AESKEYGENASSIST): Likewise.
6839         (UNSPEC_PCLMUL): Likewise.
6840
6841         * config/i386/i386.opt (maes): New.
6842         (mpclmul): Likewise.
6843
6844         * config/i386/sse.md (aesenc): New pattern.
6845         (aesenclast): Likewise.
6846         (aesdec): Likewise.
6847         (aesdeclast): Likewise.
6848         (aesimc): Likewise.
6849         (aeskeygenassist): Likewise.
6850         (pclmulqdq): Likewise.
6851
6852         * config/i386/wmmintrin.h: New.
6853
6854         * doc/extend.texi: Document AES and PCLMUL built-in function.
6855
6856         * doc/invoke.texi: Document -maes and -mpclmul.
6857
6858 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
6859
6860         * function.c (free_after_parsing): Replace with
6861         cxx_push_function_context from C++ front-end.
6862         (allocate_struct_function): Don't call langhook.
6863         * langhooks.h (struct lang_hooks_for_functions): Delete.
6864         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
6865         member "function".
6866         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
6867         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
6868         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
6869         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
6870         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
6871         remove LANG_HOOKS_FUNCTION_INITIALIZER.
6872         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
6873
6874         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
6875         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
6876         
6877 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
6878
6879         PR c/35440
6880         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
6881         for all types.
6882
6883 2008-04-04  Richard Guenther  <rguenther@suse.de>
6884
6885         PR middle-end/35823
6886         * fold-const.c (optimize_minmax_comparison): Use the correct
6887         type for the constant in the simplified comparison.
6888
6889 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
6890
6891         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
6892         Pass L2 size as "--param l2-cache-size" to the compiler.
6893         (decode_l2_cache): New function to decode L2 cache parameters using
6894         0x8000006 extended cpuid function.
6895         (detect_caches_amd): Determine parameters of L2 cache using
6896         decode_l2_caches function.
6897         (decode_caches_intel): Decode L2 cache parameters.
6898         (detect_caches_intel): Determine L2 cache parameters using
6899         decode_caches_intel and decode_l2_caches functions.
6900
6901 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
6902
6903         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
6904         secondary input reload for subword loads from the constant pool.
6905
6906 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
6907
6908         PR target/35713
6909         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
6910           constants of the appropriate size for runtime calculations.
6911
6912         PR c/35712
6913         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
6914           decimal-float literal constant zero.
6915
6916 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
6917
6918         PR c/35738
6919         * c-parser.c (c_parser_omp_atomic): Call
6920         default_function_array_conversion on the RHS.
6921
6922         PR middle-end/35818
6923         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
6924         call is_variable_sized if decl has incomplete type.
6925
6926 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
6927
6928         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
6929
6930 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
6931
6932         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
6933         iterators.
6934         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
6935         (sgt<u>): Merge sgt and sgtu into new expander.
6936         (sgt, sgtu): Remove expanders.
6937         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
6938         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
6939         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
6940         *sgtu_<mode>_mips16 into new pattern.
6941         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
6942         (sge<u>): Merge sge and sgeu into new expander.
6943         (sge, sgeu): Remove expanders.
6944         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
6945         new pattern.
6946         (*sge_<mode>, second *sge_<mode>): Remove patterns.
6947         (slt<u>): Merge slt and sltu into new expander.
6948         (slt, sltu): Remove expanders.
6949         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
6950         (*slt_<mode>, *sltu_<mode>): Remove patterns.
6951         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
6952         *sltu_<mode>_mips16 into new pattern.
6953         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
6954         (sle<u>): Merge sle and sleu into new expander.
6955         (sle, sleu): Remove expanders.
6956         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
6957         (*sle_<mode>, *sleu_<mode>): Remove patterns.
6958         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
6959         *sleu_<mode>_mips16 into new pattern.
6960         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
6961
6962 2008-04-03  Jan Hubicka  <jh@suse.cz>
6963
6964         PR tree-optimization/35795
6965         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
6966         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
6967         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
6968         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
6969         * score/score3.c (score3_output_mi_thunk): Likewise.
6970         * score/score7.c (score7_output_mi_thunk): Likewise.
6971         * mips/mips.c (mips_output_mi_thunk): Likewise.
6972
6973 2008-04-03  Richard Guenther  <rguenther@suse.de>
6974
6975         * tree-vrp.c (extract_range_from_unary_expr): Handle all
6976         conversions.  Simplify code.
6977
6978 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
6979
6980         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
6981
6982 2008-04-03  Tom Tromey  <tromey@redhat.com>
6983             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6984
6985         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
6986         * config/bfin/t-bfin-linux (generated_files): Add
6987         linux-sysroot-suffix.h.
6988         * doc/install.texi (Prerequisites): Require make 3.80.
6989         * doc/sourcebuild.texi (Front End Directory): Document new
6990         variable.
6991         * Makefile.in (generated_files): New variable.
6992         (ALL_HOST_OBJS): New variable.
6993         ($(ALL_HOST_OBJS)): New target.
6994
6995 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
6996
6997         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
6998         (remap_block): Call id->transform_lang_insert_block instead
6999         of langhook.
7000         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
7001         Set id.transform_lang_insert_block to NULL.
7002         (clone_body): Move to cp/optimize.c
7003         * tree-inline.h (struct copy_body_data): Change
7004         transform_lang_insert_block to function pointer.
7005         (copy_generic_body, copy_decl_no_change): Export.
7006         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
7007         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
7008         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
7009
7010         * c-tree.h (insert_block): Kill.
7011         * c-decl.c (insert_block): Kill.
7012
7013 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
7014
7015         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
7016         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
7017         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
7018         argument.
7019         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
7020         argument, call {push,pop}_function_context from here.
7021         * c-parser.c: Use c_{push,pop}_function_context.
7022
7023         * function.c (push_function_context_to): Move meat ...
7024         (push_function_context): ... here.  Simplify.
7025         * function.c (pop_function_context_from): Move meat ...
7026         (pop_function_context): ... here.  Simplify.
7027         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
7028         leave_nested).
7029         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
7030         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
7031         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
7032         * tree.h (push_function_context_to, pop_function_context_from): Remove.
7033
7034 2008-04-03  Ben Elliston  <bje@au.ibm.com>
7035
7036         * expmed.c (extract_force_align_mem_bit_field): Remove.
7037
7038 2008-04-03  Richard Guenther  <rguenther@suse.de>
7039
7040         PR middle-end/35800
7041         * expr.h (try_casesi): Adjust prototype.
7042         * expr.c (try_casesi): Take fallback label as extra parameter.
7043         Use that for gen_casesi if default_label is NULL.
7044         * stmt.c (expand_case): Pass fallback label to try_casesi,
7045         make sure to fill gaps with a fallback label if default_label
7046         is not present.
7047
7048 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
7049
7050         PR target/35801
7051         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
7052
7053 2008-04-03  Ben Elliston  <bje@au.ibm.com>
7054
7055         * expmed.c (extract_split_bit_field): Remove if (0) code.
7056         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
7057         (do_ds_constraint): Likewise.
7058
7059 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
7060
7061         * doc/cppopts.texi (-dU): Document.
7062         * c-common.h (flag_dump_macros): Update comment.
7063         * c-opts.c (handle_OPT_d): Handle -dU.
7064         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
7065         dump_queued_macros, cb_used_define, cb_used_undef): New.
7066         (init_pp_output): Handle -dU.
7067         (cb_line_change): Call dump_queued_macros.
7068         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
7069
7070 2008-04-02  Anatoly Sokolov <aesok@post.ru>
7071
7072         * config/avr/predicates.md (io_address_operand): New predicate. 
7073         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
7074         * config/avr/avr.c (avr_io_address_p): Remove function.
7075         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
7076         'avr_io_address_p' function.
7077         (out_movhi_r_mr): (Ditto.).
7078         (out_movqi_mr_r): (Ditto.).
7079         (out_movhi_mr_r): (Ditto.).
7080         (avr_address_cost): (Ditto.).
7081
7082 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
7083
7084         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
7085         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
7086         in 32bit mode when XMM registers are available to avoid store
7087         forwarding stalls.
7088         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
7089         corresponding post-reload splitters.
7090
7091 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
7092
7093         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
7094         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
7095         __builtin_ia32_roundss.
7096         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
7097         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
7098         __builtin_ia32_roundss.
7099         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
7100         IX86_BUILTIN_SHUFPD here.
7101
7102 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
7103
7104         * config/i386/i386.md (plogic): New.
7105         (plogicprefix): Likewise.
7106
7107         * config/i386/mmx.md (mmx_<code><mode>3): New.
7108         (mmx_and<mode>3): Removed.
7109         (mmx_ior<mode>3): Likewise.
7110         (mmx_xor<mode>3): Likewise.
7111
7112         * config/i386/sse.md (<code><mode>3): New.
7113         (*<code><mode>3): Likewise.
7114         (*<code><mode>3): Likewise.
7115         (<code><mode>3): Likewise.
7116         (*sse_<code><mode>3): Likewise.
7117         (*sse2_<code><mode>3): Likewise.
7118         (<code>tf3): Likewise.
7119         (*<code>tf3): Likewise.
7120         (and<mode>3): Likewise.
7121         (*and<mode>3): Likewise.
7122         (ior<mode>3): Removed.
7123         (*ior<mode>3): Likewise.
7124         (xor<mode>3): Likewise.
7125         (*xor<mode>3): Likewise.
7126         (*and<mode>3): Likewise.
7127         (*ior<mode>3): Likewise.
7128         (*xor<mode>3): Likewise.
7129         (and<mode>3): Likewise.
7130         (*sse_and<mode>3): Likewise.
7131         (*sse2_and<mode>3): Likewise.
7132         (andtf3): Likewise.
7133         (*andtf3): Likewise.
7134         (ior<mode>3): Likewise.
7135         (*sse_ior<mode>3): Likewise.
7136         (*sse2_ior<mode>3): Likewise.
7137         (iortf3): Likewise.
7138         (*iortf3): Likewise.
7139         (xor<mode>3): Likewise.
7140         (*sse_xor<mode>3): Likewise.
7141         (*sse2_xor<mode>3): Likewise.
7142         (xortf3): Likewise.
7143         (*xortf3): Likewise.
7144
7145 2008-04-02  Richard Guenther  <rguenther@suse.de>
7146
7147         PR tree-optimization/14495
7148         PR tree-optimization/34793
7149         * tree-vrp.c (struct switch_update): New structure.
7150         (to_remove_edges, to_update_switch_stmts): New VECs.
7151         (simplify_switch_using_ranges): New function.  Remove not taken
7152         case labels and edges.
7153         (simplify_stmt_using_ranges): Call it.
7154         (identify_jump_threads): Mark edges we have queued for removal
7155         so we don't thread them.
7156         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
7157         case label vector.
7158         * tree-cfg.c (group_case_labels): Deal with missing default label.
7159         (tree_verify_flow_info): Allow missing default label.
7160         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
7161         (emit_case_nodes): Likewise.
7162         (expand_case): Do not rely on the default label to be present.
7163         * expr.c (try_casesi): Deal with NULL default_label.
7164         (do_tablejump): Likewise.
7165
7166 2008-04-02  Richard Guenther  <rguenther@suse.de>
7167
7168         PR tree-optimization/14495
7169         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
7170         SWITCH_EXPR here ...
7171         (vrp_visit_switch_stmt): ... but here (new function).
7172         (find_case_label_index): New helper function.
7173         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
7174
7175 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
7176
7177         * fwprop.c: Fix ISO-C99ism.
7178
7179 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
7180
7181         PR bootstrap/35752
7182         * Makefile.in (objdir): Set it here.
7183         * configure.ac: Not here.  Find dynamic linker characteristics.
7184         * exec-tool.in: Use them.
7185         * aclocal.m4: Regenerate.
7186         * configure: Regenerate.
7187
7188 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
7189
7190         * expr.c (expand_var): Delete it.
7191         * expr.h (expand_var): Delete prototype.
7192         * function.c (expand_function_start): Use expand_decl instead.
7193         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
7194         langhook.
7195
7196 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
7197
7198         PR rtl-optimization/35542
7199         * fwprop.c (forward_propagate_and_simplify): Replace
7200         loc_reg_mentioned_in_p with reg_mentioned_p.
7201
7202 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
7203
7204         PR rtl-optimization/35281
7205         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
7206         (propagate_rtx_1): Handle PR_HANDLE_MEM.
7207         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
7208         (varying_mem_p): Move above propagate_rtx.
7209         (all_uses_available_at): Do not check MEMs.
7210
7211 2008-04-02  Rafael Espindola  <espindola@google.com>
7212
7213         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
7214         (register_edge_assert_for_2): Split the cond argument.
7215         (register_edge_assert_for_1): Adjust for the change in
7216         register_edge_assert_for_2.
7217         (register_edge_assert_for): Split the cond argument.
7218         (find_switch_asserts): Adjust for the change in
7219         register_edge_assert_for.
7220
7221 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
7222
7223         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
7224         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
7225         offsets for 64-bit mingw.
7226         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
7227         abi for x86_64-pc-mingw.
7228
7229 2008-04-02  Richard Guenther  <rguenther@suse.de>
7230
7231         * tree-vrp.c (extract_range_from_assert): Make sure to not
7232         produce range min/max with TREE_OVERFOW set.
7233         If merging a anti-range and a range keep the anti-range if
7234         the range covers all values of the type.
7235         (register_edge_assert_for_2): Only allow sign-changing
7236         conversions in detecting canonical range checks.  Also
7237         register an assert for the unsigned name if useful.
7238
7239         PR tree-optimization/35787
7240         * tree-vrp.c (vrp_val_max): New function.
7241         (vrp_val_min): Likewise.
7242         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
7243         (vrp_val_is_min): Likewise.
7244         (supports_overflow_infinity): Use vrp_val_{min,max}.
7245         (negative_overflow_infinity): Likewise.
7246         (positive_overflow_infinity): Likewise.
7247         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
7248         (is_positive_overflow_infinity): Likewise.
7249         (is_overflow_infinity): Likewise.
7250         (avoid_overflow_infinity): Use vrp_val_{min,max} and
7251         vrp_val_is_{min,max}.
7252         (set_and_canonicalize_value_range): Canonicalize anti-ranges
7253         to ranges if possible.  Avoid empty ranges.
7254
7255 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7256
7257         PR middle-end/35705
7258         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
7259         the expression is a function address.
7260
7261 2008-04-01  George Helffrich  <george@gcc.gnu.org>
7262
7263         PR fortran/35154, fortran/23057
7264         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
7265         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
7266         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
7267         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
7268         in common.
7269         (dbxout_syms): Check for COMMON-based symbol and wrap in
7270         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
7271         in bracket for efficiency.
7272
7273         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
7274         using DW_TAG_common_block + member offset.
7275         (add_pubname_string): New function.
7276         (dw_expand_expr): New function to find block name and offset for
7277         COMMON var.
7278         (common_check): New function to check whether symbol in Fortran COMMON.
7279         (gen_variable_die): If COMMON, use DW_TAG_common_block.
7280
7281 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
7282
7283         PR c/35436
7284         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
7285
7286 2008-04-02  Ben Elliston  <bje@au.ibm.com>
7287
7288         * config/v850/v850.md (casesi): Remove if (0) code.
7289         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
7290         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
7291
7292 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
7293
7294         * config/i386/i386.md (rex64suffix): New mode attribute.
7295         (floathi<mode>2): Disable expander for SSE math.
7296         (*floathi<mode>2_1): New insn insn_and_split pattern.
7297         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
7298         corresponding post-reload splitters.
7299         (*floathi<mode>2_i387): New macroized insn pattern.
7300         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
7301         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
7302         insn_and_split pattern.
7303         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
7304         New macroized instruction patterns and corresponding post-reload
7305         splitters.
7306         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
7307         and corresponding post-reload splitters.
7308         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
7309         New macroized instruction patterns.
7310         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
7311         macroized instruction patterns and corresponding post-reload splitters.
7312         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
7313         corresponding post-reload splitters.
7314         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
7315         New macroized instruction patterns.
7316         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
7317         corresponding post-reload splitters.
7318         (*floatsi<mode>2_i387): New macroized instruction patterns.
7319
7320 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
7321
7322         * config/i386/i386.md (smaxmin): New.
7323         (umaxmin): Likewise.
7324         (maxminiprefix): Likewise.
7325         (maxminfprefix): Likewise.
7326         (<code><mode>3): Likewise.
7327         (smin<mode>3): Removed.
7328         (smax<mode>3): Likewise.
7329
7330         * config/i386/mmx.md (mmx_<code>v2sf3): New.
7331         (mmx_<code>v4hi3): Likewise.
7332         (mmx_<code>v8qi3): Likewise.
7333         (mmx_smaxv2sf3): Removed.
7334         (mmx_sminv2sf3): Likewise.
7335         (mmx_umaxv8qi3): Likewise.
7336         (mmx_smaxv4hi3): Likewise.
7337         (mmx_uminv8qi3): Likewise.
7338         (mmx_sminv4hi3): Likewise.
7339
7340         * config/i386/sse.md (<addsub><mode>3): New.
7341         (*<addsub><mode>3): Likewise.
7342         (<sse>_vm<addsub><mode>3): Likewise.
7343         (<maxmin><mode>3): Likewise.
7344         (*<maxmin><mode>3_finite): Likewise.
7345         (*<maxmin><mode>3): Likewise.
7346         (<sse>_vm<maxmin><mode>3): Likewise.
7347         (sse3_h<addsub>v4sf3): Likewise.
7348         (sse3_h<addsub>v2df3): Likewise.
7349         (<maxmin>v16qi3): Likewise.
7350         (*<maxmin>v16qi3): Likewise.
7351         (<maxmin>v8hi3): Likewise.
7352         (*<maxmin>v8hi3): Likewise.
7353         (*sse4_1_<maxmin><mode>3): Likewise.
7354         (*sse4_1_<maxmin><mode>3): Likewise.
7355         (add<mode>3): Removed.
7356         (*add<mode>3): Likewise.
7357         (<sse>_vmadd<mode>3): Likewise.
7358         (sub<mode>3): Likewise.
7359         (*sub<mode>3): Likewise.
7360         (<sse>_vmsub<mode>3): Likewise.
7361         (smin<mode>3): Likewise.
7362         (*smin<mode>3_finite): Likewise.
7363         (*smin<mode>3): Likewise.
7364         (<sse>_vmsmin<mode>3): Likewise.
7365         (smax<mode>3): Likewise.
7366         (*smax<mode>3_finite): Likewise.
7367         (*smax<mode>3): Likewise.
7368         (<sse>_vmsmax<mode>3): Likewise.
7369         (sse3_haddv4sf3): Likewise.
7370         (sse3_haddv2df3): Likewise.
7371         (sse3_hsubv4sf3): Likewise.
7372         (sse3_hsubv2df3): Likewise.
7373         (umaxv16qi3): Likewise.
7374         (*umaxv16qi3): Likewise.
7375         (smaxv8hi3): Likewise.
7376         (*smaxv8hi3): Likewise.
7377         (*sse4_1_smax<mode>3): Likewise.
7378         (*sse4_1_umax<mode>3): Likewise.
7379         (uminv16qi3): Likewise.
7380         (*uminv16qi3): Likewise.
7381         (sminv8hi3): Likewise.
7382         (*sminv8hi3): Likewise.
7383         (*sse4_1_smin<mode>3): Likewise.
7384         (*sse4_1_umin<mode>3): Likewise.
7385
7386 2008-04-01  Rafael Espindola  <espindola@google.com>
7387
7388         * tree-cfg.c (verify_expr): remove in_phi.
7389         (verify_stmt): Don't call walk_tree with verify_expr. Use
7390         is_gimple_min_invariant instead of is_gimple_val.
7391
7392 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
7393
7394         * doc/include/gpl_v3.texi: Update for manpage generation.
7395         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
7396         gpl.texi.
7397         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
7398         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
7399         gpl_v3.texi instead of gpl.texi.
7400         (gpl.pod): New.
7401
7402 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
7403
7404         PR pch/13675
7405         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
7406
7407 2008-04-01  Rafael Espindola  <espindola@google.com>
7408
7409         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
7410         (extract_code_and_val_from_cond): Use
7411         extract_code_and_val_from_cond_with_ops.
7412
7413 2008-04-01  Jan Hubicka  <jh@suse.cz>
7414
7415         * function.c (free_after_compilation): Free epilogue_delay_list.
7416         (prepare_function_start): Assert that previous compilation was freed.
7417
7418 2008-04-01  Jan Hubicka  <jh@suse.cz>
7419             Jim Wilson  <wilson@tuliptree.org>
7420             Andreas Tobler <andreast@gcc.gnu.org>
7421
7422         PR middle-end/35781
7423         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
7424         rtl.emit instead cfun->emit.
7425         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
7426         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
7427
7428 2008-04-01  Ben Elliston  <bje@au.ibm.com>
7429
7430         * doc/c-tree.texi (Function Basics): Fix grammatical error.
7431
7432 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
7433
7434         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
7435         New options
7436         (fprofile-use): Add var flag_profile_use
7437         * coverage.c (coverage_begin_output): Do not open a gcno file for
7438         output only if -ftest-coverage is set.
7439         Do not add getpwd() to gcda file path.
7440         (build_gcov_info): Check the new flag
7441         flag_profile_datafile_relative_path.
7442         (coverage_init): Use profile_data_prefix.
7443         Read profile counter only if flag_profile_use is set.
7444         * opts.c (common_handle_option): New option fprofile-use=,
7445         fprofile-dir=, fprofile-generate=.
7446         * toplev.c (profile_data_prefix): New variable definition.
7447         * toplev.h (profile_data_prefix): New declaration.
7448         * doc/invoke.tex (Option Summary, Optimization Options):
7449         Add new options.
7450
7451 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
7452
7453         * varasm.c (output_constant_pool_1): In LABEL_REF check,
7454         use tmp consistently.
7455
7456         PR target/35695
7457         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
7458         * config/ia64/ia64.c (rtx_needs_barrier): Handle
7459         UNSPEC_FR_RECIP_APPROX_RES.
7460         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
7461
7462 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
7463
7464         PR c/35750
7465         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
7466
7467 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7468
7469         PR middle-end/30186
7470         * fold-const.c (fold_indirect_ref_1): Support accessing non first
7471         element of the vector via a pointer.
7472
7473 2008-03-31  Ian Lance Taylor  <iant@google.com>
7474
7475         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
7476
7477 2008-03-31  Jan Hubicka  <jh@suse.cz>
7478
7479         * builtins.c (expand_builtin_setjmp_receiver): Update call of
7480         get_arg_pointer_save_area.
7481         * expr.c (init_expr): Just clear out rtl.expr.
7482         * function.c (free_after_compilation): Clear out whole RTL structure.
7483         (get_func_frame_size): Merge into ...
7484         (get_frame_size): ... this one.
7485         (assign_stack_local_1): Merge into ...
7486         (assign_stack_local): ... this one.
7487         (expand_function_end): Update call of get_arg_pointer_save_area.
7488         (get_art_pointer_save_area): Remove cfun argument.
7489         * function.h (emit_status): regno_pointer_align does not need length
7490         attribute. Move x_regno_reg_rtx to ...
7491         (regno_reg_rtx): ... new global array.
7492         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
7493         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
7494         apply_args_value, forced_labels, stack_pointer_delta):
7495         Update accestors.
7496         (struct varasm_status): Move here from varasm.c
7497         (struct rtl_data): New. Move here some fields from struct function.
7498         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
7499         frame_offset, stack_check_probe_note, arg_pointer_save_area,
7500         used_temp_slots avail_temp_slots, temp_slot_level,
7501         nonlocal_goto_handler_labels): Update accesstors.
7502         (rtl): New global variable.
7503         (struct function): Move some fileds to rtl_data.
7504         (get_arg_pointer_save_area): Update prototype.
7505         * emit-rtl.c (rtl): Declare.
7506         (regno_reg_rtx): Declare.
7507         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
7508         Update.
7509         (gen_reg_rtx): Update.
7510         (init_virtual_regs): Do not tate emit_status argument.
7511         (init_emit): Do not allocate emit.
7512         * varasm.c (varasm_statuc): Move to function.h.
7513         (n_deferred_constatns): Update accestor.
7514         (init_varasm_status): Do not allocate varasm_status.
7515         (force_const_mem, get_pool_size, output_constant_pool): Update.
7516         * stmt.c (force_label_rtx): Do not use x_ prefixes.
7517         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
7518
7519 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
7520
7521         PR rtl-optimization/35729
7522         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
7523         references.
7524
7525 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
7526
7527         PR target/32000
7528         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
7529         load/store if memory is unaligned.
7530         (*movti_rex64): Likewise.
7531
7532         * config/i386/predicates.md (misaligned_operand): New.
7533
7534 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
7535
7536         PR tree-opt/35431
7537         * tree-ssa-phiopt.c (conditional_replacement): Return early for
7538         complex types.
7539
7540 2008-03-31  Jan Beulich  <jbeulich@novell.com>
7541
7542         * config/ia64/constraints.md: Add 'j' constraint.
7543         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
7544         (movdi_internal): Likewise.
7545
7546 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
7547
7548         PR c/35748
7549         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
7550
7551 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
7552
7553         PR target/35757
7554         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
7555         proper error message for the third argument on blendpd and
7556         blendps.
7557
7558         * config/i386/sse.md (blendbits): New.
7559         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
7560
7561 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
7562
7563         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
7564
7565 2008-03-30  Richard Guenther  <rguenther@suse.de>
7566
7567         PR middle-end/31023
7568         * fold-const.c (fold_sign_changed_comparison): Do leave
7569         conversions to base-types alone.
7570
7571 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7572
7573         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
7574         the link register if one altivec register is be saved.
7575
7576 2008-03-30  Ben Elliston  <bje@au.ibm.com>
7577
7578         * final.c (final_scan_insn): Remove if (0) code.
7579
7580 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
7581
7582         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
7583
7584 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
7585
7586         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
7587         of V4SFmode to ix86_binary_operator_ok.
7588
7589 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
7590
7591         * config/i386/i386.c (override_options): Initialize
7592         ix86_veclib_handler to ix86_veclibabi_svml when
7593         -mveclibabi=svml is used.
7594         (ix86_veclibabi_svml): New function for SVML ABI style
7595         vectorization support.
7596         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
7597
7598 2008-03-28  Rafael Espindola  <espindola@google.com>
7599
7600         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
7601         (tree_binary_nonnegative_warnv_p): Make it public.
7602         (tree_single_nonnegative_warnv_p): Make it public.
7603         (tree_invalid_nonnegative_warnv_p): Make it public.
7604         (tree_unary_nonzero_warnv_p): Make it public.
7605         (tree_binary_nonzero_warnv_p): Make it public
7606         (tree_single_nonzero_warnv_p): Make it public.
7607         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
7608         (extract_range_from_binary_expr): Split the expr argument.
7609         (extract_range_from_unary_expr): Split the expr argument.
7610         (extract_range_from_comparison): Split the expr argument.
7611         (extract_range_from_expr): Use the new aux functions.
7612         (vrp_evaluate_conditional_warnv): Use
7613         vrp_evaluate_conditional_warnv_with_ops.
7614         * tree.h (tree_unary_nonzero_warnv_p): Declare.
7615         (tree_binary_nonzero_warnv_p): Declare.
7616         (tree_single_nonzero_warnv_p): Declare.
7617         (tree_expr_nonzero_warnv_p): Declare.
7618         (tree_unary_nonnegative_warnv_p): Declare.
7619         (tree_binary_nonnegative_warnv_p): Declare.
7620         (tree_single_nonnegative_warnv_p): Declare.
7621         (tree_invalid_nonnegative_warnv_p): Declare.
7622
7623 2008-03-28  Richard Guenther  <rguenther@suse.de>
7624
7625         PR tree-optimization/30317
7626         PR tree-optimization/30911
7627         PR tree-optimization/34793
7628         * tree-vrp.c (set_and_canonicalize_value_range): New function.
7629         (struct assert_locus_d): New member EXPR.
7630         (register_new_assert_for): Add EXPR parameter to support
7631         ASSERT_EXPR <name, expr OP limit>.
7632         (register_edge_assert_for_1): Adjust callers.
7633         (find_assert_locations): Likewise.
7634         (process_assert_insertions_for): Build condition from expression.
7635         (extract_range_from_assert): Handle ASSERT_EXPRs
7636         of the form ASSERT_EXPR <name, expr OP limit>.
7637         (register_edge_assert_for_2): New helper registering
7638         asserts for comparisons.  Recognize range tests of the form
7639         (unsigned)i - CST1 OP CST2.
7640         (register_edge_assert_for_1): Use it.
7641         (register_edge_assert_for): Likewise.
7642         (needs_overflow_infinity): Integer sub-types
7643         do not need overflow infinities.
7644         (vrp_val_is_max): The extreme values of integer sub-types
7645         are those of the base type.
7646         (vrp_val_is_min): Likewise.
7647         * tree.def (ASSERT_EXPR): Document extra allowed conditional
7648         expressions.
7649
7650 2008-03-28  Nick Clifton  <nickc@redhat.com>
7651
7652         PR target/31110
7653         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
7654         Return GENERAL_REGS for stack adjustment reloads.
7655
7656 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7657
7658         PR target/31334
7659         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
7660         const_vector when all the vectors are constant.
7661
7662 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
7663
7664         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
7665         comparisons.
7666         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
7667         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
7668         (scc_sf): New.
7669         (s<code>_sf): Use new scc_sf attribute for opcode names.
7670
7671 2008-03-27  Tom Tromey  <tromey@redhat.com>
7672
7673         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
7674         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
7675         config/spu/t-spu-elf, config/i386/t-interix,
7676         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
7677         config/i386/x-darwin, config/i386/x-mingw32,
7678         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
7679         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
7680         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
7681         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
7682         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
7683         config/rs6000/x-darwin, config/rs6000/t-rs6000,
7684         config/score/t-score-elf, config/arm/t-strongarm-pe,
7685         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
7686         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
7687         Revert automatic dependency patch.
7688
7689 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7690
7691         PR target/35657
7692         * config/i386/i386.c (ix86_function_arg_boundary): Align
7693         decimal floating point to its natural boundary.
7694
7695 2008-03-27  Richard Guenther  <rguenther@suse.de>
7696
7697         PR middle-end/35716
7698         * fold-const.c (fold_comparison): Restrict distinct decl
7699         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
7700         solely rely on operand_equal_p.
7701
7702 2008-03-27  Richard Guenther  <rguenther@suse.de>
7703
7704         PR c/32511
7705         * c-common.c (handle_weak_attribute): Reject combination of
7706         weak and inline.
7707
7708 2008-03-27  Richard Guenther  <rguenther@suse.de>
7709
7710         PR tree-optimization/32810
7711         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
7712         conversions from DECL_INITIAL.
7713         (fold_const_aggregate_ref): Likewise from constructor elements.
7714
7715 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
7716
7717         * tree-affine.h (aff_combination_expand): Declare.
7718         (get_inner_reference_aff): Likewise.
7719         * tree-affine.c (aff_combination_expand): Split out from
7720         tree_to_aff_combination_expand.
7721         (get_inner_reference_aff): New function.
7722         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
7723         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
7724         (struct lim_aux_data): sm_done field removed.
7725         (mem_ref_loc_p, mem_ref_locs_p): New types.
7726         (struct mem_ref): Added id, stored, accesses_in_loop,
7727         indep_loop, dep_loop, indep_ref, dep_ref fields.
7728         Removed is_stored, locs and next fields.
7729         (memory_accesses): New variable.
7730         (movement_possibility): Do not allow moving statements
7731         that store to memory.
7732         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
7733         New functions.
7734         (determine_max_movement): For statements with memory references,
7735         find the outermost loop in that the reference is independent.
7736         (move_computations_stmt): Mark the virtual operands for renaming.
7737         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
7738         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
7739         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
7740         add_vop_ref_mapping, create_vop_ref_mapping_loop,
7741         create_vop_ref_mapping, analyze_memory_references,
7742         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
7743         get_all_locs_in_loop, ref_always_accessed_p,
7744         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
7745         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
7746         store_motion_loop, store_motion): New functions.
7747         (struct vop_to_refs_elt): New type.
7748         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
7749         memref_hash, memref_eq, hoist_memory_references): Rewritten.
7750         (schedule_sm): Replaced by...
7751         (execute_sm): ... this.
7752         (determine_lsm_ref, hoist_memory_references,
7753         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
7754         find_more_ref_vops, free_mem_ref, free_mem_refs,
7755         determine_lsm_loop, determine_lsm): Removed.
7756         (tree_ssa_lim_finalize): Free data structures used by store motion.
7757         (tree_ssa_lim): Call analyze_memory_references.  Use
7758         store_motion instead of determine_lsm.
7759
7760 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
7761
7762         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
7763         rename tmake_file to m68hc11/t-m68hc11.
7764         (mcore): Set inhibit_libc to true.
7765         * config.host (alpha*-dec-*vms*): Set extra_programs.
7766         (interix3*): Don't use host_xmake_file.
7767         * configure.ac: Let config.gcc override inhibit_libc.
7768         * configure: Regenerate.
7769
7770         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
7771         * config/t-openbsd-thread: Remove commented out lines.
7772         
7773         * config/x-interix: Remove.
7774
7775         * config/m68hc11/t-m68hc11-gas: Rename to...
7776         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
7777
7778         * config/mcore/t-mcore: Remove T_CFLAGS.
7779         * config/mcore/t-mcore-pe: Likewise.
7780
7781 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
7782
7783         * configure.ac: Replace custom __GNU_SOURCE test with
7784         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
7785         * aclocal.m4: Regenerate.
7786         * configure: Regenerate.
7787         * config.in: Regenerate.
7788
7789 2008-03-27  Richard Guenther  <rguenther@suse.de>
7790
7791         * fold-const.c (target.h): Include.
7792         (fold_comparison): Fold comparison of addresses of decls
7793         that bind locally or of constants.  Consolidate address folding code.
7794         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
7795         results from fold_binary_to_constant.
7796         (compare_values_warnv): Likewise.
7797
7798 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
7799
7800         PR middle-end/35429
7801         * fold-const.c (fold_truthop): Check for integeral types when folding
7802         a == 0 && b == 0 and a != 0 || b != 0 .
7803
7804 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
7805
7806         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
7807
7808 2008-03-26  Andreas Schwab  <schwab@suse.de>
7809
7810         * doc/invoke.texi: Fix use of @item vs. @itemx.
7811
7812 2008-03-26  Tom Tromey  <tromey@redhat.com>
7813
7814         * Makefile.in (build/gensupport.o, build/print-rtl.o,
7815         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
7816         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
7817         build/gencodes.o, build/genconditions.o, build/genconfig.o,
7818         build/genconstants.o, build/genemit.o, build/genextract.o,
7819         build/genflags.o, build/genmddeps.o, build/genopinit.o,
7820         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
7821         options.h.
7822
7823 2008-03-26  Richard Guenther  <rguenther@suse.de>
7824
7825         Revert
7826         2008-03-26  Richard Guenther  <rguenther@suse.de>
7827
7828         * fold-const.c (target.h): Include.
7829         (fold_comparison): Fold comparison of addresses of two decls
7830         that bind locally.  Consolidate address folding code.
7831
7832 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7833
7834         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
7835         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
7836         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
7837         dconstsqrt2, dconstthird, dconste and/or dconst10.
7838         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
7839         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
7840         dconstsqrt2, dconste): Delete.
7841         (init_emit_once): Likewise.  Simplify initializing dconstm1.
7842         Constify variable.
7843         * real.c (get_real_const): New.
7844         * real.h (dconst3, dconst10, dconstm2, dconstthird,
7845         dconstsqrt2, dconste): Delete.
7846         (real_value_const, get_real_const): New.
7847
7848 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
7849
7850         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
7851
7852         * config/i386/i386.c (ix86_function_arg_boundary): Check
7853         BIGGEST_ALIGNMENT instead of 128.
7854         (setup_incoming_varargs_64): Likewise.
7855
7856 2008-03-26  Tom Tromey  <tromey@redhat.com>
7857
7858         * Makefile.in (DEPFILES): Add missing '/'.
7859
7860 2008-03-26  Richard Guenther  <rguenther@suse.de>
7861
7862         * fold-const.c (target.h): Include.
7863         (fold_comparison): Fold comparison of addresses of two decls
7864         that bind locally.  Consolidate address folding code.
7865
7866 2008-03-26  Nick Clifton  <nickc@redhat.com>
7867
7868         PR target/31232
7869         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
7870         not allow INT+INT as a legitimate addressing mode.
7871
7872 2008-03-26  Richard Guenther  <rguenther@suse.de>
7873
7874         * tree-flow.h (widen_bitfield): Remove declaration.
7875         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
7876         (widen_bitfield): Remove function.
7877         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
7878         code.
7879
7880 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7881
7882         PR target/31558
7883         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
7884         error_mark_node's.
7885
7886 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
7887
7888         PR rtl-optimization/35232
7889         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
7890         (forget_old_reloads_1, forget_marked_reloads): Don't clear
7891         reg_reloaded_call_part_clobbered here.
7892         (reload_regs_reach_end_p): New function.
7893         (reload_reg_rtx_for_input): New variable.
7894         (reload_reg_rtx_for_output): Likewise.
7895         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
7896         when reassigning a pseudo register.  Load reloadreg from 
7897         reload_reg_rtx_for_input, moving the mode and register
7898         calculation to...
7899         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
7900         instead of the original when deciding whether an input reload
7901         would be a no-op or whether an output reload can be deleted.
7902         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
7903         when setting up new_spill_reg_store.  Load it from
7904         reload_reg_rtx_for_output, moving the mode and register
7905         calculation to...
7906         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
7907         instead of the original when deciding whether an output reload
7908         would be a no-op.  Do the same when modifying insn notes.
7909         Use rtx_equal_p instead of == to compare the registers.
7910         (inherit_piecemeal_p): Take a mode and two register numbers
7911         as argument.
7912         (emit_reload_insns): Clear new_spill_reg_store for every hard
7913         register in the reload register.  Remove spill registers
7914         from reg_reloaded_valid before considering whether to record
7915         inheritance information for them.  Use reload_reg_rtx_for_output
7916         instead of reg_rtx when recording output reloads.  Use
7917         reload_reg_rtx_for_input instead of reg_rtx when recording
7918         input reloads.  Set or clear reg_reloaded_call_part_clobbered
7919         at the same time as setting reg_reloaded_valid.
7920         (delete_output_reload): Add a new_reload_reg parameter and use it
7921         instead of rld[j].reg_rtx.
7922         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
7923         calls accordingly.
7924
7925 2008-03-25  Tom Tromey  <tromey@redhat.com>
7926
7927         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
7928         (build/genattr.o): Likewise.
7929         (build/genattrtab.o): Likewise.
7930         (build/gencodes.o): Likewise.
7931         (build/genconfig.o): Likewise.
7932         (build/genconstants.o): Likewise.
7933         (build/genemit.o): Likewise.
7934         (build/genextract.o): Likewise.
7935         (build/genflags.o): Likewise.
7936
7937 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
7938         
7939         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
7940         instead of size_int for integer types.
7941         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
7942         to match type of MINUS_EXPR.
7943         
7944 2008-03-25  Tom Tromey  <tromey@redhat.com>
7945
7946         * configure: Rebuilt.
7947         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
7948         Makefile.
7949
7950 2008-03-25  Tom Tromey  <tromey@redhat.com>
7951
7952         * config/x-solaris (host-solaris.o): Update.
7953         * config/x-linux (host-linux.o): Update.
7954         * config/x-hpux (host-hpux.o): Update.
7955         * config/x-darwin (host-darwin.o): Update.
7956         * config/v850/t-v850e (v850-c.o): Update.
7957         * config/v850/t-v850 (v850-c.o): Update.
7958         * config/t-vxworks (vxworks.o): Update.
7959         * config/t-sol2 (sol2-c.o, sol2.o): Update.
7960         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
7961         * config/spu/t-spu-elf (spu-c.o): Update.
7962         (spu.o): Remove.
7963         * config/sh/t-symbian (sh-c.o): Update.
7964         (symbian.o): Update.
7965         * config/sh/t-sh (sh-c.o): Update.
7966         * config/score/t-score-elf (score7.o, score3.o): Update.
7967         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
7968         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
7969         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
7970         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
7971         (rs6000.o): Remove.
7972         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
7973         * config/m32c/t-m32c (m32c-pragma.o): Update.
7974         * config/ia64/t-ia64 (ia64-c.o): Update.
7975         * config/i386/x-mingw32 (host-mingw32.o): Update.
7976         * config/i386/x-i386 (driver-i386.o): Update.
7977         * config/i386/x-darwin (host-i386-darwin.o): Update.
7978         * config/i386/x-cygwin (host-cygwin.o): Update.
7979         * config/i386/t-nwld (nwld.o): Update.
7980         * config/i386/t-netware (netware.o): Update.
7981         * config/i386/t-interix (winnt.o): Update.
7982         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
7983         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
7984         msformat-c.o): Update.
7985         * config/bfin/t-bfin-linux (generated_files): Add
7986         linux-sysroot-suffix.h.
7987         * config/arm/t-wince-pe (pe.o): Update.
7988         * config/arm/t-strongarm-pe (pe.o): Update.
7989         * config/arm/t-pe (pe.o): Update.
7990         * config/arm/t-arm (arm-c.o): Update.
7991         * doc/install.texi (Prerequisites): Require make 3.80.
7992         * Makefile.in: Remove .o targets.
7993         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
7994         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
7995         (simple_generated_h, simple_generated_c): Move earlier.
7996         (generated_files): New variable.
7997         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
7998         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
7999         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
8000         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
8001         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
8002         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
8003         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
8004         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
8005         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
8006         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
8007         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
8008         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
8009         (.c.o): Remove.
8010         (COMPILE.base, COMPILE): New variables.
8011         (%.o): New pattern rule.
8012         (ALL_HOST_OBJS): New variable.
8013         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
8014         (dummy-checksum.o, cc1-checksum.o): Remove.
8015         (DRIVER_SHLIB): New variable.
8016         (DRIVER_DEFINES): Use it.
8017         (gencondmd.c): Move out of build/.
8018         (s-conditions): Update.
8019         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
8020         (ALL_BUILD_OBJS): Likewise.
8021         (build/%.o): Use BUILDCOMPILE.
8022         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
8023         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
8024         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
8025         build/gencheck.o, build/gencodes.o, build/genconditions.o,
8026         build/genconfig.o, build/genconstants.o, build/genemit.o,
8027         build/genextract.o, build/genflags.o, build/genmddeps.o,
8028         build/genopinit.o, build/genoutput.o, build/genpeep.o,
8029         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
8030         build/gen-protos.o, build/scan.o, build/fix-header.o,
8031         build/scan-decls.o): Simplify.
8032         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
8033         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
8034         prefix.o, toplev.o): Reduce to variable setting.
8035         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
8036         ($(out_object_file), gcc-options.o): New targets.
8037         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
8038         * configure: Rebuilt.
8039         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
8040         * doc/sourcebuild.texi (Front End Directory): Document new variable.
8041
8042 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
8043
8044         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
8045         complain when we hit an error, return ERROR_MARK_NODE.
8046
8047 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
8048
8049         * config/sh/constraints.md (Pso, Psz): New constraints.
8050         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
8051         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
8052
8053 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
8054
8055         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
8056         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
8057
8058 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
8059
8060         * config/sh/sh.md (prefetch): Add condition for SH2A target.
8061         (prefetch_sh2a): New.   
8062
8063 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
8064             Naveen.H.S  <naveen.hs@kpitcummins.com>
8065
8066         * config/sh/constraints.md (I28): New constraint.
8067         * config/sh/sh.c (broken_move): Add support for movi20s.
8068         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
8069
8070 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
8071             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
8072             Naveen.H.S  <naveen.hs@kpitcummins.com>
8073
8074         * config/sh/sh.c (SH_ATTRIBUTES): Define.
8075         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
8076         (print_operand): Handle resbank in %@ operand code.
8077         (sh_encode_section_info): New.
8078         (push_regs): Add conditions for resbank.
8079         (sh_expand_epilogue): Likewise.
8080         (sh_insert_attributes): Likewise.
8081         (sh_attribute_table): Likewise.
8082         (sh_handle_resbank_handler_attribute): New.
8083         (sh2a_handle_function_vector_handler_attribute): New.
8084         (sh2a_is_function_vector_call): New.
8085         (sh2a_get_function_vector_number): New.
8086         (sh2a_function_vector_p): New.
8087         (sh_cfun_resbank_handler_p): New.
8088         * config/sh/sh.md (calli): Emit jsr/n if possible.
8089         (calli_tbr_rel): New.
8090         (calli_pcrel): Emit jsr/n if possible.
8091         (return_i): Emit rts/n if possible.
8092         (call_valuei_tbr_rel): New.
8093         (call_valuei_pcrel): Add condition for SH2A target.
8094         (call_value): Likewise.
8095         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
8096         (sh2a_get_function_vector_number): Likewise.
8097         (sh2a_is_function_vector_call): Likewise.
8098         * doc/extend.texi: Document TBR relative addressing of SH2A.
8099         (resbank): Add description for SH2A.
8100
8101 2008-03-24  Richard Guenther  <rguenther@suse.de>
8102
8103         PR c/22371
8104         * gimplify.c (gimplify_modify_expr): For frontend type-correct
8105         pointer assignments change conversions according to middle-end rules.
8106         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
8107         * configure.ac: Include type checking in yes.
8108         * configure: Regenerate.
8109
8110 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8111
8112         * diagnostic.c (diagnostic_count_diagnostic): Delete.
8113         (diagnostic_report_diagnostic): Update. Handle ICEs here.
8114         
8115 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
8116
8117         * gthr-vxworks.h (UNUSED): Define.
8118
8119 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
8120
8121         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
8122
8123 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
8124
8125         * doc/extend.texi (Function Attributes): Add missing comma in the
8126         example of the "alloc_size" attribute.
8127         
8128 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
8129
8130         Revert:
8131         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
8132
8133         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
8134         32bit host.
8135
8136         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
8137
8138         PR target/35496
8139         * stor-layout.c (update_alignment_for_field): Set minimum alignment
8140         of the underlying type of a MS bitfield layout to the natural
8141         alignment of the type.
8142
8143         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
8144
8145         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
8146         to their natural alignment to avoid store forwarding stalls.
8147
8148 2008-03-22  Richard Guenther  <rguenther@suse.de>
8149
8150         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
8151         For PHI nodes verify the address is invariant.
8152         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
8153         (get_symbol_constant_value): Use is_gimple_min_invariant.
8154         (maybe_fold_stmt_indirect): Likewise.
8155
8156 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
8157
8158         PR rtl-optimization/33927
8159         * Makefile.in (dse.o): Depend on $(TM_P_H).
8160         * expr.h (extract_low_bits): Declare.
8161         * expmed.c (extract_low_bits): New function.
8162         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
8163         * dse.c: Include tm_p.h.
8164         (find_shift_sequence): Remove the read_reg argument and return the
8165         read value.  Emit the instructions instead of returning them.
8166         Iterate on new_mode rather than calculating it each time.
8167         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
8168         source to NEW_MODE and extract_low_bits to convert the shifted
8169         value to READ_MODE.
8170         (replace_read): Allow the load and store to have different mode
8171         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
8172         or extraction instructions before trying the replacement.  Update
8173         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
8174
8175 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
8176
8177         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
8178         to their natural alignment to avoid store forwarding stalls.
8179
8180 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8181
8182         PR target/27946
8183         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
8184         encouraging but not allowing gprs for input;
8185         change the input constraint to !f#r.
8186         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
8187         gprs for output;
8188         change the output constraint to !f#r.
8189
8190 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
8191
8192         PR target/13958
8193         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
8194         corresponding post-reload splitters.
8195         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
8196         when x87 FP math is selected.
8197         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
8198         New function prototype.
8199         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
8200         unreachable function to ease macroization of insn patterns.
8201
8202 2008-03-21  Martin Jambor  <mjambor@suse.cz>
8203
8204         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
8205         reference dumps if ddr is NULL or dependence is unknown.
8206
8207 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8208
8209         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
8210         unsigned extension into account.
8211         (ATOMIC_COMPARE_AND_SWAP): Likewise.
8212         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
8213         Do computations on a scratch register.
8214
8215 2008-03-21  Richard Guenther  <rguenther@suse.de>
8216
8217         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
8218         Use is_gimple_min_invariant instead of TREE_INVARIANT.
8219         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
8220         * tree-ssa-dom.c (record_equality): Likewise.
8221         * tree-inline.c (copy_body_r): Likewise.
8222         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
8223         TREE_INVARIANT.
8224
8225 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8226
8227         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
8228         as 'delete_unused' argument.
8229
8230 2008-03-20  Richard Guenther  <rguenther@suse.de>
8231
8232         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
8233         special casing of constant qualifiers.
8234         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
8235         care about them in general.
8236         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
8237         regardless of their type.
8238         (fold_stmt_r): Forcefully fold *& if we end up with that.
8239
8240 2008-03-20  Paul Brook  <paul@codesourcery.com>
8241
8242         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
8243         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
8244         linker flags.
8245         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
8246         definition.
8247         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
8248         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
8249
8250 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
8251
8252         * common.opt (Wmudflap): New option.
8253         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
8254         (mx_register_decls): Likewise.
8255         (mudflap_finish_file): Likewise.
8256         * doc/invoke.texi: Document -Wno-mudflap.
8257
8258 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
8259
8260         * c-format.c (replace_format_name_to_system_name): New.
8261         (cmp_attribs): New.
8262         (convert_format_name_to_system_name): New.
8263         (decode_format_attr): Add use of convert_format_name_to_system_name.
8264         (format_types_orig): Add gnu_ prefix to names.
8265         (check_format_info_main): Special treating of \0 escaped names for
8266         supporting multi-character format specifiers as I32, I64.
8267         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
8268         (gnu_target_overrides_format_attributes): New.
8269         * c-format.h: Add structure target_ovr_attr to hold
8270         system specific formatter names.
8271         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
8272         msformat-c.o file to c_target_objs and cxx_target_objs.
8273         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
8274         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
8275         (TARGET_N_FORMAT_TYPES): New.
8276         * config/i386/msformat-c.c: New.
8277         * config/i386/t-cygming: Add build rule for msformat-c.o.
8278         * doc/extend.texi: Add new format names gnu_* and ms_* and
8279         further details.
8280         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
8281
8282 2008-03-20  Ira Rosen  <irar@il.ibm.com>
8283
8284         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
8285         optimizations turned on under -O3.
8286         (ftree-vectorize): Add that the flag is turned on with -O3.
8287
8288 2008-03-20  Ben Elliston  <bje@au.ibm.com>
8289
8290         * regmove.c (try_auto_increment): Fix spelling error in comment.
8291         * final.c (final_scan_insn): Likewise.
8292
8293 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
8294
8295         PR target/14552
8296         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
8297         allocator preferences for "y" and "r" class registers.
8298         ("*mov<mode>_internal"): Ditto.
8299         ("*movv2sf_internal_rex64"): Ditto.
8300         ("*movv2sf_internal"): Ditto.
8301
8302 2008-03-19  Michael Matz  <matz@suse.de>
8303
8304         PR middle-end/35616
8305         * calls.c (expand_call): Check overlap of arguments with call
8306         address for sibcalls.
8307
8308 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
8309
8310         PR target/35496
8311         * stor-layout.c (update_alignment_for_field): Set minimum alignment
8312         of the underlying type of a MS bitfield layout to the natural
8313         alignment of the type.
8314
8315 2008-03-19  Jan Hubicka  <jh@suse.cz>
8316
8317         PR other/35094
8318         * toplev.c (decode_d_option): Handle all CPP flags.
8319         * tree-vrp.c: Update tree_pass descriptors.
8320         * regrename.c: Update tree_pass descriptors.
8321         * fwprop.c: Update tree_pass descriptors.
8322         * doc/invoke.texi: Remove documentation of dropped -d? flags.
8323         * tree-into-ssa.c: Update tree_pass descriptors.
8324         * tree-dump.c: Update tree_pass descriptors.
8325         * tree-complex.c: Update tree_pass descriptors.
8326         * tree-dump.h: Update tree_pass descriptors.
8327         * see.c: Update tree_pass descriptors.
8328         * cgraphbuild.c: Update tree_pass descriptors.
8329         * tracer.c: Update tree_pass descriptors.
8330         * tree-loop-distribution.c: Update tree_pass descriptors.
8331         * cgraph.c: Update tree_pass descriptors.
8332         * postreload-gcse.c: Update tree_pass descriptors.
8333         * postreload.c: Update tree_pass descriptors.
8334         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
8335         * tree-tailcall.c: Update tree_pass descriptors.
8336         * tree-pass.h (tree_opt_pass): Rename to ...
8337         (opt_pass) ... this one; add "type" field and remove letter field.
8338         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
8339         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
8340         all_lowering_passes): Update declaration.
8341         * ipa-cp.c: Update tree_pass descriptors.
8342         * final.c: Update tree_pass descriptors.
8343         * omp-low.c: Update tree_pass descriptors.
8344         * tree-ssa-dse.c: Update tree_pass descriptors.
8345         * ipa-reference.c: Update tree_pass descriptors.
8346         * tree-ssa-uncprop.c: Update tree_pass descriptors.
8347         * auto-inc-dec.c: Update tree_pass descriptors.
8348         * reorg.c: Update tree_pass descriptors.
8349         * cgraphunit.c: Update tree_pass descriptors.
8350         * tree-ssa-copyrename.c: Update tree_pass descriptors.
8351         * tree-ssa-ccp.c: Update tree_pass descriptors.
8352         * df-core.c: Update tree_pass descriptors.
8353         * mode-switching.c: Update tree_pass descriptors.
8354         * tree-nomudflap.c: Update tree_pass descriptors.
8355         * modulo-sched.c: Update tree_pass descriptors.
8356         * ipa-pure-const.c: Update tree_pass descriptors.
8357         * cse.c: Update tree_pass descriptors.
8358         * web.c: Update tree_pass descriptors.
8359         * tree-stdarg.c: Update tree_pass descriptors.
8360         * tree-ssa-math-opts.c: Update tree_pass descriptors.
8361         * tree-ssa-dom.c: Update tree_pass descriptors.
8362         * tree-nrv.c: Update tree_pass descriptors.
8363         * tree-ssa-alias.c: Update tree_pass descriptors.
8364         * loop-init.c: Update tree_pass descriptors.
8365         * gimple-low.c: Update tree_pass descriptors.
8366         * ipa-inline.c: Update tree_pass descriptors.
8367         * tree-ssa-sink.c: Update tree_pass descriptors.
8368         * global.c: Update tree_pass descriptors.
8369         * ifcvt.c: Update tree_pass descriptors.
8370         * jump.c: Update tree_pass descriptors.
8371         * predict.c: Update tree_pass descriptors.
8372         * tree-ssa-loop.c: Update tree_pass descriptors.
8373         * recog.c: Update tree_pass descriptors.
8374         * dse.c: Update tree_pass descriptors.
8375         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
8376         * tree-eh.c: Update tree_pass descriptors.
8377         * regmove.c: Update tree_pass descriptors.
8378         * local-alloc.c
8379         * function.c: Update tree_pass descriptors.
8380         * tree-vectorizer.c: Update tree_pass descriptors.
8381         * gcse.c: Update tree_pass descriptors.
8382         * ipa-type-escape.c: Update tree_pass descriptors.
8383         * tree-if-conv.c: Update tree_pass descriptors.
8384         * init-regs.c: Update tree_pass descriptors.
8385         * ipa.c: Update tree_pass descriptors.
8386         * tree-ssa-phiopt.c: Update tree_pass descriptors.
8387         * rtl-factoring.c: Update tree_pass descriptors.
8388         * lower-subreg.c: Update tree_pass descriptors.
8389         * bt-load.c: Update tree_pass descriptors.
8390         * tree-dfa.c: Update tree_pass descriptors.
8391         * except.c: Update tree_pass descriptors.
8392         * emit-rtl.c: Update tree_pass descriptors.
8393         * cfgexpand.c: Update tree_pass descriptors.
8394         * tree-cfgcleanup.c: Update tree_pass descriptors.
8395         * cfgcleanup.c: Update tree_pass descriptors.
8396         * tree-ssa-pre.c: Update tree_pass descriptors.
8397         * tree-sra.c: Update tree_pass descriptors.
8398         * tree-mudflap.c: Update tree_pass descriptors.
8399         * tree-ssa-copy.c: Update tree_pass descriptors.
8400         * cfglayout.c: Update tree_pass descriptors.
8401         * tree-ssa-forwprop.c: Update tree_pass descriptors.
8402         * tree-ssa-dce.c: Update tree_pass descriptors.
8403         * tree-ssa.c: Update tree_pass descriptors.
8404         * regclass.c: Update tree_pass descriptors.
8405         * integrate.c: Update tree_pass descriptors.
8406         * tree-optimize.c: Update tree_pass descriptors.
8407         * tree-ssa-phiprop.c: Update tree_pass descriptors.
8408         * tree-object-size.c: Update tree_pass descriptors.
8409         * combine.c: Update tree_pass descriptors.
8410         * tree-outof-ssa.c: Update tree_pass descriptors.
8411         * bb-reorder.c: Update tree_pass descriptors.
8412         * stack-ptr-mod.c: Update tree_pass descriptors.
8413         * var-tracking.c: Update tree_pass descriptors.
8414         * tree-profile.c: Update tree_pass descriptors.
8415         * tree-vect-generic.c: Update tree_pass descriptors.
8416         * reg-stack.c: Update tree_pass descriptors.
8417         * sched-rgn.c: Update tree_pass descriptors.
8418         * tree-ssa-structalias.c: Update tree_pass descriptors.
8419         * tree-cfg.c: Update tree_pass descriptors.
8420         * passes.c (current_pass): Update declaration.
8421         (finish_optimization_passes): Update.
8422         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
8423         (register_one_dump_file, register_dump_files_1, next_pass_1):
8424         Update arguments.
8425         (init_optimization_passes): Update handling of new types.
8426         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
8427         * ipa-struct-reorg.c: Update tree_pass descriptors.
8428         * tree-ssa-reassoc.c: Update tree_pass descriptors.
8429         * combine-stack-adj.c: Update tree_pass descriptors.
8430         * cfgrtl.c: Update tree_pass descriptors.
8431         * dce.c: Update tree_pass descriptors.
8432         * tree-ssanames.c: Update tree_pass descriptors.
8433
8434 2008-03-19  Richard Guenther  <rguenther@suse.de>
8435
8436         PR middle-end/35609
8437         * tree-ssa.c (walk_data): New structure.
8438         (warn_uninitialized_var): If not always_executed warn with "maybe"
8439         instead of "is".
8440         (execute_early_warn_uninitialized): Compute post-dominators.
8441         Initialize always_executed before processing each basic block.
8442
8443 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
8444
8445         PR target/35504
8446         * config/i386/i386.c (x86_this_parameter): Calculate correct location
8447         of "this" pointer when "regparm = N" or "fastcall" is in effect.
8448
8449 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8450
8451         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
8452
8453 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
8454
8455         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
8456         is true.
8457         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
8458         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
8459         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
8460         target after ignore has been set, and move there also the commputation
8461         of subtarget and original_target.
8462         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
8463         (LANG_HOOKS_INITIALIZER): Remove it.
8464         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
8465
8466 2008-03-18  Richard Guenther  <rguenther@suse.de>
8467
8468         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
8469         found an expression with constants, note that in the VN for the lhs.
8470         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
8471         fold them to constants if possible.  Run cleanup_cfg if done so.
8472         (execute_pre): Return todo.
8473         (do_pre): Likewise.
8474         (execute_fre): Likewise.
8475         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
8476         of constants.
8477         (get_prop_source_stmt): Look through pointer conversions.
8478
8479 2008-03-18  Jan Hubicka  <jh@suse.cz>
8480
8481         * tree-pretty-print.c: Include predict.h.
8482         (dump_generic_node): Dump predictor.
8483         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
8484         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
8485         * gimple-low.c (lower_stmt): Likewise.
8486         * expr.c (expand_expr_real): Likewise.
8487         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
8488         them.
8489         (build_predict_expr, build_predict_expr): New.
8490         * predict.h (predictor_name, build_predict_expr): Update.
8491         * c-typeck.c (c_finish_bc_stmt): Add prediction.
8492         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
8493         * predict.def (PRED_CONTINUE): Update hitrate.
8494         * tree.def (PREDICT_EXPR): Define.
8495         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
8496         do not handle BIND_EXPR.
8497         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
8498         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
8499         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
8500         operands.
8501
8502 2008-03-18  Michael Matz  <matz@suse.de>
8503
8504         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
8505
8506 2008-03-18  Richard Guenther  <rguenther@suse.de>
8507
8508         * tree-gimple.h (is_gimple_invariant_address): Declare.
8509         (is_gimple_constant): Likewise.
8510         * tree-gimple.c (is_gimple_constant): New function.
8511         (is_gimple_invariant_address): Likewise.
8512         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
8513         and is_gimple_invariant_address.
8514         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
8515         previous change.
8516         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
8517         an addressable base.
8518
8519 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
8520
8521         PR middle-end/35611
8522         * gimplify.c (gimplify_expr): Gimplify second operand of
8523         OMP_ATOMIC_LOAD.
8524
8525 2008-03-17  Richard Guenther  <rguenther@suse.de>
8526
8527         PR tree-optimization/19637
8528         * fold-const.c (fold_unary): Remove restrictions of removing
8529         intermediate pointer-conversions (P2)(P1)P0.
8530         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
8531         conversion to void pointer.
8532         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
8533
8534 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
8535
8536         PR debug/31510
8537         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
8538         emulated thread local variables.
8539
8540 2008-03-16  Richard Guenther  <rguenther@suse.de>
8541
8542         PR middle-end/35607
8543         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
8544         expand TREE_INVARIANT operations that are not gimple invariant.
8545
8546 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
8547
8548         * doc/extend.texi (Alignment): Say that the ABI controls
8549         the __alignof__ for non-strict-alignment targets rather
8550         than being a recommendation.
8551
8552 2008-03-15  Paul Brook  <paul@codesourcery.com>
8553
8554         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
8555         annotations.
8556         (arm_output_fn_unwind): Mark functions that can not be unwound.
8557
8558 2008-03-15  Paul Brook  <paul@codesourcery.com>
8559
8560         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
8561         extension instructions.
8562
8563 2008-03-15  Richard Guenther  <rguenther@suse.de>
8564
8565         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
8566         and fold constant aggregate refs.
8567         (fold_const_aggregate_ref): Handle string constants
8568         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
8569         (evaluate_stmt): Simplify now that ccp_fold folds constant
8570         aggregate refs.
8571
8572 2008-03-15  Paul Brook  <paul@codesourcery.com>
8573
8574         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
8575         (extzv): Use gen_extzv_t2.
8576         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
8577
8578 2008-03-15  Richard Guenther  <rguenther@suse.de>
8579
8580         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
8581         (fold_const_aggregate_ref): Likewise.
8582         (get_value): Return NULL if we don't have any values.
8583         (ccp_finalize): Set const_val to NULL after freeing it.
8584         * tree-flow.h (get_symbol_constant_value): Declare.
8585         (fold_const_aggregate_ref): Likewise.
8586         * tree-ssa-sccvn.c (try_to_simplify): Use them.
8587
8588 2008-03-15  Richard Guenther  <rguenther@suse.de>
8589
8590         PR middle-end/35593
8591         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
8592         to not produce negative array indices if not allowed.  Add
8593         parameter to indicate that.
8594         (maybe_fold_offset_to_component_ref): Allow negative array
8595         indices only for the first member of a structure.
8596         (maybe_fold_offset_to_reference): Allow negative array indices.
8597         (maybe_fold_stmt_addition): Likewise.
8598
8599 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
8600             Anatoly Sokolov <aesok@post.ru>
8601
8602         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
8603         (avr_arch): Add ARCH_AVR6.
8604         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
8605         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
8606         instead of fixed value 2.
8607         (print_operand_address): Use gs() asm specifier instead of pm().
8608         (avr_assemble_integer): (Ditto.).
8609         (avr_output_addr_vec_elt): (Ditto.).
8610         (print_operand): Handle "!" code.
8611         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
8612         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
8613         (AVR_HAVE_EIJMP_EICALL): Define.
8614         (AVR_3_BYTE_PC): Redefine.
8615         (AVR_2_BYTE_PC): (Ditto.).
8616         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
8617         (LINK_SPEC): Add atmega2560 and atmega2561.
8618         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
8619         (crtm2561.o).
8620         * config/avr/avr.md (call_insn): Use eicall instead of icall 
8621         for 3 byte PC devices.
8622         (call_value_insn): (Ditto.).
8623         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
8624         (indirect_jump): Use only for for 2 byte PC devices.
8625         (*tablejump): (Ditto.).
8626         (*indirect_jump_avr6): Add insn.
8627         (*tablejump_rjmp): Don't use for 3 byte PC devices.
8628         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
8629         instead of ijmp for 3 byte PC devices.
8630         (__tablejump2__): (Ditto.).
8631         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
8632         (MULITLIB_DIRNAMES): (Ditto.). 
8633         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
8634
8635 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
8636
8637         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
8638         "sse2_umulsidi3".  Use V1DI mode for operand 0.
8639         ("mmx_psadbw"): Use V1DI mode for operand 0.
8640         * config/i386/i386-modes.def (V1SI): New vector mode.
8641         * config/i386/i386.c (struct builtin_description)
8642         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
8643         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
8644         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
8645         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
8646         v1di_ftype_v8qi_v8qi type.
8647         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
8648
8649         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
8650         __builtin_ia32_pmuludq]: Fix the mode of return value.
8651
8652 2008-03-15  Richard Guenther  <rguenther@suse.de>
8653
8654         PR middle-end/35595
8655         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
8656         being a PHI_NODE.
8657
8658 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
8659         
8660         * doc/invoke.texi (Option Summary, Xtensa Options): Document
8661         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
8662         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
8663         unless TARGET_SERIALIZE_VOLATILE is enabled.
8664         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
8665         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
8666         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
8667
8668 2008-03-14  Richard Guenther  <rguenther@suse.de>
8669
8670         PR tree-optimization/34172
8671         * tree-flow.h (refs_may_alias_p): Declare.
8672         (get_single_def_stmt): Likewise.
8673         (get_single_def_stmt_from_phi): Likewise.
8674         (get_single_def_stmt_with_phi): Likewise.
8675         * tree-dfa.c (refs_may_alias_p): New function.
8676         (get_single_def_stmt): Likewise.
8677         (get_single_def_stmt_from_phi): Likewise.
8678         (get_single_def_stmt_with_phi): Likewise.
8679         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
8680         (vn_reference_lookup_1): New helper function.
8681         (vn_reference_lookup): Walk the virtual use-def chain to
8682         continue searching for a match if the def does not alias the
8683         reference we are looking for.
8684
8685 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
8686
8687         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
8688         archive and Perzl.  Update The Written Word listing.
8689
8690 2008-03-14  Richard Guenther  <rguenther@suse.de>
8691
8692         PR tree-optimization/34043
8693         PR tree-optimization/33989
8694         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
8695         when doing FRE.
8696         (bitmap_find_leader): Use extra argument to verify dominance
8697         relationship inside a basic-block.
8698         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
8699         (find_leader_in_sets): Adjust.
8700         (create_component_ref_by_pieces): Take extra argument for
8701         dominance check, handle lookup failures.
8702         (find_or_generate_expression): Likewise.
8703         (create_expression_by_pieces): Likewise.
8704         (insert_into_preds_of_block): Adjust.
8705         (create_value_expr_from): If asked for, verify all operands
8706         are in the blocks AVAIL_OUT set.
8707         (make_values_for_stmt): Check for SSA_NAMEs that are life
8708         over an abnormal edge.
8709         (compute_avail): Remove such check.
8710         (do_SCCVN_insertion): New function.
8711         (eliminate): If we do not find a leader suitable for replacement
8712         insert a replacement expression from SCCVN if available.
8713         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
8714         (struct vn_ssa_aux): Add needs_insertion flag.
8715         * tree-ssa-sccvn.c (may_insert): New global flag.
8716         (copy_reference_ops_from_ref): Value-number union member access
8717         based on its size, not type and member if insertion is allowed.
8718         (visit_reference_op_load): For a weak match from union type
8719         punning lookup a view-converted value and insert a SSA_NAME
8720         for that value if that is not found.
8721         (visit_use): Make dumps shorter.  Do not disallow value numbering
8722         SSA_NAMEs that are life over an abnormal edge to constants.
8723         (free_scc_vn): Release inserted SSA_NAMEs.
8724         (run_scc_vn): New flag to specify whether insertion is allowed.
8725         Process SSA_NAMEs in forward order.
8726         * tree-ssa-loop-im.c (for_each_index): Handle invariant
8727         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
8728         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
8729         pointer type to/from integral types that do not change the
8730         precision to regular conversions.
8731
8732 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
8733
8734         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
8735         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
8736         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
8737         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
8738         input arguments and the mode of return value.  Built-in functions
8739         that operate on whole 64-bit MMX register now use V1DI mode.
8740
8741 2008-03-13  Alon Dayan  <alond@il.ibm.com>
8742             Olga Golovanevsky  <olga@il.ibm.com>
8743
8744         PR tree-optimization/35041
8745         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
8746         to locate the right position in a statement.
8747
8748 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
8749
8750         PR target/34000
8751         PR target/35553
8752         * config/i386/xmmintrin.h:  Change all static inline functions to
8753         extern inline and add __gnu_inline__ attribute.
8754         * config/i386/bmintrin.h: Ditto.
8755         * config/i386/smmintrin.h: Ditto.
8756         * config/i386/tmmintrin.h: Ditto.
8757         * config/i386/mmintrin-common.h: Ditto.
8758         * config/i386/ammintrin.h: Ditto.
8759         * config/i386/emmintrin.h: Ditto.
8760         * config/i386/pmmintrin.h: Ditto.
8761         * config/i386/mmintrin.h: Ditto.
8762         * config/i386/mm3dnow.h: Ditto.
8763
8764 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
8765
8766         PR middle-end/35185
8767         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
8768         (lower_omp_2): New function.
8769         (lower_omp_1, lower_omp): Rewritten.
8770
8771 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
8772
8773         PR 35054
8774         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
8775         with the phrase "Microsoft Windows compilers".
8776         (Push/Pop Macro Pragmas): New subsection. Document
8777         #pragma push_macro and pragma pop_macro.
8778
8779 2008-03-12  Paul Brook  <paul@codesourcery.com>
8780
8781         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
8782
8783 2008-03-12  Paul Brook  <paul@codesourcery.com>
8784
8785         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
8786         (thumb2_alusi3_short): Exclude PLUS and MINUS.
8787         (thumb2_addsi_shortim): Rename ...
8788         (thumb2_addsi_short): ... to this.  Allow register operands.
8789         (thumb2_subsi_short): New pattern.
8790         (thumb2_one_cmplsi2_short,
8791         thumb2_negsi2_short): New patterns and peepholes.
8792
8793 2008-03-12  Paul Brook  <paul@codesourcery.com>
8794
8795         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
8796
8797 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
8798
8799         * config/i386/i386.md (int_cond): New code iterator.
8800         (fp_cond): Ditto.
8801         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
8802         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
8803         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
8804         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
8805         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
8806         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
8807         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
8808         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
8809
8810 2008-03-12  Paul Brook  <paul@codesourcery.com>
8811
8812         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
8813         instead of {arm,thumb}_compute_save_reg_mask.
8814         (output_return_instruction): Ditto.
8815         (thumb_unexpanded_epilogue): Ditto.
8816         (thumb1_expand_prologue): Ditto.
8817         (thumb1_output_function_prologue): Ditto.
8818         (arm_set_return_address): Ditto.
8819         (thumb_set_return_address): Ditto.
8820         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
8821         regs to achieve stack alignment.
8822         (thumb1_compute_save_reg_mask): Fix compiler warning.
8823         (arm_output_epilogue): Use offsets->saved_regs_mask.
8824         Adjust stack pointer by poping call clobered registers.
8825         (arm_expand_prologue): Use offsets->saved_regs_mask.
8826         Adjust stack pointer by pushing extra registers.
8827         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
8828
8829 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
8830
8831         PR tree-opt/35422
8832         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
8833         conversion to the operands of a multiplication.
8834
8835 2008-03-12  Richard Guenther  <rguenther@suse.de>
8836
8837         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
8838         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
8839         * timevar.def (TV_TREE_PHIPROP): Add.
8840         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
8841         pass description.  Use TV_TREE_PHIPROP.
8842         * tree-ssa-forwprop.c: Remove phiprop code.
8843
8844 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
8845
8846         PR middle-end/35549
8847         * omp-low.c (maybe_lookup_decl): Constify first argument.
8848         (use_pointer_for_field): Change last argument from bool to
8849         omp_context *.  Disallow shared copy-in/out in nested
8850         parallel if decl is shared in outer parallel too.
8851         (build_outer_var_ref, scan_sharing_clauses,
8852         lower_rec_input_clauses, lower_copyprivate_clauses,
8853         lower_send_clauses, lower_send_shared_vars): Adjust callers.
8854
8855 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
8856             Ira Rosen  <irar@il.ibm.com>
8857
8858         * tree-vectorizer.c (free_stmt_vec_info): New function.
8859         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
8860         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
8861         * tree-vectorizer.h (free_stmt_vec_info): Declare.
8862         * tree-vect-transform.c (vectorizable_conversion): Free
8863         vec_oprnds0 if it was allocated.
8864         (vect_permute_store_chain): Remove unused VECs.
8865         (vectorizable_store): Free VECs that are allocated in the..
8866         function.
8867         (vect_transform_strided_load, vectorizable_load): Likewise.
8868         (vect_remove_stores): Simplify the code.
8869         (vect_transform_loop): Move code to vect_remove_stores().
8870         Call vect_remove_stores() and free_stmt_vec_info().
8871
8872 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8873
8874         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
8875         TARGET_HPUX.  Revise comment.
8876         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
8877         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
8878         Use sr4 variant of `be' instruction when not generating PIC code.
8879         (attr_length_call): Adjust for above change.
8880
8881 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8882
8883         * ipa-reference.c (static_execute): Remove module_statics_const and
8884         associated setting code.
8885
8886 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
8887
8888         PR target/35540
8889         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
8890         predicate for operand 1.
8891         (paritysi2_cmp): Use register_operand predicate for operand 2.
8892         Use earlyclobber modifier for operand 1.  Remove support for
8893         memory operands.
8894         (paritydi2_cmp): Use register_operand predicate for operand 3.
8895         Use earlyclobber modifier for operand 1.  Remove support for
8896         memory operands.
8897
8898 2008-03-11  Paul Brook  <paul@codesourcery.com>
8899             Vladimir Prus  <vladimir@codesourcery.com>
8900
8901         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
8902         (arm_compute_save_reg0_reg12_mask): Always
8903         check if register 11 must be saved.  Always safe hard frame pointer
8904         when frame_pointer_needeed.
8905         (arm_compute_save_reg_mask): Save IP and PC
8906         only with apcs frames.
8907         (arm_output_epilogue): Adjust Thumb2 codepath to
8908         be also invoked and work for ARM non-apcs frames.
8909         (arm_expand_prologue): Don't bother saving IP
8910         for non-apcs frame, since it's not clobbered by
8911         prologue code.  Implement non-apcs frame
8912         layout.
8913
8914 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
8915
8916         PR rtl-optimization/35281
8917         * expr.c (convert_move): Use a new pseudo for the intermediate
8918         from_mode->word_mode result.
8919
8920 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
8921
8922         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
8923         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
8924         * toplev.c (compile_file): Don't call it.
8925
8926 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
8927
8928         PR middle-end/35526
8929         * expr.c (store_expr): Call emit_block_move if the mode
8930         of "temp" RTX is BLKmode.
8931
8932 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8933             Richard Guenther  <rguenther@suse.de>
8934
8935         PR tree-optimization/31358
8936         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
8937         the step with a NULL_TREE.
8938         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
8939         to sizetype if type is a pointer type.
8940         (add_candidate_1): Don't convert the base and step to
8941         the generic type if the orginal type is a pointer type.
8942         (add_iv_value_candidates): Use sizetype for the step
8943         if type is a pointer type.
8944         (cand_value_at): Likewise.
8945         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
8946         for pointer types.
8947         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
8948         Don't convert the tem affine to the type.
8949         (add_elt_to_tree): Use sizetype for the step if a pointer.
8950         Use POINTER_PLUS_EXPR for pointers.
8951         (aff_combination_to_tree): Use sizetype for the step if a
8952         pointer.
8953
8954 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
8955
8956         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
8957         Remove commutativity hint.
8958
8959 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
8960
8961         PR c/35438
8962         PR c/35439
8963         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
8964         errorneous type.  Check that v is a VAR_DECL.
8965
8966         PR middle-end/35099
8967         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
8968
8969 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
8970
8971         PR tree-optimization/35494
8972         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
8973         may be overriden at link and run time.
8974
8975 2008-03-10  Richard Guenther  <rguenther@suse.de>
8976
8977         PR tree-optimization/34677
8978         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
8979         (poolify_tree): Likewise.
8980         (modify_expr_template): Likewise.
8981         (poolify_modify_stmt): Likewise.
8982         (insert_fake_stores): Handle all component-ref style stores
8983         in addition to INDIRECT_REF.  Also handle complex types.
8984         Do not poolify the inserted load.
8985         (realify_fake_stores): Do not rebuild the tree but only
8986         make it a SSA_NAME copy.
8987         (init_pre): Remove initialzation of modify_expr_template.
8988         Do not allocate modify_expr_node_pool.
8989         (fini_pre): Do not free modify_expr_node_pool.
8990
8991 2008-03-10  Paul Brook  <paul@codesourcery.com>
8992
8993         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
8994         to avoid conflicts.
8995
8996 2008-03-10  Paul Brook  <paul@codesourcery.com>
8997             Mark Shinwell  <shinwell@codesourcery.com>
8998
8999         * config/arm/cortex-r4.md: New.
9000         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
9001         insn attributes.
9002         * config/arm/arm.md: Include cortex-r4.md.
9003         (insn): Add smmls, sdiv and udiv values.
9004         (generic_sched): Don't use generic scheduling for Cortex-R4.
9005         (arm_issue_rate): New function.
9006         (TARGET_SCHED_ISSUE_RATE): Define.
9007
9008 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
9009
9010         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
9011
9012 2008-03-10  Richard Guenther  <rguenther@suse.de>
9013
9014         * tree-ssa-pre.c (get_sccvn_value): Simplify.
9015         (compute_avail): Do not add stmt uses to AVAIL_OUT.
9016
9017 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
9018
9019         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
9020         Set default to true.
9021
9022 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9023
9024         * c.opt (Wsynth): Deprecate.
9025         * doc/invoke.texi (Option Summary, Warning Options): Document
9026         -Wno-format-contains-nul.
9027
9028 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
9029
9030         PR target/35496
9031         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
9032         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
9033
9034 2008-03-09  Ira Rosen  <irar@il.ibm.com>
9035
9036         * config/rs6000/rs6000.c (builtin_description): Rename vector
9037         left shift operations.
9038         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
9039         (altivec_vsl<VI_char>): Rename to ...
9040         (ashl<mode>3): ... new name.
9041         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
9042         gen_ashlv4si3.
9043         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
9044
9045 2008-03-08  Richard Guenther  <rguenther@suse.de>
9046
9047         * coverage.h (tree_coverage_counter_addr): Declare.
9048         * coverage.c (tree_coverage_counter_addr): New function.
9049         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
9050         before using again.
9051         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
9052         (tree_gen_one_value_profiler): Likewise.
9053         (tree_gen_ic_profiler): Likewise.
9054         (tree_gen_average_profiler): Likewise.
9055         (tree_gen_ior_profiler): Likewise.
9056
9057 2008-03-08  Richard Guenther  <rguenther@suse.de>
9058
9059         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
9060         (vn_binary_op_insert): Likewise.
9061         (vn_unary_op_lookup): Likewise.
9062         (vn_unary_op_insert): Likewise.
9063         (vn_nary_op_lookup): Declare.
9064         (vn_nary_op_insert): Likewise.
9065         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
9066         and binary hashes, use a single obstack for unary_op_pool
9067         and binary_op_pool.
9068         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
9069         a single struct vn_nary_op_s.  Store tree code length and
9070         a variable number of operands.
9071         (struct vn_reference_op_struct): Remove unused op2.
9072         (vn_reference_op_eq): Do not compare op2.
9073         (vn_reference_op_compute_hash): Do not compute hash of op2.
9074         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
9075         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
9076         with vn_nary_op_compute_hash.
9077         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
9078         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
9079         vn_nary_op_lookup.
9080         (vn_unary_op_insert, vn_binary_op_insert): Replace with
9081         vn_nary_op_insert.
9082         (visit_unary_op): Call nary functions.
9083         (visit_binary_op): Likewise.
9084         (process_scc): Adjust for struct vn_tables_s changes.
9085         (allocate_vn_table): Likewise.
9086         (free_vn_table): Likewise.
9087         * tree-vn.c (vn_add): Call nary functions.
9088         (vn_lookup): Likewise.
9089
9090 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
9091
9092         PR target/35498
9093         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
9094         wdst back after sync_compare_and_swapqhi_internal.
9095
9096 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
9097
9098         PR target/22152
9099         * config/i386/i386-modes.def (V1DI): New vector mode.
9100         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
9101         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
9102         (MMXMODE248): Ditto.
9103         (MMXMODE): Add V1DI mode.
9104         (mmxvecsize): Change DI mode to V1DI mode.
9105         ("mov<mode>): Use MMXMODEI8 mode iterator.
9106         ("*mov<mode>_internal_rex64"): Ditto.
9107         ("*mov<mode>_internal"): Ditto.
9108         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
9109         ("mmx_sub<mode>3"): Ditto.
9110         ("mmx_adddi3"): Remove insn pattern.
9111         ("mmx_subdi3"): Ditto.
9112         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
9113         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
9114         ("mmx_ashl<mode>3"): Ditto.
9115         ("mmx_lshrdi3"): Remove insn pattern.
9116         ("mmx_ashldi3"): Ditto.
9117         * config/i386/i386.c (classify_argument): Handle V1DImode.
9118         (function_arg_advance_32): Ditto.
9119         (function_arg_32): Ditto.
9120         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
9121         mmx_addv1di3 insn pattern.
9122         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
9123         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
9124         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
9125         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
9126         Remove definitions of built-in functions.
9127         (V1DI_type_node): New node.
9128         (v1di_ftype_v1di_int): Ditto.
9129         (v1di_ftype_v1di_v1di): Ditto.
9130         (v2si_ftype_v2si_si): Ditto.
9131         (v4hi_ftype_v4hi_di): Remove node.
9132         (v2si_ftype_v2si_di): Ditto.
9133         (ix86_init_mmx_sse_builtins): Handle V1DImode.
9134         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
9135         Redefine builtins using def_builtin_const with *_ftype_*_int node.
9136         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
9137         Add new builtins using def_builtin_const.
9138         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
9139         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
9140         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
9141         * config/i386/mmintrin.h (__v1di): New typedef.
9142         (_mm_add_si64): Cast arguments to __v1di type.
9143         (_mm_sub_si64): Ditto.
9144         (_mm_sll_pi16): Cast __count to __v4hi type.
9145         (_mm_sll_pi32): Cast __count to __v2si type.
9146         (_mm_sll_si64): Cast arguments to __v1di type.
9147         (_mm_srl_pi16): Cast __count to __v4hi type.
9148         (_mm_srl_pi32): Cast __count to __v2si type.
9149         (_mm_srl_si64): Cast arguments to __v1di type.
9150         (_mm_sra_pi16): Cast __count to __v4hi type.
9151         (_mm_sra_pi32): Cast __count to __v2si type.
9152         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
9153         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
9154         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
9155         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
9156         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
9157         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
9158         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
9159         (_mm_srai_pi32): Use __builtin_ia32_psradi.
9160         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
9161         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
9162         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
9163         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
9164
9165 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
9166
9167         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
9168
9169 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
9170
9171         PR target/35373
9172         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
9173         reg+const addressing for Altivec modes.  Don't generate reg+reg
9174         addressing for TFmode or TDmode quantities.
9175
9176 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
9177
9178         * c-common.c (vector_types_convertible_p): Call langhook
9179         instead of comptypes.
9180
9181 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9182
9183         PR tree-opt/35402
9184         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
9185         integral and scalar float variables which have a
9186         NULL DECL_INITIAL.
9187
9188 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
9189
9190         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
9191         dwarf_register_span hook when emitting unwind information for
9192         register-to-memory saves.
9193         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
9194         (rs6000_frame_related): Remove call to spe_synthesize_frame.
9195
9196 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
9197
9198         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
9199         for the same VAR_DECL.
9200
9201 2008-03-06  Tom Tromey  <tromey@redhat.com>
9202
9203         * treelang: Delete.
9204         * doc/standards.texi (Standards): Don't mention treelang.
9205         * doc/invoke.texi (Overall Options): Don't mention treelang.
9206         * doc/install.texi (Prerequisites): Don't mention bison or
9207         treelang.
9208         (Configuration): Don't mention treelang.
9209         (Building): Likewise.
9210         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
9211
9212 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
9213
9214         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
9215         word-extractions out of a multi-word object.
9216
9217 2008-03-06  Richard Guenther  <rguenther@suse.de>
9218
9219         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
9220         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
9221         result type and precision.
9222         * expr.c (get_inner_reference): Set unsignedp based on the result
9223         type of BIT_FIELD_REF.
9224         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
9225         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
9226         (try_instantiate_multiple_fields): Likewise.  Use the correct type
9227         for BIT_FIELD_REF.
9228         (sra_build_assignment): Likewise.
9229         (sra_build_elt_assignment): Likewise.
9230         (sra_explode_bitfield_assignment): Likewise.
9231         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
9232         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
9233         set BIT_FIELD_REF_UNSIGNED.
9234         (vectorizable_load): Likewise.
9235
9236 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
9237
9238         * cse.c (cse_extended_basic_block): Invalidate artificial defs
9239         at bb start.
9240
9241 2008-03-06  Richard Guenther  <rguenther@suse.de>
9242
9243         * alias.c (struct alias_set_entry): Move has_zero_child field
9244         to pack with alias_set.
9245
9246 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
9247
9248         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
9249         32bit host.
9250
9251 2008-03-05  Ian Lance Taylor  <iant@google.com>
9252
9253         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
9254
9255 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
9256
9257         * fwprop.c (update_df): Support width and offset parameters of
9258         df_ref_create.
9259         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
9260         global_conflicts): Change DF_REF_EXTRACT to either
9261         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
9262         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
9263         * df-scan.c (df_ref_record, df_defs_record,
9264         df_ref_create_structure, df_def_record_1, df_uses_record,
9265         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
9266         df_bb_refs_collect, df_entry_block_defs_collect,
9267         df_exit_block_uses_collect): Support new width and offset fields.
9268         (ref_extract_pool): New storage pool.
9269         (df_free_ref): New function.
9270         (df_reg_chain_unlink, df_free_collection_rec,
9271         df_sort_and_compress_refs): Call df_free_ref.
9272         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
9273         of df_ref_extract.
9274         (df_ref_create_structure): Allocate df_ref_extract if offset and
9275         width fields are used.
9276         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
9277         (df_uses_record): Get offset and width from ZERO_EXTRACT 
9278         and SIGN_EXTRACT.
9279         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
9280         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
9281         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
9282         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
9283         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
9284         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
9285         (df_ref_extract): New structure.
9286         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
9287         (df_ref_create): Add width and offset parameters.
9288         
9289 2008-03-05  Richard Guenther  <rguenther@suse.de>
9290
9291         * tree-ssa-structalias.c (get_constraint_for_component_ref):
9292         Use ranges_overlap_p.
9293         (offset_overlaps_with_access): Rename
9294         to ranges_overlap_p and move ...
9295         * tree-flow-inline.h (ranges_overlap_p): ... here.
9296
9297         * tree.h (get_inner_reference, handled_component_p): Update
9298         comments.
9299
9300         * tree.h (record_component_aliases, get_alias_set,
9301         alias_sets_conflict_p, alias_sets_must_conflict_p,
9302         objects_must_conflict_p): Move declarations ...
9303         * alias.h (record_component_aliases, get_alias_set,
9304         alias_sets_conflict_p, alias_sets_must_conflict_p,
9305         objects_must_conflict_p): ... here.
9306         Include coretypes.h.
9307         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
9308
9309 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
9310
9311         * cfg.c: Include tree-flow.h.
9312         (remove_edge_raw): Call redirect_edge_var_map_clear.
9313         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
9314         * tree-flow-inline.h (redirect_edge_var_map_def): New.
9315         (redirect_edge_var_map_result): New.
9316         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
9317         PENDING_STMT use with redirect_edge_var_map_*.
9318         * tree-ssa.c (edge_var_maps): New definition.
9319         (redirect_edge_var_map_add): New.
9320         (redirect_edge_var_map_clear): New.
9321         (redirect_edge_var_map_dup): New.
9322         (redirect_edge_var_map_vector): New.
9323         (redirect_edge_var_map_destroy): New.
9324         (ssa_redirect_edge): Replace PENDING_STMT use with
9325         redirect_edge_var_map_*.
9326         (flush_pending_stmts): Same.
9327         (delete_tree_ssa): Destroy edge var map.
9328         * tree-flow.h (struct _edge_var_map): New.
9329         Define edge_var_map vector type.
9330         Declare redirect_edge_var_map_* prototypes.
9331         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
9332         * tree-cfg.c (reinstall_phi_args): Replace
9333         PENDING_STMT use with redirect_edge_var_map_*.
9334
9335 2008-03-05  Richard Guenther  <rguenther@suse.de>
9336
9337         PR tree-optimization/35472
9338         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
9339         whose single use_stmt has a overlapping set of loaded and
9340         stored symbols as that use_stmt might be a noop assignment then.
9341
9342 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
9343
9344         * gthr-rtems.h: Implement __gthread_mutex_destroy.
9345
9346 2008-03-05  Richard Guenther  <rguenther@suse.de>
9347
9348         PR c++/35336
9349         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
9350         should be constants.
9351         * tree-cfg.c (verify_expr): Verify it.
9352         * fold-const.c (fold_truthop): Remove code generating
9353         BIT_FIELD_REFs of structure bases.
9354         (fold_binary): Likewise.
9355         (fold_ternary): Position and size of BIT_FIELD_REFs are
9356         always host integers.
9357         (make_bit_field_ref): Remove.
9358         (optimize_bit_field_compare): Remove.
9359         (all_ones_mask_p): Remove.
9360
9361 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
9362
9363         PR gcc/33009
9364         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
9365         (split_block_and_df_analyze): New. Split basic block and rebuild
9366         dataflow.
9367         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
9368         SPLIT_BLOCK.
9369         (split_pattern_seq): Likewise.
9370         (erase_matching_seqs): Likewise.
9371         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
9372
9373 2008-03-04  Geoff Keating  <geoffk@apple.com>
9374
9375         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
9376         declaration and code.
9377         (tree_invalid_nonnegative_warnv_p): Likewise.
9378
9379 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
9380
9381         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
9382         examples.  Truncate option-names then causing overfull hbox.
9383
9384 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9385
9386         PR target/35222
9387         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
9388         on hpux10.
9389         * configure: Rebuilt.
9390
9391 2008-03-04  Rafael Espindola  <espindola@google.com>
9392
9393         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
9394         (tree_unary_nonnegative_warnv_p): New.
9395         (tree_binary_nonnegative_warnv_p): New.
9396         (tree_single_nonnegative_warnv_p): New.
9397         (tree_invalid_nonnegative_warnv_p): New.
9398         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
9399
9400 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9401
9402         PR 28322
9403         * opts.c (handle_option): Postpone 'unknown option' errors only for
9404         warning options.
9405
9406 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
9407
9408         PR target/35453
9409         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
9410         (_SIDD_XXX): This.
9411
9412 2008-03-04  Rafael Espindola  <espindola@google.com>
9413
9414         * fold-const.c (tree_unary_nonzero_warnv_p): New.
9415         (tree_binary_nonzero_warnv_p): New.
9416         (tree_single_nonzero_warnv_p): New.
9417         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
9418
9419 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
9420
9421         PR middle-end/35456
9422         * fold-const.c (fold_cond_expr_with_comparison): Prevent
9423         transformations for modes that have signed zeros.
9424         * ifcvt.c (noce_try_abs): Ditto.
9425
9426 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
9427
9428         * config/i386/i386.c (override_options): Force
9429         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
9430
9431 2008-03-04  Jan Hubicka  <jh@suse.cz>
9432
9433         PR c++/35262
9434         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
9435         in last commit.
9436
9437 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
9438
9439         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
9440         label to probe the stack.
9441
9442 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
9443
9444         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
9445         (__gthr_win32_mutex_destroy): Declare.
9446         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
9447         __gthr_win32_mutex_destroy.
9448         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
9449
9450 2008-03-03  Jan Hubicka  <jh@suse.cz>
9451
9452         PR c++/35262
9453         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
9454         aggressive on inlining cold calls.
9455
9456 2008-03-03  Richard Guenther  <rguenther@suse.de>
9457
9458         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
9459         struct copies into the expression table.
9460         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
9461         (try_to_simplify): Likewise.
9462         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
9463         integral and pointer arguments which do not change the
9464         precision to NOP_EXPRs.
9465         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
9466         VIEW_CONVERT_EXPR case.
9467
9468 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
9469
9470         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
9471         defined in a loop at depth 0 is invariant.
9472         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
9473         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
9474         be called at loop depth 0.
9475
9476 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
9477
9478         PR driver/35420
9479         * gcc.c (process_command): Update copyright notice dates.
9480         * gcov.c (print_version): Likewise.
9481         * gcov-dump.c (print_version): Likewise.
9482         * mips-tfile.c (main): Likewise.
9483         * mips-tdump.c (main): Likewise.
9484
9485 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9486
9487         PR 24924
9488         * c-common.c (flag_permissive): Delete.
9489         (constant_expression_warnings): Check flags first.
9490         (constant_expression_error): New.
9491         * c-common.h (flag_permissive): Delete.
9492         (constant_expression_error): Declare.
9493         * flags.h (flag_permissive): Declare. Update description.
9494         * diagnostic.c (pedwarn): Update.
9495         (permerror): New.
9496         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
9497         (permissive_error_kind): New.
9498         * toplev.c (flag_permissive): Define. Update description.
9499         * toplev.h (permissive_error_kind): Declare.
9500         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
9501         (pedwarn_c90): Use pedantic_warning_kind.
9502         * c-opts.c (c_common_post_options): flag_permissive does not affect
9503         flag_pedantic_errors.
9504
9505 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
9506
9507         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
9508         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
9509         __absvsi2, __absvDI2): Use unsigned arithmetic.
9510
9511 2008-03-02  Andi Kleen  <ak@suse.de>
9512             Richard Guenther  <rguenther@suse.de>
9513
9514         * struct-equiv.c: Remove file.
9515         * cfg_cleanup.c (condjump_equiv_p): Remove.
9516         * Makefile.in (OBJS-common): Remove struct-equiv.o.
9517         (struct-equiv.o): Remove rule.
9518         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
9519         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
9520         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
9521
9522 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
9523
9524         * ifcvt.c (noce_process_if_block): Try to handle only the then
9525         block if the else block exists but isn't suitable.
9526
9527 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
9528
9529         PR gcc/35063
9530         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
9531         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
9532         regression from previous patch.
9533
9534 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
9535
9536         PR gcc/35063
9537         * gthr.h: Add __gthread_mutex_destroy as a function that must be
9538         implemented.
9539         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
9540         * gthr-single.h (__gthread_mutex_destroy): Likewise.
9541         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
9542         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
9543         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
9544         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
9545         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
9546         (__gthread_mutex_destroy_function): Rename to
9547         __gthread_mutex_destroy.
9548         * gthr-dce.h (__gthread_mutex_destroy): Call
9549         pthread_mutex_destroy.
9550         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
9551         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
9552         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
9553
9554 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
9555
9556         * df-scan.c (df_ref_chain_change_bb): Simplify.
9557         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
9558         set_block_for_insn if there's any change.
9559         * df.h ((df_insn_change_bb): Fix prototype.
9560         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
9561         df_insn_change_bb, don't call set_block_for_insn.
9562         * emit-rtl.c (reorder_insns): Likewise.
9563         * haifa-sched.c (move_insn): Likewise.
9564
9565 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
9566
9567         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
9568
9569 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
9570
9571         * tree-flow-inline.h (next_readonly_imm_use): Return
9572         NULL_USE_OPERAND_P after the end.
9573
9574 2008-03-01  Richard Guenther  <rguenther@suse.de>
9575
9576         PR tree-optimization/35411
9577         * tree-sra.c (sra_build_assignment): Split conversion to
9578         final type to a separate statement if we are not assigning
9579         to a register.
9580
9581 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
9582
9583         * fold-const.c (fold_convertible_p): Correct the logic to follow
9584         that in fold_convert().
9585
9586 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
9587
9588         PR c++/35315
9589         * tree-inline.c (build_duplicate_type): When we make a
9590         duplicate type, make it unique in the canonical types system.
9591
9592 2008-02-29  Tom Tromey  <tromey@redhat.com>
9593
9594         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
9595         input_file_stack_history, input_file_stack_restored): Remove.
9596         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
9597         * input.h (struct file_stack): Remove.
9598         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
9599         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
9600         Likewise.
9601         * diagnostic.h (struct diagnostic_context) <last_module>: Change
9602         type.
9603         (diagnostic_last_module_changed): Add 'map' argument.
9604         (diagnostic_set_last_function): Likewise.
9605         * diagnostic.c (undiagnostic_report_current_module): Iterate using
9606         line map, not input_file_stack.
9607         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
9608
9609 2008-02-29  Paul Brook  <paul@codesourcery.com>
9610
9611         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
9612
9613 2008-02-29  Paul Brook  <paul@codesourcery.com>
9614
9615         * config/arm/ieee754-df.S (muldf3): Use RET macros.
9616
9617 2008-02-29  Richard Guenther  <rguenther@suse.de>
9618
9619         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
9620         vn_lookup_or_add.
9621         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
9622         value for comparing for a store match.
9623         (simplify_unary_expression): Do nothing for SSA_NAMEs.
9624         (try_to_simplify): Do not do a full-blown reference lookup.
9625
9626 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
9627
9628         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
9629         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
9630
9631         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
9632
9633 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
9634
9635         * tree-loop-linear.c (try_interchange_loops): Compare memory access
9636         strides against cache sizes.
9637
9638 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
9639
9640         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
9641         constant to fpul.
9642
9643 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
9644
9645         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
9646         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
9647         is smaller than the original promoted value.
9648         (simplify_subreg): If OP is a SUBREG, try to preserve its
9649         SUBREG_PROMOTED_VAR_P information.
9650
9651 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
9652
9653         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
9654         (VN_INFO_GET): Allocate new objects on the obstack.
9655         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
9656         for rpo_numbers_temp, for consistency.
9657         (free_scc_vn): Free the obstack.
9658
9659 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
9660
9661         * doc/invoke.texi: Document -ftree-loop-distribution.
9662         * tree-loop-distribution.c: New.
9663         * tree-pass.h (pass_loop_distribution): New.
9664         * graphds.h (struct graph): Add htab_t indices.
9665         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
9666         * tree-vectorizer.c (rename_variables_in_loop): Extern.
9667         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
9668         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
9669         * tree-data-ref.c (debug_data_dependence_relations): New.
9670         (dump_data_dependence_relation): Also print data references.
9671         (free_data_ref): Extern.
9672         (same_access_functions): Moved...
9673         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
9674         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
9675         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
9676         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
9677         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
9678         (stmts_from_loop): Skip LABEL_EXPR.
9679         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
9680         New.
9681         (build_rdg): Initialize rdg->indices htab.
9682         (free_rdg, stores_from_loop, ref_base_address,
9683         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
9684         have_similar_memory_accesses_1, ref_base_address_1,
9685         remove_similar_memory_refs): New.
9686         * tree-data-ref.h: Depend on tree-chrec.h.
9687         (debug_data_dependence_relations, free_data_ref): Declared.
9688         (same_access_functions): ... here.
9689         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
9690         New.
9691         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
9692         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
9693         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
9694         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
9695         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
9696         rdg_vertex_for_stmt): Declared.
9697         (struct rdg_edge): Add level.
9698         (RDGE_LEVEL): New.
9699         (free_rdg, stores_from_loop, remove_similar_memory_refs,
9700         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
9701         Declared.
9702         (rdg_has_similar_memory_accesses): New.
9703         * tree-vect-analyze.c: Remove unused static decls.
9704         * lambda.h (dependence_level): New.
9705         * common.opt (ftree-loop-distribution): New.
9706         * tree-flow.h (mark_virtual_ops_in_bb, 
9707         slpeel_tree_duplicate_loop_to_edge_cfg,
9708         rename_variables_in_loop): Declared.
9709         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
9710         (OBJS-common): Add tree-loop-distribution.o.
9711         (tree-loop-distribution.o): New rule.
9712         * tree-cfg.c (mark_virtual_ops_in_bb): New.
9713         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
9714         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
9715
9716 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
9717
9718         PR target/33963
9719         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
9720         other than structures and unions.
9721
9722 2008-02-28  Richard Guenther  <rguenther@suse.de>
9723
9724         Revert:
9725         2008-02-26  Richard Guenther  <rguenther@suse.de>
9726
9727         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9728         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9729         (lookup_decl_from_uid): Declare.
9730         (remove_decl_from_map): Likewise.
9731         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9732         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9733         (decl_for_uid_map): New global hashtable mapping DECL_UID
9734         to the decl tree.
9735         (init_ttree): Allocate it.
9736         (insert_decl_to_uid_decl_map): New helper function.
9737         (make_node_stat): Insert new decls into the map.
9738         (copy_node_stat): Likewise.
9739         (lookup_decl_from_uid): New function.
9740         (remove_decl_from_map): Likewise.
9741         (print_decl_for_uid_map_statistics): New helper.
9742         (dump_tree_statistics): Call it.
9743
9744         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9745         (referenced_var_iterator): Adjust.
9746         (FOR_EACH_REFERENCED_VAR): Adjust.
9747         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9748         (num_referenced_vars): Adjust.
9749         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9750         (first_referenced_var): Remove.
9751         (end_referenced_vars_p): Likewise.
9752         (next_referenced_var): Likewise.
9753         (referenced_var_iterator_set): New helper function.
9754         * tree-dfa.c (referenced_var_lookup): Adjust.
9755         (referenced_var_check_and_insert): Likewise.
9756         (remove_referenced_var): Likewise.
9757         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9758         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9759         (verify_call_clobbering): Likewise.
9760         (verify_memory_partitions): Likewise.
9761         (init_tree_ssa): Allocate bitmap instead of hashtable for
9762         referenced_vars.
9763         (delete_tree_ssa): Adjust.
9764         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9765         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9766         (compute_tag_properties): Likewise.
9767         (set_initial_properties): Likewise.
9768         (find_partition_for): Likewise.
9769         (update_reference_counts): Likewise.
9770         (dump_may_aliases_for): Likewise.
9771         * tree-ssa-operands.c (add_virtual_operand): Likewise.
9772         (add_call_clobber_ops): Likewise.
9773         (add_call_read_ops): Likewise.
9774         (get_asm_expr_operands): Likewise.
9775         * tree-into-ssa.c (dump_decl_set): Likewise.
9776         (update_ssa): Likewise.
9777         * tree-sra.c (scan_function): Likewise.
9778         (decide_instantiations): Likewise.
9779         (scalarize_parms): Likewise.
9780         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9781         (dsa_named_for): Likewise.
9782         * tree-ssa-structalias.c (update_alias_info): Likewise.
9783         (merge_smts_into): Likewise.
9784
9785 2008-02-27  David Daney  <ddaney@avtrex.com>
9786
9787         PR target/34409
9788         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
9789         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
9790         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
9791         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
9792         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
9793
9794 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
9795
9796         PR target/25477
9797         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
9798         (BUILT_IN_NEXTTOWARD): Remove.
9799         (BUILT_IN_NEXTTOWARDF): Ditto.
9800         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
9801         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
9802
9803 2008-02-27  Tom Tromey  <tromey@redhat.com>
9804
9805         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
9806         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
9807
9808 2008-02-27  Jan Beulich  <jbeulich@novell.com>
9809
9810         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
9811         update the respective field on newdecl.
9812
9813 2008-02-27  Revital Eres  <eres@il.ibm.com>
9814
9815         PR rtl-optimization/34999
9816         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
9817         crossing edges that ends with a call insn.
9818         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
9819         call insn and clear the EDGE_CROSSING flag of the crossing edge
9820         when fixing fallthru edges.
9821
9822 2008-02-27  Richard Guenther  <rguenther@suse.de>
9823
9824         PR middle-end/35390
9825         * fold-const.c (fold_unary): Return the correct argument,
9826         converted to the result type.
9827
9828 2008-02-27  Richard Guenther  <rguenther@suse.de>
9829
9830         PR middle-end/34971
9831         * expr.c (expand_expr_real_1): Assert on rotates that operate
9832         on partial modes.
9833         * fold-const.c (fold_binary): Use the types precision, not the
9834         bitsize of the mode if folding rotate expressions.  Build rotates
9835         only for full modes.
9836
9837 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
9838
9839         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
9840         and CPP_PRAGMA_EOL.
9841         * c-pragma.c (pragma_ns_name): New typedef.
9842         (registered_pp_pragmas): New variable.
9843         (c_pp_lookup_pragma): New function.
9844         (c_register_pragma_1): If flag_preprocess_only, do nothing
9845         for non-expanded pragmas, for expanded ones push pragma's
9846         namespace and name into registered_pp_pragmas vector.
9847         (c_invoke_pragma_handler): Register OpenMP pragmas even when
9848         flag_preprocess_only, don't register GCC pch_preprocess
9849         pragma if flag_preprocess_only.
9850         * c-opts.c (c_common_init): Call init_pragma even if
9851         flag_preprocess_only.
9852         * c-pragma.c (c_pp_lookup_pragma): New prototype.
9853         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
9854         cpp_register_pragma if flag_preprocess_only.
9855
9856 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9857
9858         PR c/28800
9859         * c-parser.c (c_parser_translation_unit): Warn for empty
9860         translation unit, not empty source file.
9861
9862 2008-02-26  Paul Brook  <paul@codesourcery.com>
9863
9864         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
9865         operand for Thumb-2.
9866         * config/arm/arm.h (reg_class): Add CORE_REGS.
9867         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
9868         (BASE_REG_CLASS): Use CORE_REGS.
9869         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
9870         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
9871         (REGNO_OK_FOR_INDEX_P): Exclude SP.
9872         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
9873         ARM_REGNO_OK_FOR_INDEX_P.
9874         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
9875         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
9876         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
9877         (ldm/stm peepholes): Ditto.
9878         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
9879         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
9880         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
9881         * config/arm/constraints.md: Enable "k" constraint on ARM.
9882
9883 2008-02-27  Ben Elliston  <bje@au.ibm.com>
9884
9885         * config/rs6000/rs6000.c: Annotate cache line size field in all
9886         instances of struct processor_costs.
9887
9888 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
9889
9890         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
9891         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
9892         jump_bypass): New counters.
9893         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
9894         * dce.c (gate_ud_dce): Same.
9895         (gate_fast_dce): Same.
9896         * dse.c (gate_dse1): New function.
9897         (gate_dse2): New function.
9898         (gate_dse): Merge results of new gate functions.
9899         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
9900         (gate_handle_jump_bypass): Add dbg_cnt.
9901         (gate_handle_gcse): Add dbg_cnt.
9902         * ifcvt.c (gate_handle_if_conversion): Same.
9903         (gate_handle_if_after_combine): Same.
9904         (gate_handle_if_after_reload): Same.
9905         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
9906
9907 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
9908
9909         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
9910         line sizes.
9911         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
9912
9913 2008-02-26  Jason Merrill  <jason@redhat.com>
9914
9915         PR c++/35315
9916         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
9917         alone if it's the naming decl for the type's main variant.
9918
9919 2008-02-26  Tom Tromey  <tromey@redhat.com>
9920
9921         * system.h (USE_MAPPED_LOCATION): Poison.
9922         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
9923         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
9924         (make_goto_expr_edges): Likewise.
9925         (remove_bb): Likewise.
9926         (execute_warn_function_return): Likewise.
9927         * basic-block.h (struct edge_def) <goto_locus>: Change type to
9928         location_t.
9929         * c-common.c (fname_decl): Remove old location code.
9930         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
9931         location code.
9932         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
9933         variant.
9934         (ASM_INPUT_SOURCE_LOCATION): Likewise.
9935         (gen_rtx_ASM_INPUT): Likewise.
9936         (gen_rtx_ASM_INPUT_loc): Likewise.
9937         (get_rtx_asm_OPERANDS): Remove.
9938         * cfglayout.c (insn_locators_alloc): Remove old location code.
9939         (set_curr_insn_source_location): Likewise.
9940         (curr_insn_locator): Likewise.
9941         * print-tree.c (print_node): Remove old location code.
9942         * tree-mudflap.c (mf_varname_tree): Remove old location code.
9943         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
9944         * cfgexpand.c (expand_gimple_cond_expr): Don't use
9945         location_from_locus.
9946         (construct_exit_block): Remove old location code.
9947         * emit-rtl.c (force_next_line_note): Remove old location code.
9948         * profile.c (branch_prob): Remove old location code.
9949         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
9950         LOC_LINE): Remove old-location variants.
9951         * langhooks.c (lhd_print_error_function): Remove old location
9952         code.
9953         * configure, config.in: Rebuilt.
9954         * configure.ac (--enable-mapped-location): Remove.
9955         * c-decl.c (c_init_decl_processing): Remove old location code.
9956         (finish_function): Likewise.
9957         * recog.c (decode_asm_operands): Remove old location code.
9958         * c-pch.c (c_common_read_pch): Remove old location code.
9959         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
9960         variants.
9961         * gimple-low.c (lower_function_body): Remove old location code.
9962         * toplev.c (unknown_location): Remove.
9963         (push_srcloc): Remove old-location variant.
9964         (process_options): Remove old location code.
9965         (lang_dependent_init): Likewise.
9966         * input.h (UNKNOWN_LOCATION): Move definition.
9967         (location_t): Undeprecate.
9968         (source_locus): Remove.
9969         (location_from_locus): Remove.
9970         (struct location_s): Remove.
9971         Remove all old-location code.
9972         (input_line, input_filename): Remove.
9973         * final.c (final_scan_insn): Remove old location code.
9974         * diagnostic.c (diagnostic_build_prefix): Remove
9975         USE_MAPPED_LOCATION test.
9976         * tree.h (gimple_stmt) <locus>: Now a location_t.
9977         (tree_exp) <locus>: Likewise.
9978         (DECL_IS_BUILTIN): Remove old-location variant.
9979         (annotate_with_file_line, annotate_with_locus): Likewise.
9980         (expr_locus, set_expr_locus): Update.
9981         * tree.c (build1_stat): Remove old location code.
9982         (last_annotated_node): Remove.
9983         (annotate_with_file_line): Remove old-location variant.
9984         (annotate_with_locus): Likewise.
9985         (expr_location): Remove old location code.
9986         (set_expr_location): Likewise.
9987         (expr_has_location): Likewise.
9988         (expr_locus): Likewise.
9989         (set_expr_locus): Likewise.
9990         (expr_filename): Don't use location_from_locus.
9991         (expr_lineno): Likewise.
9992         * rtl-error.c (location_for_asm): Remove old location code.
9993         * c-lex.c (cb_line_change): Remove old location code.
9994         (fe_file_change): Likewise.
9995         (cb_def_pragma): Likewise.
9996         (c_lex_with_flags): Likewise.
9997         * gengtype.c (do_typedef): Don't special-case location types.
9998         (define_location_structures): Remove.
9999         (main): Don't call define_location_structures.
10000         * tree-pretty-print.c (dump_implicit_edges): Remove old location
10001         code.
10002
10003 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10004
10005         PR 26264
10006         * builtins.def (BUILT_IN_STDARG_START): Remove.
10007         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
10008         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
10009         * tree-inline.c (inline_forbidden_p_1): Likewise.
10010         
10011 2008-02-26  Richard Guenther  <rguenther@suse.de>
10012
10013         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
10014         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
10015         (lookup_decl_from_uid): Declare.
10016         (remove_decl_from_map): Likewise.
10017         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
10018         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
10019         (decl_for_uid_map): New global hashtable mapping DECL_UID
10020         to the decl tree.
10021         (init_ttree): Allocate it.
10022         (insert_decl_to_uid_decl_map): New helper function.
10023         (make_node_stat): Insert new decls into the map.
10024         (copy_node_stat): Likewise.
10025         (lookup_decl_from_uid): New function.
10026         (remove_decl_from_map): Likewise.
10027         (print_decl_for_uid_map_statistics): New helper.
10028         (dump_tree_statistics): Call it.
10029
10030         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
10031         (referenced_var_iterator): Adjust.
10032         (FOR_EACH_REFERENCED_VAR): Adjust.
10033         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
10034         (num_referenced_vars): Adjust.
10035         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
10036         (first_referenced_var): Remove.
10037         (end_referenced_vars_p): Likewise.
10038         (next_referenced_var): Likewise.
10039         (referenced_var_iterator_set): New helper function.
10040         * tree-dfa.c (referenced_var_lookup): Adjust.
10041         (referenced_var_check_and_insert): Likewise.
10042         (remove_referenced_var): Likewise.
10043         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
10044         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10045         (verify_call_clobbering): Likewise.
10046         (verify_memory_partitions): Likewise.
10047         (init_tree_ssa): Allocate bitmap instead of hashtable for
10048         referenced_vars.
10049         (delete_tree_ssa): Adjust.
10050         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
10051         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10052         (compute_tag_properties): Likewise.
10053         (set_initial_properties): Likewise.
10054         (find_partition_for): Likewise.
10055         (update_reference_counts): Likewise.
10056         (dump_may_aliases_for): Likewise.
10057         * tree-ssa-operands.c (add_virtual_operand): Likewise.
10058         (add_call_clobber_ops): Likewise.
10059         (add_call_read_ops): Likewise.
10060         (get_asm_expr_operands): Likewise.
10061         * tree-into-ssa.c (dump_decl_set): Likewise.
10062         (update_ssa): Likewise.
10063         * tree-sra.c (scan_function): Likewise.
10064         (decide_instantiations): Likewise.
10065         (scalarize_parms): Likewise.
10066         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
10067         (dsa_named_for): Likewise.
10068         * tree-ssa-structalias.c (update_alias_info): Likewise.
10069         (merge_smts_into): Likewise.
10070
10071 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10072
10073         PR 34351
10074         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
10075         * c-opts.c (c_common_handle_option): Wall enables
10076         Wvolatile-register-var.
10077         * common.opt: Move Wvolatile-register-var to...
10078         * c.opt: ...here.
10079         
10080 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10081
10082         * common.opt (Wlarger-than=): New.
10083         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
10084         -Wlarger-than=.
10085         * opts.c (common_handle_option): Handle -Wlarger-than=.
10086         * optc-gen.awk: Likewise.
10087         * opth-gen.awk: Likewise.
10088         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
10089         * tree-optimize.c (tree_rest_of_compilation): Likewise.
10090         
10091 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10092
10093         * c-common.c (match_case_to_enum_1): Add appropriate
10094         OPT_W* parameter to warning.
10095         (c_do_switch_warnings): Likewise.
10096         * c-typeck.c (warning_init): Add one more parameter following
10097         'warning' function.
10098         (push_init_level): Update call to warning_init.
10099         (pop_init_level): Likewise.
10100         (add_pending_init): Likewise.
10101         (output_init_element: Likewise.
10102
10103 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10104
10105         PR 28322
10106         * toplev.c (toplev_main): If there are warnings or error, print
10107         errors for ignored options.
10108         * opts.c (ignored_options): New static variable.
10109         (postpone_unknown_option_error): New.
10110         (print_ignored_options): New.
10111         (handle_option): Postpone errors for unknown -Wno-* options.
10112         * opts.h (print_ignored_options): Declare.
10113         
10114 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
10115
10116         * config/mips/mips.md (loadgp_blockage, blockage): Change type
10117         to "ghost".
10118
10119 2008-02-25  Richard Guenther  <rguenther@suse.de>
10120
10121         Revert:
10122         2008-02-25  Richard Guenther  <rguenther@suse.de>
10123
10124         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
10125         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
10126         (lookup_decl_from_uid): Declare.
10127         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
10128         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
10129         (decl_for_uid_map): New global hashtable mapping DECL_UID
10130         to the decl tree.
10131         (init_ttree): Allocate it.
10132         (insert_decl_to_uid_decl_map): New helper function.
10133         (make_node_stat): Insert new decls into the map.
10134         (copy_node_stat): Likewise.
10135         (lookup_decl_from_uid): New function.
10136         (print_decl_for_uid_map_statistics): New helper.
10137         (dump_tree_statistics): Call it.
10138
10139         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
10140         (referenced_var_iterator): Adjust.
10141         (FOR_EACH_REFERENCED_VAR): Adjust.
10142         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
10143         (num_referenced_vars): Adjust.
10144         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
10145         (first_referenced_var): Remove.
10146         (end_referenced_vars_p): Likewise.
10147         (next_referenced_var): Likewise.
10148         (referenced_var_iterator_set): New helper function.
10149         * tree-dfa.c (referenced_var_lookup): Adjust.
10150         (referenced_var_check_and_insert): Likewise.
10151         (remove_referenced_var): Likewise.
10152         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
10153         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10154         (verify_call_clobbering): Likewise.
10155         (verify_memory_partitions): Likewise.
10156         (init_tree_ssa): Allocate bitmap instead of hashtable for
10157         referenced_vars.
10158         (delete_tree_ssa): Adjust.
10159         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
10160         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10161         (compute_tag_properties): Likewise.
10162         (set_initial_properties): Likewise.
10163         (find_partition_for): Likewise.
10164         (update_reference_counts): Likewise.
10165         (dump_may_aliases_for): Likewise.
10166         * tree-ssa-operands.c (add_virtual_operand): Likewise.
10167         (add_call_clobber_ops): Likewise.
10168         (add_call_read_ops): Likewise.
10169         (get_asm_expr_operands): Likewise.
10170         * tree-into-ssa.c (dump_decl_set): Likewise.
10171         (update_ssa): Likewise.
10172         * tree-sra.c (scan_function): Likewise.
10173         (decide_instantiations): Likewise.
10174         (scalarize_parms): Likewise.
10175         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
10176         (dsa_named_for): Likewise.
10177         * tree-ssa-structalias.c (update_alias_info): Likewise.
10178         (merge_smts_into): Likewise.
10179
10180 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
10181
10182         PR fortran/29549
10183         * doc/invoke.texi (-fcx-limited-range): Document new option.
10184         * toplev.c (process_options): Handle -fcx-fortran-rules.
10185         * common.opt: Add documentation for -fcx-fortran-rules.
10186
10187 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
10188
10189         PR c/35162
10190         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
10191         actual behaviour and C99.
10192         
10193 2008-02-26  Ben Elliston  <bje@au.ibm.com>
10194
10195         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
10196         (ASM_CPU_POWER6_SPEC): Likewise.
10197         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
10198         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
10199         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
10200
10201 2008-02-25  Richard Guenther  <rguenther@suse.de>
10202
10203         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
10204         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
10205         (lookup_decl_from_uid): Declare.
10206         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
10207         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
10208         (decl_for_uid_map): New global hashtable mapping DECL_UID
10209         to the decl tree.
10210         (init_ttree): Allocate it.
10211         (insert_decl_to_uid_decl_map): New helper function.
10212         (make_node_stat): Insert new decls into the map.
10213         (copy_node_stat): Likewise.
10214         (lookup_decl_from_uid): New function.
10215         (print_decl_for_uid_map_statistics): New helper.
10216         (dump_tree_statistics): Call it.
10217
10218         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
10219         (referenced_var_iterator): Adjust.
10220         (FOR_EACH_REFERENCED_VAR): Adjust.
10221         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
10222         (num_referenced_vars): Adjust.
10223         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
10224         (first_referenced_var): Remove.
10225         (end_referenced_vars_p): Likewise.
10226         (next_referenced_var): Likewise.
10227         (referenced_var_iterator_set): New helper function.
10228         * tree-dfa.c (referenced_var_lookup): Adjust.
10229         (referenced_var_check_and_insert): Likewise.
10230         (remove_referenced_var): Likewise.
10231         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
10232         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10233         (verify_call_clobbering): Likewise.
10234         (verify_memory_partitions): Likewise.
10235         (init_tree_ssa): Allocate bitmap instead of hashtable for
10236         referenced_vars.
10237         (delete_tree_ssa): Adjust.
10238         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
10239         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10240         (compute_tag_properties): Likewise.
10241         (set_initial_properties): Likewise.
10242         (find_partition_for): Likewise.
10243         (update_reference_counts): Likewise.
10244         (dump_may_aliases_for): Likewise.
10245         * tree-ssa-operands.c (add_virtual_operand): Likewise.
10246         (add_call_clobber_ops): Likewise.
10247         (add_call_read_ops): Likewise.
10248         (get_asm_expr_operands): Likewise.
10249         * tree-into-ssa.c (dump_decl_set): Likewise.
10250         (update_ssa): Likewise.
10251         * tree-sra.c (scan_function): Likewise.
10252         (decide_instantiations): Likewise.
10253         (scalarize_parms): Likewise.
10254         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
10255         (dsa_named_for): Likewise.
10256         * tree-ssa-structalias.c (update_alias_info): Likewise.
10257         (merge_smts_into): Likewise.
10258
10259 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
10260
10261         PR target/35258
10262         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
10263         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
10264         * alias.h (nonoverlapping_memrefs_p): Likewise.
10265
10266 2008-02-25  Jan Beulich  <jbeulich@novell.com>
10267
10268         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
10269         * config/i386/netware-libgcc.exp: Add __bswap?i2,
10270         __emultls_get_address, __emultls_register_common,
10271         __floatundi?f, and _Unwind_GetIPInfo.
10272         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
10273         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
10274         (gen_regparm_prefix): Likewise.
10275         (i386_nlm_encode_section_info): Sync with
10276         config/i386/winnt.c:i386_pe_encode_section_info().
10277         (i386_nlm_maybe_mangle_decl_assembler_name): New.
10278         i386_nlm_mangle_decl_assembler_name): New.
10279         (netware_override_options): New.
10280         * config/i386/netware.h (netware_override_options): Declare.
10281         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
10282         (i386_nlm_mangle_decl_assembler_name): Declare.
10283         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
10284
10285 2008-02-25  Ben Elliston  <bje@au.ibm.com>
10286
10287         PR other/32948
10288         * c-decl.c (grokdeclarator): Remove unused local variables
10289         `typedef_type' and `type_as_written'.
10290         * bb-reorder.c
10291         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
10292         unused local variable `has_hot_blocks'.
10293         (fix_crossing_conditional_branches): Remove unused local variable
10294         `prev_bb'.
10295         
10296 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
10297
10298         PR middle-end/19984
10299         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
10300         using DEF_C99_BUILTIN.
10301         (BUILT_IN_NANF): Ditto.
10302         (BUILT_IN_NANL): Ditto.
10303
10304 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
10305             Revital Eres  <eres@il.ibm.com>
10306
10307         * modulo-sched.c (calculate_must_precede_follow): Address TODO
10308         regarding the order of two dependent insns in the same row.
10309
10310 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
10311
10312         * stor-layout.c (layout_decl): Do not bump the alignment of a
10313         bit-field to more than byte alignment if it is packed.
10314
10315 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
10316
10317         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
10318         e300c2 and e300c3.
10319
10320 2008-02-24  Diego Novillo  <dnovillo@google.com>
10321
10322         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
10323
10324         PR 33738
10325         * tree-vrp.c (vrp_evaluate_conditional): With
10326         -Wtype-limits, emit a warning when comparing against a
10327         constant outside the natural range of OP0's type.
10328         * c.opt (Wtype-limits): Move ...
10329         * common.opt (Wtype-limits): ... here.
10330
10331 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
10332
10333         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
10334         * config/rs6000/e300c2c3.md: New file.
10335         * config/rs6000/rs6000.c (processor_costs): Add new costs for
10336         e300c2 and e300c3.
10337         (rs6000_override_options): Add e300c2 and e300c3 cases to
10338         processor_target_table. Do not allow usage of Altivec or Spe
10339         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
10340         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
10341         * config/rs6000/rs6000.h (processor_type): Add
10342         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
10343         (ASM_CPU_SPEC): Add e300c2 and e300c3.
10344         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
10345         and ppce300c3. Include e300c2c3.md.
10346
10347 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
10348
10349         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
10350         instead of TARGET_STRICT_ALIGN.
10351
10352 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
10353
10354         * explow.c (memory_address): Assert that the generated address is
10355         valid.
10356
10357 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
10358
10359         PR target/25477
10360         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
10361         * config/darwin-ppc-ldouble-patch.def: New file.
10362         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
10363         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
10364         SUBTARGET_INIT_BUILTINS if defined.
10365         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
10366         New functions.
10367
10368 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10369
10370         PR rtl-opt/33512
10371         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
10372         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
10373
10374 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10375
10376         PR pch/35027
10377         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
10378         file" warning condtional on -Winvalid-PCH.
10379
10380 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
10381
10382         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
10383
10384 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
10385
10386         PR target/22076
10387         PR target/34256 
10388         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
10389         prevent reload from using MMX registers.
10390         (*mov<mode>_internal): Ditto.
10391         (*movv2sf_internal_rex64): Ditto.
10392         (*movv2sf_internal): Ditto.
10393
10394 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10395
10396         PR documentation/31569
10397         * doc/install.texi2html: Use makeinfo --no-number-sections.
10398
10399 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
10400
10401         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
10402         ensure that we can address an entire entity > 8 bytes.  Don't
10403         generate reg+reg addressing for such data.
10404
10405 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
10406
10407         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
10408         strings when optimizing for size, unless the target cares about
10409         alignment.
10410
10411 2008-02-22  Tom Tromey  <tromey@redhat.com>
10412
10413         * regclass.c (current_pass): Remove declaration.
10414
10415 2008-02-22  Anatoly Sokolov <aesok@post.ru>
10416
10417         * config/avr/libgcc.S (__RAMPZ__): Define.
10418         (__do_copy_data): Add for devices with 128KB code memory.
10419
10420 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
10421
10422         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
10423         Use spe_abi.
10424         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
10425
10426 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
10427
10428         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
10429         GENNONACR_REGS.
10430
10431 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10432
10433         PR c/19999
10434         * c-typeck.c (build_binary_op): Warn about floating point
10435         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
10436
10437 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
10438
10439         PR target/34526
10440         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
10441         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
10442         add vrsave.
10443         (rs6000_override_options): Set altivec_abi as default, not override,
10444         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
10445         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
10446         is used; use new member spe_abi.
10447         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
10448         spe_abi and altivec_abi.
10449
10450 2008-02-22  Tomas Bily  <tbily@suse.cz>
10451
10452         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
10453
10454 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10455
10456         PR bootstrap/35273
10457         * config.build (build_file_translate): Set to `CMD //c' only if
10458         it works.
10459         * Makefile.in (build_file_translate): Improve comment.
10460
10461 2008-02-21  Jan Hubicka  <jh@suse.cz>
10462
10463         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
10464         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
10465         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
10466
10467 2008-02-21  Michael Matz  <matz@suse.de>
10468
10469         PR target/35264
10470         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
10471
10472 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
10473
10474         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
10475         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
10476         as insn constraint.
10477         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
10478         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
10479         SSE_VEC_FLOAT_MODE_P as insn constraint.
10480         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
10481         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
10482         sse4a_movntdf using MODEF mode iterator.
10483         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
10484         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
10485         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
10486         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
10487         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
10488         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
10489         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
10490
10491 2008-02-21  Richard Guenther  <rguenther@suse.de>
10492
10493         * tree.def (PAREN_EXPR): New tree code.
10494         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
10495         and PAREN_EXPR.
10496         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
10497         * expr.c (expand_expr_real_1): Likewise.
10498         * tree-inline.c (estimate_num_insns_1): Likewise.
10499         * tree-complex.c (expand_complex_move): Likewise.
10500         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
10501         as plain x.
10502
10503 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10504
10505         PR target/35225
10506         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
10507
10508 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10509
10510         PR target/35190
10511         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
10512
10513         * config/sh/sh.c (find_barrier): Don't go past
10514         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
10515
10516 2008-02-20  DJ Delorie  <dj@redhat.com>
10517
10518         * config/h8300/h8300.md (insv): Force source operand to be a register.
10519
10520         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
10521         as a jump, not as a plain insn.
10522         
10523 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
10524
10525         * doc/invoke.texi (Warning Options): Add new option
10526         -Wframe-larger-than=.
10527         (-Wframe-larger-than): Document.
10528
10529         * flags.h (warn_frame_larger_than, frame_larger_than_size):
10530         Add declarations for new option variables.
10531
10532         * final.c (final_start_function): Check the frame size
10533         before emission and issue a Wframe-larger-than warning.
10534
10535         * opts.c (warn_frame_larger_than, frame_larger_than_size):
10536         Add definitions for new option variables.
10537         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
10538
10539         * common.opt (Wframe-larger-than=): New option.
10540
10541 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
10542
10543         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
10544         (<sse>_div<mode>3): Ditto.
10545         (<sse>_vmdiv<mode>3): Ditto.
10546         (<sse>_vmsqrt<mode>2): Ditto.
10547         (*smax<mode>3): Ditto.
10548         (sse5_frcz<mode>2): Ditto.
10549         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
10550         as insn constraint.
10551
10552 2008-02-20  Richard Guenther  <rguenther@suse.de>
10553
10554         PR middle-end/35265
10555         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
10556         be happy with INTEGRAL_TYPE_P.
10557
10558 2008-02-20  Richard Guenther  <rguenther@suse.de>
10559
10560         * fold-const.c (split_tree): Associate floatig-point expressions
10561         if flag_associative_math is set.
10562
10563 2008-02-20  Richard Guenther  <rguenther@suse.de>
10564
10565         * tree.h (fold_real_zero_addition_p): Declare.
10566         * fold-const.c (fold_real_zero_addition_p): Export.
10567         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
10568         floating-point operations with zero and one.
10569
10570 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
10571
10572         * doc/install.texi: Correct references to CFLAGS, replacing them
10573         with BOOT_CFLAGS.  Document flags used during bootstrap for
10574         target libraries.
10575                                 
10576 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
10577
10578         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
10579         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
10580         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
10581         insn constraint.
10582         (smin<mode>3): Ditto from similar patterns.
10583         (smax<mode>3): Ditto.
10584         (*ieee_smin<mode>3): Ditto.
10585         (*ieee_smax<mode>3): Ditto.
10586         * config/i386/sse.md (sse): New mode attribute.
10587         (mov<mode>): Macroize expander from movv4sf and movv2df using
10588         SSEMODEF2P mode iterator.
10589         (<sse>_movnt<mode>): Ditto from similar patterns. Use
10590         SSE_VEC_FLOAT_MODE_P as insn constraint.
10591         (storent<mode>): Ditto.
10592         (storent<mode>): Macroize expander from storentsf and storentdf using
10593         MODEF mode iterator.
10594         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
10595         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
10596         (abs<mode>2): Ditto from similar patterns.
10597         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
10598         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
10599         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
10600         (<sse>_vmsqrt<mode>2): Ditto.
10601         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
10602         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
10603         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
10604         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
10605         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
10606         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
10607         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
10608         insn constraint.
10609         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
10610         iterator and SSE_FLOAT_MODE_P as insn constraint.
10611         (<sse>_ucomi): Ditto from similar patterns.
10612         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
10613         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
10614         SSE_VEC_FLOAT_MODE_P as insn constraint.
10615         (vcond<mode>): Ditto from similar patterns.
10616         (and<mode>3, *and<mode>3): Ditto.
10617         (<sse>_nand<mode>3): Ditto.
10618         (ior<mode>3, *ior<mode>3): Ditto.
10619         (xor<mode>3, *xor<mode>3): Ditto.
10620         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
10621         iterator and SSE_FLOAT_MODE_P as insn constraint.
10622         (*nand<mode>3): Ditto from similar patterns.
10623         (*ior<mode>3): Ditto.
10624         (*xor<mode>3): Ditto.
10625
10626 2008-02-20  Ira Rosen  <irar@il.ibm.com>
10627
10628         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
10629         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
10630         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
10631
10632 2008-02-19  Jan Hubicka  <jh@suse.cz>
10633
10634         * predict.c (tree_bb_level_predictions): Remove variable next
10635         mistakely introduced by previous commit.
10636
10637 2008-02-19  Jan Hubicka  <jh@suse.cz>
10638
10639         * predict.c (predict_paths_leading_to): Rewrite.
10640         (predict_paths_for_bb): New.
10641         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
10642
10643 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10644
10645         PR bootstrap/35218
10646         * Makefile.in (build_file_translate): New.
10647         (gcc-vers.texi): Use it for translating $(abs_srcdir).
10648         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
10649         * configure.ac (build_file_translate): Substitute it.
10650         * configure: Regenerate.
10651
10652 2008-02-19  Jan Hubicka  <jh@suse.cz>
10653
10654         PR rtl-optimization/34408
10655         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
10656         invalid sharing.
10657
10658 2008-02-19  Jan Hubicka  <jh@suse.cz>
10659
10660         PR middle-end/28779
10661         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
10662         call_expr.
10663
10664 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
10665
10666         PR Ada/35186
10667         * config/i386/i386-modes.def: Revert the last DI alignment
10668         change until Ada people can look into it.
10669
10670 2008-02-19  Nick Clifton  <nickc@redhat.com>
10671
10672         * opts.c (print_specific_help): Fix typo in --help text.
10673
10674 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
10675
10676         PR target/35239
10677         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
10678         32-bit inline asm without asm alternatives for host GCC < 3.0.
10679
10680 2008-02-19  Richard Guenther  <rguenther@suse.de>
10681
10682         PR tree-optimization/34989
10683         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
10684         Allow propagation to INDIRECT_REF if we can simplify only.
10685
10686 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10687
10688         * c-common.c (warn_for_collisions_1): Use appropriate option when
10689         warning.
10690
10691 2008-02-19  Nick Clifton  <nickc@redhat.com>
10692
10693         PR other/31349
10694         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
10695         (handle_options): Fix indentation.
10696         (print_filtered_help): If no language-specific options were
10697         displayed tell the user how to list all the options supported by
10698         the language's front-end.
10699         (print_specific_help): Fix indentation and remove duplicate line.
10700         (common_handle_option): Handle the -v option.
10701         For --help enable the display of undocumented options if the -v
10702         switch has been included on the command line.
10703         For --help= check for overlaps in the arguments between the option
10704         classes and the language names and issue a warning when they
10705         cannot be disambiguated.
10706         * c.opt (v): Pass on to the common option handler.
10707
10708 2008-02-19  Revital Eres  <eres@il.ibm.com> 
10709
10710         * modulo-sched.c (sms_schedule): Change dump message when
10711         create_ddg function fails.
10712         (try_scheduling_node_in_cycle): Rename row to cycle.
10713         (print_partial_schedule): Rename CYCLE to ROW.
10714
10715 2008-02-19  Christian Bruel  <christian.bruel@st.com>
10716             Zdenek Dvorak  <ook@ucw.cz>
10717
10718         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
10719
10720 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
10721
10722         PR target/33555
10723         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
10724         (*x86_movdicc_0_m1_se): Ditto.
10725
10726 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
10727
10728         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
10729         (CMPtype): Define as __gcc_CMPtype.
10730         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
10731         (CMPtype): Define as __gcc_CMPtype.
10732
10733 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
10734
10735         Support valgrind 3.3 for --enable-checking=valgrind.
10736         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
10737         here.
10738         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
10739         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
10740         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
10741         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
10742         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
10743         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
10744         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
10745         respectively.
10746         * ggc-zone.c: Similar.
10747         * ggc-page.c: Similar.
10748
10749 2008-02-19  Paul Brook  <paul@codesourcery.com>
10750
10751         PR target/35071
10752         * config/arm/ieee754-df.S: Fix do_it typo.
10753         * config/arm/ieee754-sf.S: Fix do_it typo.
10754
10755 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
10756
10757         PR target/35189
10758         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
10759         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
10760         (OPTION_MASK_ISA_SSE_SET): Likewise.
10761         (OPTION_MASK_ISA_SSE2_SET): Likewise.
10762         (OPTION_MASK_ISA_SSE3_SET): Likewise.
10763         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
10764         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
10765         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
10766         (OPTION_MASK_ISA_SSE4_SET): Likewise.
10767         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
10768         (OPTION_MASK_ISA_SSE5_SET): Likewise.
10769         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
10770         (OPTION_MASK_ISA_MMX_UNSET): Updated.
10771         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
10772         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
10773         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
10774         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
10775         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
10776         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
10777         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
10778         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
10779         (OPTION_MASK_ISA_SSE4): Removed.
10780         (ix86_handle_option): Turn on bits in ix86_isa_flags and
10781         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
10782         (override_options): Don't turn on implied SSE/MMX bits in
10783         ix86_isa_flags.
10784
10785 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
10786
10787         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
10788         32bit host.
10789
10790 2008-02-18  Joey Ye  <joey.ye@intel.com>
10791
10792         PR middle-end/34921
10793         * tree-nested.c (insert_field_into_struct): Set type alignment
10794         to field alignment if the former is less than the latter.
10795
10796 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
10797
10798         * BASE-VER: Set to 4.4.0.
10799
10800 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10801
10802         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
10803         * doc/cfg.texi: Likewise.
10804         * doc/extend.texi: Likewise.
10805         * doc/gty.texi: Likewise.
10806         * doc/invoke.texi: Likewise.
10807         * doc/loop.texi: Likewise.
10808         * doc/md.texi: Likewise.
10809         * doc/passes.texi: Likewise.
10810         * doc/rtl.texi: Likewise.
10811         * doc/sourcebuild.texi: Likewise.
10812         * doc/tm.texi: Likewise.
10813         * doc/tree-ssa.texi: Likewise.
10814
10815 2008-02-17  Richard Guenther  <rguenther@suse.de>
10816
10817         PR middle-end/35227
10818         * tree-complex.c (init_parameter_lattice_values): Handle parameters
10819         without default definition.
10820
10821 2008-02-17  Richard Guenther  <rguenther@suse.de>
10822
10823         PR tree-optimization/35231
10824         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
10825         if A | B != 1.
10826
10827 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
10828
10829         Revert:
10830         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
10831         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
10832         libgcc_cmp_return mode.
10833
10834 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10835
10836         PR c/28368
10837         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
10838
10839 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
10840
10841         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
10842         multilibs.
10843
10844 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10845
10846         * doc/c-tree.texi: Use `@.' where appropriate.
10847         * doc/extend.texi: Likewise.
10848         * doc/install.texi: Likewise.
10849         * doc/invoke.texi: Likewise.
10850         * doc/loop.texi: Likewise.
10851         * doc/makefile.texi: Likewise.
10852         * doc/md.texi: Likewise.
10853         * doc/passes.texi: Likewise.
10854         * doc/standards.texi: Likewise.
10855         * doc/tm.texi: Likewise.
10856
10857 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
10858
10859         PR middle-end/35196
10860         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
10861         in entry_bb.
10862         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
10863         rather than in entry_bb.
10864
10865 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
10866
10867         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
10868         libgcc_cmp_return mode.
10869
10870 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
10871
10872         PR middle-end/35130
10873         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
10874         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
10875
10876 2008-02-15  Richard Guenther  <rguenther@suse.de>
10877             Zdenek Dvorak  <ook@ucw.cz>
10878
10879         PR tree-optimization/35164
10880         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
10881         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
10882         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
10883         Only propagate addresses which do not have abnormal SSA_NAMEs
10884         in their operands.
10885
10886 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
10887
10888         PR target/35088
10889         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
10890
10891 2008-02-15  Jan Hubicka  <jh@suse.cz>
10892
10893         PR middle-end/35149
10894         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
10895
10896 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
10897
10898         PR middle-end/34621
10899         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
10900         when calculating alignment_pad.
10901
10902 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
10903
10904         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
10905         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
10906         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
10907         and STACK_BOUNDARY define.
10908
10909 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
10910
10911         PR preprocessor/35061
10912         * c-pragma.c (handle_pragma_pop_macro): Check that
10913         pushed_macro_table has been allocated.
10914
10915 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
10916
10917         PR middle-end/35136
10918         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
10919         (force_gimple_operand): Likewise.
10920         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
10921         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
10922         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
10923         (find_interesting_uses_address): Check addressability and alignment
10924         of the base expression only after substituting bases of IVs into it.
10925
10926 2008-02-14  Michael Matz  <matz@suse.de>
10927
10928         PR target/34930
10929         * function.c (instantiate_virtual_regs_in_insn): Reload address
10930         before falling back to reloading the whole operand.
10931
10932 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
10933
10934         * config/s390/s390.c (s390_mainpool_start): Emit the pool
10935         before the first section switch note.
10936
10937 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10938
10939         * doc/bugreport.texi: Update copyright years.
10940         * doc/c-tree.texi: Likewise.
10941         * doc/cfg.texi: Likewise.
10942         * doc/cpp.texi: Likewise.
10943         * doc/cppinternals.texi: Likewise.
10944         * doc/fragments.texi: Likewise.
10945         * doc/frontends.texi: Likewise.
10946         * doc/gcc.texi: Likewise.
10947         * doc/gty.texi: Likewise.
10948         * doc/hostconfig.texi: Likewise.
10949         * doc/implement-c.texi: Likewise.
10950         * doc/libgcc.texi: Likewise.
10951         * doc/loop.texi: Likewise.
10952         * doc/makefile.texi: Likewise.
10953         * doc/options.texi: Likewise.
10954         * doc/passes.texi: Likewise.
10955         * doc/rtl.texi: Likewise.
10956         * doc/sourcebuild.texi: Likewise.
10957         * doc/standards.texi: Likewise.
10958         * doc/tree-ssa.texi: Likewise.
10959         * doc/trouble.texi: Likewise.
10960
10961         * doc/extend.texi: Use @: or add comma where appropriate.
10962         * doc/invoke.texi: Likewise.
10963         * doc/tm.texi: Likewise.
10964
10965 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
10966
10967         PR target/34393
10968         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
10969         to a reg.
10970
10971 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
10972
10973         * doc/md.texi (clz, ctz): Add reference.
10974         * doc/rtl.texi (clz, ctz): Likewise.
10975
10976 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10977
10978         PR other/35148
10979         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
10980         srcdir.
10981
10982 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
10983
10984         * config/s390/s390.c (struct constant_pool): New field
10985         emit_pool_after added.
10986         (s390_mainpool_start): Set the emit_pool_after flag according
10987         to the section switch notes.
10988         (s390_mainpool_finish): Consider emit_pool_after when emitting
10989         the literal pool at the end of the function.
10990         (s390_chunkify_start): Force literal pool splits at section
10991         switch notes.
10992
10993 2008-02-13  Michael Matz  <matz@suse.de>
10994
10995         PR debug/35065
10996         * var-tracking.c (clobber_variable_part): Correctly traverse the
10997         list.
10998
10999 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11000
11001         PR 29673
11002         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
11003         Add -fdump-ipa-inline.
11004         * tree-dump.c (dump_files): Remove tree-inlined dump.
11005         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
11006         
11007 2008-02-12  Richard Guenther  <rguenther@suse.de>
11008
11009         PR tree-optimization/35171
11010         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
11011         default defs.
11012
11013 2008-02-12  Richard Guenther  <rguenther@suse.de>
11014
11015         PR middle-end/35163
11016         * fold-const.c (fold_widened_comparison): Use get_unwidened in
11017         value-preserving mode.  Disallow final truncation.
11018
11019 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
11020
11021         PR middle-end/35136
11022         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
11023         code from here to...
11024         (force_gimple_operand): ...here.
11025
11026 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
11027
11028         PR c++/35144
11029         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
11030         non-compatible pointers.
11031         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
11032         different FIELD_DECLs, try harder by comparing field offsets, sizes
11033         and types.
11034
11035         PR inline-asm/35160
11036         * function.c (match_asm_constraints_1): Don't replace the same input
11037         multiple times.
11038
11039 2008-02-12  Anatoly Sokolov <aesok@post.ru>
11040
11041         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
11042         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
11043         (expand_epilogue): Restore RAMPZ register.
11044         * config/avr/avr.md (RAMPZ_ADDR): New constant.
11045
11046 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
11047
11048         * config/i386/cygwin.asm: (__alloca): Correct calling
11049         convention and alignment.
11050         (__chkstk): Force 8 byte stack alignment.
11051
11052 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
11053             Richard Guenther  <rguenther@suse.de>
11054
11055         PR tree-optimization/33992
11056         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
11057         the zero we compare against.
11058
11059 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
11060
11061         PR libfortran/35063
11062         * gthr-win32.h (__gthread_mutex_destroy_function): New function
11063         to CloseHandle after unlocking to prevent accumulation of handle
11064         count.
11065
11066 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11067
11068         PR middle_end/34150
11069         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
11070         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
11071         and update LABEL_NUSES during and after reload.
11072
11073 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
11074
11075         PR middle-end/34627
11076         * combine.c (simplify_if_then_else): Make sure the comparison is
11077         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
11078
11079 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
11080
11081         PR bootstrap/35051
11082         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
11083         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
11084         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
11085         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
11086         * tree.h (get_type_static_bounds): Likewise.
11087
11088 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11089
11090         * doc/invoke.texi (Option Summary, C++ Dialect Options)
11091         (Objective-C and Objective-C++ Dialect Options, Warning Options):
11092         Make -Wfoo language annotations match what the compiler outputs.
11093
11094 2008-02-08  Sa Liu  <saliu@de.ibm.com>
11095
11096         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
11097         intrinsics spu_convts, spu_convtu, spu_convtf.
11098
11099 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
11100
11101         * doc/extend.texi (Function Attributes) <noinline>: Mention
11102         asm ("") as method to keep calls.
11103
11104 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11105
11106         PR other/32754
11107         * doc/options.texi (Options): Replace references to opts.sh with
11108         optc-gen.awk.
11109         * opts-common.c: Likewise.
11110         * optc-gen.awk: Likewise.
11111         
11112 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
11113
11114         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
11115
11116 2008-02-07  Richard Henderson  <rth@redhat.com>
11117
11118         PR rtl-opt/33410
11119         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
11120         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
11121         funny mode.
11122
11123 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
11124
11125         PR tree-optimization/35085
11126         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
11127         for operand entry oe2 in addition to operand entry oe3 in order to
11128         expose more opportunities for vectorizer sum reduction.
11129
11130 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11131
11132         PR other/35107
11133         * Makefile.in (LIBS): Remove $(GMPLIBS).
11134         (cc1-dummy, cc1): Add $(GMPLIBS).
11135
11136 2008-02-06  Jan Hubicka  <jh@suse.cz>
11137
11138         PR target/23322
11139         * i386.md (moddf_integer): Do not produce partial memory stalls for
11140         targets where it hurts.
11141
11142 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
11143
11144         PR target/35083
11145         * optabs.c (expand_float): Do not check for decimal modes when
11146         expanding unsigned integer through signed conversion.
11147
11148 2008-02-06  Nick Clifton  <nickc@redhat.com>
11149
11150         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
11151         inside the clobber with a match_operand and duplicated operand
11152         number in the constraint.
11153         (ineqbranchsi): Delete redundant comment.
11154
11155 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
11156
11157         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
11158         builtin_define ("__USE_INIT_FINI__").
11159         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
11160         -msx multilibs.
11161         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
11162
11163 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11164
11165         PR documentation/30330
11166         * doc/invoke.texi (C++ Dialect Options)
11167         (Objective-C and Objective-C++ Dialect Options, Warning Options):
11168         For each warning option -Wfoo that allows -Wno-foo, ensure both
11169         -Wfoo and -Wno-foo are listed in the option index.  Fix index
11170         entry of -Wswitch-default, index -Wnormalized= including the
11171         `=', and -Wlarger-than-@var{len} including @var{len}.
11172
11173 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
11174
11175         * config/i386/i386.md (floatunssisf2): Use
11176         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
11177         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
11178         Macroize expander using MODEF mode iterator.
11179
11180 2008-02-05  Diego Novillo  <dnovillo@google.com>
11181
11182         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
11183
11184         PR 33738
11185         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
11186
11187 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11188
11189         PR other/35070
11190         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
11191
11192 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
11193
11194         PR target/35084
11195         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
11196         to indicate if a message should be generated.
11197         (init_cumulative_args): Updated.
11198         (function_value_32): Likewise.
11199
11200 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
11201
11202         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
11203
11204 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
11205
11206         PR target/35083
11207         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
11208         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
11209
11210 2008-02-04  Diego Novillo  <dnovillo@google.com>
11211
11212         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
11213
11214         PR 33738
11215         * tree-vrp.c (vrp_evaluate_conditional): With
11216         -Wtype-limits, emit a warning when comparing against a
11217         constant outside the natural range of OP0's type.
11218
11219 2008-02-04  Richard Guenther  <rguenther@suse.de>
11220
11221         PR middle-end/33631
11222         * expr.c (count_type_elements): Give for unions instead of
11223         guessing.
11224
11225 2008-02-04  Richard Guenther  <rguenther@suse.de>
11226
11227         PR middle-end/35043
11228         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
11229         to TYPE_DOMAINs base type instead of using bitsizetype here.
11230
11231 2008-02-03  Jason Merrill  <jason@redhat.com>
11232
11233         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
11234
11235 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11236
11237         PR other/29972
11238         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
11239         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
11240         (RS/6000 and PowerPC Options): Fix typos and markup.
11241         * doc/passes.texi (Tree-SSA passes): Likewise.
11242
11243 2008-02-02  Michael Matz  <matz@suse.de>
11244
11245         PR target/35045
11246         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
11247         from record_last_reg_set_info.
11248         (record_last_reg_set_info): Take an RTX argument, iterate over all
11249         constituent hardregs.
11250         (record_last_set_info, record_opr_changes): Change calls to
11251         new signature or to record_last_reg_set_info_regno.
11252
11253 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
11254
11255         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
11256
11257 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
11258
11259         PR rtl-optimization/34773
11260         * reg-notes.def (EQUAL): Mention significance of combination of
11261         REG_EQUAL and REG_RETVAL.
11262         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
11263         insn that has a REG_RETVAL.
11264
11265 2008-02-01  Roger Sayle  <roger@eyesopen.com>
11266
11267         PR bootstrap/33781
11268         * configure.ac (--enable-fixed-point): Disable unless explicitly
11269         requested on IRIX.
11270         * configure: Regenerate.
11271
11272 2008-02-01  Richard Guenther  <rguenther@suse.de>
11273
11274         PR other/35042
11275         * invoke.texi (-finline-limit): Remove no longer true parts
11276         of the documentation.  Note that there is no default value.
11277
11278 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
11279             Mark Mitchell  <mark@codesourcery.com>
11280             Ben Elliston  <bje@au.ibm.com>
11281
11282         PR c/29326
11283         * doc/extend.texi (Other Builtins): Document.
11284
11285 2008-01-31  Tom Browder <tom.browder@gmail.com>
11286
11287         * doc/c-tree.texi (Types): Fix grammar.
11288         (Expression trees): Ditto.
11289         * doc/passes.texi (Tree-SSA passes): Ditto.
11290         
11291         * doc/configterms.texi (Configure Terms): Fix typo.
11292         * doc/cpp.texi (Common Predefined Macros): Ditto.
11293         * doc/md.texi (Machine Constraints): Ditto.
11294         
11295         * doc/makefile.texi (Makefile): Add comma.
11296
11297 2008-01-31  Tom Browder  <tom.browder@gmail.com>
11298             Gerald Pfeifer  <gerald@pfeifer.com>
11299         
11300         * doc/sourcebuild.texi (Front End): Remove references to CVS
11301         and CVSROOT/modules.
11302         (Texinfo Manuals): Replace reference to CVS by one to SVN.
11303         (Back End): Remove reference to CVS.
11304
11305 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
11306
11307         PR target/34900
11308         * config/mips/mips.c (gen_load_const_gp): New function, taking a
11309         comment from...
11310         (mips16_gp_pseudo_reg): ...here.
11311         * config/mips/mips.md (load_const_gp): Replace with...
11312         (load_const_gp_<mode>): ...this :P-based insn.
11313
11314 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11315
11316         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
11317         options. Minor fixes.
11318         (-std): Move reference to standards closer to where language
11319         standards are first mentioned.
11320         
11321 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
11322
11323         PR rtl-optimization/34995
11324         * reload.c (alternative_allows_const_pool_ref): Take an rtx
11325         parameter and return a bool.  If the rtx parameter is nonnull,
11326         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
11327         (find_reloads): Update call accordingly.  Pass the new operand
11328         if it needed no address reloads, otherwise pass null.
11329
11330 2008-01-30  Richard Henderson  <rth@redhat.com>
11331
11332         PR c/34993
11333         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
11334         for unbounded arrays.
11335
11336 2008-01-30  Silvius Rus  <rus@google.com>
11337
11338         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
11339
11340 2008-01-30  Jan Hubicka  <jh@suse.cz>
11341
11342         PR target/34982
11343         * i386.c (init_cumulative_args): Use real function declaration when
11344         calling locally.
11345
11346 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
11347
11348         PR rtl-optimization/34998
11349         * global.c (build_insn_chain): Treat non-subreg_lowpart
11350         SUBREGs of pseudos as clobbering all the words covered by the
11351         SUBREG, not just all the bytes.
11352         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
11353         original df_ref rather than an extract parameter.
11354         (global_conflicts): Update call accordingly.
11355
11356 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
11357
11358         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
11359         the overflow check to make it easier to read.
11360         (__fixtfdi): Change the type of the ll member in union
11361         long_double to UDItype_x.
11362
11363 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
11364
11365         PR middle-end/34969
11366         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
11367         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
11368         * tree-inline.c (fold_marked_statements): Call
11369         cgraph_update_edges_for_call_stmt if folding a call statement.
11370         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
11371         debug_generic_stmt calls, reset it back afterwards.
11372
11373         PR c/35017
11374         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
11375         static decls.
11376         * c-typeck.c (build_external_ref): Don't pedwarn about
11377         static vars in current function's scope.
11378
11379 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
11380
11381         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
11382
11383 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
11384
11385         PR c/35002
11386         * ipa-struct-reorg.c: Fix spelling.
11387         * params.def: Ditto.
11388
11389 2008-01-29  Richard Guenther  <rguenther@suse.de>
11390
11391         PR middle-end/35006
11392         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
11393         field.
11394         * tree-inline.c (remap_type): Increment remapping_type_depth
11395         around remapping types.
11396         (copy_body_r): Only add referenced variables if they are referenced
11397         from code, not types.
11398
11399 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
11400
11401         PR c++/34055
11402         PR c++/34103
11403         PR c++/34219
11404         PR c++/34606
11405         PR c++/34753
11406         PR c++/34754
11407         PR c++/34755
11408         PR c++/34919
11409         PR c++/34961
11410         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
11411         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
11412
11413 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
11414
11415         PR target/34412
11416         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
11417         pointer for tiny stack.
11418
11419 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
11420
11421         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
11422
11423 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
11424
11425         * config/vx-common.h: Fix typo in comment.
11426
11427 2008-01-28  Ian Lance Taylor  <iant@google.com>
11428
11429         PR c++/34862
11430         PR c++/33407
11431         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
11432         coalesce pointers if they have different DECL_NO_TBAA_P values.
11433         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
11434         between variables with different DECL_NO_TBAA_P values.
11435
11436 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
11437
11438         PR 31535
11439         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
11440         are not legitimate small data references on SPE targets.
11441
11442 2008-01-28  David Daney  <ddaney@avtrex.com>
11443
11444         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
11445
11446 2008-01-28  David Daney  <ddaney@avtrex.com>
11447
11448         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
11449
11450 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
11451
11452         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
11453         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
11454         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
11455         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
11456         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
11457         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
11458         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
11459         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
11460
11461 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
11462
11463         * basic-block.h (condjump_equiv_p): Fix comment.
11464
11465 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
11466
11467         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
11468         print_generic_stmt_indented): Fix comment.
11469
11470 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
11471
11472         * configure.ac (__stack_chk_fail): Add detecion for availability
11473         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
11474         * configure: Regenerate.
11475
11476 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
11477
11478         PR middle-end/34688
11479         * final.c (output_addr_const): Handle TRUNCATE.
11480
11481 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
11482
11483         PR target/34711
11484         * tree-ssa-loop-ivopts.c (comp_cost): New type.
11485         (zero_cost, infinite_cost): New constants.
11486         (struct cost_pair): Change type of cost to comp_cost.
11487         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
11488         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
11489         New functions.
11490         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
11491         split_address_cost, ptr_difference_cost, difference_cost,
11492         get_computation_cost_at, get_computation_cost,
11493         determine_use_iv_cost_generic, determine_use_iv_cost_address,
11494         determine_use_iv_cost_condition, determine_use_iv_costs,
11495         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
11496         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
11497         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
11498         Change type of cost to comp_cost.
11499         (determine_iv_cost): Increase cost of non-original ivs, instead
11500         of decreasing the cost of original ones.
11501         (get_address_cost): Indicate the complexity of the addressing mode 
11502         in comp_cost.
11503         (try_add_cand_for): Prefer using ivs not specific to some object.
11504         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
11505
11506 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
11507             Janis Johnson  <janis187@us.ibm.com>
11508
11509         PR target/34814
11510         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
11511         (TARGET_INSTANTIATE_DECLS): Likewise.
11512         * target.h (expand_to_rtl_hook): New target hook.
11513         (instantiate_decls): Likewise.
11514         * function.c (instantiate_decl): Make non-static.  Rename to...
11515         (instantiate_decl_rtl): ... this.
11516         (instantiate_expr): Use instantiate_decl_rtl.
11517         (instantiate_decls_1): Likewise.
11518         (instantiate_decls): Likewise.
11519         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
11520         * function.h (instantiate_decl_rtl): Add prototype.
11521         * cfgexpand.c (target.h): New include.
11522         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
11523         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
11524         (TARGET_INSTANTIATE_DECLS): Likewise.
11525         (TARGET_INITIALIZER): New target hooks added.
11526         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
11527         New prototype.
11528         * config/rs6000/rs6000.c (tree-flow.h): New include.
11529         (machine_function): Add sdmode_stack_slot field.
11530         (rs6000_alloc_sdmode_stack_slot): New function.
11531         (rs6000_instantiate_decls): Likewise.
11532         (rs6000_secondary_memory_needed_rtx): Likewise.
11533         (rs6000_check_sdmode): Likewise.
11534         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
11535         (TARGET_INSTANTIATE_DECLS): Likewise.
11536         (rs6000_hard_regno_mode_ok): Allow SDmode.
11537         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
11538         (rs6000_emit_move): Handle SDmode.
11539         (function_arg_advance): Likewise.
11540         (function_arg): Likewise.
11541         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
11542         SDmode var args for 32-bit compiles.
11543         (rs6000_secondary_reload_class): Handle SDmode.
11544         (rs6000_output_function_epilogue): Likewise.
11545         (rs6000_function_value): Simplify if statement.
11546         (rs6000_libcall_value): Likewise.
11547         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
11548         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
11549         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
11550         (movsd_hardfloat): New define_insn.
11551         (movsd_softfloat): Likewise.
11552         (movsd_store): Likewise.
11553         (movsd_load): Likewise.
11554         (extendsddd2): Likewise.
11555         (extendsdtd2): Likewise.
11556         (truncddsd2): Likewise.
11557         (movdd_hardfloat64): Fixup comment.
11558         (UNSPEC_MOVSD_LOAD): New constant.
11559         (UNSPEC_MOVSD_STORE): Likewise.
11560
11561 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
11562
11563         PR c++/34965
11564         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
11565         TRUTH_XOR_EXPR.
11566         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
11567         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
11568         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
11569         and TRUTH_XOR_EXPR.
11570
11571 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
11572
11573         PR target/34794
11574         * config.gcc: Separate AIX 5.3 from AIX 6.1.
11575         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
11576         __LONGDOUBLE128 too.
11577         * config/rs6000/aix61.h: New file.
11578
11579 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
11580
11581         PR rtl-optimization/34959
11582         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
11583         popcount and parity rtxes the same mode as their operand.
11584         Truncate or extend the result to the return value's mode
11585         if necessary.
11586
11587 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
11588
11589         PR target/34981
11590         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
11591         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
11592         to GOT_VERSION_REGNUM.
11593         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
11594         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
11595         * config/mips/mips.c (mips_emit_call_insn): New function.
11596         (mips_call_tls_get_addr): Call mips_expand_call directly.
11597         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
11598         emit_call_insn.
11599         (mips16_build_call_stub): Likewise.  Return the call insn or null.
11600         (mips_expand_call): Update the call to mips16_build_call_stub
11601         accordingly and a remove redundant condition.  Assert that MIPS16
11602         stubs do not use lazy binding.  Use mips_emit_call_insn and return
11603         the call insn.
11604         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
11605         TARGET_USE_GOT.
11606         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
11607         (mips_avoid_hazard): Remove hazard_set handling.
11608         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
11609         (UNSPEC_RESTORE_GP): ...this.
11610         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
11611         (FAKE_CALL_REGNO): Rename to...
11612         (GOT_VERSION_REGNUM): ...this.
11613         (type): Add "ghost" value.  Add an associated insn reservation.
11614         (hazard_set): Remove.
11615         (exception_receiver): Rename to...
11616         (restore_gp): ...this and update the unspec identifier accordingly.
11617         (exception_receiver, nonlocal_got_receiver): New expanders.
11618         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
11619         FAKE_CALL_REGNO.  Remove hazard_set attribute.
11620         (set_got_version, update_got_version): New patterns.
11621
11622 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
11623
11624         PR target/34970
11625         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
11626
11627 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
11628
11629         PR other/31955
11630         * doc/install.texi2html: Generate gcc-vers.texi.
11631
11632 2008-01-25  DJ Delorie  <dj@redhat.com>
11633
11634         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
11635
11636 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
11637
11638         * config/c4x: Remove directory.
11639         * config.gcc (crx-*, mt-*): Mark obsolete.
11640         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
11641         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
11642         sh-*-rtemscoff*): Remove cases.
11643         * defaults.h (C4X_FLOAT_FORMAT): Remove.
11644         * real.c (encode_c4x_single, decode_c4x_single,
11645         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
11646         c4x_extended_format): Remove.
11647         * real.h (c4x_single_format, c4x_extended_format): Remove.
11648         * doc/extend.texi (interrupt, naked): Remove mention of attributes
11649         on C4x.
11650         (Pragmas): Remove comment about c4x pragmas.
11651         * doc/install.texi (c4x): Remove target-specific instructions.
11652         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
11653         * doc/md.texi (Machine Constraints): Remove C4x documentation.
11654         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
11655         refer to C4x source files as examples.
11656         (C4X_FLOAT_FORMAT): Remove documentation.
11657
11658 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
11659
11660         * config/bfin/bfin.c (override_options): Reorder tests so that
11661         flag_pic gets enabled for -msep-data.
11662
11663 2008-01-25  Richard Guenther  <rguenther@suse.de>
11664
11665         PR middle-end/32244
11666         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
11667         to its bitfield precision if required.
11668
11669 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
11670
11671         PR middle-end/33880
11672         * tree-nested.c (walk_omp_for): New function.
11673         (convert_nonlocal_reference, convert_local_reference): Call
11674         walk_omp_for on OMP_FOR.
11675         (convert_call_expr): Call walk_body on OMP_FOR's
11676         OMP_FOR_PRE_INIT_BODY.
11677
11678 2008-01-25  Richard Guenther  <rguenther@suse.de>
11679
11680         PR tree-optimization/34966
11681         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
11682         default defs and PHI_NODEs we have to insert after the
11683         defining statement.
11684
11685 2008-01-24  Nick Clifton  <nickc@redhat.com>
11686
11687         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
11688         Provide a default definition.
11689         (LIBGCC2_UNITS_PER_WORD): Likewise.
11690
11691         * config/stormy16/stormy16.c: Include df.h for the prototype
11692         for df_regs_ever_live_p.
11693         (xstormy16_expand_builtin_va_start): Convert the stack offset
11694         into a component_ref and then use POINTER_PLUS_EXPR to add it
11695         to the incoming_virtual_args_rtx.
11696         (xstormy16_gimplify_va_arg_expr): Rename to
11697         xstormy16_gimplify_va_arg_expr.
11698         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
11699         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
11700         xstormy16_gimplify_va_arg_expr.
11701         Fix up some formatting issues.
11702
11703         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
11704         Move to predicates.md.
11705         (xs_hi_general_operand): Likewise.
11706         (xs_hi_nonmemory_operand): Likewise.
11707         * config/stormy16/predicates.md:
11708         (xstormy16_carry_plus_operand): New predicate.
11709         (xs_hi_general_operand): New predicate.
11710         (xs_hi_nonmemory_operand): New predicate.
11711         * config/stormy16/stormy16-protos.h:
11712         (xstormy16_carry_plus_operand): Delete prototype.
11713         (xs_hi_general_operand): Likewise.
11714         (xs_hi_nonmemory_operand): Likewise.
11715
11716         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
11717         modifiers as they are no longer needed and they can trigger
11718         reload spill failures.
11719
11720         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
11721         with a match_operand in order to help reload.
11722
11723         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
11724         constraint with 'e' for the 8th alternative as this version of
11725         the mov.w instruction only accepts the lower 8 registers.
11726
11727 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
11728
11729         PR target/34856
11730         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
11731         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
11732         vector elements.
11733
11734 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
11735
11736         PR middle-end/33333
11737         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
11738
11739 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
11740
11741         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
11742         New functions.
11743         (remove_structure): Update allocations list before removing structure.
11744         
11745 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
11746
11747         * ipa-struct-reorg.c (is_safe_cond_expr, 
11748         create_new_stmts_for_cond_expr): Use integer_zerop function,
11749         that recognize not only zero-pointer, but zero-integer too.
11750
11751 2008-01-25  Ben Elliston  <bje@au.ibm.com>
11752
11753         PR other/22232
11754         * fixproto: Escape "." in sed expression that strips leading "./".
11755
11756 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
11757
11758         PR driver/34904
11759         * gcc.c (SWITCH_OK): Removed.
11760         (SWITCH_LIVE): Changed to bit.
11761         (SWITCH_FALSE): Likewise.
11762         (SWITCH_IGNORE): Likewise.
11763         (switchstr): Change live_cond to unsigned int.
11764         (process_command): Replace SWITCH_OK with 0.
11765         (do_self_spec): Likewise.
11766         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
11767         (give_switch): Likewise.
11768         (used_arg): Likewise.
11769         (do_spec_1): Set the SWITCH_IGNORE bit.
11770         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
11771         bits.  Set the SWITCH_LIVE bit.
11772
11773 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
11774
11775         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
11776
11777 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
11778
11779         PR tree-optimization/34472
11780         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
11781         parameter to a "bool *" and set *DATA to false if there is
11782         an unsafe access.  Do not delete the structure here.
11783         (check_cond_exprs): Delete it here instead.
11784         (check_cond_exprs, exclude_cold_structs): Do not increase
11785         I when removing a structure.
11786
11787 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
11788
11789         PR target/34856
11790         * config/i386/i386.c (ix86_expand_vector_init): Consider only
11791         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
11792
11793 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
11794
11795         PR middle-end/34934
11796         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
11797         a fixed vector for stack.
11798
11799 2008-01-24  Ben Elliston  <bje@au.ibm.com>
11800
11801         PR c++/25701
11802         * doc/gcc.texi (Software development): Add a direntry for g++.
11803         
11804 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
11805
11806         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
11807         stale and straggling -fforce-addr comments above.
11808
11809         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
11810         define.
11811         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
11812         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
11813
11814 2008-01-23  Michael Matz  <matz@suse.de>
11815
11816         PR debug/34895
11817         * dwarf2out.c (force_type_die): Use modified_type_die instead of
11818         gen_type_die.
11819
11820 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
11821
11822         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
11823         malloc result type.
11824
11825 2008-01-23 Anatoly Sokolov <aesok@post.ru>
11826
11827         * config/avr/avr.c (avr_current_arch): New variable.
11828         (avr_arch_types): Add 'avr31' and 'avr51' entries.
11829         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
11830         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
11831         (avr_override_options): Init 'avr_current_arch'. 
11832         (base_arch_s): Move from here...
11833         * config/avr/avr.h (base_arch_s): ... here. Add new members 
11834         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
11835         'mega' to 'have_jmp_call'.
11836         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
11837         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
11838         macros.
11839         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
11840         architectures.
11841         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
11842         MULTILIB_MATCHES): (Ditto.).
11843
11844 2008-01-23  Richard Guenther  <rguenther@suse.de>
11845
11846         PR middle-end/31529
11847         * cgraphunit.c (cgraph_reset_node): Always mark the node
11848         not reachable if it is not queued already.
11849
11850 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
11851
11852         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
11853         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
11854         (cputype_selected): New static variable.
11855         (bfin_handle_option): Set it if -mcpu is used.
11856         (override_option): Select default set of workarounds if no cpu type
11857         selected on the command line.
11858         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
11859
11860         From  Michael Frysinger  <michael.frysinger@analog.com>
11861         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
11862         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
11863
11864         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
11865         for bf547, bf523, bf524, and bf526.
11866         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
11867         bf526.
11868         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
11869         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
11870         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
11871         __ADSPBF547__ and __ADSPBF54x__ for bf547.
11872         * doc/invoke.texi (Blackfin Options): Document that
11873         -mcpu now accept bf547, bf523, bf524, and bf526.
11874
11875 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
11876
11877         PR rtl-optimization/34628
11878         * combine.c (try_combine): Stop and undo after the first combination
11879         if an autoincrement side-effect on the first insn has effectively
11880         been lost.
11881
11882 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
11883
11884         PR target/34529
11885         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
11886         Offset addresses are not valid for Altivec or paired float modes.
11887
11888 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
11889
11890         PR c++/34607
11891         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
11892         if DECL_INITIAL (decl) is error_mark_node.
11893
11894         PR c++/34914
11895         * c-common.c (handle_vector_size_attribute): Only allow
11896         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
11897         the same way as pointer, array etc. types.
11898         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
11899
11900         PR c++/34917
11901         * tree.c (build_type_attribute_qual_variant): Call
11902         build_qualified_type if attributes are equal, but quals are not.
11903
11904 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11905
11906         PR 32102
11907         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
11908         * flags.h (warn_strict_aliasing): Remove.
11909         (warn_strict_overflow): Remove.
11910         * opts.c (warn_strict_aliasing): Remove.
11911         (warn_strict_overflow): Remove.
11912         * c-opts.c (c_common_handle_option): -Wall only sets
11913         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
11914         (c_common_post_options): Give default values to -Wstrict-aliasing
11915         and -Wstrict-overflow if they are uninitialized.
11916         * common.opt (Wstrict-aliasing): Specify Var and Init.
11917         (Wstrict-overflow): Likewise.
11918
11919 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
11920
11921         PR rtl-optimization/26854
11922         PR rtl-optimization/34400
11923         PR rtl-optimization/34884
11924         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
11925         DF_RD->gen.
11926         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
11927         (df_rd_bb_info.expanded_lr_out): Deleted
11928         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
11929         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
11930         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
11931         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
11932         Removed code to allocate, initialize or free expanded_lr_out.
11933         (df_rd_bb_local_compute_process_def): Restructured to make more
11934         understandable.
11935         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
11936         sets if the sets are being trimmed.
11937
11938 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
11939
11940         PR bootstrap/32287
11941         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
11942         (as_vers): Likewise.
11943         * configure: Regenerated.
11944
11945 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11946
11947         PR middle-end/33092
11948         * tree-pass.h (pass_build_alias): New pass.
11949         * tree-ssa-alias.c (gate_build_alias): New.
11950         (pass_build_alias): New.
11951         * passes.c (init_optimization_passes): Add pass_build_alias after
11952         pass_create_structure_vars.
11953
11954 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
11955
11956         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
11957         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
11958         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
11959         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
11960         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
11961         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
11962         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
11963         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
11964         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
11965         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
11966         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
11967         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
11968         * config/s390/s390.md (FP_ALL): New mode iterator.
11969         (_d): New mode attribute.
11970         ("*signbit<mode>2>"): Changed mode of first operand.
11971         ("isinf<mode>2"): Changed mode of first operand.
11972         ("*TDC_insn"): Adaptation for DFP modes.
11973
11974 2008-01-22  Ben Elliston  <bje@au.ibm.com>
11975
11976         * tree.c (check_qualified_type): Improve function description.
11977
11978 2008-01-21  Jason Merrill  <jason@redhat.com>
11979
11980         PR c++/34196
11981         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
11982         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
11983         if it is set.
11984
11985 2008-01-21  DJ Delorie  <dj@redhat.com>
11986
11987         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
11988         return zero.
11989
11990 2008-01-21  Richard Guenther  <rguenther@suse.de>
11991
11992         PR middle-end/34856
11993         * tree-cfg.c (verify_expr): Allow all invariant expressions
11994         instead of just constant class ones as reference argument.
11995         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
11996         like any other constant.
11997         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
11998
11999 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
12000
12001         * regmove.c (fixup_match_1): Update call crossed frequencies.
12002
12003 2008-01-21  Richard Guenther  <rguenther@suse.de>
12004
12005         PR c/34885
12006         * tree-inline.c (setup_one_parameter): Deal with mismatched
12007         types using a VIEW_CONVERT_EXPR.
12008
12009 2008-01-21  Alon Dayan  <alond@il.ibm.com>
12010             Olga Golovanevsky  <olga@il.ibm.com>
12011         
12012         PR tree-optimization/34701
12013         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
12014         when the structure size is not a power of 2.
12015
12016 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
12017
12018         * doc/install.texi: Add doc for --enable-checking=df.
12019         
12020 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
12021
12022         PR rtl-optimization/34808
12023         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
12024
12025 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
12026
12027         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
12028         input.
12029
12030 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
12031
12032         PR rtl-optimization/26854
12033         PR rtl-optimization/34400
12034         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
12035         DF_RD->gen.
12036         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
12037         (df_rd_bb_info.expanded_lr_out): New.
12038         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
12039         * loop_iv.c (iv_analysis_loop_init): Ditto.
12040         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
12041         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
12042         Added code to allocate, initialize or free expanded_lr_out.
12043         (df_rd_bb_local_compute_process_def): Restructured to make
12044         more understandable.
12045         (df_rd_confluence_n): Add code to do nothing with fake edges and
12046         code to no apply invalidate_by_call sets if the sets are being trimmed.
12047         (df_lr_local_finalize): Renamed to df_lr_finalize.
12048         (df_live_local_finalize): Renamed to df_live_finalize.
12049
12050 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
12051
12052         PR target/34831
12053         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
12054         deciding whether to use reciprocal instructions.
12055
12056 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
12057
12058         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
12059         dwarf2out_note_section_used if cold_text_section is NULL.
12060
12061 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
12062
12063         PR gcov-profile/34610
12064         * tree-cfg.c (make_edges): Mark both outgoing edges from
12065         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
12066         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
12067         from OMP_FOR and OMP_CONTINUE outgoing edges.
12068
12069         * tree-profile.c (tree_profiling): Return early if
12070         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
12071         at the end.
12072         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
12073         from cfun to child_cfun.
12074         * function.h (struct function): Add after_tree_profile bit.
12075
12076 2008-01-19 Anatoly Sokolov <aesok@post.ru>
12077
12078         * config/avr/avr.S (_exit): Disable interrupt.
12079
12080 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
12081             Steven Bosscher  <stevenb.gcc@gmail.com>
12082
12083         PR rtl-optimization/26854
12084         PR rtl-optimization/34400
12085         * df-problems.c (df_live_scratch): New scratch bitmap.
12086         (df_live_alloc): Allocate df_live_scratch when doing df_live.
12087         (df_live_reset): Clear the proper bitmaps.
12088         (df_live_bb_local_compute): Only process the artificial defs once
12089         since the order is not important.
12090         (df_live_init): Init the df_live sets only with the variables
12091         found live by df_lr.
12092         (df_live_transfer_function): Use the df_lr sets to prune the
12093         df_live sets as they are being computed.  
12094         (df_live_free): Free df_live_scratch.
12095
12096 2008-01-18  Ian Lance Taylor  <iant@google.com>
12097
12098         * common.opt: Add fmerge-debug-strings.
12099         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
12100         flag_merge_debug_strings rather than flag_merge_constants.
12101         * doc/invoke.texi (Option Summary): Mention
12102         -fmerge-debug-strings.
12103         (Debugging Options): Document -fmerge-debug-strings.
12104
12105 2008-01-18  Ian Lance Taylor  <iant@google.com>
12106
12107         PR c++/33407
12108         * tree.h (DECL_IS_OPERATOR_NEW): Define.
12109         (struct tree_function_decl): Add new field operator_new_flag.
12110         * tree-inline.c (expand_call_inline): When inlining a call to
12111         operator new, force the return value to go into a variable, and
12112         set DECL_NO_TBAA_P on that variable.
12113         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
12114
12115 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
12116
12117         PR debug/34484
12118         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
12119         DWARF2_DEBUGGING_INFO.
12120         (dwarf2out_note_section_used): Ditto.  Add prototype.
12121         (have_multiple_function_sections, text_section_used,
12122         cold_text_section_used, *cold_text_sections): Move declarations
12123         before their uses.
12124
12125 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
12126
12127         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
12128         field and add signal_ra.
12129         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
12130         assignments to frame state pc.  Move end of stack check after
12131         MD_FALLBACK_FRAME_STATE_FOR.
12132         (uw_update_context_1): Use frame state signal_regs if set, instead
12133         of checking signal_frame flag.
12134         (uw_update_context): Use frame state signal_ra if set.
12135         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
12136         * config/xtensa/linux-unwind.h: New file.
12137
12138 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
12139
12140         * modulo-sched.c (get_sched_window): Fix comment typo.
12141
12142 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
12143
12144         PR tree-optimization/34648
12145         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
12146
12147 2008-01-17  Anatoly Sokolov <aesok@post.ru>
12148
12149         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
12150         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
12151
12152 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
12153
12154         PR rtl-optimization/34400
12155         * df-core.c (df_worklist_dataflow_overeager,
12156         df_worklist_dataflow_doublequeue): New functions.
12157         (df_worklist_dataflow): Two different worklist solvers.
12158         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
12159         New param.
12160
12161 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
12162
12163         PR testsuite/34821
12164         * doc/invoke.texi: Document the dependence on pthread for fopenmp
12165         and ftree-parallelize-loops.
12166
12167 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
12168
12169         PR rtl-optimization/34826
12170         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
12171
12172 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
12173
12174         * global.c (find_reg): Mark the eh regs as used if necessary.
12175         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
12176         * ra.h (struct allocno): no_eh_reg field added.  Changed
12177         no_stack_reg type to bitfield.
12178
12179 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
12180
12181         * tree.c (substitute_in_expr): Add missing 'break'.
12182
12183 2008-01-17  Richard Guenther  <rguenther@suse.de>
12184
12185         PR tree-optimization/34825
12186         * tree-ssa-math-opts.c (is_division_by): Do not recognize
12187         x / x as division to handle.
12188
12189 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12190
12191         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
12192         "-pthread" is specified.
12193         * pa-hpux11.h (LIB_SPEC): Likewise.
12194
12195 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
12196             Peter Bergner  <bergner@vnet.ibm.com>
12197
12198         PR rtl-optimization/33796
12199         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
12200
12201 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12202
12203         PR libgfortran/34699
12204         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
12205         static links.
12206         * pa-hpux10.h (LINK_SPEC): Likewise.
12207         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
12208
12209 2008-01-16  Richard Guenther  <rguenther@suse.de>
12210
12211         PR middle-end/32628
12212         * fold-const.c (fold_convert_const_int_from_int): Do not
12213         set overflow if that occured only because of a sign extension
12214         change when converting from/to a sizetype with the same
12215         precision and signedness.
12216
12217 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
12218
12219         PR debug/34249
12220         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
12221         location address to the correct place.  Update copyright year.
12222
12223 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
12224
12225         * lambda-code.c (lambda_transform_legal_p): Handle the case of
12226         no dependences in the dependence_relations vector.
12227
12228 2008-01-16  Jan Hubicka  <jh@suse.cz>
12229
12230         PR rtl-optimization/31396
12231         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
12232         * cfg.c (dump_reg_info): Print it.
12233         * regs.h (struct reg_info_t): add freq_calls_crossed.
12234         (REG_FREQ_CALLS_CROSSED): New macro.
12235         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
12236         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
12237         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
12238         regmove_optimize): Update call crossed frequencies.
12239         * local-alloc.c (struct qty): Add freq_calls_crossed.
12240         (alloc_qty): Copute freq_calls_crossed.
12241         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
12242         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
12243         * ra.h (struct allocno): Add freq_calls_crossed.
12244
12245 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
12246
12247         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
12248         libgomp when compiling with ftree-parallelize-loops.
12249         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
12250
12251 2008-01-16  Richard Guenther  <rguenther@suse.de>
12252
12253         PR tree-optimization/34769
12254         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
12255         * tree.c (int_cst_value): Instead make this function more
12256         permissive in what it accepts as valid input.  Document this
12257         function always sign-extends the value.
12258
12259 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
12260             Richard Guenther  <rguenther@suse.de>
12261
12262         PR c/34668
12263         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
12264         (gimple_fold_indirect_ref_rhs): ... this.
12265         (gimple_fold_indirect_ref): New function with foldings
12266         that preserve lvalueness.
12267         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
12268         * tree-flow.h (gimple_fold_indirect_ref): Declare.
12269         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
12270         to fold an INDIRECT_REF, fall back to the old use of
12271         fold_indirect_ref_1.
12272
12273 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
12274
12275         * tree-data-ref.c (subscript_dependence_tester_1): Call 
12276         free_conflict_function.
12277         (compute_self_dependence): Same.
12278
12279 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
12280
12281         PR debug/34249
12282         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
12283         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
12284         function global.
12285         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
12286         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
12287         for DWARF2_UNWIND_INFO targets.
12288
12289 2008-01-16  Richard Guenther  <rguenther@suse.de>
12290
12291         PR c/34768
12292         * c-typeck.c (common_pointer_type): Do not merge inconsistent
12293         type qualifiers for function types.
12294
12295 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
12296
12297         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
12298         loop_iterator li from previous commit.
12299
12300 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
12301
12302         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
12303
12304 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
12305
12306         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
12307         (parallelize_loops): Don't parallelize irreducible components.
12308
12309 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12310
12311         PR c++/24924
12312         * c-opts (c_common_post_options): Do not enable CPP
12313         flag_pedantic_errors by default.
12314         
12315 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
12316
12317         PR rtl-optimization/31944
12318         * cse.c (remove_pseudo_from_table): New function.
12319         (merge_equiv_classes): Use above function to remove pseudo-registers.
12320         (invalidate): Likewise.
12321
12322 2008-01-13  Richard Guenther  <rguenther@suse.de>
12323
12324         PR middle-end/34601
12325         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
12326         instead of TYPE_MODE to deal with calls from expand_one_error_var.
12327
12328 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
12329
12330         * gcse.c (cprop_jump): Call validate_unshare_change instead of
12331         validate_change to unshare the source of the PC set.
12332
12333 2008-01-12  Jan Hubicka  <jh@suse.cz>
12334
12335         PR middle-end/32135
12336         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
12337         references above array bounds.  This might trigger bounds checks for
12338         pointers to arrays.
12339
12340 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
12341
12342         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
12343         new_replaceable_dependencies.
12344
12345 2008-01-12  Doug Kwan  <dougkwan@google.com>
12346
12347         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
12348         instead of OPT_Wreturn_type in warning due to ignored return type
12349         qualifiers.
12350         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
12351         options included in -Wextra.
12352         * c.opt: New option -Wignored_qualifiers.
12353         * doc/invoke.texi (Warning Options, -Wextra): Add new option
12354         -Wignore_qualifiers.
12355         (-Wignored-qualifiers): Document.
12356         (-Wreturn-type): Remove description of functionality now handled
12357         by -Wignored-qualifiers.
12358
12359 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
12360
12361         PR ada/33788
12362         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
12363         NOP_EXPR if it is between integral types with the same precision.
12364
12365 2008-01-12  Jan Hubicka  <jh@suse.cz>
12366
12367         PR other/28023
12368         * invoke.texi (max-inline-recursive-depth): Fix default value.
12369
12370 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
12371
12372         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
12373         correct type.
12374
12375 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
12376         
12377         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
12378         
12379 2008-01-11  James E. Wilson  <wilson@specifix.com>
12380
12381         PR target/26015
12382         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
12383
12384 2008-01-11  Anatoly Sokolov <aesok@post.ru>
12385
12386         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
12387         save/restore frame pointer register and don't use 'call-prologues' 
12388         optimization in function with "OS_task" attribute.
12389
12390 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
12391
12392         PR middle-end/31309
12393         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
12394         when copying to memory.
12395
12396 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
12397
12398         PR rtl-optimization/30905
12399         * cfgcleanup.c: Include dce.h
12400         (crossjumps_occured): New global variable.
12401         (try_crossjump_bb): Exit loop after finding a fallthru edge.
12402         If something changed, set crossjumps_occured to true.
12403         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
12404         Don't add/remove fake edges to exit here...
12405         (cleanup_cfg): ...but do it here, when crossjumping.
12406         Run a fast DCE when successful crossjumps occured in the latest
12407         iteration of try_optimize_cfg.
12408
12409 2008-01-11  Richard Guenther  <rguenther@suse.de>
12410
12411         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
12412         (struct vn_unary_op_s): Likewise.
12413         (vn_reference_insert): Free old reference on hash collision.
12414
12415 2008-01-10  Raksit Ashok  <raksit@google.com>
12416
12417         PR rtl-optimization/27971
12418         * combine.c (find_split_point): Split PLUS expressions which are
12419         inside a MEM rtx, and whose first operand is complex.
12420
12421 2008-01-10  DJ Delorie  <dj@redhat.com>
12422
12423         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
12424         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
12425         (m32c_hard_regno_ok): Call the underlying function.
12426
12427 2008-01-10  Richard Guenther  <rguenther@suse.de>
12428
12429         PR middle-end/34683
12430         * tree-cfg.c (tree_merge_blocks): Do not go through the
12431         full-blown folding and stmt updating path if we just deal
12432         with virtual operands.
12433         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
12434         test for abnormal SSA_NAMEs.
12435
12436 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
12437
12438         PR middle-end/34641
12439         * reload.c (push_reload): Add assertions.  All constants from
12440         reg_equiv_constant should have been used for replacing the respective
12441         pseudo earlier.
12442         (find_reloads_address): Invoke find_reloads_address_part for
12443         constant taken from the reg_equiv_constant array.
12444
12445 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
12446
12447         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
12448         field (valnum) the first in the struct.  Replace bools with
12449         unit bit fields.
12450
12451 2008-01-10  Richard Guenther  <rguenther@suse.de>
12452
12453         PR tree-optimization/34651
12454         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
12455         types and ordering for masking and converting.
12456
12457 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
12458
12459         PR tree-optimization/34017
12460         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
12461         also for PHI_NODE expressions.
12462
12463 2008-01-09  Jan Hubicka  <jh@suse.cz>
12464
12465         PR tree-optimization/34708
12466         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
12467         based on number of case labels.
12468         (init_inline_once): Remove switch_cost.
12469         * tree-inline.h (eni_weights_d): Remove switch_cost.
12470
12471 2008-01-09  Richard Guenther  <rguenther@suse.de>
12472         Andrew Pinski  <andrew_pinski@playstation.sony.com>
12473
12474         PR middle-end/30132
12475         * gimplify.c (gimplify_cond_expr): Do not create an addressable
12476         temporary if an rvalue is ok or an lvalue is not required.
12477
12478 2008-01-09  Richard Guenther  <rguenther@suse.de>
12479
12480         PR middle-end/34458
12481         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
12482         adjust return type.
12483
12484 2008-01-09  Richard Guenther  <rguenther@suse.de>
12485
12486         PR middle-end/34679
12487         * tree.c (host_integerp): Check for sizetype only if the
12488         type is an integer type.
12489
12490 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
12491
12492         PR debug/26364
12493         * opts.c (decode_options): Disable inlining of functions called
12494         once if not in unit-at-a-time mode.
12495
12496 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
12497
12498         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
12499
12500 2008-01-08  Richard Guenther  <rguenther@suse.de>
12501
12502         PR middle-end/31863
12503         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
12504         out early if the result will be unused.
12505
12506 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
12507
12508         PR target/34709
12509         Revert:
12510
12511         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
12512         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
12513         for TARGET_RECIP.       
12514         
12515 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
12516         
12517         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
12518         for vectorization tuned.
12519         
12520 2008-01-08  Richard Guenther  <rguenther@suse.de>
12521
12522         PR tree-optimization/34683
12523         * tree-ssa-operands.c (operand_build_cmp): Export.
12524         * tree-ssa-operands.h (operand_build_cmp): Declare.
12525         * tree-vn.c (vuses_compare): Remove.
12526         (sort_vuses): Use operand_build_cmp.
12527         (sort_vuses_heap): Likewise.
12528         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
12529         to re-use old VEC if available.  Do not sort already sorted VUSEs.
12530         (vdefs_to_vec): Do not sort already sorted VDEFs.
12531
12532 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
12533
12534         PR middle-end/34694
12535         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
12536
12537 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
12538
12539         PR target/34702
12540         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
12541         limitations of reciprocal sequences on x86 targets.
12542
12543 2008-01-08  Richard Guenther  <rguenther@suse.de>
12544
12545         PR tree-optimization/34683
12546         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
12547
12548 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
12549
12550         PR target/34622
12551         * config/darwin.c (darwin_mergeable_string_section): Don't use
12552         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
12553
12554 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
12555
12556         PR target/34682
12557         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
12558         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
12559         predicates of op0 and op1 to register_operand.
12560         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
12561         expander using X87MODEF mode iterator.  Change predicates of
12562         op0 and op1 to register_operand.
12563         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
12564         corresponding patterns and macroize using MODEF macro.  Change
12565         predicates of op0 and op1 to register_operand and remove
12566         "m" constraint. Disparage "r" alternative with "!".
12567         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
12568         macroize using X87MODEF macro.  Change predicates of op0 and op1
12569         to register_operand and remove "m" constraint.  Disparage "r"
12570         alternative with "!".
12571         (absneg splitter with memory operands): Remove.
12572         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
12573         patterns and macroize using X87MODEF mode iterator.
12574         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
12575         Change predicate of op1 to register_operand.
12576         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
12577         for memory operands.
12578
12579 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
12580
12581         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
12582
12583 2008-01-07  Richard Guenther  <rguenther@suse.de>
12584
12585         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
12586         fields.
12587
12588 2008-01-07  Richard Guenther  <rguenther@suse.de>
12589
12590         PR tree-optimization/34683
12591         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
12592         VOPs of the needed size to save memory.  Use VEC_quick_push
12593         to save compile-time.
12594         (vdefs_to_vec): Likewise.
12595
12596 2008-01-07  Sa Liu  <saliu@de.ibm.com>
12597
12598         * config/spu/spu.md (divdf3): Genetate inline code for double
12599         division.  The implementation doesn't handle INF or NAN, therefore it
12600         only applies when -ffinite-math-only is given.
12601
12602 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
12603
12604         PR libstdc++/34680
12605         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
12606         * doc/cpp.texi ([Common Predefined Macros]): Document.
12607
12608 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
12609
12610         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
12611         order to use commutative addition instead of subtraction.
12612
12613 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12614             Mircea Namolaru  <namolaru@il.ibm.com>
12615             Vladimir Yanovsky  <yanov@il.ibm.com>
12616             Revital Eres  <eres@il.ibm.com>
12617
12618         PR tree-optimization/34263
12619         * tree-outof-ssa.c (process_single_block_loop_latch,
12620         contains_tree_r): New functions.
12621         (analyze_edges_for_bb): Call process_single_block_loop_latch
12622         function to empty single-basic-block latch block if possible.
12623
12624 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
12625
12626         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
12627         for TARGET_RECIP.
12628         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
12629
12630 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
12631
12632         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
12633
12634 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
12635
12636         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
12637
12638 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
12639
12640         PR tree-optimization/34618
12641         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
12642         flag from T.
12643
12644 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
12645
12646         PR target/34673
12647         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
12648         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
12649         Update copyright year.
12650
12651         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
12652         Update copyright year.
12653         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
12654         using NR fixup.
12655
12656 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
12657
12658         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
12659         edge does not point to current bb before changing need_assert.
12660
12661 2008-01-04  Richard Guenther  <rguenther@suse.de>
12662
12663         PR middle-end/34029
12664         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
12665         for verifying purposes if they are is_gimple_min_invariant.
12666
12667 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
12668
12669         PR tree-optimization/34448
12670         PR tree-optimization/34465
12671         * gimplify.c (gimplify_init_constructor): Add new parameter
12672         notify_temp_creation.  Use it.
12673         (gimplify_modify_expr_rhs): Take volatiles into account when
12674         optimizing constructors.
12675         Do not optimize constructors if gimplify_init_constructor will dump to
12676         memory.
12677         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
12678         * gcc.c-torture/compile/pr34448.c: New.
12679
12680 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
12681
12682         PR gcov-profile/34609
12683         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
12684         return_slot if result is TREE_ADDRESSABLE.
12685
12686 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
12687
12688         * config/mips/mips.md (sqrt_condition): Tweak comment.
12689         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
12690
12691 2008-01-03  Tom Tromey  <tromey@redhat.com>
12692
12693         PR c/34457
12694         * c-common.c (c_type_hash): Handle VLAs.
12695
12696 2008-01-03  Jan Hubicka  <jh@suse.cz>
12697
12698         PR tree-optimization/31081
12699         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
12700         0 when inlining and not inlining to first basic block.
12701         (remap_decl): When var is initialized to 0, don't set default_def.
12702         (expand_call_inline): Set entry_bb.
12703         * tree-inline.h (copy_body_data): Add entry_bb.
12704
12705 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
12706
12707         PR c++/34619
12708         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
12709         before returning.
12710
12711         PR tree-optimization/29484
12712         * tree-inline.c (inline_forbidden_p_2): New function.
12713         (inline_forbidden_p): Disallow inlining if some static var
12714         has an address of a local LABEL_DECL in its initializer.
12715         * doc/extend.texi (Labels as Values): Document &&foo behaviour
12716         vs. inlining.
12717
12718 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
12719
12720         PR tree-optimization/34635
12721         * tree-data-ref.c (add_other_self_distances): Make sure that the
12722         evolution step is constant.
12723
12724 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
12725
12726         PR middle-end/34608
12727         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
12728
12729 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
12730
12731         * tree-sra.c (scalarize_init): Insert the generate_element_init
12732         statements after the generate_element_zero statements.
12733
12734 2008-01-02  Richard Guenther  <rguenther@suse.de>
12735
12736         PR middle-end/34093
12737         PR middle-end/31976
12738         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
12739         for very large number of operands instead of ICEing.
12740
12741 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
12742
12743         PR target/34013
12744         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
12745         while stack probing.
12746
12747 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
12748
12749         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
12750         in C++0x mode.
12751
12752 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
12753
12754         PR libmudflap/26442
12755         * tree-mudflap.c (mx_register_decls): Guard warning by
12756         !DECL_ARTIFICIAL check.
12757
12758 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
12759
12760         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
12761         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
12762         sse5_perm<mode>): Fix constraints.