]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
2008-06-19 Bernhard Fischer <aldot@gcc.gnu.org>
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
c04e3894 12008-06-19 Bernhard Fischer <aldot@gcc.gnu.org>
2
3 * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
4 node->decl.
5 (cgraph_expand_function): Use local copy of decl.
6 (cgraph_expand_all_functions): Remove redundant initialization of
7 order_pos.
8 (cgraph_optimize): Reword internal_error message.
9
102008-06-19 Chung-Lin Tang <ctang@marvell.com>
4e86c60d 11
12 * arm-protos.h (arm_return_in_memory): Remove public
13 arm_return_in_memory() prototype.
14 * arm.c (arm_return_in_memory): Add static prototype, add target
15 hook macro, change definition and comments.
16 * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
17
6be7e425 182008-06-19 Ben Elliston <bje@au.ibm.com>
19
20 * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
21 real.c: Remove references to IEEE 754R.
22 * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
23 * doc/libgcc.texi (Decimal float library routines): Likewise.
24
1bd43494 252008-06-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
26
27 * targhooks.h (struct gcc_target): New member unwind_word_mode.
28 (default_unwind_word_mode): Add prototype.
29 * targhooks.c (default_unwind_word_mode): New function.
30 (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
31 instead of word_mode.
32 * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
33 (TARGET_INITIALIZER): Use it.
34
35 * c-common.c (handle_mode_attribute): Support "unwind_word"
36 mode attribute.
37 * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
38
39 * except.c (init_eh): Use targetm.unwind_word_mode () instead of
40 word_mode to access SjLj_Function_Context member "data".
41 (sjlj_emit_dispatch_table): Likewise. Also, perform type
42 conversion from targetm.eh_return_filter_mode () to
43 targetm.unwind_word_mode () if they differ.
44
45 * builtin-types.def (BT_UNWINDWORD): New primitive type.
46 (BT_FN_UNWINDWORD_PTR): New function type.
47 (BT_FN_WORD_PTR): Remove.
48 * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
49 * except.c (expand_builtin_extend_pointer): Convert pointer to
50 targetm.unwind_word_mode () instead of word_mode.
51
52 * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
53 * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
54 (spu_unwind_word_mode): New function.
55 (TARGET_EH_RETURN_FILTER_MODE): Do not define.
56 (TARGET_UNWIND_WORD_MODE): Define.
57 * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
58
aa71ecd4 592008-06-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
60
61 * config/spu/spu.c (reg_align): Remove.
62 (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
63 (spu_split_load): Use regno_aligned_for_load instead of reg_align.
64 (spu_split_store): Likewise.
65
c04e3894 662008-06-18 Bernhard Fischer <aldot@gcc.gnu.org>
95d2f3cc 67
68 * gcc/tree-vn.c: Fix typo in comment.
69
070eb4db 702008-06-18 Jan Hubicka <jh@suse.cz>
71
72 * cgraphunit.c (cgraph_optimize): Output debug info when doing
73 toplevel reorder too.
74
11d1b809 752008-06-18 Jan Hubicka <jh@suse.cz>
76
77 * c-opts.c (c_common_post_options): PCH is not compatible with
78 no-unit-at-a-time.
79 * opts.c (handle_options): Enable unit-at-a-time at O0 along with
80 -fno-toplevel-reorder by default now.
81
2489ab9d 822008-06-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
83
84 PR documentation/30739
85 * doc/install.texi (Prerequisites): Document dependency on awk.
86
3b10edae 872008-06-18 Uros Bizjak <ubizjak@gmail.com>
88 Ian Lance Taylor <iant@google.com>
89
90 PR rtl-optimization/35604
91 * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
92 only want to change jump destinations, not eventual label comparisons.
93
27c9bdfe 942008-06-16 Jan Hubicka <jh@suse.cz>
95
96 * cgraphunit.c (cgraph_expand_pending_functions): Give up at
97 syntax errors.
98 (cgraph_analyze_function): Likewise.
99
0da03d11 1002008-06-16 Jan Hubicka <jh@suse.cz>
101
102 * cgraph.h (cgraph_mark_if_needed): New function.
103 * cgraphunit.c (cgraph_mark_if_needed): New function.
104 * c-decl.c (duplicate_decl): Use it.
105
44ffce27 1062008-06-16 Jan Hubicka <jh@suse.cz>
107
108 * cgraph.c (cgraph_add_new_function): When in expansion state, do
109 lowering.
110
81a0bd53 1112008-06-16 Jan Hubicka <jh@suse.cz>
112
113 * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
114
69f36814 1152008-06-16 Daniel Jacobowitz <dan@codesourcery.com>
116 Kazu Hirata <kazu@codesourcery.com>
117 Maxim Kuvyrkov <maxim@codesourcery.com
118
119 * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
120 * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
121 * config/mips/linux.h (host_detect_local_cpu): Declare, add to
122 EXTRA_SPEC_FUNCTIONS.
123 (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
124 (DRIVER_SELF_SPECS): Adjust.
125 * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
126 * config/mips/st.h, config/mips/t-st: New.
127 * config/mips/driver-native.c, config/mips/x-native: New.
128 * doc/invoke.texi (MIPS): Document 'native' value for -march and
129 -mtune options.
130
d598f4ff 1312008-06-18 Maxim Kuvyrkov <maxim@codesourcery.com>
132
133 * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
134 from it.
135 (ISA_HAS_FP_CONDMOVE): New macro.
136 (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
137 (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
138 (ISA_HAS_NMADD3_NMSUB3): New macro.
139 * config/mips/mips.c (mips_rtx_costs): Update.
140 * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
141 compiling for ST Loongson 2E/2F.
142 (madd<mode>): Rename to madd4<mode>. Update.
143 (madd3<mode>): New pattern.
144 (msub<mode>): Rename to msub4<mode>. Update.
145 (msub3<mode>): New pattern.
146 (nmadd<mode>): Rename to nmadd4<mode>. Update.
147 (nmadd3<mode>): New pattern.
148 (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath. Update.
149 (nmadd3<mode>_fastmath): New pattern.
150 (nmsub<mode>): Rename to nmsub4<mode>. Update.
151 (nmsub3<mode>): New pattern.
152 (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath. Update.
153 (nmsub3<mode>_fastmath): New pattern.
154 (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
155
158b6cc9 1562008-06-18 Steven Bosscher <steven@gcc.gnu.org>
157
158 * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
159 (DF_REF_INSN_INFO): New.
160 (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
161 (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
162 with a NULL DF_REF_INSN_INFO.
163 (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
164 DF_INSN_SET.
165 (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
166 DF_INSN_INFO_EQ_USES): New.
167 (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
168 DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
169 DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
170 * df-core.c: Update comment for above changes.
171 (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
172 DF_INSN_UID_* macros.
173 (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
174 * df-scan.c (df_ref_record): Take a df_insn_info instead of an
175 insn rtx. Update all callers.
176 (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
177 df_ref_create_structure, df_insn_refs_collect): Likewise.
178 (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
179 * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
180 (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
181 macros to access the insn refs.
182 (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
183 * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
184 (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
185 for accessing the refs.
186 (try_fwprop_subst): Likewise.
187 * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
188 * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
189 for accessing the refs.
190 * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
191 (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
192 to look at the insn refs.
193 (record_uses): Likewise.
194 * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
195 function anymore.
196 (mark_artificial_uses): Don't mark_insn for artificial refs.
197 (mark_reg_rependencies): Likewise.
198
199 * doc/rtl.texi: Remove documentation of ADDRESSOF.
200
5b2c7553 2012008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
202
203 * configure: Regenerate.
204
996f916d 2052008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
206
207 * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
208 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
209 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
210
03468e21 2112008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
212
213 * config/avr/avr.c (avr_mcu_t): Add attiny167.
214 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
215 * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
216
12d142e2 2172008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
218
219 * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
220 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
221 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
222
8f4173dc 2232008-06-17 Bernhard Fischer <aldot@gcc.gnu.org>
224
225 * tree-ssa-sccvn.c: Fix format of comments.
226
2272008-06-17 Bernhard Fischer <aldot@gcc.gnu.org>
94206a66 228
229 * cgraph.c: Remove unneeded forward declarations of eq_node()
230 and hash_node().
231
1e5b92fa 2322008-06-17 Steven Bosscher <steven@gcc.gnu.org>
233
234 * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
235 REG_RETVAL notes.
236 (see_update_relevancy): Likewise.
237 * fwprop.c (try_fwprop_subst): Likewise.
238 * rtlanal.c (noop_move_p): Likewise.
239 * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
240 notes to non-existing libcall blocks.
241 * cse.c (cse_insn): Change prototype. Don't update libcall notes.
242 Remove orig_set.
243 (cse_extended_basic_block): Don't track libcall and no-conflict notes.
244 (dead_libcall_p): Remove.
245 (delete_trivially_dead_insns): Don't use it.
246 * web.c (union_defs): Remove comment about keeping nops.
247 * gcse.c (hash_scan_insn): Don't take libcall pointers.
248 (compute_hash_table_work): Don't track libcall notes.
249 (do_local_cprop): Don't take libcall pointers. Don't update
250 libcall notes.
251 (adjust_libcall_notes): Deleted.
252 (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
253 ever have existed in the first place).
254 (replace_store_insn): Don't try to remove libcall notes.
255 * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
256 (resolve_reg_notes): Don't call them.
257 (resolve_simple_move): Likewise.
258 (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
259 Don't remove REG_RETVAL notes.
260 * emit-rtl.c (try_split): Don't update libcall notes.
261 (emit_copy_of_insn_after): Dito.
262 * cselib.c (cselib_current_insn_in_libcall): Remove.
263 (cselib_process_insn): Don't set/clear it.
264 (new_elt_loc_list): Don't record it.
265 (cselib_init): Don't initialize it.
266 * cselib.c (struct elt_loc_list): Remove in_libcall field.
267 * loop-invariant.c (find_invariant_insn): Don't look for libcall
268 notes.
269 * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
270 (sched_analyze): Don't set up deps->libcall_block_tail_insn.
271 (init_deps): Don't initialize it.
272 * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
273 * combine.c (delete_noop_moves): Don't update libcall notes.
274 (can_combine_p): Remove now pointless #if 0 block.
275 (try_combine): Remove another obsolete #if 0 block.
276 (distribute_notes): Don't distribute libcall notes.
277 * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
278 * dce.c (libcall_dead_p): Remove.
279 (delete_unmarked_insns): Don't handle libcall blocks.
280 (preserve_libcall_for_dce): Remove.
281 (prescan_insns_for_dce): Don't special-case libcall block insns.
282 * reload1 (reload): Don't handle libcall notes.
283 * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
284 documentation.
285
0c4e93a2 2862008-06-16 Eric B. Weddington <eric.weddington@atmel.com>
287
288 * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
289 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
290 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
291
45a559b0 2922008-06-16 Eric B. Weddington <eric.weddington@atmel.com>
293
294 * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
295 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
296 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
297
b9de6413 2982008-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
299
300 * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
301
cd5987b1 3022008-06-16 Ira Rosen <irar@il.ibm.com>
303
304 PR tree-optimization/36493
305 * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
306 the arguments list. Use VECTYPE to create vector pointer.
307 (vectorizable_store): Fail if accesses through a pointer to vectype
308 do not alias the original memory reference operands.
309 Call vect_create_data_ref_ptr without the removed argument.
310 (vectorizable_load): Likewise.
311 (vect_setup_realignment): Call vect_create_data_ref_ptr without the
312 removed argument.
313
73de90a3 3142008-06-015 Andy Hutchinson <hutchinsonandy@aim.com>
315
316 PR target/36336
317 * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
318 reg_equiv_constant.
319
dc5599bf 3202008-06-15 Maxim Kuvyrkov <maxim@codesourcery.com>
321
322 * config/mips/loongson2ef.md: New file.
323 * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
324 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
325 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
326 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
327 (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
328 and loongson_2f.
329 (loongson2ef.md): New include.
330 * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
331 (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
332 (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
333 (loongson_gt_<mode>, loongson_extract_halfword)
334 (loongson_insert_halfword_0, loongson_insert_halfword_2)
335 (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
336 (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
337 (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
338 (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
339 (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
340 (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
341 (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
342 (vec_interleave_low<mode>): Define type attribute.
343 * config/mips/mips.c (mips_ls2): New static variable.
344 (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
345 (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
346 (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
347 Implement target scheduling hooks.
348 (mips_multipass_dfa_lookahead): Update to handle tuning for
349 Loongson 2E/2F.
350 (mips_sched_init): Initialize data for Loongson scheduling.
351 (mips_ls2_variable_issue): New static function.
352 (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
353 Add sanity check.
354 (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
355 (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
356 * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
357 (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
358 Handle ST Loongson 2E/2F cores.
359 (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
360
bde357c8 3612008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
362
363 * omp-low.c (extract_omp_for_data): Fix comment typo.
364 * c.opt: Fix typo.
365
c24c5fac 3662008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
367
368 * doc/sourcebuild.texi (Config Fragments): Remove obsolete
369 FIXME note about gcc/config.guess.
370 * doc/options.texi (Option file format): Remove non-ASCII bytes.
371 * doc/cpp.texi: Expand TABs, drop indentation outside examples.
372 * doc/cppopts.texi: Likewise.
373 * doc/extend.texi: Likewise.
374 * doc/gcc.texi: Likewise.
375 * doc/gccint.texi: Likewise.
376 * doc/gcov.texi: Likewise.
377 * doc/gty.texi: Likewise.
378 * doc/hostconfig.texi: Likewise.
379 * doc/install.texi: Likewise.
380 * doc/invoke.texi: Likewise.
381 * doc/loop.texi: Likewise.
382 * doc/makefile.texi: Likewise.
383 * doc/md.texi: Likewise.
384 * doc/passes.texi: Likewise.
385 * doc/tm.texi: Likewise.
386 * doc/tree-ssa.texi: Likewise.
387 * doc/trouble.texi: Likewise.
388
9636921b 3892008-06-15 Mark Shinwell <shinwell@codesourcery.com>
390 Nathan Sidwell <nathan@codesourcery.com>
391 Maxim Kuvyrkov <maxim@codesourcery.com>
392 Richard Sandiford <rdsandiford@googlemail.com>
393
394 * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
395 * config/mips/mips-protos.h (mips_expand_vector_init): New.
396 * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
397 builtins.
398 * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
399 (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
400 (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
401 V8QImode cases.
402 (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
403 (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
404 (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
405 (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
406 (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
407 (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
408 (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
409 (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
410 (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
411 (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
412 (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
413 (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
414 (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
415 (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
416 (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
417 (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
418 (mips_builtins): Add Loongson builtins.
419 (mips_loongson_2ef_bdesc): New.
420 (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
421 (mips_builtin_vector_type): Handle unsigned versions of vector modes.
422 (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
423 (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
424 New.
425 (mips_expand_vector_init): New.
426 * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
427 (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
428 if appropriate.
429 * config/mips/mips.md: Add unspec numbers for Loongson
430 builtins. Include loongson.md.
431 (MOVE64): Include Loongson vector modes.
432 (SPLITF): Include Loongson vector modes.
433 (HALFMODE): Handle Loongson vector modes.
434 * config/mips/loongson.md: New.
435 * config/mips/loongson.h: New.
436 * config.gcc: Add loongson.h header for mips*-*-* targets.
437 * doc/extend.texi (MIPS Loongson Built-in Functions): New.
438
10e9fb7b 4392008-06-14 Joseph Myers <joseph@codesourcery.com>
440
441 * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
442 h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
443 i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
444 iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
445 m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
446 m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
447 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
448 mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
449 mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
450 mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
451 powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
452 sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
453 sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
454 sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
455 sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
456 v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
457 Remove use_fixproto=yes.
458 (ia64*-*-hpux*): Remove comment about using fixproto.
459 (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
460
71a71532 4612008-06-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
462
463 * configure.ac: Update gthr-default.h lazily, to avoid unneeded
464 library rebuilds.
465 * configure: Regenerate.
466
b2f0b2a3 4672008-06-13 Eric Botcazou <ebotcazou@adacore.com>
468
469 PR middle-end/36520
470 * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
471 before evaluating it.
472
56f06eef 4732008-06-13 Jakub Jelinek <jakub@redhat.com>
474
475 PR c/36507
476 * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
477 nested inline functions.
478 (start_decl, start_function): Don't invert DECL_EXTERNAL
479 for nested inline functions.
480
6b8ae4a5 4812008-06-13 Richard Sandiford <rdsandiford@googlemail.com>
482
483 * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
484 splits that must be made for correctness.
485
a7e9ba74 4862008-06-13 Richard Sandiford <rdsandiford@googlemail.com>
487
488 * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
489 (AVAIL_NON_MIPS16): Likewise.
490 (mips_builtin_description): Replace target_flags with a predicate.
491 (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
492 (dspr2_32): New availability predicates.
493 (MIPS_BUILTIN): New macro.
494 (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
495 (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
496 (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
497 Replace the TARGET_FLAGS parameters with AVAIL parameters.
498 (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
499 (mips_dsp_32only_bdesc): Merge into...
500 (mips_builtins): ...this new array.
501 (mips_bdesc_map, mips_bdesc_arrays): Delete.
502 (mips_init_builtins): Update after above changes.
503 (mips_expand_builtin_1): Merge into...
504 (mips_expand_builtin): ...here and update after above changes.
505
ee16bf96 5062008-06-12 Paul Brook <paul@codesourcery.com>
507
508 * longlong.h (__arm__): Define count_leading_zeros.
509 * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
510 (clzsi2, clzdi2): New functions.
511 * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
512 * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
513 * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
514 * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
515 * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
516 * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
517 * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
518 * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
519 * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
520 * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
521
53457e36 5222008-06-12 Kazu Hirata <kazu@codesourcery.com>
523
524 * config/m68k/m68k.c (m68k_tune_flags): New.
525 (override_options): Compute m68k_tune_flags.
526 (MULL_COST, MULW_COST): Update for various variants of CFV2.
527 * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
528
6d5a0fbe 5292008-06-12 Jakub Jelinek <jakub@redhat.com>
530
531 PR middle-end/36506
3b10edae 532 * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
6d5a0fbe 533
74cbc691 5342008-06-12 Eric Botcazou <ebotcazou@adacore.com>
535
536 * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
537 TREE_THIS_VOLATILE on INDIRECT_REF nodes.
538
3bfa8ada 5392008-06-12 Eric Botcazou <ebotcazou@adacore.com>
540
541 * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
542 (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
543
9884aaf8 5442008-06-12 Jakub Jelinek <jakub@redhat.com>
545
546 PR middle-end/36506
547 * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
548 reductions.
549
c7b79592 5502008-06-12 Richard Guenther <rguenther@suse.de>
551
552 PR tree-optimization/36345
553 * tree-flow.h (struct ptr_info_def): Align escape_mask,
554 add memory_tag_needed flag.
555 (may_alias_p): Declare.
556 * tree-ssa-alias.c (may_alias_p): Export.
557 (set_initial_properties): Use memory_tag_needed flag.
558 (update_reference_counts): Likewise.
559 (reset_alias_info): Reset memory_tag_needed flag.
560 (create_name_tags): Check memory_tag_needed flag.
561 (dump_points_to_info_for): Dump it.
562 * tree-ssa-structalias.c (struct variable_info): Remove
563 directly_dereferenced flag.
564 (new_var_info): Do not initialize it.
565 (process_constraint_1): Do not set it.
566 (update_alias_info): Set is_dereferenced flag.
567 (set_uids_in_ptset): Use may_alias_p.
568 (set_used_smts): Check memory_tag_needed flag.
569 (find_what_p_points_to): Likewise. Pass is_dereferenced flag.
570 * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
571 memory_tag_needed flag.
572 * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
573 from broken design.
574
22ba0b7d 5752008-06-12 Kai Tietz <kai.tietz@onevision.com>
576
3b10edae 577 * config/i386/i386.c (ix86_compute_frame_layout): Disable
578 red zone for w64 abi.
22ba0b7d 579 (ix86_expand_prologue): Likewise.
580 (ix86_force_to_memory): Likewise.
581 (ix86_free_from_memory): Likewise.
582
4269e853 5832008-06-11 Edmar Wienskoski <edmar@freescale.com>
584
585 PR target/36425
586 * config/rs6000/rs6000.c (rs6000_override_options): Set
3b10edae 587 rs6000_isel conditionally to the absence of comand line override.
4269e853 588 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
589 Remove duplicate rs6000_isel setting.
590 * config/rs6000/eabispe.h: Ditto.
591
62d823d0 5922008-06-11 Richard Guenther <rguenther@suse.de>
593
594 * alias.c (get_alias_set): Use the element alias-set for arrays.
595 (record_component_aliases): For arrays and vectors do nothing.
596 * c-common.c (strict_aliasing_warning): Handle the cases
597 of alias set zero explicitly.
598 * Makefile.in (dfp.o-warn): Add -Wno-error.
599
f067c6b7 6002008-06-11 Joseph Myers <joseph@codesourcery.com>
601
602 * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
603 tune_32 tune_64.
604 (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
605 tune_32 tune_64 to supported_defaults. Allow values not
606 supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
607 x86_64. Do not override cpu_32 or cpu_64 values from target name.
608 (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
609 with_cpu_64 to generic for 64-bit-supporting configurations, not
610 with_cpu. Remove FIXMEs.
611 * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
612 --with-arch-64, --with-tune-32, --with-tune-64): Document.
613 * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
614 (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
615 arch_32 and arch_64.
616
6933ebec 6172008-06-11 Eric Botcazou <ebotcazou@adacore.com>
3b10edae 618 Olivier Hainque <hainque@adacore.com>
6933ebec 619
620 * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
621 Use DECL_SIZE_UNIT to retrieve the size of the field.
622
2359dba8 6232008-06-11 Joseph Myers <joseph@codesourcery.com>
624
625 * config/arm/arm.c (arm_init_neon_builtins): Move initialization
626 with function calls after declarations. Lay out
627 neon_float_type_node before further use.
628
2fd0b5dc 6292008-06-11 Richard Guenther <rguenther@suse.de>
630
631 * tree-flow.h (may_point_to_global_var): Declare.
632 * tree-ssa-alias.c (may_point_to_global_var): New function.
633 * tree-ssa-sink.c (is_hidden_global_store): Use it.
634
2f42448a 6352008-06-10 Kazu Hirata <kazu@codesourcery.com>
636
637 * configure.ac: Teach that fido supports .debug_line.
638 * configure: Regenerate.
639
35df0168 6402008-06-10 Tom Tromey <tromey@redhat.com>
641
642 * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
643 debug hook.
644
4d6f3aad 6452008-06-10 Joseph Myers <joseph@codesourcery.com>
646
647 * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
648 (encode_decimal64, decode_decimal64, encode_decimal128,
649 decode_decimal128): Reverse order of 32-bit parts of value if host
650 and target endianness differ.
651
5b17b7ae 6522008-06-10 Vinodha Ramasamy <vinodha@google.com>
3b10edae 653
654 * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
5b17b7ae 655 Avoid division by 0.
656 (tree_mod_pow2_value_transform): Likewise.
657 (tree_ic_transform): Likewise.
658 (tree_stringops_transform): Likewise.
659 (tree_mod_subtract_transform): Likewise.
660 * tree-inline-c (copy_bb): Corrected int type to gcov_type.
661 (copy_edges_for_bb): Likewise.
662 (initialize_cfun): Likewise.
663
839b1bd1 6642008-06-10 Uros Bizjak <ubizjak@gmail.com>
665
666 * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
667 nonmemory_operand. Add "N" operand constraint.
668 (*btsi): Ditto.
669 (*jcc_btdi_mask_rex64): New instruction and split pattern.
670 (*jcc_btsi_mask): Ditto.
671 (*jcc_btsi_mask_1): Ditto.
672
aec85d50 6732008-06-10 Joseph Myers <joseph@codesourcery.com>
674
675 * config/rs6000/rs6000.c (build_opaque_vector_type): Set
676 TYPE_CANONICAL for copied element type.
677
c9021e73 6782008-06-10 Uros Bizjak <ubizjak@gmail.com>
679
680 PR target/36473
681 * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
682 Add m_CORE2 and m_GENERIC.
683 * config/i386/predicates.md (bt_comparison_operator): New predicate.
684 * config/i386/i386.md (*btdi_rex64): New instruction pattern.
685 (*btsi): Ditto.
686 (*jcc_btdi_rex64): New instruction and split pattern.
687 (*jcc_btsi): Ditto.
688 (*jcc_btsi_1): Ditto.
689 (*btsq): Fix Intel asm dialect operand order.
690 (*btrq): Ditto.
691 (*btcq): Ditto.
692
248c3e88 6932008-06-09 Andy Hutchinson <hutchinsonandy@aim.com>
694
695 PR middle-end/36447
696 * simplify-rtx.c (simplify_subreg): Add check for shift count
697 greater than size.
698
208414ec 6992008-06-09 Richard Sandiford <rdsandiford@googlemail.com>
700
701 * doc/md.texi: Synchronize with later constraints.md change.
702 * longlong.h (umul_ppmm): Replace the MIPS asm implementation
703 with a C implementation.
704 * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
705 MFLO handling.
706 (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
707 (mips_split_doubleword_move): Use special MTHI and MFHI instructions
708 when moving to and from MD_REGNUM.
709 (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
710 Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
711 Handle byte and halfword moves.
712 (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
713 separately.
714 * config/mips/constraints.md (h): Turn into NO_REGS.
715 (l, x): Update documentation.
716 * config/mips/mips.md (UNSPEC_MFHILO): Delete.
717 (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
718 (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
719 (HILO): New mode iterator.
720 (MOVE128): Add TI.
721 (any_div): New code iterator.
722 (u): Extend code attribute to div and udiv.
723 (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
724 d_operand in the splitters. Remove redundant CONST_INT checks.
725 (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
726 (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
727 (*muls): Remove "=h" clobbers. Adjust peephole2s and define_splits
728 accordingly, using normal moves instead of unspecs to move LO into
729 a GPR. Use d_operand and lo_operand instead of *_REG_P checks.
730 (<u>mulsidi3): Handle expansion in C code.
731 (<u>mulsidi3_32bit_internal): Rename to...
732 (<u>mulsidi3_32bit): ...this.
733 (<u>mulsidi3_32bit_r4000): Fix insn separator.
734 (*<u>mulsidi3_64bit): Rename to...
735 (<u>mulsidi3_64bit): ...this. Combine DImode "=h" and "=l" clobbers
736 into a TImode "=x" clobber. In the split, use an UNSPEC_SET_HILO
737 to set LO and HI to the multiplication result. Use a normal move
738 for MFLO and an unspec for MFHI.
739 (*<u>mulsidi3_64bit_parts): Replace with...
740 (<u>mulsidi3_64bit_hilo): ...this new instruction.
741 (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
742 (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
743 and extend it to TARGET_FIX_R4000. Store the destination in a GPR
744 instead of HI. Split the instruction into a separate multiplication
745 and MFHI if !TARGET_FIX_R4000.
746 (<su>muldi3_highpart): Likewise.
747 (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
748 and the "=h" clobber.
749 (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
750 (<u>mulditi3): New expander.
751 (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
752 (madsi): Remove "=h" clobber.
753 (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
754 Force the modulus result to be a GPR and split the instruction into
755 a division followed by an MFHI after reload.
756 (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
757 (*lea_high64): Use d_operand in the define_peephole2. Likewise
758 the MIPS16 HIGH define_split.
759 (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
760 of acc<->gpr moves to "multi".
761 (*movdi_64bit): Replace the single "x" alternative with
762 alternatives for moving into and out of "a".
763 (*movhi_internal, *movqi_internal): Likewise. Use mips_output_move.
764 (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
765 (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
766 Use d_operand in the splitters. Remove redundant CONST_INT checks.
767 (*movhi_mips16, *movqi_mips16): Likewise. Use mips_output_move.
768 (movti): New expander.
769 (*movti, *movti_mips16): New insns.
770 (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
771 (mfhi<GPR:mode>_<HILO:mode>): New pattern.
772 (mthi<GPR:mode>_<HILO:mode>): Likewise.
773 * config/mips/predicates.md (fpr_operand): Delete.
774 (d_operand): New predicate.
775
43da04c5 7762008-06-09 Michael Meissner <michael.meissner@amd.com>
777
778 * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
779 failure on some Bourne shells.
780 (x86_64-*-*): Ditto.
781
ccabcb22 7822008-06-09 Kai Tietz <kai.tietz@onevision.com>
783
784 * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
785
2b5c4649 7862008-06-09 Eric Botcazou <ebotcazou@libertysurf.fr>
787
788 * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
789 (sparc-sun-solaris2*): Likewise.
790
83d2008b 7912008-06-09 Arnaud Charlet <charlet@adacore.com
792
793 * doc/install.texi: Update requirements to build the Ada compiler.
794
a0319c5b 7952008-06-08 Steven Bosscher <stevenb.gcc@gmail.com>
796
797 * df-scan.c (struct df_scan_problem_data): Remove the
798 mw_link_pool alloc pool.
799 (df_scan_free_internal): Don't free it.
800 (df_scan_alloc): Don't allocate it.
801 * df.h (struct df_link): Update comment.
802
e98feecb 8032008-06-08 Nathan Sidwell <nathan@codesourcery.com>
804
805 * except.h: Correct checks for when SJLJ exceptions must be used.
806
107dac72 8072008-06-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
808
809 * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
810 default.
811
9841cd80 8122008-06-08 Joseph Myers <joseph@codesourcery.com>
813
814 PR tree-optimization/36218
815 * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
816 configure for the build system.
817 (BUILD_LDFLAGS): Define.
818 * configure: Regenerate.
819 * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
820
afe7695c 8212008-07-08 Anatoly Sokolov <aesok@post.ru>
822
823 PR target/36424
824 * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
825 * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
826 * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
827
c456b35e 8282008-06-07 Danny Smith <dannysmith@users.sourceforge.net>
829
830 * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
831
6af9f7ea 8322008-06-07 Joseph Myers <joseph@codesourcery.com>
833
834 * config.gcc (Obsolete configurations): Remove list of
835 configurations.
836 (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
837 *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*. Remove other
838 targets matched by those patterns.
839 (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
840 m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
841 alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
842 arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
843 hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
844 i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
845 i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
846 i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
847 i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
848 mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
849 powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
850 powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
851 strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
852 vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
853 i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
854 Make code for Solaris 7 and greater unconditional for Solaris.
855 (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
856 Remove --with-* handling.
857 * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
858 (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
859 ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
860 LINK_OS_WINDISS_SPEC): Remove.
861 * config/rs6000/sysv4.opt (mwindiss): Remove.
862 * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
863 * configure: Regenerate.
864 * doc/cpp.texi: Don't mention BeOS.
865 * doc/extend.texi (interrupt): Don't mention MS1.
866 * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
867 m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
868 alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
869 i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
870 powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
871 Remove.
872 * doc/invoke.texi (MT Options): Remove.
873 (-mwindiss): Remove.
874 (CRIS Options): Remove cris-axis-aout references.
875 (HPPA Options): Don't mention hppa1.1-*-pro.
876 * doc/md.texi: (MorphoTech family): Remove.
877 * libgcc2.c: Don't handle UWIN.
878 * config/alpha/t-unicosmk: Remove.
879 * config/alpha/unicosmk.h: Remove.
880 * config/arm/kaos-arm.h: Remove.
881 * config/arm/kaos-strongarm.h: Remove.
882 * config/arm/strongarm-coff.h: Remove.
883 * config/arm/strongarm-elf.h: Remove.
884 * config/arm/strongarm-pe.h: Remove.
885 * config/arm/t-strongarm-pe: Remove.
886 * config/arm/t-xscale-coff: Remove.
887 * config/arm/t-xscale-elf: Remove.
888 * config/arm/xscale-coff.h: Remove.
889 * config/arm/xscale-elf.h: Remove.
890 * config/chorus.h: Remove.
891 * config/cris/aout.h: Remove.
892 * config/cris/aout.opt: Remove.
893 * config/cris/t-aout: Remove.
894 * config/i386/beos-elf.h: Remove.
895 * config/i386/kaos-i386.h: Remove.
896 * config/i386/ptx4-i.h: Remove.
897 * config/i386/sco5.h: Remove.
898 * config/i386/sco5.opt: Remove.
899 * config/i386/sysv4-cpp.h: Remove.
900 * config/i386/sysv5.h: Remove.
901 * config/i386/t-beos: Remove.
902 * config/i386/t-sco5: Remove.
903 * config/i386/t-uwin: Remove.
904 * config/i386/uwin.asm: Remove.
905 * config/i386/uwin.h: Remove.
906 * config/kaos.h: Remove.
907 * config/mips/windiss.h: Remove.
908 * config/mt: Remove directory.
909 * config/pa/pa-osf.h: Remove.
910 * config/pa/pa-pro-end.h: Remove.
911 * config/pa/t-pro: Remove.
912 * config/ptx4.h: Remove.
913 * config/rs6000/beos.h: Remove.
914 * config/rs6000/kaos-ppc.h: Remove.
915 * config/rs6000/t-beos: Remove.
916 * config/rs6000/windiss.h: Remove.
917 * config/sh/kaos-sh.h: Remove.
918 * config/sol2-6.h: Remove.
919 * config/sparc/sol26-sld.h: Remove.
920 * config/sparc/sysv4-only.h: Remove.
921 * config/vax/bsd.h: Remove.
922 * config/vax/t-memfuncs: Remove.
923 * config/vax/ultrix.h: Remove.
924 * config/vax/vaxv.h: Remove.
925 * config/windiss.h: Remove.
926
e7323ddd 9272008-06-06 Uros Bizjak <ubizjak@gmail.com>
928
929 PR rtl-optimization/36438
930 * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
931 for vector shifts with constant scalar shift operands.
932
b3c53ba7 9332008-06-06 Sandip Matte <sandip@rmicorp.com>
934
935 * doc/invoke.texi: Document -march=xlr.
936 * config/mips/xlr.md: New file.
937 * config/mips/mips.md: Include it.
938 (cpu): Add "xlr".
939 * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
940 * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
941 (mips_rtx_cost_data): Likewise.
942
c2010fcc 9432008-06-06 Nathan Froyd <froydnj@codesourcery.com>
944
945 * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
946 PRE_INC and PRE_DEC cases.
947
538f00d1 9482008-06-06 Jakub Jelinek <jakub@redhat.com>
949
cc60e593 950 PR rtl-optimization/36419
951 * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
952 the emitting jump insn.
953
538f00d1 954 PR target/36362
955 * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
956 is not bool, boolify the whole *expr_p and convert to the desired type.
957
fd6481cf 9582008-06-06 Jakub Jelinek <jakub@redhat.com>
959
e7323ddd 960 * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
fd6481cf 961 * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
962 Add omp_private_outer_ref hook, add another argument to
963 omp_clause_default_ctor hook.
964 * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
965 (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
966 (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
967 hook_tree_tree_tree_tree_null.
968 (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
969 LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
970 * hooks.c (hook_tree_tree_tree_tree_null): New function.
971 * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
972 * tree.def (OMP_TASK): New tree code.
973 * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
974 OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
975 OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
976 OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
977 OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
978 OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
979 OMP_CLAUSE_COLLAPSE_EXPR): Define.
980 (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
981 (OMP_DIRECTIVE_P): Add OMP_TASK.
982 (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
983 (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
984 * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
985 and OMP_CLAUSE_UNTIED entries.
986 (omp_clause_num_ops): Likewise. Increase OMP_CLAUSE_LASTPRIVATE
987 num_ops to 2.
988 (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
989 Walk OMP_CLAUSE_LASTPRIVATE_STMT.
990 * tree-pretty-print.c (dump_omp_clause): Handle
991 OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
992 OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
993 (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
994 * c-omp.c (c_finish_omp_for): Allow pointer iterators. Remove
995 warning about unsigned iterators. Change decl/init/cond/incr
996 arguments to TREE_VECs, check arguments for all collapsed loops.
997 (c_finish_omp_taskwait): New function.
998 (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
999 ws_clauses.
1000 * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops. Call
1001 default_function_array_conversion on init. Add par_clauses argument.
1002 If decl is present in parallel's lastprivate clause, change it to
1003 shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
1004 Add clauses argument, on success set OMP_FOR_CLAUSES to it. Look up
1005 collapse count in clauses.
1006 (c_parser_omp_for, c_parser_omp_parallel): Adjust
1007 c_parser_omp_for_loop callers.
1008 (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
1009 (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
1010 (c_parser_omp_clause_name): Handle collapse and untied clauses.
1011 (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
1012 functions.
1013 (c_parser_omp_clause_schedule): Handle schedule(auto).
1014 Include correct location in the error message.
1015 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
1016 and PRAGMA_OMP_CLAUSE_UNTIED.
1017 (OMP_TASK_CLAUSE_MASK): Define.
1018 (c_parser_omp_task, c_parser_omp_taskwait): New functions.
1019 (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
1020 * tree-nested.c (convert_nonlocal_omp_clauses,
1021 convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
1022 OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
1023 OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1024 Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
1025 OMP_CLAUSE_DECL.
1026 (conver_nonlocal_reference, convert_local_reference,
1027 convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL. Use
1028 OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
1029 (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
1030 * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
1031 * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
1032 * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
1033 (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
1034 * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
1035 (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
1036 OMP_CLAUSE_UNTIED.
1037 * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
1038 * c-common.h (c_finish_omp_taskwait): New prototype.
1039 * gimple-low.c (lower_stmt): Handle OMP_TASK.
1040 * tree-parloops.c (create_parallel_loop): Create 1 entry
1041 vectors for OMP_FOR_{INIT,COND,INCR}.
1042 * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
1043 (make_edges): Handle OMP_TASK.
1044 * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
1045 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1046 * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
1047 * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
1048 BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
1049 BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
1050 BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
1051 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
1052 * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
1053 BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
1054 BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
1055 BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
1056 BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
1057 BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
1058 BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
1059 BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
1060 BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
1061 BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
1062 BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
1063 BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
1064 BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
1065 BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
1066 BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
1067 BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
1068 BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
1069 * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
1070 handle POINTER_PLUS_EXPR. If loop counter has been replaced and
1071 original iterator is present in lastprivate clause or if
1072 collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT. Handle collapsed
1073 OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1074 (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
1075 (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
1076 (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
1077 if it is set, lookup var in outer contexts too. Handle
1078 OMP_CLAUSE_DEFAULT_FIRSTPRIVATE. Handle vars that are supposed
1079 to be implicitly determined firstprivate for task regions.
1080 (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
1081 if it is set, lookup var in outer contexts too. Set
1082 OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
1083 Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
1084 OMP_CLAUSE_UNTIED. Take region_type as last argument
1085 instead of in_parallel and in_combined_parallel.
1086 (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
1087 Adjust callers.
1088 (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
e7323ddd 1089 GOVD_PRIVATE_OUTER_REF is set. Call omp_finish_clause langhook.
fd6481cf 1090 (new_omp_context): Set default_kind to
1091 OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
1092 (omp_region_type): New enum.
1093 (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
1094 fields, add region_type.
1095 (new_omp_context): Take region_type as argument instead of is_parallel
1096 and is_combined_parallel.
1097 (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
1098 omp_is_private, omp_check_private): Adjust ctx->is_parallel and
1099 ctx->is_combined_parallel checks.
1100 (gimplify_omp_task): New function.
1101 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
1102 OMP_CLAUSE_UNTIED.
1103 * omp-low.c (extract_omp_for_data): Use schedule(static)
1104 for schedule(auto). Handle pointer and unsigned iterators.
1105 Compute fd->iter_type. Handle POINTER_PLUS_EXPR increments.
1106 Add loops argument. Extract data for collapsed OMP_FOR loops.
1107 (expand_parallel_call): Assert sched_kind isn't auto,
1108 map runtime schedule to index 3.
1109 (struct omp_for_data_loop): New type.
1110 (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
1111 Add loop, loops, collapse and iter_type fields.
1112 (workshare_safe_to_combine_p): Disallow combined for if
1113 iter_type is unsigned long long. Don't combine collapse > 1 loops
1114 unless all bounds and steps are constant. Adjust extract_omp_for_data
1115 caller.
1116 (expand_omp_for_generic): Handle pointer, unsigned and long long
1117 iterators. Handle collapsed OMP_FOR loops. Adjust
1118 for struct omp_for_data changes. If libgomp function doesn't return
1119 boolean_type_node, add comparison of the return value with 0.
1120 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
1121 pointer, unsigned and long long iterators. Adjust for struct
1122 omp_for_data changes.
1123 (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
1124 to index 3. Use GOMP_loop_ull*{start,next} if iter_type is
1125 unsigned long long. Allocate loops array, pass it to
1126 extract_omp_for_data. For collapse > 1 loops use always
1127 expand_omp_for_generic.
1128 (omp_context): Add sfield_map and srecord_type fields.
1129 (is_task_ctx, lookup_sfield): New functions.
1130 (use_pointer_for_field): Use is_task_ctx helper. Change first
1131 argument's type from const_tree to tree. Clarify comment.
1132 In OMP_TASK disallow copy-in/out sharing.
1133 (build_sender_ref): Call lookup_sfield instead of lookup_field.
1134 (install_var_field): Add mask argument. Populate both record_type
1135 and srecord_type if needed.
1136 (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
1137 in srecord_type.
1138 (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
1139 and DECL_FIELD_OFFSET.
1140 (scan_sharing_clauses): Adjust install_var_field callers. For
1141 firstprivate clauses on explicit tasks allocate the var by value in
1142 record_type unconditionally, rather than by reference.
1143 Handle OMP_CLAUSE_PRIVATE_OUTER_REF. Scan OMP_CLAUSE_LASTPRIVATE_STMT.
1144 Use is_taskreg_ctx instead of is_parallel_ctx.
1145 Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1146 (create_omp_child_function_name): Add task_copy argument, use
1147 *_omp_cpyfn* names if it is true.
1148 (create_omp_child_function): Add task_copy argument, if true create
1149 *_omp_cpyfn* helper function.
1150 (scan_omp_parallel): Adjust create_omp_child_function callers.
1151 Rename parallel_nesting_level to taskreg_nesting_level.
1152 (scan_omp_task): New function.
1153 (lower_rec_input_clauses): Don't run constructors for firstprivate
1154 explicit task vars which are initialized by *_omp_cpyfn*.
1155 Pass outer var ref to omp_clause_default_ctor hook if
1156 OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
1157 Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
1158 OMP_CLAUSE_REDUCTION_INIT.
1159 (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
1160 avoid duplicate setting of fields. Handle
1161 OMP_CLAUSE_PRIVATE_OUTER_REF.
1162 (lower_send_shared_vars): Use srecord_type if non-NULL. Don't
1163 copy-out if TREE_READONLY, only copy-in.
1164 (expand_task_copyfn): New function.
1165 (expand_task_call): New function.
1166 (struct omp_taskcopy_context): New type.
1167 (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
1168 New functions.
1169 (lower_omp_parallel): Rename to...
1170 (lower_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
1171 Call create_task_copyfn if srecord_type is needed. Adjust
1172 sender_decl type.
1173 (task_shared_vars): New variable.
1174 (check_omp_nesting_restrictions): Warn if work-sharing,
1175 barrier, master or ordered region is closely nested inside OMP_TASK.
1176 Add warnings for barrier if closely nested inside of work-sharing,
1177 ordered, or master region.
1178 (scan_omp_1): Call check_omp_nesting_restrictions even for
1179 GOMP_barrier calls. Rename parallel_nesting_level to
1180 taskreg_nesting_level. Handle OMP_TASK.
1181 (lower_lastprivate_clauses): Even if some lastprivate is found on a
1182 work-sharing construct, continue looking for them on parent parallel
1183 construct.
1184 (lower_omp_for_lastprivate): Add lastprivate clauses
1185 to the beginning of dlist rather than end. Adjust for struct
1186 omp_for_data changes.
1187 (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
1188 not after it. Handle collapsed OMP_FOR loops, adjust for
e7323ddd 1189 OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
fd6481cf 1190 (get_ws_args_for): Adjust extract_omp_for_data caller.
1191 (scan_omp_for): Handle collapsed OMP_FOR
1192 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1193 (lower_omp_single_simple): If libgomp function doesn't return
1194 boolean_type_node, add comparison of the return value with 0.
1195 (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
1196 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes. Handle OMP_TASK.
1197 (parallel_nesting_level): Rename to...
1198 (taskreg_nesting_level): ... this.
1199 (is_taskreg_ctx): New function.
1200 (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
1201 of is_parallel_ctx.
1202 (execute_lower_omp): Rename parallel_nesting_level to
1203 taskreg_nesting_level.
1204 (expand_omp_parallel): Rename to...
1205 (expand_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
1206 Call omp_task_call for OMP_TASK regions.
1207 (expand_omp): Adjust caller, handle OMP_TASK.
1208 (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
1209
1210 * bitmap.c (bitmap_default_obstack_depth): New variable.
1211 (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
1212 if argument is NULL and bitmap_default_obstack is already initialized.
1213 * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
1214 at the end.
1215 * matrix-reorg.c (matrix_reorg): Likewise.
1216
cbdcfa59 12172008-06-06 Uros Bizjak <ubizjak@gmail.com>
1218
1219 * config/i386/i386.md (*indirect_jump): Macroize using P
1220 mode iterator. Remove !TARGET_64BIT from insn constraints.
1221 (*tablejump_1): Ditto.
1222 (*indirect_jump_rex64): Remove insn pattern.
1223 (*tablejump_1_rex64): Ditto.
1224 (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
1225 and eh_return_si insn patterns.
1226
ddca26d5 12272008-06-06 Richard Guenther <rguenther@suse.de>
1228
1229 * tree-ssa-structalias.c (merge_smts_into): Remove.
1230 (find_what_p_points_to): Do not bother to compute the
1231 points-to set for pt_anything pointers.
1232 * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
1233 for pt_anything pointers is ok.
1234
8bd98e13 12352008-06-06 Jan Hubicka <jh@suse.cz>
1236
1237 * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
1238
f0b5f617 12392008-06-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1240
1241 * cgraph.c: Fix typos in comments.
1242 (cgraph_availability_names): Fix string typo.
1243 * fold-const.c: Fix typos in comments.
1244 (fold_binary): Fix typo in warning.
1245 * genautomata.c: Fix typos in comments.
1246 (check_presence_pattern_sets): Fix typo in local variable.
1247 (output_description): Fix typo in output.
1248 * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
1249 * hwint.h: Likewise.
1250 * matrix-reorg.c (check_allocation_function): Likewise.
1251 * omega.c (smooth_weird_equations): Likewise.
1252 * auto-inc-dec.c: Fix typos in comments.
1253 * bb-reorder.c: Likewise.
1254 * builtins.c: Likewise.
1255 * c-common.c: Likewise.
1256 * c-cppbuiltin.c: Likewise.
1257 * c-parser.c: Likewise.
1258 * c-pretty-print.c: Likewise.
1259 * cfgcleanup.c: Likewise.
1260 * cfgexpand.c: Likewise.
1261 * cfghooks.c: Likewise.
1262 * cfglayout.c: Likewise.
1263 * cfgloopmanip.c: Likewise.
1264 * cgraphunit.c: Likewise.
1265 * coverage.c: Likewise.
1266 * dbxout.c: Likewise.
1267 * df-byte-scan.c: Likewise.
1268 * df-core.c: Likewise.
1269 * df-problems.c: Likewise.
1270 * df-scan.c: Likewise.
1271 * dfp.c: Likewise.
1272 * dominance.c: Likewise.
1273 * domwalk.c: Likewise.
1274 * dse.c: Likewise.
1275 * dwarf2out.c: Likewise.
1276 * emit-rtl.c: Likewise.
1277 * et-forest.c: Likewise.
1278 * function.c: Likewise.
1279 * function.h: Likewise.
1280 * gcc.c: Likewise.
1281 * gcov-io.c: Likewise.
1282 * gcov.c: Likewise.
1283 * gcse.c: Likewise.
1284 * genattrtab.c: Likewise.
1285 * ggc-page.c: Likewise.
1286 * gimplify.c: Likewise.
1287 * gthr-lynx.h: Likewise.
1288 * haifa-sched.c: Likewise.
1289 * ipa-cp.c: Likewise.
1290 * ipa-inline.c: Likewise.
1291 * ipa-prop.h: Likewise.
1292 * ipa-pure-const.c: Likewise.
1293 * ipa-struct-reorg.c: Likewise.
1294 * ipa-struct-reorg.h: Likewise.
1295 * ipa-type-escape.c: Likewise.
1296 * ipa.c: Likewise.
1297 * loop-doloop.c: Likewise.
1298 * mips-tfile.c: Likewise.
1299 * mkmap-flat.awk: Likewise.
1300 * mkmap-symver.awk: Likewise.
1301 * modulo-sched.c: Likewise.
1302 * omp-low.c: Likewise.
1303 * optabs.c: Likewise.
1304 * optabs.h: Likewise.
1305 * opts.c: Likewise.
1306 * passes.c: Likewise.
1307 * postreload-gcse.c: Likewise.
1308 * postreload.c: Likewise.
1309 * predict.c: Likewise.
1310 * pretty-print.h: Likewise.
1311 * profile.c: Likewise.
1312 * protoize.c: Likewise.
1313 * ra-conflict.c: Likewise.
1314 * real.c: Likewise.
1315 * recog.c: Likewise.
1316 * regclass.c: Likewise.
1317 * regs.h: Likewise.
1318 * reload.c: Likewise.
1319 * rtl-error.c: Likewise.
1320 * rtlanal.c: Likewise.
1321 * scan.h: Likewise.
1322 * sched-rgn.c: Likewise.
1323 * see.c: Likewise.
1324 * stmt.c: Likewise.
1325 * target.h: Likewise.
1326 * tree-dfa.c: Likewise.
1327 * tree-eh.c: Likewise.
1328 * tree-flow-inline.h: Likewise.
1329 * tree-inline.c: Likewise.
1330 * tree-into-ssa.c: Likewise.
1331 * tree-loop-distribution.c: Likewise.
1332 * tree-nested.c: Likewise.
1333 * tree-parloops.c: Likewise.
1334 * tree-pass.h: Likewise.
1335 * tree-pretty-print.c: Likewise.
1336 * tree-profile.c: Likewise.
1337 * tree-scalar-evolution.c: Likewise.
1338 * tree-sra.c: Likewise.
1339 * tree-ssa-alias-warnings.c: Likewise.
1340 * tree-ssa-ccp.c: Likewise.
1341 * tree-ssa-coalesce.c: Likewise.
1342 * tree-ssa-dom.c: Likewise.
1343 * tree-ssa-dse.c: Likewise.
1344 * tree-ssa-forwprop.c: Likewise.
1345 * tree-ssa-live.c: Likewise.
1346 * tree-ssa-live.h: Likewise.
1347 * tree-ssa-loop-im.c: Likewise.
1348 * tree-ssa-loop-ivopts.c: Likewise.
1349 * tree-ssa-loop-niter.c: Likewise.
1350 * tree-ssa-loop-prefetch.c: Likewise.
1351 * tree-ssa-phiopt.c: Likewise.
1352 * tree-ssa-phiprop.c: Likewise.
1353 * tree-ssa-sccvn.c: Likewise.
1354 * tree-ssa-ter.c: Likewise.
1355 * tree-ssa-threadupdate.c: Likewise.
1356 * tree-ssa.c: Likewise.
1357 * tree-vect-analyze.c: Likewise.
1358 * tree-vect-transform.c: Likewise.
1359 * tree-vectorizer.c: Likewise.
1360 * tree-vn.c: Likewise.
1361 * tree-vrp.c: Likewise.
1362 * tree.c: Likewise.
1363 * tree.def: Likewise.
1364 * tree.h: Likewise.
1365 * unwind-dw2-fde.c: Likewise.
1366 * unwind.inc: Likewise.
1367 * value-prof.c: Likewise.
1368 * vmsdbgout.c: Likewise.
1369
ecaa8a98 13702008-06-05 David Edelsohn <edelsohn@gnu.org>
1371
1372 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
1373 always place FP constants in the TOC for TARGET_POWERPC64.
1374 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
1375
bea66da5 13762008-06-05 Joseph Myers <joseph@codesourcery.com>
1377
1378 * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
1379 * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
1380 enable for TARGET_E500_DOUBLE.
1381 (*movdd_softfloat32): Also enable for !TARGET_FPRS.
1382 * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
1383 floating-point modes like integer modes for E500 double.
1384 (rs6000_legitimate_offset_address_p): Likewise.
1385 (rs6000_legitimize_address): Likewise. Do not allow REG+REG
1386 addressing for DDmode for E500 double.
1387 (rs6000_hard_regno_nregs): Do not treat decimal floating-point
1388 modes as using 64-bits of registers for E500 double.
1389 (spe_build_register_parallel): Do not handle DDmode or TDmode.
1390 (rs6000_spe_function_arg): Do not handle DDmode or TDmode
1391 specially for E500 double.
1392 (function_arg): Do not call rs6000_spe_function_arg for DDmode or
1393 TDmode for E500 double.
1394 (rs6000_gimplify_va_arg): Only handle SDmode in registers
1395 specially if TARGET_HARD_FLOAT && TARGET_FPRS.
1396 (rs6000_split_multireg_move): Do not handle TDmode specially for
1397 E500 double.
1398 (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
1399 using 64-bit registers for E500 double.
1400 (emit_frame_save): Do not handle DDmode specially for E500 double.
1401 (gen_frame_mem_offset): Likewise.
1402 (rs6000_function_value): Do not call spe_build_register_parallel
1403 for DDmode or TDmode.
1404 (rs6000_libcall_value): Likewise.
1405 * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
1406 DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
1407 for E500 double.
1408
4d8c4ef0 14092008-06-04 H.J. Lu <hongjiu.lu@intel.com>
1410
1411 * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
1412 in comments.
1413
98d31fbc 14142008-06-04 Junjie Gu <jgu@tensilica.com>
1415
1416 * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
1417 comparison for frame pointers.
1418
6ce48f50 14192008-06-04 Andy Hutchinson <hutchinsonandy@aim.com>
1420
1421 PR target/27386
e7323ddd 1422 * config/avr/avr.h (PUSH_ROUNDING): Remove.
6ce48f50 1423
4a46f016 14242008-06-04 Andy Hutchinson <hutchinsonandy@aim.com>
1425
1426 PR target/30243
1427 * builtins.c (expand_builtin_signbit): Don't take lowpart when
1428 register is already smaller or equal to required mode.
1429
e6a23add 14302008-06-04 Xinliang David Li <davidxl@google.com>
1431
1432 * tree-call-cdce.c: New file.
1433 (cond_dead_built_in_calls): New static variable.
1434 (input_domain): New struct.
1435 (check_pow): New function.
1436 (check_builtin_call): Ditto.
1437 (check_target_format): Ditto.
1438 (is_call_dce_candidate): Ditto.
1439 (gen_one_condition): Ditto.
1440 (gen_conditions_for_domain): Ditto.
1441 (get_domain): Ditto.
1442 (gen_conditions_for_pow_cst_base): Ditto.
1443 (gen_conditions_for_pow_int_base): Ditto.
1444 (gen_conditions_for_pow): Ditto.
1445 (get_no_error_domain): Ditto.
1446 (gen_shrink_wrap_conditions): Ditto.
1447 (shrink_wrap_one_built_in_call): Ditto.
1448 (shink_wrap_conditional_dead_built_in_calls): Ditto.
1449 (tree_call_cdce): Ditto.
1450 (gate_call_cdce): Ditto.
1451 (pass_call_cdce): New gimple pass.
1452 * passes.c: (init_optimization_passes): New pass.
1453 * tree-pass.h: New pass declaration.
1454 * opts.c (decode_options): New flag setting.
1455 * common.opt: Add -ftree-builtin-call-dce flag.
1456 * Makefile.in: Add new source file.
1457 * tempvar.def: New tv_id.
1458 * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
1459
2795c63e 14602008-06-04 Richard Guenther <rguenther@suse.de>
1461
e7323ddd 1462 * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
2795c63e 1463 (is_call_clobbered): Always check var_ann->call_clobbered.
1464 (mark_call_clobbered): Always set var_ann->call_clobbered.
1465 (clear_call_clobbered): Always clear var_ann->call_clobbered.
1466 * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
1467 (reset_alias_info): Clear call clobbering info on MTAGs and
1468 globals as well.
1469 (set_pt_anything): Set pt_global_mem.
1470 (create_tag_raw): Adjust comment.
1471 (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
1472
6c19bc3c 14732008-06-04 Joseph Myers <joseph@codesourcery.com>
e7323ddd 1474 Maxim Kuvyrkov <maxim@codesourcery.com>
6c19bc3c 1475
1476 * config/m68k/m68k.opt (mxgot): New option.
1477 * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
1478 (m68k_output_addr_const_extra): New.
1479 * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
1480 * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
1481 * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
1482 * doc/invoke.texi (M680x0 Options): Document -mxgot.
1483
4761d19f 14842008-06-04 Richard Guenther <rguenther@suse.de>
1485
1486 * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
1487 negative or non-representable offsets.
1488
b280471c 14892008-06-03 H.J. Lu <hongjiu.lu@intel.com>
1490
e7323ddd 1491 * config/i386/i386.c (ix86_gen_leave): New.
b280471c 1492 (ix86_gen_pop1): Likewise.
1493 (ix86_gen_add3): Likewise.
1494 (ix86_gen_sub3): Likewise.
1495 (ix86_gen_sub3_carry): Likewise.
1496 (ix86_gen_one_cmpl2): Likewise.
1497 (ix86_gen_monitor): Likewise.
1498 (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
1499 ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
1500 ix86_gen_one_cmpl2 and ix86_gen_monitor.
1501 (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
1502 (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
1503 mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
1504 (ix86_expand_epilogue): Updated.
1505 (print_operand): Handle integer register operand for 'z'.
1506 (ix86_expand_strlensi_unroll_1): Likewise.
1507 (ix86_expand_strlen): Likewise.
1508 (ix86_expand_builtin): Likewise.
1509 (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
1510 mov{q}/mov{l} and add{q}/add{l}.
1511
53056963 15122008-06-03 Kai Tietz <kai.tietz@onevision.com>
1513
8b0b11a3 1514 * config/i386/i386.md (P): New mode iterator.
1515 (SFmode push_operand splitter): Macroize DImode and SImode pushes
1516 using P mode iterator.
aecf75a3 1517 (DFmode push_operand splitter): Ditto.
1518 (XFmode push_operand splitter): Ditto.
8b0b11a3 1519 (DFmode float_extend SFmode push_operand splitter): Ditto.
1520 (XFmode float_extend SFmode push_operand splitter): Do not generate
aecf75a3 1521 SImode pushes for 64bit target. Macroize Dimode and SImode
1522 pushes using P mode iterator.
1523 (XFmode float_extend DFmode push_operand splitter): Ditto.
53056963 1524
f589a94a 15252008-06-03 Kai Tietz <kai.tietz@onevision.com>
1526
1527 * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
e7323ddd 1528 * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
f589a94a 1529 * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
1530 return type to int.
1531 (ix86_call_abi_override): Remove check for call_used_regs.
1532
ad2b0b69 15332008-06-03 Richard Guenther <rguenther@suse.de>
1534
1535 * tree-ssa-structalias.c (find_func_aliases): Add constraints
1536 for the lhs of calls if the return type contains pointers.
1537
d3feb168 15382008-06-03 Kai Tietz <kai.tietz@onevision.com>
1539
1540 * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
1541 * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
e7323ddd 1542 * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
d3feb168 1543 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
1544 of cfun and DEFAULT_ABI to deceide abi mode.
1545 (DEFAULT_ABI): New.
1546 (REG_PARM_STACK_SPACE): Removed.
1547 (OUTGOING_REG_PARM_STACK_SPACE): Removed.
1548 (STACK_BOUNDARY): Use default target to deceide stack boundary.
1549 * config/i386/i386-protos.h (ix86_cfun_abi): New.
1550 (ix86_function_abi): Likewise.
1551 (ix86_function_type_abi): Likewise.
1552 (ix86_call_abi_override): Likewise.
1553 * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
1554 specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
1555 * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
1556 (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
1557 specific defines.
1558 (X86_64_REGPARM_MAX): New.
1559 (X86_64_SSE_REGPARM_MAX): New.
1560 (X64_REGPARM_MAX): New.
1561 (X64_SSE_REGPARM_MAX): New.
1562 (X86_32_REGPARM_MAX): New.
1563 (X86_32_SSE_REGPARM_MAX): New.
1564 (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
1565 (ix86_function_regparm): Handle user calling abi.
1566 (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
1567 by DEFAULT_ABI versus SYSV_ABI check.
1568 (ix86_reg_parm_stack_space): New.
1569 (ix86_function_type_abi): New.
1570 (ix86_call_abi_override): New.
1571 (ix86_function_abi): New.
1572 (ix86_cfun_abi): New.
1573 (init_cumulative_args): Call abi specific initialization.
1574 (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
1575 (function_arg_64): Extend SSE_REGPARM_MAX check.
1576 (function_arg (): Remove TARGET_64BIT_MS_ABI.
1577 (ix86_pass_by_reference): Likewise.
1578 (ix86_function_value_regno_p): Likewise.
1579 (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
1580 (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
1581 (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
1582 (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
1583 (setup_incoming_varargs_64): Adjust regparm for call abi.
1584 (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
1585 (ix86_va_start): Likewise.
1586 (ix86_gimplify_va_arg): Likewise.
1587 (ix86_expand_prologue): Likewise.
1588 (output_pic_addr_const): Likewise.
1589 (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
1590 (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
1591 (x86_output_mi_thunk): Likewise.
1592 (x86_function_profiler): Likewise.
1593 * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
1594 (SYSV_ABI, MS_ABI): New constants.
1595 (DEFAULT_ABI): New.
1596 (init_regs): Add prototype of function in regclass.c file.
1597 (OVERRIDE_ABI_FORMAT): New.
1598 (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
1599 (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
1600 (OUTGOING_REG_PARM_STACK_SPACE): New.
1601 (ix86_reg_parm_stack_space): New prototype.
1602 (CUMULATIVE_ARGS): Add call_abi member.
1603 (machine_function): Add call_abi member.
e7323ddd 1604 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
1605 TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
d3feb168 1606
b1665fa2 16072008-06-02 Andy Hutchinson <hutchinsonandy@aim.com>
1608
1609 PR target/34879
1610 * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
1611 (avr_builtin_setjmp_frame_value): New function.
1612 * config/avr/avr.md (nonlocal_goto_receiver): Define.
1613 (nonlocal_goto): Define.
1614
27f8bb47 16152008-06-02 Richard Sandiford <rdsandiford@googlemail.com>
1616
1617 * config/mips/mips.c (mips_emit_loadgp): Return early if
1618 there is nothing do to, otherwise emit a blockage if
1619 !TARGET_EXPLICIT_RELOCS || crtl->profile.
1620 * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
1621
dea92435 16222008-06-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1623
1624 * configure.ac: Drop unneeded backslash ending up in config.in.
1625 * acinclude.m4: Likewise.
1626 * config.in: Regenerate.
1627
eb7df8c2 16282008-05-26 Jan Hubicka <jh@suse.cz>
1629
1630 * predict.c (maybe_hot_frequency_p): Break out of...
1631 (maybe_hot_bb_p): ... here.
1632 (maybe_hot_edge_p): New.
1633 * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
1634 * basic-block.h (maybe_hot_edge_p): Declare.
1635
052f0ad8 16362008-05-31 Uros Bizjak <ubizjak@gmail.com>
1637
1638 * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
1639 (*cmpfp_<mode>_cc): Ditto.
1640 (*fp_jcc_8<mode>_387): Ditto.
1641 (*fop_<MODEF:mode>_2_i387): Ditto.
1642 (*fop_<MODEF:mode>_3_i387): Ditto.
1643 (*fop_xf_2_i387): Ditto.
1644 (*fop_xf_3_i387): Ditto.
1645
40d0b157 16462008-06-02 Tomas Bily <tbily@suse.cz>
1647
052f0ad8 1648 * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
40d0b157 1649
ebcfa83a 16502008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
1651
1652 * config/mips/mips.c (mips_valid_offset_p): New function.
1653 (mips_valid_lo_sum_p): Likewise.
1654 (mips_classify_address): Use them.
1655 (mips_force_address): New function.
1656 (mips_legitimize_address): Use it.
1657 * config/mips/mips.md (MOVE128): New mode iterator.
1658 (movtf): Require TARGET_64BIT. Remove empty strings.
1659 (*movtf_internal): Rename to...
1660 (*movtf): ...this and require !TARGET_MIPS16. Use "m" instead
1661 of "R" and use {,fp}{load,store} attributes instead of "multi".
1662 Use a separate define_split.
1663 (*movtf_mips16): New pattern.
1664
250b65e6 16652008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
1666
1667 * config/mips/mips-protos.h (mips_expand_before_return): Declare.
1668 * config/mips/mips.c (mips_expand_before_return): New function.
1669 (mips_expand_epilogue): Call it.
1670 * config/mips/mips.md (return): Turn into a define_expand.
1671 (*return): New insn.
1672
18b42941 16732008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
1674
1675 * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
1676 * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
1677 functions. Do not emit uses and clobbers of CONCATs; individually
1678 use and clobber their operands.
1679 * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
1680 gen_clobber, emit_use and gen_use.
1681 (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
1682 (expand_builtin_return): Likewise.
1683 * cfgbuild.c (count_basic_blocks): Likewise.
1684 * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
1685 * explow.c (emit_stack_restore): Likewise.
1686 * expmed.c (extract_bit_field_1): Likewise.
1687 * expr.c (convert_move, emit_move_complex_parts): Likewise.
1688 (emit_move_multi_word, store_constructor): Likewise.
1689 * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
1690 (thread_prologue_and_epilogue_insns): Likewise.
1691 * lower-subreg.c (resolve_simple_move): Likewise.
1692 * optabs.c (widen_operand, expand_binop): Likewise.
1693 (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
1694 * reload.c (find_reloads): Likewise.
1695 * reload1.c (eliminate_regs_in_insn): Likewise.
1696 * stmt.c (expand_nl_goto_receiver): Likewise.
1697 * config/alpha/alpha.md (builtin_longjmp): Likewise.
1698 * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
1699 * config/arm/arm.c (arm_load_pic_register): Likewise.
1700 (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
1701 * config/arm/arm.md (untyped_return): Likewise.
1702 * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
1703 * config/avr/avr.c (expand_prologue): Likewise.
1704 * config/bfin/bfin.c (do_unlink): Likewise.
1705 * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
1706 * config/cris/cris.c (cris_expand_prologue): Likewise.
1707 * config/darwin.c (machopic_indirect_data_reference): Likewise.
1708 (machopic_legitimize_pic_address): Likewise.
1709 * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
1710 (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
1711 * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
1712 (ix86_expand_convert_uns_didf_sse): Likewise.
1713 (ix86_expand_vector_init_general): Likewise.
1714 * config/ia64/ia64.md (eh_epilogue): Likewise.
1715 * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
1716 * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
1717 * config/m32r/m32r.c (m32r_reload_lr): Likewise.
1718 (config/iq2000/iq2000.c): Likewise.
1719 * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
1720 (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
1721 (builtin_longjmp): Likewise.
1722 * config/mn10300/mn10300.md (call, call_value): Likewise.
1723 * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
1724 * config/pdp11/pdp11.md (abshi2): Likewise.
1725 * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
1726 * config/s390/s390.c (s390_emit_prologue): Likewise.
1727 * config/s390/s390.md (movmem_long, setmem_long): Likewise.
1728 (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
1729 (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
1730 * config/sh/sh.c (prepare_move_operands): Likewise.
1731 (output_stack_adjust, sh_expand_epilogue): Likewise.
1732 (sh_set_return_address, sh_expand_t_scc): Likewise.
1733 * config/sparc/sparc.c (load_pic_register): Likewise.
1734 * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
1735 * config/spu/spu.c (spu_expand_epilogue): Likewise.
1736 * config/v850/v850.c (expand_epilogue): Likewise.
1737
e858c923 17382008-05-31 Anatoly Sokolov <aesok@post.ru>
1739
1740 * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
1741 (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
1742 (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
1743 * config/avr/avr.c (expand_prologue, expand_epilogue): Use
1744 movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
1745 stack pointer register.
1746 (output_movhi): Remove code for interrupt specific writing to the
1747 stack pointer register.
1748
b3b7419f 17492008-05-31 Richard Guenther <rguenther@suse.de>
1750
1751 PR tree-optimization/34244
1752 * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
1753 (tree_expr_nonzero_warnv_p): Likewise.
1754 * tree-vrp.c (vrp_expr_computes_nonnegative): Call
1755 ssa_name_nonnegative_p.
1756 (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
1757 (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
1758 not tree_expr_nonzero_warnv_p.
1759
1760 PR tree-optimization/36262
1761 Revert
1762 2007-11-29 Zdenek Dvorak <ook@ucw.cz>
1763
052f0ad8 1764 PR tree-optimization/34244
1765 * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
1766 (record_numbers_of_iterations): New function.
1767 (execute_vrp): Cache the numbers of iterations of loops.
1768 * tree-scalar-evolution.c (scev_reset_except_niters):
1769 New function.
1770 (scev_reset): Use scev_reset_except_niters.
1771 * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
b3b7419f 1772
20c31f65 17732008-05-31 Bernd Schmidt <bernd.schmidt@analog.com>
1774
1775 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
1776 __WORKAROUND_RETS when appropriate.
1777
6c24dca6 17782008-05-31 Uros Bizjak <ubizjak@gmail.com>
1779
1780 * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
1781 *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
1782 mode iterator.
1783 (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
1784 *fop_df_comm_sse insn patterns using MODEF mode iterator.
1785 (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
1786 *fop_df_comm_i387 insn patterns using MODEF mode iterator.
1787 (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
1788 *fop_df_1_mixed insn patterns using MODEF mode iterator.
1789 (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
1790 *fop_df_1_sse insn patterns using MODEF mode iterator.
1791 (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
1792 *fop_df_1_i387 insn patterns using MODEF mode iterator.
1793 (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
1794 *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
1795 (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
1796 *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
1797 (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
1798 (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
1799 (*fop_xf_4_i387): Use <MODE> for mode attribute.
1800 (*fop_xf_5_i387): Ditto.
1801 (*fop_xf_6_i387): Ditto.
1802
40238f64 18032008-05-30 Richard Guenther <rguenther@suse.de>
1804
1805 * builtins.c (build_string_literal): Avoid generating
1806 a non-gimple_val result.
1807
5346190f 18082008-05-30 DJ Delorie <dj@redhat.com>
1809
1810 * exec-tool.in: Use an environment variable (private) instead of a
1811 file (shared) as a semaphore, so as to not break parallel builds.
1812
b31c801f 18132008-05-30 Steven Bosscher <stevenb.gcc@gmail.com>
1814
1815 * optabs.c (maybe_encapsulate_block): Remove.
1816 (emit_libcall_block): Adjust accordingly.
1817 * optabs.h (maybe_encapsulate_block): Remove prototype.
1818
1819 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
1820 Don't use maybe_encapsulate_block.
1821
9a5755c0 18222008-05-30 Steven Bosscher <stevenb.gcc@gmail.com>
1823
1824 * config/rs6000/rs6000.c (rs6000_legitimize_address,
1825 rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
1826 rtx is a SYMBOL_REF before calling get_pool_constant.
1827
e7b454ed 18282008-05-30 Eric Botcazou <ebotcazou@adacore.com>
1829
1830 * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
1831
f4d02485 18322008-05-30 Danny Smith <dannysmith@users.sourceforge.net>
1833
1834 * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
1835 rather than OS names to choose INO_T_EQ definition.
1836 (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
6c24dca6 1837 (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
f4d02485 1838
32006f36 18392008-05-29 Daniel Franke <franke.daniel@gmail.com>
1840
1841 PR target/36348
1842 * config/darwin-f.c: New.
1843 * config/t-darwin: Added rule to build darwin-f.o.
1844 * config.gcc: Defined new variable, fortran_target_objs.
1845 (*-*-darwin*): Set fortran_target_objs.
1846 * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
6c24dca6 1847 * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
32006f36 1848 * configure: Regenerated.
1849
211cafb2 18502008-05-29 H.J. Lu <hongjiu.lu@intel.com>
1851
1852 PR target/35771
1853 * config/i386/i386.c (ix86_function_arg_boundary): Convert to
1854 canonical type if needed.
1855
d82c8605 18562008-05-29 Eric Botcazou <ebotcazou@adacore.com>
1857
1858 * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
1859
e2486556 18602008-05-29 Richard Guenther <rguenther@suse.de>
1861
1862 PR tree-optimization/36343
1863 PR tree-optimization/36346
1864 PR tree-optimization/36347
1865 * tree-flow.h (clobber_what_p_points_to): Declare.
1866 * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
1867 pointed-to variable is dereferenced is irrelevant to whether
1868 the pointer can access the pointed-to variable.
1869 (clobber_what_p_points_to): New function.
1870 * tree-ssa-alias.c (set_initial_properties): Use it.
1871 * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
1872 call clobber check for NMTs.
1873
6525819b 18742008-05-28 Seongbae Park <seongbae.park@gmail.com>
1875
1876 * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
1877 for printing gcov_type.
1878
69eee21d 18792008-05-28 Seongbae Park <seongbae.park@gmail.com>
1880
1881 * tree-ssa-propagate.c (set_rhs): Preserve the histogram
1882 and the eh region information.
1883 * value-prof.c (gimple_move_stmt_histograms): New function.
1884 * value-prof.h (gimple_move_stmt_histograms): New function declaration.
1885
e8a6d961 18862008-05-28 Andreas Tobler <a.tobler@schweiz.org>
1887
1888 * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
1889
31434f4a 18902008-05-28 Seongbae Park <seongbae.park@gmail.com>
1891
1892 * value-prof.c (tree_ic_transform): Print counts.
1893 * tree-profile.c (tree_gen_ic_func_profiler):
6c24dca6 1894 Clear __gcov_indreict_call_callee variable to avoid misattribution
1895 of the profile.
31434f4a 1896
f8aa77dc 18972008-05-28 Rafael Espindola <espindola@google.com>
1898
1899 * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
1900 invalid sharing.
1901
4277273a 19022008-05-28 Richard Guenther <rguenther@suse.de>
1903
1904 PR tree-optimization/36339
1905 * tree-ssa-alias.c (set_initial_properties): Move pt_anything
1906 and clobbering code out of the loop.
1907
e68d6a13 19082008-05-28 Andreas Krebbel <krebbel1@de.ibm.com>
1909
1910 * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
1911 letters defined.
1912
1913 * config/s390/s390.c (s390_compare_and_branch_condition_mask,
1914 s390_contiguous_bitmask_p, s390_symref_operand_p,
1915 s390_check_symref_alignment, s390_reload_larl_operand,
1916 s390_reload_symref_address): New functions.
1917 (s390_branch_condition_mnemonic): Support compare and branch
1918 instructions.
1919 (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
1920 and 'W' constraints.
1921 (s390_secondary_reload): Add secondary reloads for unaligned
1922 symbol refs or symbol refs to floating point or QI/TI mode
1923 integer values.
1924 (legitimate_address_p): Accept symbol references as addresses.
1925 (s390_expand_insv): Use rotate and insert selected bits
1926 instruction for insv when building for z10.
1927 (print_operand_address): Handle symbol ref addresses.
6c24dca6 1928 (print_operand): Output modifier 'c' added for signed byte values.
e68d6a13 1929 (s390_encode_section_info): Mark symbol refs with
1930 SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
1931
1932 * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
1933 (length attribute): RRF, RRR have 4 byte length.
1934 (FPALL, INTALL): New mode iterators added.
1935 (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
1936 *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
1937 *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
1938 *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
1939 *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
1940 *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
1941 *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
1942 *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
1943 instructions.
1944 (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
1945 *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
1946 *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
1947 reload<INTALL:mode><P:mode>_toreg_z10,
1948 reload<FPALL:mode><P:mode>_tomem_z10,
1949 reload<FPALL:mode><P:mode>_toreg_z10,
1950 reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
1951 *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
1952 *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
1953 *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
1954 definition.
1955 (movmem, clrmem, cmpmem): New splitters added.
1956
1957 * config/s390/predicates.md (larl_operand): Use
1958 SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
1959 SYMBOL_REF_ALIGN1_P.
1960 (s390_signed_integer_comparison,
1961 s390_unsigned_integer_comparison): New predicates.
1962
1963 * config/s390/s390-protos.h (s390_check_symref_alignment,
1964 s390_contiguous_bitmask_p, s390_reload_larl_operand,
1965 s390_reload_symref_address,
1966 s390_compare_and_branch_condition_mask): Prototypes added.
1967
1968 * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
1969 SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
1970 SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
1971
a850370e 19722008-05-28 Andreas Krebbel <krebbel1@de.ibm.com>
1973
1974 * config/s390/s390.c (z10_cost): New cost function for z10.
6c24dca6 1975 (s390_handle_arch_option, override_options): Support -march=z10 switch.
a850370e 1976 (s390_issue_rate): Adjust issue rate for z10.
1977 * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
1978 (processor_flags): Add PF_Z10.
1979 (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
1980 * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
1981 * gcc/config.gcc: Add z10.
1982
dd7b9387 19832008-05-28 Richard Guenther <rguenther@suse.de>
1984
1985 PR tree-optimization/36291
1986 * tree-flow. h (struct gimple_df): Remove var_anns member.
1987 * tree-flow-inline.h (gimple_var_anns): Remove.
1988 (var_ann): Simplify.
1989 * tree-dfa.c (create_var_ann): Simplify.
1990 (remove_referenced_var): Clear alias info from var_anns of globals.
1991 * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
1992 (delete_tree_ssa): Clear alias info from var_anns of globals.
1993 Do not free var_anns.
1994 (var_ann_eq): Remove.
1995 (var_ann_hash): Likewise.
1996
e07ac3b5 19972008-05-28 Mark Shinwell <shinwell@codesourcery.com>
1998
1999 * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
2000 and loongson2f entries.
2001 (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
2002 * config/mips/mips.h (processor_type): Add Loongson-2E
2003 and Loongson-2F entries.
2004 (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
2005 (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
2006 * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
2007 * doc/invoke.texi (MIPS Options): Document loongson2e
2008 and loongson2f processor names.
2009
892c4765 20102008-05-27 H.J. Lu <hongjiu.lu@intel.com>
2011
2012 PR target/35767
2013 PR target/35771
2014 * config/i386/i386.c (ix86_function_arg_boundary): Use
2015 alignment of canonical type.
2016 (ix86_expand_vector_move): Check unaligned memory access for
2017 all SSE modes.
2018
a3f14923 20192008-05-27 H.J. Lu <hongjiu.lu@intel.com>
2020
2021 * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
2022 Moved to the front of file.
2023
c0fd44c1 20242008-05-27 Xuepeng Guo <xuepeng.guo@intel.com>
2025 H.J. Lu <hongjiu.lu@intel.com>
2026
2027 * dwarf2out.c (current_fde): New.
2028 (add_cfi): Use it.
2029 (lookup_cfa:): Likewise.
2030 (dwarf2out_end_epilogue): Likewise.
2031 (dwarf2out_note_section_used): Likewise.
2032
7c13dce4 20332008-05-27 Michael Matz <matz@suse.de>
2034
2035 PR c++/27975
2036 * c.opt (Wenum-compare): New warning option.
2037 * doc/invoke.texi (Warning Options): Document -Wenum-compare.
2038
7528fb13 20392008-05-27 Michael Matz <matz@suse.de>
2040
2041 PR middle-end/36326
2042 * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
2043 non-BLKmode types.
2044 * tree-tailcall.c (find_tail_calls): Don't mark calls storing
2045 into memory as tail calls.
2046
c7287953 20472008-05-27 Richard Guenther <rguenther@suse.de>
2048
2049 PR tree-optimization/36339
2050 * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
2051 pointers cause all addressable variables to be call clobbered.
2052
36f0904b 20532008-05-27 Richard Guenther <rguenther@suse.de>
2054
2055 PR tree-optimization/36245
6c24dca6 2056 * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
36f0904b 2057
8fe52251 20582008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
2059
2060 * config/s390/s390.md: Replace all occurences of the 'm'
2061 constraint with 'RT'.
2062
562d1970 20632008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
2064
2065 * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
2066 definitions added.
2067 ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
2068 "*movdi_64".
2069 ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
2070 ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
2071 ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
2072
39a1a66f 20732008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
2074
2075 * reload.c: (find_reloads): Skip alternatives according to the
2076 "enabled" attribute. Constify the constraint variable.
2077 * recog.c (get_attr_enabled): Add default implementation.
2078 (extract_insn): Set the alternative_enabled_p array
2079 in the recog_data struct.
2080 (preprocess_constraints, constrain_operands): Skip
2081 alternatives according to the "enabled" attribute
2082 * recog.h (struct recog_data): New field alternative_enabled_p.
2083 (skip_alternative): New inline function.
6c24dca6 2084 * regclass.c: (record_operand_costs): Check the "enabled" attribute.
39a1a66f 2085 (record_reg_classes): Skip alternative according to the
2086 "enabled" attribute.
2087
2088 * doc/md.texi: Add documention for the "enabled" attribute.
2089
e9ff93b1 20902008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
2091
2092 * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
2093 * postreload.c (reload_cse_simplify_operands): Replace 'm'
2094 constraint with TARGET_MEM_CONSTRAINT.
2095 * recog.c (asm_operand_ok, preprocess_constraints,
2096 constrain_operands): Likewise.
2097 * regclass.c (record_reg_classes): Likewise.
6c24dca6 2098 * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
e9ff93b1 2099 * reload1.c (maybe_fix_stack_asms): Likewise.
6c24dca6 2100 * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
e9ff93b1 2101 * recog.h: Adjust comment.
2102 * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
6c24dca6 2103 * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
e9ff93b1 2104 * doc/md.texi: Add a note to description of 'm' constraint.
2105 * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
2106
1040f7a1 21072008-05-27 Eric Botcazou <ebotcazou@adacore.com>
2108
2109 * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
2110 that the bitfield is of integral type before testing its precision.
2111
c2e00795 21122008-05-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
2113 Sa Liu <saliu@de.ibm.com>
2114
2115 * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
2116 __modti3, __udivti3, __umodti3 and __udivmodti4.
2117 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
2118 that implement TImode mul and div functions.
2119 * config/spu/multi3.c: New. Implement __multi3.
2120 * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
2121 * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
2122 functions on SPU.
2123
5f155083 21242008-05-26 Steven Bosscher <stevenb.gcc@gmail.com>
2125
2126 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
2127 new tls_gd_* and tls_ld_* insns instead of an insn sequence.
2128 * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
2129 tls_sysv_suffix): New mode and mode attribute iterators.
2130 (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
2131 (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
2132 (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
2133 tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
2134 tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
2135 iterators.
2136
035e2eea 21372008-05-26 Eric Botcazou <ebotcazou@adacore.com>
2138
2139 PR tree-optimization/36329
2140 * tree.h (CALL_CANNOT_INLINE_P): Add access check.
2141 * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
2142 * cgraphbuild.c (initialize_inline_failed): Use the latter
2143 macro in lieu of the former.
2144 * ipa-inline.c (cgraph_mark_inline): Likewise.
2145 (cgraph_decide_inlining_of_small_function): Likewise.
2146 (cgraph_decide_inlining): Likewise.
2147 (cgraph_decide_inlining_incrementally): Likewise.
2148
c2e91982 21492008-05-26 Tristan Gingold <gingold@adacore.com>
6c24dca6 2150 Anatoly Sokolov <aesok@post.ru>
c2e91982 2151
2152 * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
2153 instead of pm_lo8/pm_hi8 to makes this call working on avr6.
2154 * config/avr/avr.c (expand_prologue): Tune "call_prologue"
2155 optimization for 'avr6' architecture.
2156
38c615ca 21572008-05-26 Andy Hutchinson <hutchinsonandy@aim.com>
2158
2159 PR target/34932
2160 * config/avr/avr.md (*addhi3_zero_extend2): Remove.
2161
64919a86 21622008-05-26 Richard Guenther <rguenther@suse.de>
2163
2164 * tree-ssa-sccvn.c (expr_has_constants): Declare.
6c24dca6 2165 (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
64919a86 2166
ad33891d 21672008-05-26 H.J. Lu <hongjiu.lu@intel.com>
2168
2169 PR middle-end/36253
6c24dca6 2170 * caller-save.c (insert_restore): Verify alignment of spill space.
ad33891d 2171 (insert_save): Likewise.
ad33891d 2172 * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
ad33891d 2173 * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
2174 (STACK_SLOT_ALIGNMENT): Likewise.
ad33891d 2175 * function.c (LOCAL_ALIGNMENT): Removed.
2176 (get_stack_local_alignment): New.
2177 (assign_stack_local): Use it. Set alignment on stack slot.
2178 (assign_stack_temp_for_type): Use get_stack_local_alignment.
ad33891d 2179 * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
2180 (STACK_SLOT_ALIGNMENT): New.
ad33891d 2181 * config/i386/i386.c (ix86_local_alignment): Handle caller-save
2182 stack slot in XFmode.
2183
2184 * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
2185
6aa4d29f 21862008-05-26 Kai Tietz <kai.tietz@onevision.com>
2187
2188 PR/36321
2189 * config/i386/i386.md (allocate_stack_worker_64): Make sure
2190 argument operand in rax isn't removed.
2191
32054974 21922008-05-26 Richard Guenther <rguenther@suse.de>
2193
2194 PR middle-end/36300
2195 * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
2196 not TYPE_UNSIGNED. Use TYPE_PRECISION instead of GET_MODE_SIZE.
2197
3f798f0c 21982008-05-26 Daniel Franke <franke.daniel@gmail.com>
2199
2200 PR bootstrap/36331
2201 * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
2202
39aecd3b 22032008-05-26 Dominique Dhumieres <dominiq@lps.ens.fr>
2204
2205 * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
2206 * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
2207
939e9bf1 22082008-05-25 Eric Botcazou <ebotcazou@adacore.com>
2209
6c24dca6 2210 * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
939e9bf1 2211 build a trampoline if we don't want one.
2212 * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
2213 return zero for nested functions if we don't want a trampoline.
2214
c50688b2 22152008-05-26 Daniel Franke <franke.daniel@gmail.com>
2216
2217 * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
2218
2ecc6bc5 22192008-05-26 Daniel Franke <franke.daniel@gmail.com>
2220
2221 PR fortran/18428
2222 * c.opt: Removed undocumented option '-lang-fortran'.
2223 * c-common.h: Removed global variable 'lang_fortran'.
2224 * c-opts.c (c_common_handle_option): Removed code to handle
2225 option '-lang-fortran'. Updated includes.
2226 * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
2227 definition of '__GFORTRAN__'.
2228 (define__GNUC__): Reimplemented to use BASEVER and
2229 cpp_define_formatted.
2230 (builtin_define_with_value_n): Removed.
2231 * c-incpath.h: Renamed to ...
2232 * incpath.h: ... this.
2233 * c-incpath.c: Renamed to ...
2234 * incpath.c: ... this. Updated includes.
2235 * fix-header.c: Updated includes.
2236 * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
2237 (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
2238 (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
2239
eba15a75 22402008-05-25 Eric Botcazou <ebotcazou@adacore.com>
2241
2242 * tree.h: Update the table of flags used on tree nodes.
2243 (TREE_NO_TRAMPOLINE): New accessor for static_flag.
2244 (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
2245 (FORCED_LABEL): Add access check.
2246 (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
2247 (ASM_INPUT_P): Likewise.
2248 (ASM_VOLATILE_P): Likewise.
2249 (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
2250 (OMP_SECTION_LAST): Access private_flag directly.
2251 (OMP_RETURN_NOWAIT): Likewise.
2252 (OMP_PARALLEL_COMBINED): Likewise.
2253 (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
2254 (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
2255 * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
2256 deprecated_flag directly.
2257
459f72f5 22582008-05-25 H.J. Lu <hongjiu.lu@intel.com>
2259
2260 * final.c (frame_pointer_needed): Removed.
2261 * flags.h (frame_pointer_needed): Likewise.
2262
2263 * function.h (rtl_data): Add frame_pointer_needed.
2264 (frame_pointer_needed): New.
2265
ccf1c0f1 22662008-05-25 Arthur Loiret <arthur.loiret@u-psud.fr>
2267
2268 * config.gcc (sh2[lbe]*-*-linux*): Allow target.
2269
ad6cd748 22702008-05-25 Steven Bosscher <stevenb.gcc@gmail.com>
2271
2272 * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
2273 SRC is a REG.
2274
eec9c06d 22752008-05-25 Alan Modra <amodra@bigpond.net.au>
2276
2277 * c-common.c (strip_array_types): Move function to..
2278 * tree.c: ..here.
2279 (get_inner_array_type): Delete.
2280 * c-common.h (strip_array_types): Move declaration to..
2281 * tree.h: ..here.
2282 (get_inner_array_type): Delete.
2283 * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
2284 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
2285 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
2286 * config/pa/pa.c (emit_move_sequence): Likewise.
2287
d6ceb52b 22882008-05-24 H.J. Lu <hongjiu.lu@intel.com>
2289
2290 * config/i386/i386.md (*sse_prologue_save_insn): Set length
2291 attribute to 34.
2292
6a5dfe57 22932008-05-24 Andy Hutchinson <hutchinsonandy@aim.com>
2294
2295 * function.c: Include target hook for nonlocal_goto frame value.
2296
a5134ced 22972008-05-24 Richard Guenther <rguenther@suse.de>
2298
6c24dca6 2299 * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
2300 variable can be only accessed through a pointer or a union.
a5134ced 2301
921b27c0 23022008-05-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2303
2304 * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
2305 * doc/extend.texi: Likewise.
2306
a8651e7d 23072008-05-23 DJ Delorie <dj@redhat.com>
2308
8e9e5256 2309 * config/m32c/jump.md (untyped_call): Add.
2310
a8651e7d 2311 * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
2312 for A24 to PSImode.
2313 (m32c_address_cost): Detail costs for indirect offsets.
2314
d37446aa 23152008-05-23 Rafael Espindola <espindola@google.com>
2316
2317 * see.c (see_get_extension_data): Don't use SUBREG_REG to test
2318 if a node is a SUBREG.
2319 (see_analyze_one_def): Don't use SUBREG_REG to test if a node
2320 is a SUBREG.
2321
658e203c 23222008-05-23 Paul Brook <paul@codesourcery.com>
2323 Carlos O'Donell <carlos@codesourcery.com>
2324
2325 * doc/extend.texi: Clarify use of __attribute__((naked)).
2326 * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
2327 * target.h (gcc_target): Add allocate_stack_slots_for_args.
2328 * function.c (use_register_for_decl): Use
2329 targetm.calls.allocate_stack_slots_for_args.
6c24dca6 2330 * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
2331 * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
658e203c 2332 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
2333
9ca16083 23342008-05-23 Eric Botcazou <ebotcazou@adacore.com>
2335
2336 * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
2337
e5ae4a00 23382008-05-23 Steven Munroe <sjmunroe@us.ibm.com>
2339
2340 * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
2341 PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
2342 is only rounded once.
2343
480610cc 23442008-05-23 Richard Guenther <rguenther@suse.de>
2345
6c24dca6 2346 * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
480610cc 2347
144c3e90 23482008-05-23 Uros Bizjak <ubizjak@gmail.com>
2349 Jakub Jelinek <jakub@redhat.com>
2350
2351 PR target/36079
2352 * configure.ac: Handle --enable-cld.
2353 * configure: Regenerated.
2354 * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
2355 * config/i386/i386.h (struct machine_function): Add needs_cld field.
2356 (ix86_current_function_needs_cld): New define.
2357 * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
2358 (cld): New isns pattern.
2359 (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
2360 cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
2361 * config/i386/i386.opt (mcld): New option.
2362 * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
2363 TARGET_CLD and ix86_current_function_needs_cld.
2364 (override_options): Use -mcld by default for 32-bit code if
2365 USE_IX86_CLD.
2366
2367 * doc/install.texi (Options specification): Document --enable-cld.
2368 * doc/invoke.texi (Machine Dependent Options)
6c24dca6 2369 [i386 and x86-64 Options]: Add -mcld option.
2370 (Intel 386 and AMD x86-64 Options): Document -mcld option.
144c3e90 2371
facab2ce 23722008-05-23 Kai Tietz <kai.tietz@onevison.com>
2373 * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
2374 (return_in_memory_64): Likewise.
2375 (return_in_memory_ms_64): Likewise.
2376
19fbe3a4 23772008-05-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2378
2379 * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
2380 * builtins.c (fold_builtin_fpclassify): New.
2381 (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
2382 * builtins.def (BUILT_IN_FPCLASSIFY): New.
2383 * c-common.c (handle_type_generic_attribute): Adjust to accept
2384 fixed arguments before an elipsis.
2385 (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
2386 * doc/extend.texi: Document __builtin_fpclassify.
2387
945e498c 23882008-05-22 Aldy Hernandez <aldyh@redhat.com>
2389
2390 * omp-low.c (gate_expand_omp_ssa): Remove.
2391 (pass_expand_omp_ssa): Remove.
2392 (gate_expand_omp): Do not check for flag_openmp_ssa.
2393 * common.opt (-fopenmp-ssa): Remove.
2394 * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
2395
d47be40b 23962008-05-22 Kaz Kojima <kkojima@gcc.gnu.org>
2397
2398 * config/sh/sh.opt (mfixed-range): New option.
2399 * config/sh/sh-protos.h (sh_fix_range): Declare.
2400 * config/sh/sh.c (sh_fix_range): New function.
2401 * config/sh/sh.h (sh_fixed_range_str): Declare.
2402 (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
2403 is not empty.
2404 * doc/invoke.texi (SH Options): Document -mfixed-range.
2405
6d528959 24062008-05-22 Kai Tietz <kai.tietz@onevision.com>
2407
2408 * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
2409 it before the redeclaration.
2410
58f62c92 24112008-05-22 Anatoly Sokolov <aesok@post.ru>
2412
2413 * config/avr/avr.c (get_sequence_length): Add new function.
2414 (expand_prologue, expand_epilogue): Remove duplicate code.
2415
66b0f9ff 24162008-05-22 Rafael Espindola <espindola@google.com>
2417
2418 * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
2419 sharing.
2420
cbc9c660 24212008-05-22 H.J. Lu <hongjiu.lu@intel.com>
2422
2423 * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
2424 * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
2425
2426 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
2427 UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
2428 (vect_update_misalignment_for_peel): Likewise.
2429 (vector_alignment_reachable_p): Likewise.
2430 * tree-vect-transform.c (vectorizable_load): Likewise.
2431 * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
144c3e90 2432 (get_vectype_for_scalar_type): Pass mode of scalar_type
2433 to UNITS_PER_SIMD_WORD.
cbc9c660 2434
2435 * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
2436 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
2437 * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
2438 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
2439 * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
2440
8aee17d5 24412008-05-22 Ira Rosen <irar@il.ibm.com>
2442
2443 PR tree-optimization/36293
2444 * tree-vect-transform.c (vect_transform_strided_load): Don't check
2445 if the first load must be skipped because of a gap.
2446
3391cd1e 24472008-05-22 Richard Guenther <rguenther@suse.de>
2448
2449 * tree-dfa.c (refs_may_alias_p): Exit early if possible. Handle
2450 more cases of offset disambiguation that is possible if
2451 strict-aliasing rules apply.
2452 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
2453 for basic offset and type-based disambiguation.
2454
2062830c 24552008-05-21 H.J. Lu <hongjiu.lu@intel.com>
2456
2457 * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
2458 ix86_expand_vector_set on V16QImode for SSE4.1.
2459
b832fb57 24602008-05-21 Tom Tromey <tromey@redhat.com>
2461
2462 * c.opt (Wimport): Mark as undocumented.
2463 * doc/invoke.texi (Option Summary): Don't mention -Wimport or
2464 -Wno-import.
2465 (Warning Options): Likewise.
2466 * doc/cppopts.texi: Don't mention -Wimport.
2467
fa5e5a2f 24682008-05-21 Sebastian Pop <sebastian.pop@amd.com>
2469
2470 PR tree-optimization/36287
2471 PR tree-optimization/36286
2472 * lambda-code.c (build_access_matrix): Do not use the loop->num
2473 for computing the number of induction variables: use the loop depth
2474 instead.
2475
a7a19493 24762008-05-21 Kai Tietz <kai.tietz@onevision.com>
2477
2478 PR/36280
2479 * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
2480 option -f(no-)leading-underscore.
2481
da17f4f5 24822008-05-21 H.J. Lu <hongjiu.lu@intel.com>
2483
2484 * config/i386/i386.c (ix86_expand_vector_init_general): Use
2485 GET_MODE_NUNITS (mode).
2486
257bc844 24872008-05-21 Peter Bergner <bergner@vnet.ibm.com>
2488
2489 * doc/invoke.texi: Add cpu_type's 464 and 464fp.
2490 (-mmulhw): Add 464 to description.
2491 (-mdlmzb): Likewise.
2492 * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
2493 * config/rs6000/rs6000.c (processor_target_table): Add 464 and
2494 464fp entries.
2495 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
2496 * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
2497 * config/rs6000/rs6000.md: Update comments for 464.
2498
f21a7ed8 24992008-05-21 Janis Johnson <janis187@us.ibm.com>
2500
2501 * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
2502
3ce6ef72 25032008-05-21 H.J. Lu <hongjiu.lu@intel.com>
2504
2505 * config/i386/sse.md (vec_extractv4sf): Removed.
2506 (vec_extractv2df): Likewise.
2507 (vec_extractv2di): Likewise.
2508 (vec_extractv4si): Likewise.
2509 (vec_extractv8hi): Likewise.
2510 (vec_extractv16qi): Likewise.
2511 (vec_extract<mode>): New.
2512
77d27e3a 25132008-05-21 H.J. Lu <hongjiu.lu@intel.com>
2514
2515 * config/i386/sse.md (vec_setv4sf): Removed.
2516 (vec_setv2df): Likewise.
2517 (vec_setv2di): Likewise.
2518 (vec_setv4si): Likewise.
2519 (vec_setv8hi): Likewise.
2520 (vec_setv16qi): Likewise.
2521 (vec_set<mode>): New.
2522
5995ca8e 25232008-05-21 H.J. Lu <hongjiu.lu@intel.com>
2524
2525 * config/i386/i386.c (ix86_expand_vector_init_general): Remove
2526 goto for vec_concat and vec_interleave.
2527
c262fafb 25282008-05-21 H.J. Lu <hongjiu.lu@intel.com>
2529
2530 * config/i386/sse.md (vec_initv4sf): Removed.
2531 (vec_initv2df): Likewise.
2532 (vec_initv2di): Likewise.
2533 (vec_initv4si): Likewise.
2534 (vec_initv8hi): Likewise.
2535 (vec_initv16qi): Likewise.
2536 (vec_init<mode>): New.
2537
f3340cb8 25382008-05-21 Joseph Myers <joseph@codesourcery.com>
2539
2540 * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
2541
dfecde36 25422008-05-21 Tom Tromey <tromey@redhat.com>
2543
2544 * ggc-zone.c (lookup_page_table_if_allocated): New function.
2545 (zone_find_object_offset): Likewise.
2546 (gt_ggc_m_S): Likewise.
2547 (highest_bit): Likewise.
2548 * ggc-page.c (gt_ggc_m_S): New function.
2549 * stringpool.c (string_stack): Remove.
2550 (init_stringpool): Update.
2551 (ggc_alloc_string): Use ggc_alloc.
2552 (maybe_delete_ident): New function.
2553 (ggc_purge_stringpool): Likewise.
2554 (gt_ggc_m_S): Remove.
2555 * ggc-common.c (ggc_protect_identifiers): New global.
2556 (ggc_mark_roots): Call ggc_purge_stringpool. Use
2557 ggc_protect_identifiers.
2558 * ggc.h (ggc_protect_identifiers): Declare.
2559 (gt_ggc_m_S): Update.
2560 (ggc_purge_stringpool): Declare.
2561 * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
2562 * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
2563 special case.
2564 (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
2565
64c6f17e 25662008-05-21 David S. Miller <davem@davemloft.net>
2567
2568 * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
2569 tmake_file.
2570
66dc78fc 25712008-05-21 Eric Botcazou <ebotcazou@adacore.com>
2572
2573 * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
2574 once finished.
2575
3499ff60 25762008-05-20 David Daney <ddaney@avtrex.com>
2577
2578 * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
144c3e90 2579 UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
2580 (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
3499ff60 2581 UNSPEC_UPDATE_GOT_VERSION): Renumber.
2582 (optab, insn): Add 'plus' and 'minus' to define_code_attr.
2583 (atomic_hiqi_op): New define_code_iterator.
144c3e90 2584 (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
3499ff60 2585 mips_expand_compare_and_swap_12.
2586 (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
144c3e90 2587 MIPS_COMPARE_AND_SWAP_12_0. Pass argument to MIPS_COMPARE_AND_SWAP_12.
3499ff60 2588 (sync_<optab><mode>, sync_old_<optab><mode>,
2589 sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
144c3e90 2590 sync_new_nand<mode>): New define_expands for HI and QI mode operands.
3499ff60 2591 (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
2592 sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
144c3e90 2593 (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
3499ff60 2594 (test_and_set_12): New insn.
2595 (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
2596 sync_new_<optab><mode>, sync_old_nand<mode>,
2597 sync_new_nand<mode>, sync_lock_test_and_set<mode>): Add early
2598 clobber to operand 0 for SI and DI mode insns.
2599 * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
2600 mips_gen_fn_4): New typedefs.
2601 (mips_gen_fn_ptrs): Define new union type.
2602 (mips_expand_compare_and_swap_12): Remove declaration.
2603 (mips_expand_atomic_qihi): Declare function.
2604 * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
2605 (mips_expand_atomic_qihi): ... this. Use new generator function
2606 parameter.
2607 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
2608 (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
6c24dca6 2609 (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
3499ff60 2610 MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
2611 MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
2612 MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
2613 MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
2614 MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
2615 MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
6c24dca6 2616 MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
2617 New macros.
3499ff60 2618
ad0a2696 26192008-05-20 H.J. Lu <hongjiu.lu@intel.com>
2620
2621 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
2622 the missing break.
2623
a6e595be 26242008-05-20 Anatoly Sokolov <aesok@post.ru>
2625
2626 * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
2627 * config/avr/avr.c (avr_OS_main_function_p): Add new function.
2628 (avr_attribute_table): Add 'OS_main' function attribute.
2629 (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
2630 functions with 'OS_main' attribute.
2631
000ef0a0 26322008-05-20 Richard Guenther <rguenther@suse.de>
2633
2634 PR tree-optimization/35204
2635 * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
2636 helper, split out from ...
2637 (DFS): ... here. Make the DFS walk non-recursive.
2638
c968a07c 26392008-05-20 Sebastian Pop <sebastian.pop@amd.com>
2640 Jan Sjodin <jan.sjodin@amd.com>
2641
2642 PR tree-optimization/36181
2643 * tree-parloops.c (loop_has_vector_phi_nodes): New.
2644 (parallelize_loops): Don't parallelize when the loop has vector
2645 phi nodes.
2646
b79b3386 26472008-05-20 Jan Sjodin <jan.sjodin@amd.com>
2648 Sebastian Pop <sebastian.pop@amd.com>
2649
144c3e90 2650 * tree-loop-linear.c (gather_interchange_stats): Look in the access
2651 matrix, and never look at the tree representation of the memory
2652 accesses.
b79b3386 2653 (linear_transform_loops): Computes parameters and access matrices.
144c3e90 2654 * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
2655 when fails.
b79b3386 2656 (access_matrix_get_index_for_parameter): New.
2657 * tree-data-ref.h (struct access_matrix): New.
2658 (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
2659 AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
2660 AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
2661 am_vector_index_for_loop): New.
2662 (struct data_reference): Add field access_matrix.
2663 (DR_ACCESS_MATRIX): New.
2664 (compute_data_dependences_for_loop): Update declaration.
2665 (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
2666 * lambda.h (lambda_vector_vec_p): Declared.
2667 * lambda-code.c: Depend on pointer-set.h.
2668 (lambda_collect_parameters_from_af, lambda_collect_parameters,
2669 av_for_af_base, av_for_af, build_access_matrix,
2670 lambda_compute_access_matrices): New.
2671 * Makefile.in (lambda-code.o): Depend on pointer-set.h.
2672
79f39dd4 26732008-05-20 Joseph Myers <joseph@codesourcery.com>
2674
2675 * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
2676 $SOURCEDIR/include.
2677
8ceddf57 26782008-05-20 Jan Sjodin <jan.sjodin@amd.com>
2679 Sebastian Pop <sebastian.pop@amd.com>
2680
2681 PR tree-optimization/36206
2682 * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
2683 FOLD_CONVERSIONS.
2684 (instantiate_scev_1): Rename flags to fold_conversions.
2685 Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
2686 outeside instantiation_loop.
2687 * tree-chrec.h (evolution_function_is_affine_in_loop): New.
2688 (evolution_function_is_affine_or_constant_p): Removed.
2689 * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
2690 instantiate_scev.
2691 (analyze_siv_subscript): Pass in the loop nest number.
2692 Call evolution_function_is_affine_in_loop instead of
2693 evolution_function_is_affine_p.
2694 (analyze_overlapping_iterations): Pass in the loop nest number.
2695
26962008-05-20 Jan Sjodin <jan.sjodin@amd.com>
2697 Sebastian Pop <sebastian.pop@amd.com>
2698
2699 PR tree-optimization/36206
2700 * tree-chrec.h (chrec_fold_op): New.
144c3e90 2701 * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
2702 and other trees.
8ceddf57 2703
4a01a435 27042008-05-20 Nathan Sidwell <nathan@codesourcery.com>
2705
2706 * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
2707 (DIRS_EQ): New.
144c3e90 2708 (remove_duplicates): Do not set inode on non-inode systems.
2709 Use DIRS_EQ.
4a01a435 2710
b4b98cc1 27112008-05-20 Sandra Loosemore <sandra@codesourcery.com>
2712
2713 * config.gcc (tm_file): Update comments about relative pathnames.
2714
581f8050 27152008-05-20 Richard Guenther <rguenther@suse.de>
2716
144c3e90 2717 * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
581f8050 2718 * tree-ssa-sccvn.c (process_scc): Likewise.
2719 * tree-ssa-sink.c (execute_sink_code): Likewise.
2720 * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
2721 * tree-vrp.c (process_assert_insertions): Likewise.
2722 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
2723 (perform_tree_ssa_dce): Likewise.
2724 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
2725 (dump_dominator_optimization_stats): Likewise.
2726 * tree-vectorizer.c (vectorize_loops): Likewise.
2727
fbeb30a9 27282008-05-20 Richard Guenther <rguenther@suse.de>
2729
2730 * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
2731
29b1845f 27322008-05-20 Kai Tietz <kai.tietz@onevision.com>
2733
2734 * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
2735 (ix86_i386elf_return_in_memory): Likewise.
2736 (ix86_i386interix_return_in_memory): Likewise.
2737 * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
2738 (SUBTARGET_RETURN_IN_MEMORY): New.
2739 * config/i386/i386elf.h: Likewise.
2740 * config/i386/ptx4-i.h: Likewise.
2741 * config/i386/sol2-10.h: Likewise.
2742 * config/i386/sysv4.h: Likewise.
2743 * config/i386/vx-common.h: Likewise.
2744 * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
2745 * config/i386/i386.c (ix86_return_in_memory): Made static and
2746 make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
2747 (ix86_i386elf_return_in_memory): Removed.
2748 (ix86_i386interix_return_in_memory): Removed.
2749 (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
2750 * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
2751
1529d1a4 27522008-05-20 Alexandre Oliva <aoliva@redhat.com>
2753
2754 * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
2755
63505f79 27562008-05-19 Xinliang David Li <davidxl@google.com>
2757
2758 * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
2759 * opts.c: Ditto.
2760 * common.opt: Ditto.
2761 * doc/invoke.texi: Ditto.
2762
7c952a13 27632008-05-19 Eric Botcazou <ebotcazou@adacore.com>
2764
2765 * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
8084aa18 2766 (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
7c952a13 2767
740a43a0 27682008-05-19 H.J. Lu <hongjiu.lu@intel.com>
2769
1e79e2f4 2770 * config/i386/i386.c (ix86_expand_vector_init_concat): Change
740a43a0 2771 sizes of operand array from 8/4 to 4/2.
2772 (ix86_expand_vector_init_general): Change size of operand array
2773 from 32 to 16. Remove op0, op1 and half_mode.
2774
75997dc1 27752008-05-19 H.J. Lu <hongjiu.lu@intel.com>
2776
2777 * config/i386/i386.c (ix86_expand_vector_init_concat): New.
2778 (ix86_expand_vector_init_interleave): Likewise.
6c24dca6 2779 (ix86_expand_vector_init_general): Use them. Assert
2780 word_mode == SImode when n_words == 4.
75997dc1 2781
83a49fcb 27822008-05-19 Uros Bizjak <ubizjak@gmail.com>
2783
2784 * config/i386/i386.c (ix86_secondary_reload): New static function.
2785 (TARGET_SECONDARY_RELOAD): New define.
2786 * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
2787 * config/i386/i386.md (reload_outqi): Remove.
2788
c319d56a 27892008-05-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2790
2791 PR middle-end/35509
c319d56a 2792 * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
2793 Add `implicit' parameter. Handle BUILT_IN_SIGNBIT.
2794 (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
2795 (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
2796 (fold_builtin_1): Likewise.
2797 * builtins.def (BUILT_IN_ISINF_SIGN): New.
2798 c-common.c (check_builtin_function_arguments): Handle
2799 BUILT_IN_ISINF_SIGN.
2800 * doc/extend.texi: Document __builtin_isinf_sign.
2801 * fold-const.c (operand_equal_p): Handle COND_EXPR.
2802
5ec0139d 28032008-05-18 Eric Botcazou <ebotcazou@adacore.com>
2804
2805 * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
2806 EH cleanup at the end of the pass, search for those that have been
2807 turned into forwarder blocks and do the cleanup on their successor.
2808
7c3ee715 28092008-05-18 Richard Guenther <rguenther@suse.de>
2810
2811 * tree-cfg.c (verify_gimple_expr): Allow conversions from
2812 pointers to sizetype and vice versa.
2813
5ade25c6 28142008-05-18 Xinliang David Li <davidxl@google.com>
2815
2816 * gcc/tree-ssa-dce.c: Coding style fix.
2817 (check_pow): Documentation comment.
2818 (check_log): Documenation comment. Coding style fix.
2819 (is_unnecessary_except_errno_call): Ditto.
2820 (gen_conditions_for_pow): Ditto.
2821 (gen_conditions_for_log): Ditto.
2822 (gen_shrink_wrap_conditions): Ditto.
2823 (shrink_wrap_one_built_in_calls): Ditto.
2824 * gcc/doc/invoke.texi: Better documentation string.
2825 * ChangeLog: Fix wrong change log entries from
2826 May 17 checkin on function call DCE.
2827
42073dec 28282008-05-17 Kaz Kojima <kkojima@gcc.gnu.org>
2829
5cf36634 2830 * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
42073dec 2831
51a32119 28322008-05-17 Kenneth Zadeck <zadeck@naturalbridge.com>
2833
2834 * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
2835 * df-problems.c (simulation routines): Fixed block comment to
2836 properly say how to add forwards scanning functions.
2837
9609c446 28382008-05-17 Eric Botcazou <ebotcazou@adacore.com>
2839
2840 * tree-inline.c (setup_one_parameter): Remove dead code.
2841
101f2414 28422008-05-17 Eric Botcazou <ebotcazou@adacore.com>
2843
2844 * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
2845 a BIT_AND_EXPR only for an INTEGER_TYPE.
2846
5ade25c6 28472008-05-17 Xinliang David Li <davidxl@google.com>
2848
2849 * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
2850 (check_pow, check_log, is_unnecessary_except_errno_call): New
2851 functions to check for eliminating math functions that are pure
2852 except for setting errno.
2853 (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
2854 general condition expressions for shrink-wrapping pow/log calls.
2855 (gen_shrink_wrap_conditions): Ditto.
2856 (shrink_wrap_one_built_in_call): Ditto.
2857 (shrink_wrap_conditional_dead_built_in_calls): Ditto.
2858 (mark_operand_necessary): If debugging, output if OP is necessary.
2859 (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
2860 unnecessary.
2861 * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
2862 opt level >= 2.
2863 * gcc/common.opt: New user flag -ftree-builtin-dce.
2864 * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
2865
b7746092 28662008-05-16 David S. Miller <davem@davemloft.net>
2867
5cf36634 2868 * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
b7746092 2869 * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
2870
296a3469 28712008-05-16 Uros Bizjak <ubizjak@gmail.com>
2872
2873 PR target/36246
2874 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
2875
a1d42f3a 28762008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
2877
2878 * ifcvt.c (dead_or_predicable): Rename
2879 df_simulate_one_insn_backwards to df_simulate_one_insn.
2880 * recog.c (peephole2_optimize): Ditto.
83a49fcb 2881 * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
2882 Ditto.
a1d42f3a 2883 * df.h: Rename df_simulate_one_insn_backwards to
2884 df_simulate_one_insn. and delete df_simulate_one_insn_forwards.
2885 * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
2886 scanning of defs and uses.
2887 (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
2888 (df_simulate_one_insn_forwards): Removed.
2889
af6cf582 28902008-05-16 Doug Kwan <dougkwan@google.com>
2891
2892 * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
2893 QNaN & SNaN.
2894 (real_from_string): Handle NaNs and Inf as approriate.
2895
76ee6ef2 28962008-05-16 Nathan Froyd <froydnj@codesourcery.com>
2897
2898 * doc/gty.texi (Source Files Containing Type Information): Note
2899 that headers should appear first in the gtfiles list.
2900
29012008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
2902
2903 * tree.def (COND_EXEC): Properly documented this code.
2904
29052008-05-16 Diego Novillo <dnovillo@google.com>
2906
2907 * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
2908 * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
2909 the new field.
2910
ec415c45 29112008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
2912
2913 * tree-ssa-dse (max_stmt_uid): Removed.
2914 (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
2915 tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
2916 * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
2917 * function.h (cfun.last_stmt_uid): New field.
2918 * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
5cf36634 2919 gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
2920 New functions.
ec415c45 2921 * tree-dfa.c (renumber_gimple_stmt_uids): New function.
2922 (create_stmt_ann): Initialize the ann->uid field.
2923 * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
2924 with new calls.
2925 * tree-flow.h (renumber_gimple_stmt_uids): New function.
2926
c27baad4 29272008-05-16 Nathan Froyd <froydnj@codesourcery.com>
2928
2929 * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
2930 * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
2931 (init_empty_tree_cfg): Call it.
2932
29332008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
2934
296a3469 2935 * cfg.c (init_flow): Add argument THE_FUN. Use it instead of cfun.
2936 Update all users.
c27baad4 2937
46412a37 29382008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
2939
2940 * doc/invoke.text (-fdump-tree-*-verbose): New option.
2941 * tree-dump.c (dump_options): New verbose option.
2942 * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
2943 Add verbose dump.
2944 * tree-pass.h (TDF_VERBOSE): New dump flag.
296a3469 2945 * print-tree.c (print_node): Added code to be able to print PHI_NODES.
46412a37 2946 (tree-flow.h): Added include.
296a3469 2947 * Makefile.in (print-tree.o): Added TREE_FLOW_H.
46412a37 2948
cfef164f 29492008-05-16 Bernd Schmidt <bernd.schmidt@analog.com>
2950
d4cae31e 2951 * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
2952
cfef164f 2953 From Jie Zhang <jie.zhang@analog.com>
ec415c45 2954 * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
cfef164f 2955 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
2956 mcpu=bf561-none and mcpu=bf561-0.2.
2957 * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2958 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
2959 * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2960 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
5cf36634 2961 * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
296a3469 2962 * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
cfef164f 2963 (LIB_SPEC): Use proper linker script for bf561. Error if no mcpu
2964 option.
2965 * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
2966 (cputype_selected): Remove.
2967 (bfin_handle_option): Don't use cputype_selected.
2968 (override_options): When no mcpu option, enable all workarounds.
2969 Don't use bfin_workarounds.
2970 * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
2971 processor type.
2972 (DEFAULT_CPU_TYPE): Don't define.
2973
ae8f99a0 29742008-05-16 Richard Guenther <rguenther@suse.de>
2975
2976 * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
2977 on deletion of the last stmt.
2978
3bcc6ec5 29792008-05-15 H.J. Lu <hongjiu.lu@intel.com>
2980
2981 * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
2982 V8HImode for SSE2 and V16QImode for SSE4.1.
2983
9c1bff7a 29842008-05-15 Kenneth Zadeck <zadeck@naturalbridge.com>
2985
2986 * cgraph.h (compute_inline_parameters): Made public.
2987 * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
2988 variable_generate_summary, function_write_summary,
5cf36634 2989 variable_write_summary, variable_read_summary. Added generate_summary,
2990 write_summary, read_summary.
9c1bff7a 2991 * cgraphunit.c (cgraph_process_new_functions): Changed call from
2992 pass_ipa_inline.function_generate_summary, to
2993 compute_inline_parameters.
2994 * ipa-inline.c (compute_inline_parameters): Made public and added
2995 node parameter.
2996 (compute_inline_parameters_for_current): New function.
296a3469 2997 (pass_inline_param): Now calls compute_inline_parameters_for_current.
9c1bff7a 2998 (inline_generate_summary): Removed parameter and made to loop over
2999 all cgraph nodes.
3000 (pass_ipa_inline): Updated for new IPA_PASS structure.
3001 * passes.c (execute_ipa_summary_passes): Now is called once per
3002 pass rather than once per node*pass.
3003
b2afd900 30042008-05-15 Anatoly Sokolov <aesok@post.ru>
3005
3006 * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
3007 avr_have_mul_p, avr_asm_only_p): Remove variables.
3008 (avr_override_options): Remove initialization of removed variables.
3009 (avr_file_start): Convert removed variables to fields of
3010 'struct base_arch_s *avr_current_arch'.
3011 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
3012 (AVR_HAVE_MUL): (Ditto.).
3013 (AVR_HAVE_MOVW): (Ditto.).
3014 (AVR_HAVE_LPMX): (Ditto.).
3015 (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
3016 avr_asm_only_p): Remove declaration.
3017
2fbcc8e9 30182008-05-15 Diego Novillo <dnovillo@google.com>
3019
296a3469 3020 * config/arm/arm.c (arm_return_in_memory): Fix return type.
2fbcc8e9 3021 * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
3022
d9a71d72 30232008-05-15 Adam Nemet <anemet@caviumnetworks.com>
3024
3025 PR middle-end/36194
296a3469 3026 * combine.c (check_conversion): Rename back to check_promoted_subreg.
3027 Don't call record_truncated_value from here.
3028 (record_truncated_value): Turn it into a for_each_rtx callback.
3029 (record_truncated_values): New function.
3030 (combine_instructions): Call note_uses with record_truncated_values.
3031 Change name of check_conversion to check_promoted_subreg.
d9a71d72 3032
07e23beb 30332008-05-15 Janis Johnson <janis187@us.ibm.com>
3034
3035 * doc/sourcebuild.texi: Document support for torture tests.
3036
e66b310f 30372008-05-15 Uros Bizjak <ubizjak@gmail.com>
3038
3039 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
3040 to alternative 4 of operand 2.
3041
9659d177 30422008-05-15 Richard Guenther <rguenther@suse.de>
3043
3044 * tree-pass.h (current_pass): Declare.
3045 (get_pass_for_id): Likewise.
3046 * passes.c (passes_by_id, passes_by_id_size): New globals.
3047 (set_pass_for_id): New function.
3048 (get_pass_for_id): Likewise.
3049 (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
3050 (execute_function_todo): Flush per function statistics.
3051 * toplev.c (compile_file): Init statistics.
3052 (general_init): Do early statistics initialization.
3053 (finalize): Finish statistics.
3054 * statistics.h (statistics_early_init): Declare.
3055 (statistics_init): Likewise.
3056 (statistics_fini): Likewise.
3057 (statistics_fini_pass): Likewise.
3058 (statistics_counter_event): Likewise.
3059 (statistics_histogram_event): Likewise.
3060 * statistics.c: New file.
3061 * Makefile.in (OBJS-common): Add statistics.o.
3062 (statistics.o): Add dependencies.
3063 * doc/invoke.texi (-fdump-statistics): Document.
3064
3065 * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
3066 (insert): Likewise.
3067 (execute_pre): Use statistics_counter_event.
3068 * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
3069 (substitute_and_fold): Increment it. Use statistics_counter_event.
3070
79d869d0 30712008-05-15 Diego Novillo <dnovillo@google.com>
3072
3073 http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
3074
3075 * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
3076 * tree-ssa-alias.c (new_type_alias): Remove references to
3077 sub-variables from comment.
3078 * tree-ssa-operands.c (swap_tree_operands): Likewise.
3079
374ba45c 30802008-05-15 H.J. Lu <hongjiu.lu@intel.com>
3081
3082 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
3083 attribute to 1 only for insertps alternative.
3084
16f1c0ab 30852008-05-15 Bernd Schmidt <bernd.schmidt@analog.com>
3086
3087 * config/bfin/bfin.md (loadbytes): New pattern.
3088 * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
3089 (bfin_init_builtins): Initialize it.
3090 (bdesc_1arg): Add it.
3091
c8357361 30922008-05-15 Sa Liu <saliu@de.ibm.com>
3093
3094 * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
3095 * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
3096 * testsuite/lib/target-supports.exp: Add
3097 check_effective_target_fortran_integer_16.
3098
0a619688 30992008-05-15 Bernd Schmidt <bernd.schmidt@analog.com>
3100
3101 * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
3102 * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
3103 * config/bfin/bfin.c (bfin_return_in_memory): Now static. Return bool.
3104 (TARGET_RETURN_IN_MEMORY): Define.
3105
58e1c141 31062008-05-15 Richard Guenther <rguenther@suse.de>
3107
3108 PR middle-end/36244
3109 * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
3110 * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
3111 represent unmodifiable vars.
3112
43a3cf90 31132008-05-15 Richard Guenther <rguenther@suse.de>
3114
3115 * tree-dfa.c (refs_may_alias_p): Allow all kinds of
3116 INDIRECT_REF and TARGET_MEM_REF.
3117 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
3118 TARGET_MEM_REF.
3119
d3d9aac1 31202008-05-15 Uros Bizjak <ubizjak@gmail.com>
3121 H.J. Lu <hongjiu.lu@intel.com>
3122
3123 * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
3124 (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
3125 for operand 2. Remove pinsr{q,d} with 0x0 immediate operand from
3126 insn alternatives. Add missing alternatives.
3127 (*vec_concatv2di_rex64_sse4_1): Likewise.
3128 (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
3129 (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
3130 Require TARGET_SSE.
3131
a973ed42 31322008-05-15 Richard Guenther <rguenther@suse.de>
3133
3134 PR tree-optimization/36009
3135 PR tree-optimization/36204
3136 * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
3137 (determine_invariantness_stmt): Record the loop a store is
3138 always executed in.
3139 * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
3140 dependency.
3141
9f41aa1d 31422008-05-15 Richard Guenther <rguenther@suse.de>
3143
3144 PR tree-optimization/34330
3145 * tree-ssa-alias.c (get_smt_for): Only assert that accesses
3146 through the pointer will alias the SMT.
3147
ea6b825e 31482008-05-14 Andreas Tobler <a.tobler@schweiz.org>
3149
3150 * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
3151
4f8380cf 31522008-05-14 H.J. Lu <hongjiu.lu@intel.com>
3153
3154 * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
3155
4d54df85 31562008-05-14 Michael Meissner <michael.meissner@amd.com>
3157 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
3158
3159 * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
3160 OTI_vrotl, OTI_vrotr to support vector/vector shifts.
3161 (vashl_optab): New optab for vector/vector shifts.
3162 (vashr_optab): Ditto.
3163 (vlshr_optab): Ditto.
3164 (vrotl_optab): Ditto.
3165 (vrotr_optab): Ditto.
3166 (optab_subtype): New enum for optab_for_tree_code call.
3167 (optab_for_tree_code): Add enum optab_subtype argument.
3168
3169 * optabs.c (optab_for_tree_code): Take an additional argument to
3170 distinguish between a vector shift by a scalar and vector shift by
3171 a vector. Make lshr/ashr/ashl/rotl/rotr optabs just vector
3172 shifted by a scalar. Use vlshr/vashr/vashl/vrotl/vrotr for the
3173 vector shift by a vector.
3174 (expand_widen_pattern_expr): Pass additional argument to
3175 optab_for_tree_code.
3176
3177 * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
3178 vrotl_optab, vrotr_optab.
3179
3180 * expr.c (expand_expr_real_1): Update calls to
3181 optab_for_tree_code to distinguish between vector shifted by a
3182 scalar and vector shifted by a vector.
3183 * tree-vectorizer.c (supportable_widening_operation): Ditto.
3184 (supportable_narrowing_operation): Ditto.
3185 * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
3186 * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
3187 * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
3188 (vect_create_epilog_for_reduction): Ditto.
3189 (vectorizable_reduction): Ditto.
3190 (vectorizable_operation): Ditto.
3191 (vect_strided_store_supported): Ditto.
3192 (vect_strided_load_supported): Ditto.
3193 * tree-vect-generic.c (expand_vector_operations_1): Ditto.
3194 * expmed.c (expand_shift): Ditto.
3195
3196 * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
3197 scalar type.
3198 (ashr@var{m}3): Ditto.
3199 (vashl@var{m}3): Document new vector/vector shift standard name.
3200 (vashr@var{m}3): Ditto.
3201 (vlshr@var{m}3): Ditto.
3202 (vrotl@var{m}3): Ditto.
3203 (vrotr@var{m}3): Ditto.
3204
d3d9aac1 3205 * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
4d54df85 3206 (PPERM_INVERT): Ditto.
3207 (PPERM_REVERSE): Ditto.
3208 (PPERM_REV_INV): Ditto.
3209 (PPERM_ZERO): Ditto.
3210 (PPERM_ONES): Ditto.
3211 (PPERM_SIGN): Ditto.
3212 (PPERM_INV_SIGN): Ditto.
3213 (PPERM_SRC1): Ditto.
3214 (PPERM_SRC2): Ditto.
3215
3216 * config/i386/sse.md (mulv2di3): Add SSE5 support.
3217 (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
3218 allows a memory operand to be the value being added, and split it
3219 to improve vectorization.
3220 (sse5_pmacsdqh_mem): Ditto.
3221 (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
3222 (sse5_mulv2div2di3_high): Ditto.
3223 (vec_pack_trunc_v8hi): Add SSE5 pperm support.
3224 (vec_pack_trunc_v4si): Ditto.
3225 (vec_pack_trunc_v2di): Ditto.
3226 (sse5_pcmov_<mode>): Remove code that tried to use use
3227 andps/andnps instead of pcmov.
3228 (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
3229 pmacsdqh instructions.
3230 (vec_widen_smult_lo_v4si): Ditto.
3231
3232 * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
3233 (PPERM_INVERT): Ditto.
3234 (PPERM_REVERSE): Ditto.
3235 (PPERM_REV_INV): Ditto.
3236 (PPERM_ZERO): Ditto.
3237 (PPERM_ONES): Ditto.
3238 (PPERM_SIGN): Ditto.
3239 (PPERM_INV_SIGN): Ditto.
3240 (PPERM_SRC1): Ditto.
3241 (PPERM_SRC2): Ditto.
3242 (ix86_expand_sse_movcc): Move the SSE5 test after the if
3243 true/false tests.
3244 (ix86_expand_int_vcond): If SSE5 generate all possible integer
3245 comparisons.
3246 (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
3247 says ignore whether the last reference is a memory operand.
3248
32492008-05-14 Michael Meissner <michael.meissner@amd.com>
3250 Paolo Bonzini <bonzini at gnu dot org>
3251
3252 * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
3253 shift patterns.
3254
d3d9aac1 3255 * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
4d54df85 3256 (vlshr<mode>3): Rename from vlshr<mode>3.
3257 (vashr<mode>3): Rename from vashr<mode>3.
3258 (mulv4sf3): Change the names of vector shift patterns.
3259 (mulv4si3): Ditto.
3260 (negv4sf2): Ditt.
3261
3262 * config/spu/spu.c (spu_initialize_trampoline): Rename vector
3263 shift insns.
3264
d3d9aac1 3265 * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
4d54df85 3266 (SI_SHLHI): Ditto.
3267 (SI_SHL): Ditto.
3268 (SI_SHLI): Ditto.
3269 (SI_ROTH): Ditto.
3270 (SI_ROTHI): Ditto.
3271 (SI_ROT): Ditto.
3272 (SI_ROTI): Ditto.
3273 (SPU_RL_0): Ditto.
3274 (SPU_RL_1): Ditto.
3275 (SPU_RL_2): Ditto.
3276 (SPU_RL_3): Ditto.
3277 (SPU_RL_4): Ditto.
3278 (SPU_RL_5): Ditto.
3279 (SPU_RL_6): Ditto.
3280 (SPU_RL_7): Ditto.
3281 (SPU_SL_0): Ditto.
3282 (SPU_SL_1): Ditto.
3283 (SPU_SL_2): Ditto.
3284 (SPU_SL_3): Ditto.
3285 (SPU_SL_4): Ditto.
3286 (SPU_SL_5): Ditto.
3287 (SPU_SL_6): Ditto.
3288 (SPU_SL_7): Ditto.
3289
3290 * config/spu/spu.md (v): New iterator macro to add v for vector types.
3291 (floatunssidf2_internal): Change vector/vector shift names.
3292 (floatunsdidf2_internal): Ditto.
3293 (mulv8hi3): Ditto.
3294 (ashrdi3): Ditto.
3295 (ashrti3): Ditto.
3296 (cgt_df): Ditto.
3297 (cgt_v2df): Ditto.
3298 (dftsv): Ditto.
3299 (vashl<mode>3): Rename from ashl<mode>3.
3300 (vashr<mode>3): Rename from ashr<mode>3.
3301 (vlshr<mode>3): Rename from lshr<mode>3.
3302 (vrotl<mode>3): Rename from rotl<mode>3.
3303
5c1def65 33042008-05-14 Michael Meissner <michael.meissner@amd.com>
3305
3306 PR target/36224
d3d9aac1 3307 * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
3308 multiply gives the wrong value when doing widening multiplies.
5c1def65 3309 (vec_widen_smult_lo_v4si): Ditto.
3310
2dd6f9ed 33112008-05-14 Kenneth Zadeck <zadeck@naturalbridge.com>
3312
3313 * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
3314 LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
3315 emit_library_call_value.
3316 * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
3317 * tree.h (ECF_LIBCALL_BLOCK): Removed.
3318 * calls.c (initialize_argument_information, precompute_arguments,
3319 expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
3320 (precompute_arguments): Removed flags parameter.
3321 * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
3322
77ad2905 33232008-05-14 Richard Guenther <rguenther@suse.de>
3324
3325 * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
3326 Make sure to register the store if the use is a PHI_NODE.
3327
220144ca 33282008-05-14 Olivier Hainque <hainque@adacore.com>
3329
3330 * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
3331 memory if the component is to be referenced in BLKmode according
3332 to get_inner_reference.
3333
34a0af10 33342008-05-14 Adam Nemet <anemet@caviumnetworks.com>
3335
3336 * calls.c (emit_library_call_value_1): Restore code clearing
d3d9aac1 3337 ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
34a0af10 3338
de4e1ab6 33392008-05-14 Olivier Hainque <hainque@adacore.com>
3340 Nicolas Roche <roche@adacore.com>
3341
3342 * configure.ac: Add support for a "gcc_subdir" variable in
3343 config-lang.in, to denote a subdirectory where the language/GCC
3344 integration files are to be found.
3345 * configure: Regenerate.
3346
a53e5ca3 33472008-05-14 Ira Rosen <irar@il.ibm.com>
3348
3349 PR tree-optimization/36098
3350 * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
3351 value for the first load in the group in case of a gap.
3352 (vect_build_slp_tree): Check that there are no gaps in loads.
3353
e29831db 33542008-05-14 Kenneth Zadeck <zadeck@naturalbridge.com>
3355
3356 * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
3357 * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
3358 expand_copysign_bit, ): Change call to emit_no_conflict_block to
3359 emit_insn and remove unneeded code to construct extra args.
3360 (emit_no_conflict_block): Removed.
3361 * optabls.h: (emit_no_conflict_block): Removed.
3362 * cse.c (cse_extended_basic_block): Remove search for
d3d9aac1 3363 REG_NO_CONFLICT note.
e29831db 3364 * global.c: Removed incorrect comment added in revision 117.
3365 * expr.c (convert_move): Change call to emit_no_conflict_block to
3366 emit_insn.
3367 * recog.c: Change comments so that they do not mention
3368 REG_NO_CONFLICT.
3369 * local_alloc.c (combine_regs): Removed last parameter.
3370 (no_conflict_p): Removed.
3371 (block_alloc): Removed note, no_conflict_combined_regno and set
3372 local vars. Removed all code to process REG_NO_CONFLICT blocks.
3373 (combine_regs): Removed already_dead and code to look for
3374 REG_NO_CONFLICT notes.
3375 * lower_subreg (remove_retval_note): Removed code to look for
3376 REG_NO_CONFLICT block.
3377 (resolve_reg_notes): Removed REG_NO_CONFLICT case.
3378 (resolve_clobber): Remove code to process libcalls that have
3379 REG_NO_CONFLICT notes.
3380 * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
3381 case.
d3d9aac1 3382 * combine.c (can_combine_p, distribute_notes): Removed
3383 REG_NO_CONFLICT case.
3384 * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
3385 to emit_insns.
e29831db 3386 * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
3387 * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
d3d9aac1 3388 Ditto.
e29831db 3389 * reg-notes.def (NO_CONFLICT): Removed.
ea6b825e 3390
b5264126 33912008-05-14 David S. Miller <davem@davemloft.net>
3392
3393 * config/sparc/sparc.c (sparc_profile_hook): If
d3d9aac1 3394 NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
b5264126 3395 * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
3396 * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
3397
8ecc497a 33982008-05-14 Andreas Krebbel <krebbel1@de.ibm.com>
3399
3400 * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
3401
b5606623 34022008-05-13 Uros Bizjak <ubizjak@gmail.com>
3403
3404 PR target/36222
3405 * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
3406 and op1 expansion before vector concat to have less live pseudos.
3407
0f4d0c21 34082008-05-13 H.J. Lu <hongjiu.lu@intel.com>
3409
3410 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
3411 ix86_expand_vector_set if supported.
3412
bcaa2770 34132008-05-13 Diego Novillo <dnovillo@google.com>
3414 Kenneth Zadeck <zadeck@naturalbridge.com>
3415
3416 http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
3417
3418 * tree.h (init_phinodes, fini_phinodes, release_phi_node,
3419 phinodes_print_statistics, init_ssanames, fini_ssanames,
b5606623 3420 make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
3421 release_ssa_name, release_defs, replace_ssa_name_symbol,
bcaa2770 3422 ssanames_print_statistics): Move ...
3423 * tree-flow.h: ... here.
b5606623 3424 * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
3425 Use FN instead of cfun.
bcaa2770 3426 (make_ssa_name_fn): Rename from make_ssa_name.
b5606623 3427 (pass_release_ssa_names): Add TODO_dump_func to finish flags.
bcaa2770 3428 * tree-flow-inline.h (make_ssa_name): Move from
b5606623 3429 tree-ssanames.c. Convert to static inline. Call make_ssa_name_fn.
bcaa2770 3430 * omp-low.c (expand_omp_parallel):
3431 * tree-flow-inline.h (redirect_edge_var_map_result):
d3d9aac1 3432 * tree-ssa.c (init_tree_ssa): Add argument FN.
3433 Use it instead of cfun. Update all users.
bcaa2770 3434
fb9753dc 34352008-05-13 Tom Tromey <tromey@redhat.com>
3436
3437 PR preprocessor/22168:
3438 * doc/cpp.texi (Top): Update menu.
3439 (Alternatives to Wrapper #ifndef): New node.
3440 (Other Directives): Document deprecation.
3441 (Obsolete Features): Remove menu.
3442 (Assertions): Merge node into Obsolete Features.
3443 (Obsolete once-only headers): Move earlier; rename to Alternatives
3444 to Wrapper #ifndef.
3445 * doc/cppopts.texi: Update.
3446 * c.opt (Wdeprecated): Enable for C and ObjC.
3447 * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
3448 (C++ Dialect Options): Move -Wno-deprecated from here to...
3449 (Warning Options): ... here.
3450
4b475af8 34512008-05-13 Richard Guenther <rguenther@suse.de>
3452
3453 PR middle-end/36227
3454 * fold-const.c (fold_sign_changed_comparison): Do not allow
3455 changes in pointer-ness.
3456
5bfdcfc8 34572008-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
3458
3459 PR target/24713
3460 * config/sh/sh.c (sh_expand_prologue): Don't clear
3461 RTX_FRAME_RELATED_P for push insns.
3462
012da5f6 34632008-05-12 Andy Hutchinson <hutchinsonandy@aim.com>
3464
3465 * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
3466
f2323747 34672008-05-12 Anatoly Sokolov <aesok@post.ru>
3468
3469 * config/avr/avr.h (machine_function): Add 'is_leaf' field.
3470 * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
3471 Use 'machine->is_leaf' instead of 'leaf_func_p'.
3472
b4a46c88 34732008-05-12 H.J. Lu <hongjiu.lu@intel.com>
3474
3475 * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
3476 (*vec_concatv4sf_sse): This.
3477 (*sse2_concatv2si): Renamed to ...
3478 (*vec_concatv2si_sse2): This.
3479 (*sse1_concatv2si): Renamed to ...
3480 (*vec_concatv2si_sse): This.
3481 (*vec_concatv2di_rex): Renamed to ...
3482 (*vec_concatv2di_rex64): This.
3483 (*vec_concatv2si_sse4_1): New.
3484 (*vec_concatv2di_rex64_sse4_1): Likewise.
3485
5612e2f1 34862008-05-12 Uros Bizjak <ubizjak@gmail.com>
3487
3488 PR rtl-optimization/36111
3489 * recog.c (validate_replace_rtx_1): Unshare new RTL expression
3490 that was created for swappable operands.
3491
f1984c57 34922008-05-12 Samuel Tardieu <sam@rfc1149.net>
3493
3494 PR ada/36001
3495 * Makefile.in: Substitute GNATMAKE and GNATBIND.
3496 * configure.ac: Add call to ACX_PROG_GNAT.
3497
63433b97 34982008-05-11 Volker Reichelt <v.reichelt@netcologne.de>
3499
3500 * optc-gen.awk: Fix comment typo.
3501
715b4b24 35022008-05-11 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
3503
3504 * pretty-print.c (pp_integer_with_precision): Use
3505 HOST_LONG_LONG_FORMAT.
3506
16aa7503 35072008-05-10 Kenneth Zadeck <zadeck@naturalbridge.com>
3508
3509 * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
3510
54f3117f 35112008-05-10 H.J. Lu <hongjiu.lu@intel.com>
3512
3513 * config/i386/i386.c (bdesc_ptest): Removed.
3514 (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
3515 (bdesc_args): Add __builtin_ia32_ptestz128,
3516 __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
3517 (ix86_init_mmx_sse_builtins): Updated.
3518 (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
3519 (ix86_expand_builtin): Updated.
3520
9ac19c3a 35212008-05-10 Richard Sandiford <rdsandiford@googlemail.com>
3522
3523 * tree-cfg.c (valid_fixed_convert_types_p): New function.
3524 (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
3525
058d05d5 35262008-05-10 Uros Bizjak <ubizjak@gmail.com>
3527
3528 * value-prof.c (interesting_stringop_to_profile): Do not
3529 return early for BUILT_IN_MEMPCPY.
3530
9a27561f 35312008-05-09 H.J. Lu <hongjiu.lu@intel.com>
3532
3533 * calls.c (expand_call): Don't use callgraph to increase
3534 preferred_stack_boundary.
3535
3536 * cgraph.h (cgraph_rtl_info): Use unsigned on
3537 preferred_incoming_stack_boundary.
3538
3539 * final.c (rest_of_clean_state): Use unsigned on
3540 preferred_stack_boundary.
3541
14984eca 35422008-05-09 Tom Tromey <tromey@redhat.com>
3543
3544 PR preprocessor/22231:
3545 * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
3546 proceeding.
3547
5a4b7e1e 35482008-05-09 Uros Bizjak <ubizjak@gmail.com>
3549
3550 PR tree-optimization/36129
5612e2f1 3551 * tree-ssa-ccp.c: Include value-prof.h.
5a4b7e1e 3552 (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
3553 built-in function was folded to a constant.
5612e2f1 3554 * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
5a4b7e1e 3555
afd80ffb 35562008-05-09 Jan Sjodin <jan.sjodin@amd.com>
3557 Sebastian Pop <sebastian.pop@amd.com>
3558
3559 * tree-scalar-evolution.c: Document instantiate_scev.
3560 (instantiate_parameters_1): Renamed instantiate_scev_1.
3561 Don't use the same loop for instantiation_loop and evolution_loop.
3562 (instantiate_scev): New.
3563 (instantiate_parameters): Moved...
3564 (resolve_mixers): Update call to instantiate_scev_1 to pass the
3565 same loop twice. Maintains the semantics for this function.
3566 * tree-scalar-evolution.h (instantiate_scev): Declare.
3567 (instantiate_parameters): ...here. Now static inline.
3568 * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
3569 instead of resolve_mixers.
3570
5da71d4f 35712008-05-09 Maxim Kuvyrkov <maxim@codesourcery.com>
3572
3573 * rtl-factoring.c (collect_pattern_seqs): Fix typo.
3574
72dd6141 35752008-05-09 Tomas Bily <tbily@suse.cz>
3576
3577 * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
3578 * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
3579 * tree-ssa-structalias.c (get_constraint_for): Likewise.
3580 * c-common.c (c_common_truthvalue_conversion): Likewise.
3581 * tree-object-size.c (compute_object_offset): Likewise.
3582 * tree-inline.c (estimate_num_insns_1): Likewise.
3583 * varasm.c (const_hash_1, compare_constant, copy_constant)
3584 (compute_reloc_for_constant, output_addressed_constants)
3585 (initializer_constant_valid_p): Likewise.
3586 * c-omp.c (check_omp_for_incr_expr): Likewise.
3587 * gimplify.c (gimplify_expr): Likewise.
3588 * c-typeck.c (c_finish_return): Likewise.
3589 * tree-vectorizer.c (supportable_widening_operation)
3590 (supportable_narrowing_operation): Likewise.
3591 * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
3592 * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
3593 * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
3594 * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
3595 (descr_info_loc): Likewise.
3596 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
3597 * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
3598 (fold_unary): Likewise.
3599 * builtins.c (get_pointer_alignment): Likewise.
3600 * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
3601 (instantiate_parameters_1): Likewise.
3602 * tree.c (expr_align, stabilize_reference): Likewise.
3603 * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
3604 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
3605 * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
3606 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
3607 * config/alpha/alpha.c (va_list_skip_additions): Likewise.
5612e2f1 3608 * c-common.c (c_alignof_expr, check_function_arguments_recurse):
3609 Likewise.
72dd6141 3610 * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
3611 * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
3612 * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
3613 (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
3614 (forward_propagate_comparison)
3615 (tree_ssa_forward_propagate_single_use_vars): Likewise.
3616 * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
3617 * emit-rtl.c (component_ref_for_mem_expr)
3618 (set_mem_attributes_minus_bitpos): Likewise.
3619 * tree-ssa-phiopt.c (conditional_replacement): Likewise.
5612e2f1 3620 * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
3621 Likewise.
72dd6141 3622 * c-typeck.c (default_function_array_conversion, build_indirect_ref)
3623 (build_function_call, pointer_diff, build_compound_expr)
3624 (c_finish_return): Likewise.
3625 * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
5612e2f1 3626 * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
3627 Likewise.
72dd6141 3628 * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
3629 * expr.c (is_aligning_offset): Likewise.
3630 * tree-ssa-alias.c (is_escape_site): Likewise.
3631 * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
3632 (check_all_va_list_escapes): Likewise.
3633 * tree-ssa-loop-ivopts.c (determine_base_object)
3634 (determine_common_wider_type): Likewise.
3635 * dojump.c (do_jump): Likewise.
3636 * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
3637 * tree-gimple.c (is_gimple_cast): Likewise.
3638 * fold-const.c (decode_field_reference, )
3639 (fold_sign_changed_comparison, fold_unary, fold_comparison)
3640 (fold_binary): Likewise.
3641 * tree-ssa-alias-warnings.c (find_alias_site_helper)
3642 (already_warned_in_frontend_p): Likewise.
3643 * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
3644 * tree.c (really_constant_p, get_unwidened): Likewise.
3645 * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
3646 * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
5612e2f1 3647 * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
3648 Likewise.
3649 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
3650 CONVERT_EXPR_P.
72dd6141 3651 (CONVERT_EXPR_P): Define.
3652 (CASE_CONVERT): Define.
3653
0b7b55ea 36542008-05-08 Kenneth Zadeck <zadeck@naturalbridge.com>
3655
3656 PR middle-end/36117
5612e2f1 3657 * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
3658 (delete_unmarked_insns): When deleting a call, call
0b7b55ea 3659 delete_unreachable_blocks.
3660 * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
5612e2f1 3661 RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
3662
70393469 36632008-05-08 Richard Guenther <rguenther@suse.de>
3664
3665 * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
3666 (-ftree-salias): Likewise.
3667 (salias-max-implicit-fields): Remove param documentation.
3668 (salias-max-array-elements): Likewise.
3669 * tree-pass.h (pass_create_structure_vars): Remove.
3670 * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
3671 (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
3672 * tree-ssa-alias.c (create_structure_vars): Remove.
3673 (gate_structure_vars): Likewise.
3674 (pass_create_structure_vars): Likewise.
3675 (gate_build_alias): Likewise.
3676 (pass_build_alias): Adjust to run always and dump the function.
3677 * common.opt (ftree-salias): Hide.
3678 * passes.c (init_optimization_passes): Remove
3679 pass_create_structure_vars, adjust comment.
3680 * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
3681 (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
3682 * opts.c (decode_options): Do not set flag_tree_salias.
3683 (common_handle_option): Add OPT_ftree_salias to the backward
3684 compatibility section.
3685
3423d8f7 36862008-05-08 Richard Guenther <rguenther@suse.de>
3687
3688 * tree-flow-inline.h (var_can_have_subvars): Move ...
3689 * tree-ssa-structalias.c (var_can_have_subvars): ... here.
3690 * tree-flow.h (var_can_have_subvars): Remove.
3691 (push_fields_onto_fieldstack): Remove.
3692 (sort_fieldstack): Likewise.
3693 (struct fieldoff): Move ...
3694 * tree-ssa-structalias.c (struct fieldoff): ... here. Remove
3695 alias_set and base_for_components fields.
3696 (sort_fieldstack): Make static.
3697 (push_fields_onto_fieldstack): Likewise. Remove code that
3698 handles anything but RECORD_TYPEs. Remove alias_set and
3699 base_for_components handling.
3700 (create_variable_info_for): Adjust.
3701
15e88abc 37022008-05-08 Seongbae Park <seongbae.park@gmail.com>
2953c811 3703
15e88abc 3704 * common.opt (Wframe-larger-than=): Shorten the help message
3705 to one line.
3706 * doc/invoke.texi (Wframe-larger-than=): Add more description.
3707
7076cb5d 37082008-05-08 Rafael Espindola <espindola@google.com>
3709
3710 * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
3711 trap.
3712 * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
3713 trap and that both operands are gimple values.
3714 (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
3715 * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
3716 is a fp operation.
3717
25a52e22 37182008-05-08 Richard Sandiford <rsandifo@nildram.co.uk>
3719
3720 * read-rtl.c (join_c_conditions): Return the first string if the
3721 two strings are equal.
3722
c7a4c804 37232008-05-08 Richard Sandiford <rsandifo@nildram.co.uk>
3724
3725 * gensupport.h (pred_data): Add a "num_codes" field.
3726 (add_predicate_code): Declare.
3727 * gensupport.c (add_predicate_code): New function.
3728 (std_pred_table): Add an "allows_const_p" field.
3729 (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
3730 Remove the (incomplete) list of such codes from the codes field.
3731 (init_predicate_table): Use add_predicate_code. Add all
3732 RTX_CONST_OBJs if allows_const_p is true.
3733 * genrecog.c (process_define_predicate): Use add_predicate_code.
3734
40efb338 37352008-05-08 David Daney <ddaney@avtrex.com>
3736 Richard Sandiford <rsandifo@nildram.co.uk>
3737
3738 * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
3739 special case of constant zero operands.
3740 * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
3741 old and new values. Special case constant zero values.
3742 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
3743 fails.
3744 (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
3745 (MIPS_COMPARE_AND_SWAP_12_0): New macro.
3746
f35ba9d1 37472008-05-08 Paolo Bonzini <bonzini@gnu.org>
3748
3749 PR target/36090
3750 * simplify-rtx.c (simplify_plus_minus): Create CONST of
3751 similar RTX_CONST_OBJ before CONST_INT.
3752
fbf51400 37532008-05-08 Steve Ellcey <sje@cup.hp.com>
3754
3755 * stmt.c (expand_stack_restore): Change sa mode if needed.
3756
df2a16e5 37572008-05-08 Richard Guenther <rguenther@suse.de>
3758
3759 * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
3760 return type to bool.
3761 (ix86_sol10_return_in_memory): Likewise.
3762 (ix86_i386elf_return_in_memory): Likewise.
3763 (ix86_i386interix_return_in_memory): Likewise.
3764 * config/i386/i386.c (ix86_return_in_memory): Likewise.
3765 (ix86_sol10_return_in_memory): Likewise.
3766 (ix86_i386elf_return_in_memory): Likewise.
3767 (ix86_i386interix_return_in_memory): Likewise.
3768
60e2260d 37692008-05-08 Kai Tietz <kai.tietz@onevision.com>
3770
19d05520 3771 PR bootstrap/36180
60e2260d 3772 * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
3773 fndecl argument.
19d05520 3774 (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
3775 * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
3776 declared in front.
60e2260d 3777
2afb4be3 37782008-05-08 Richard Guenther <rguenther@suse.de>
3779
3780 * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
3781 * tree-data-ref.h (struct dr_alias): Remove subvars field.
3782 (DR_SUBVARS): Remove.
3783 * tree-dfa.c (dump_subvars_for): Remove.
3784 (debug_subvars_for): Likewise.
3785 (dump_variable): Do not dump subvars.
3786 (remove_referenced_var): Do not remove subvars.
3787 * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
3788 (lookup_subvars_for_var): Remove.
3789 (get_subvars_for_var): Likewise.
3790 (get_subvars_at): Likewise.
3791 (get_first_overlapping_subvar): Likewise.
3792 (overlap_subvar): Likewise.
3793 * tree-flow.h (subvar_t): Remove.
3794 (struct var_ann_d): Remove subvars field.
3795 * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
3796 argument. Remove special handling of SFTs.
3797 (compute_tag_properties): Likewise.
3798 (set_initial_properties): Likewise.
3799 (compute_call_clobbered): Likewise.
3800 (count_mem_refs): Likewise.
3801 (compute_memory_partitions): Likewise.
3802 (compute_flow_insensitive_aliasing): Likewise.
3803 (setup_pointers_and_addressables): Likewise.
3804 (new_type_alias): Likewise.
3805 (struct used_part): Remove.
3806 (used_portions): Likewise.
3807 (struct used_part_map): Likewise.
3808 (used_part_map_eq): Likewise.
3809 (used_part_map_hash): Likewise.
3810 (free_used_part_map): Likewise.
3811 (up_lookup): Likewise.
3812 (up_insert): Likewise.
3813 (get_or_create_used_part_for): Likewise.
3814 (create_sft): Likewise.
3815 (create_overlap_variables_for): Likewise.
3816 (find_used_portions): Likewise.
3817 (create_structure_vars): Likewise.
3818 * tree.def (STRUCT_FIELD_TAG): Remove.
3819 * tree.h (MTAG_P): Adjust.
3820 (struct tree_memory_tag): Remove base_for_components and
3821 unpartitionable flags.
3822 (struct tree_struct_field_tag): Remove.
3823 (SFT_PARENT_VAR): Likewise.
3824 (SFT_OFFSET): Likewise.
3825 (SFT_SIZE): Likewise.
3826 (SFT_NONADDRESSABLE_P): Likewise.
3827 (SFT_ALIAS_SET): Likewise.
3828 (SFT_UNPARTITIONABLE_P): Likewise.
3829 (SFT_BASE_FOR_COMPONENTS_P): Likewise.
3830 (union tree_node): Remove sft field.
3831 * alias.c (get_alias_set): Remove special handling of SFTs.
3832 * print-tree.c (print_node): Remove handling of SFTs.
3833 * tree-dump.c (dequeue_and_dump): Likewise.
3834 * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
3835 * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
3836 * tree-predcom.c (set_alias_info): Do not set subvars.
3837 * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
3838 * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
3839 * tree-ssa-operands.c (access_can_touch_variable): Likewise.
3840 (add_vars_for_offset): Remove.
3841 (add_virtual_operand): Remove special handling of SFTs.
3842 (add_call_clobber_ops): Likewise.
3843 (add_call_read_ops): Likewise.
3844 (get_asm_expr_operands): Likewise.
3845 (get_modify_stmt_operands): Likewise.
3846 (get_expr_operands): Likewise.
3847 (add_to_addressable_set): Likewise.
3848 * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
3849 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
5612e2f1 3850 * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
2afb4be3 3851 * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
3852 (tree_code_size): Remove STRUCT_FIELD_TAG handling.
3853 (tree_node_structure): Likewise.
3854 * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
3855 handling of SFTs.
3856 (find_what_p_points_to): Likewise.
3857
8d44e5fa 38582008-05-08 Sa Liu <saliu@de.ibm.com>
3859
3860 * config/spu/spu.md: Fixed subti3 pattern.
8d44e5fa 3861
5949e049 38622008-05-08 Richard Guenther <rguenther@suse.de>
3863
3864 PR middle-end/36154
3865 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
3866 sure to create a representative for trailing arrays for PTA.
3867
07018da0 38682008-05-08 Richard Guenther <rguenther@suse.de>
3869
3870 PR middle-end/36172
3871 * fold-const.c (operand_equal_p): Two objects which types
3872 differ in pointerness are not equal.
3873
19d05520 38742008-05-08 Kai Tietz <kai.tietz@onevision.com>
22c61100 3875
3876 * calls.c (compute_argument_block_size): Add argument tree fndecl.
3877 (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
3878 (emit_library_call_value_1): Add new variable fndecl initialized by
3879 NULL_TREE. It should be the decl type of orgfun, but this information
3880 seems not to be available here, so it uses the default calling abi.
3881 * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
3882 * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
3883 by TARGET_RETURN_IN_MEMORY.
3884 * config/i386/i386-interix.h: Likewise.
3885 * config/i386/i386.h: Likewise.
3886 * config/i386/i386elf.h: Likewise.
3887 * config/i386/ptx4-i.h: Likewise.
3888 * config/i386/sol2-10.h: Likewise.
3889 * config/i386/sysv4.h: Likewise.
3890 * config/i386/vx-common.h: Likewise.
3891 * config/cris/cris.h: Removed #if 0 clause.
19d05520 3892 * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
22c61100 3893 * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
3894 argument.
3895 (ix86_sol10_return_in_memory): Likewise.
3896 (ix86_i386elf_return_in_memory): New.
3897 (ix86_i386interix_return_in_memory): New.
3898 * config/mt/mt-protos.h (mt_return_in_memory): New.
3899 * config/mt/mt.c: Likewise.
3900 * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
3901 (RETURN_IN_MEMORY): Replace by TARGET_RETURN_IN_MEMORY.
3902 * config/bfin/bfin.h: Likewise.
3903 * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
3904 argument.
3905 * config/bfin/bfin.c: Likewise.
3906 * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
3907 * config/alpha/unicosmk.h: Likewise.
3908 * config/i386/cygming.h: Likewise.
3909 * config/iq2000/iq2000.h: Likewise.
3910 * config/mips/mips.h: Likewise.
3911 * config/mn10300/mn10300.h: Likewise.
3912 * config/rs6000/rs6000.h: Likewise.
3913 * config/score/score.h: Likewise.
3914 * config/spu/spu.h: Likewise.
3915 * config/v850/v850.h: Likewise.
3916 * defaults.h: Likewise.
3917 * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
19d05520 3918 * expr.c (emit_block_move): Adjust use of
3919 OUTGOING_REG_PARM_STACK_SPACE.
22c61100 3920 * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
3921 OUTGOING_REG_PARM_STACK_SPACE.
3922 * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
3923
957f873e 39242008-05-08 Jakub Jelinek <jakub@redhat.com>
3925
3926 * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
3927 on OMP_RETURN for OMP_FOR.
3928
845c3089 3929 PR debug/35896
3930 * dwarf2out.c (dw_expand_expr, common_check): Removed.
3931 (fortran_common): New function.
3932 (gen_variable_die): Call fortran_common instead of common_check,
3933 adjust for it returning tree instead of rtx. Formatting.
3934
957f873e 39352008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>
9c2a0c05 3936
19d05520 3937 PR rtl/7335
3938 PR rtl/33826
3939 * see.c (see_copy_insn): Copy new pure const attributes for new call.
3940 * c-decl.c (merge_decls): Ditto.
3941 * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
3942 to RTL_CONST_OR_PURE_CALL_P.
3943 * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
3944 Initialized DECL_LOOPING_CONST_PURE.
3945 (process_call_operands): Set tree_side_effects properly.
3946 * tree.h (TREE_READONLY_DECL_P): Removed.
3947 (DECL_IS_PURE): Renamed to DECL_PURE_P.
3948 (DECL_LOOPING_OR_CONST_P): New macro.
3949 (struct tree_function_decl): Added looping_const_or_pure_p.
3950 (ECF_*) Renumbered.
3951 (ECF_LOOPING_OR_CONST_P): New macro.
3952 * rtlanal.c (pure_const_p): Removed.
3953 * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
3954 * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
3955 to RTL_CONST_CALL_P.
3956 * ipa-pure-const.c (pure_const_state_e): Added looping field.
3957 (check_decl, check_tree, check_call, scan_function): Initialize
3958 looping.
3959 (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
3960 (static_execute): Set looping true for recursive functions.
3961 Undo setting state to IPA_NEITHER for recursive functions.
3962 * cse.c (cse_insn):
3963 * ifcvt.c (noce_can_store_speculate_p): Changed
3964 CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
3965 RTL_CONST_OR_PURE_CALL_P.
3966 * dse.c (scan_insn): Ditto.
3967 * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
3968 * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
3969 RTL_CONST_OR_PURE_CALL_P.
3970 (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
3971 pure_call_p to RTL_CONST_CALL_P.
3972 * gimplify.c (gimplify_call_expr): Clear side effects for
3973 non-looping pure and constant calls.
3974 * calls.c (emit_call_1): Set rtl flags from ecf flags.
3975 (flags_from_decl_or_type): Set ecf flags from decl flags.
3976 (initialize_argument_information): Turn off
3977 ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
3978 Change const to pure if callee_copies is true rather than just
3979 turning off const.
3980 (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
3981 way of marking pure calls.
3982 (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
3983 Remove hack that was supposed to fix pr7335 and remove old
3984 way of marking pure calls.
3985 * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
3986 RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
3987 * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
3988 RTL_CONST_OR_PURE_CALL_P.
3989 * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
3990 * loop-invariant.c (find_exits, find_invariant_bb): Changed
3991 CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
3992 * sched-deps.c (schedule_analyze): Ditto.
3993 * rtl.h (struct rtx_def): Use call field, unchanging field, and
3994 return_val field of calls to represent pure and const function info.
3995 (CONST_OR_PURE_CALL_P): Deleted macro.
3996 (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
3997 RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
3998 * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
3999 TREE_READONLY.
4000 * tree-optimize.c (execute_fixup_cfg): Added test for
4001 ECF_LOOPING_CONST_OR_PURE.
4002 * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
4003 DECL_PURE_P.
4004 * tree-cfg.c (update_call_expr_flags): Do not clear tree side
4005 effects for looping pure or const calls.
4006 (verify_gimple_expr): Added verification code.
4007 * config/alpha/alpha.c (alpha_legitimize_address,
4008 alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
4009 RTL_CONST_CALL_P.
4010 * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
4011 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
4012 * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
4013 * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
4014 RTL_CONST_OR_PURE_CALL_P.
4015 * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
4016 and const calls to be deleted.
9c2a0c05 4017
19d05520 40182008-05-07 Uros Bizjak <ubizjak@gmail.com>
7c839b3f 4019
4020 PR target/35714
4021 * config/i386/mmx.md (mmx_subv2sf3): New expander.
4022 (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
4023 (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
4024 (mmx_eqv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
4025 to handle nonimmediate operands.
4026 (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
4027 (mmx_paddwd): New expander. Use ix86_fixup_binary_operands_no_copy
4028 to handle nonimmediate operands.
4029 (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
4030 (mmx_pmulhrwv4hi3): New expander. Use
4031 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4032 (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
4033 (sse2_umulv1siv1di3): New expander. Use
4034 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4035 (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
4036 (mmx_eq<mode>3): New expander. Use
4037 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4038 (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
4039 (mmx_uavgv8qi3): New expander. Use
4040 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4041 (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
4042 (mmx_uavgv4hi3): New expander. Use
4043 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4044
4045 * config/i386/sse.md
2485795e 4046 (sse_movhlps_exp): New expander. Use ix86_fixup_binary_operands
7c839b3f 4047 to handle nonimmediate operands.
2485795e 4048 (sse_movlhps_exp): New expander. Use ix86_fixup_binary_operands
7c839b3f 4049 to handle nonimmediate operands.
2485795e 4050 (sse_loadhps_exp): New expander. Use ix86_fixup_binary_operands
7c839b3f 4051 to handle nonimmediate operands.
2485795e 4052 (sse_loadlps_exp): New expander. Use ix86_fixup_binary_operands
7c839b3f 4053 to handle nonimmediate operands.
2485795e 4054 (sse2_unpckhpd_exp): New expander. Use
7c839b3f 4055 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2485795e 4056 (sse2_unpcklpd_exp): New expander. Use
7c839b3f 4057 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2485795e 4058 (sse_loadhpd_exp): New expander. Use ix86_fixup_binary_operands
7c839b3f 4059 to handle nonimmediate operands.
7c839b3f 4060 (sse_loadlpd): New expander. Use ix86_fixup_binary_operands
4061 to handle nonimmediate operands.
4062 (*sse2_<plusminus_insn><mode>3): Rename from
4063 sse2_<plusminus_insn><mode>3 insn pattern.
4064 (sse2_<plusminus_insn><mode>3): New expander. Use
4065 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4066 (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
4067 (sse2_umulv2siv2di3): New expander. Use
4068 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4069 (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
4070 (sse4_1_mulv2siv2di3): New expander. Use
4071 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4072 (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
4073 (sse2_pmaddwd): New expander. Use
4074 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4075 (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
4076 (sse2_eq<mode>3): New expander. Use
4077 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4078 (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
4079 (sse4_1_eqv2di3): New expander. Use
4080 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4081 (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
4082 (sse2_uavgv16qi3): New expander. Use
4083 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4084 (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
4085 (sse2_uavgv16qi3): New expander. Use
4086 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4087 (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
4088 (sse2_uavgv8hi3): New expander. Use
4089 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4090 (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
4091 (ssse3_pmulhrswv8hi3): New expander. Use
4092 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4093 (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
4094 (ssse3_pmulhrswv4hi3): New expander. Use
4095 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4096
4097 (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
4098 (<sse>_vmmul<mode>3): Ditto.
4099 (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
4100 (divv2df3): Ditto.
4101 (ssse3_pmaddubsw128): Use register_operand for operand 1.
4102 (ssse3_pmaddubsw): Ditto.
4103
2485795e 4104 * config/i386/i386.c (struct_builtin_description)
4105 [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
4106 [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
4107 [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
4108 [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
4109 [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
4110 [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
4111 [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
4112 [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
4113 (ix86_fixup_binary_operands): Assert that src1
7c839b3f 4114 and src2 must have the same mode when swapped.
4115 (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
4116 and ix86_binary_operator_ok. Do not force operands in registers
4117 when optimizing.
4118
c4d6511c 41192008-05-07 Jan Hubicka <jh@suse.cz>
4120
4121 * cgraph.c (dump_cgraph_node): Update.
4122 * cgraph.h (cgraph_local_info): Break out inline summary.
4123 * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
4124 hook.
4125 * ipa-inline (inline_summary): New accestor function.
4126 (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
4127 cgraph_decide_inlining, compute_inline_parameters): Update.
4128 * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
4129
3c904dda 41302008-05-07 Maxim Kuvyrkov <maxim@codesourcery.com>
4131
4132 Cleanup ColdFire scheduling support and add V4 pipeline model.
4133
4134 * config/m68k/m68k.md (UNSPEC_TIE): New constant.
4135 (define_attr cpu): Add cfv4 value.
4136 (define_attr type, define_attr type1): Merge into a single 'type'
4137 attribute. Update all uses.
4138 (define_attr opx_type, define_attr opy_type, define_attr opx_access):
4139 Rearrange and update. Rename value 'reg' to 'Rn', add value 'FPn'.
4140 Update all uses.
4141 (define_attr opx_mem, define_attr opy_mem): Remove.
4142 (define_attr op_mem): Clean up, update comment.
4143 (define_attr size): Use specific values instead of general int.
4144 (define_attr guess, define_attr split): Remove. Update all uses.
4145 (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
4146 tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
4147 movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
4148 zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
4149 68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
4150 floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
4151 fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
4152 adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
4153 add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
4154 add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
4155 sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
4156 sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
4157 mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
4158 umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
4159 mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
4160 div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
4161 one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
4162 bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
4163 beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
4164 bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
4165 symbolic_call_value_jsr, symbolic_call_value_bsr, link):
4166 Update or set attributes.
4167 (stack_tie): New fake instruction.
4168
4169 * config/m68k/m68k.h (TUNE_CFV4): New macro.
4170 (m68k_sched_attr_size): Update declaration.
4171 (m68k_sched_attr_type2): Remove.
4172 (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
4173 Declare new bypass predicates.
4174
4175 * config/m68k/m68k.c (m68k_sched_issue_rate,
4176 m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
4177 implementations.
4178 (TARGET_SCHED_ISSUE_RATE,
4179 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
4180 (override_options): Handle scheduling for ColdFire V4 core.
4181 (m68k_expand_prologue): Emit stack_tie.
4182 (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
4183 'OP_TYPE_FPN'. Update all uses.
4184 (sched_guess_p): Remove.
4185 (sched_address_type): Handle symbolic addresses.
4186 (sched_get_operand): New static function.
4187 (sched_operand_type): Merge into sched_attr_op_type.
4188 (sched_attr_op_type): Handle FP registers, handle quick constants,
4189 update.
4190 (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
4191 (m68k_sched_attr_size): Update. Move logic to ...
4192 (sched_get_attr_size_int): New static function.
4193 (sched_get_opxy_mem_type): New static function.
4194 (m68k_sched_attr_op_mem): Update.
4195 (m68k_sched_attr_type2): Remove.
4196 (sched_cfv4_bypass_data): New static variable.
4197 (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
4198 (m68k_sched_issue_rate): Implement scheduler hook.
4199 (struct _sched_ib: enabled_p): New field.
4200 (m68k_sched_variable_issue): Update. Handle V4.
4201 (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
4202 sched_dump_class_func_t, sched_dump_split_class,
4203 sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
4204 sched_dump_dfa_class, m68k_sched_dump): Remove.
4205 (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
4206 hook.
4207 (m68k_sched_init_global): Remove statisctics dumping, introduce
4208 sanity check that all instructions have pipeline reservations. Handle
4209 ColdFire V4 core.
4210 (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
4211 Handle ColdFire V4 core.
4212 (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
4213 New static functions.
4214 (m68k_sched_address_bypass_p): New bypass predicate.
4215 (sched_get_indexed_address_scale): New static function.
4216 (m68k_sched_indexed_address_bypass_p): New bypass predicate.
4217
4218 * cf.md: Update comments.
4219 (define_attr type2): Remove. Use 'type' attribute instead.
4220 Update all uses.
4221 (cf_ib): Rename to cfv123_ib. Update all uses.
4222 (cf_oep): Rename to cfv123_oep. Update all uses.
4223 (cf_chr): Rename to cfv123_chr. Update all uses.
4224 (cf_mem): Rename to cfv123_mem. Update all uses.
4225 (cf_mac): Move to more appropriate place.
4226 (cfv123_guess): New automaton and cpu_unit.
4227 (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
4228 Update uses of 'size' attribute. Handle before reload scheduling.
4229 (cfv123_guess): New dummy reservation for unhandled instructions.
4230 (cfv4_*): Pipeline description of ColdFire V4 core.
4231 (ignore): New reservation to handle 'ignore' type.
4232
7de2c0c8 42332008-05-07 Ian Lance Taylor <iant@google.com>
4234
4235 PR middle-end/36013
4236 * gimplify.c (find_single_pointer_decl_1): Don't look through
4237 indirections.
4238 (find_single_pointer_decl): Adjust comments.
4239
790368c5 42402008-05-07 Jakub Jelinek <jakub@redhat.com>
4241
7db628eb 4242 PR middle-end/36137
4243 * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
4244 STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
4245
790368c5 4246 PR middle-end/36106
4247 * omp-low.c (expand_omp_atomic_pipeline): Load value using the
4248 integral type rather than floating point, then VIEW_CONVERT_EXPR
4249 to the floating point type.
4250
790368c5 42512008-05-07 Uros Bizjak <ubizjak@gmail.com>
c08d707d 4252
4253 * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
4254 TFmode op0 to register.
4255
333adf28 42562008-05-07 Alan Modra <amodra@bigpond.net.au>
4257
4258 * c-decl.c (grokdeclarator): Comment typo.
4259
7231cbf7 42602008-05-06 Aldy Hernandez <aldyh@redhat.com>
4261
4262 * tree-flow.h: Remove prototype for computed_goto_p.
4263 * tree-cfg.c (computed_goto_p): Make static.
4264
1b57040b 42652008-05-06 H.J. Lu <hongjiu.lu@intel.com>
4266
4267 PR target/35657
4e82296c 4268 * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
1b57040b 4269 (contains_aligned_value_p): This. Handle _Decimal128.
4270 (ix86_function_arg_boundary): Only align _Decimal128 to its
4271 natural boundary and handle it properly.
4272
d60eadfa 42732008-05-06 Martin Jambor <mjambor@suse.cz>
4274
1b57040b 4275 * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
4276 (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
4277 (ipcp_method_set_orig_node): Removed.
4278 (ipcp_cval_get_cvalue_type): Removed.
4279 (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
4280 (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
4281 (ipcp_cval_set_cvalue_type): Removed.
4282 (ipcp_cval_get_cvalue): Removed.
4283 (ipcp_cval_set_cvalue): Removed.
4284 (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
4285 (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
4286 (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
4287 (ipcp_cval_meet): Renamed to ipa_lattice_meet
4288 (ipcp_cval_changed): Changed to use ipcp_lat_is_const
4289 (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
4290 (ipcp_get_ith_lattice): Changed parameters.
4291 (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
4292 (ipcp_lattice_from_jfunc): Changed parameters.
d60eadfa 4293 (ipcp_redirect): Local lattice pointer instead of lattice type variable.
4294 (ipcp_method_cval_print): Added temporary variable info.
4295 (ipcp_redirect): Removed already unused local variable caller.
4296 (ipcp_redirect): New temporary variable orig_callee_info
4297 (ipcp_redirect): Removed newly unused local variable callee.
4298 (ipcp_redirect): Removed (a bit confusing) local variable type.
4299 (ipcp_insert_stage): Added local variable info.
4300 (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
4301 renamed too
4302 (ipcp_formal_create): Removed.
4303 (ipcp_method_cval_set): Removed.
4304 (ipcp_propagate_stage): Renamed lattice variables.
4305 (ipcp_method_cval_set_cvalue_type): Removed.
4306 (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
4307 (ipcp_print_all_lattices): Changed printed strings to refer to
4308 lattices rather than cvals.
4309 (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
4310 (ipcp_propagate_const): Changed formal parameters.
4311 (build_const_val): Changed formal parameters.
4312 (ipcp_insert_stage): Removed useless variable cvalue
4313 (build_const_val): Changed formal parameters.
4314 (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
4315 (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
4316 (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
4317 (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
4318 (ipcp_print_func_profile_counts): Changed string from "method" to
4319 "function"
4320 (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
4321 (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
4322 (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
4323 (ipcp_structures_print): Renamed to ipcp_print_all_structures
4324 (ipcp_profile_print): Renamed to ipcp_print_profile_data
4325 (ipcp_lat_is_const): Changed parameters and made inline.
4326 (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
4327 (ipcp_redirect): Renamed to ipcp_need_redirect_p
4328 (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
4329 the predicate condition directly
4330 (ipcp_propagate_stage): Added local variable args. Removed local
4331 variable callee. (Both are mere code simplifications.)
4332 (ipcp_method_dont_insert_const): Renamed to
4333 ipcp_node_not_modifiable_p.
4334 (ipcp_node_not_modifiable_p): Made inline.
4335 (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
4336 (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
4337 (ipcp_print_all_lattices): Removed variable cvalue
4338 (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
4339 Updated comments.
4340
b257ce27 43412008-05-06 Olivier Hainque <hainque@adacore.com>
4342
4343 * tree-sra.c (try_instantiate_multiple_fields): Early return
4344 if field has POINTER_TYPE.
4345
f3d1e86a 43462008-05-06 Kai Tietz <kai.tietz@onevision.com>
4347
4348 * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
4349 by using 'q' specifier for instruction.
4350 (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
4351
6c87a432 43522008-05-06 Anatoly Sokolov <aesok@post.ru>
4353
4354 * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
4355 Change mode of zero_extract from QImode to HImode.
4356 (sign bit tests peepholes): (Ditto.).
4357
2886ab73 43582008-05-06 Uros Bizjak <ubizjak@gmail.com>
4359
4360 * config/i386/mmx.md: Remove double backslashes from asm templates.
4e82296c 4361 (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
2886ab73 4362 (mmx_addv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
4363 to handle nonimmediate operands.
4e82296c 4364 (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
2886ab73 4365 (mmx_mulv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
4366 to handle nonimmediate operands.
4e82296c 4367 (*mmx_<code>v2sf3_finite): New insn pattern.
4368 (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
2886ab73 4369 (mmx_<code>v2sf3): New expander. Use
4370 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4371 (mmx_<plusminus_insn><mode>3): New expander. Use
4372 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4e82296c 4373 (*mmx_<plusminus_insn><mode>3): New insn pattern.
2886ab73 4374 (mmx_add<mode>3): Removed.
4375 (mmx_ssadd<mode>3): Ditto.
4376 (mmx_usadd<mode>3): Ditto.
4377 (mmx_sub<mode>3): Ditto.
4378 (mmx_sssub<mode>3): Ditto.
4379 (mmx_ussub<mode>3): Ditto.
4e82296c 4380 (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
2886ab73 4381 (mmx_mulv4hi3): New expander. Use ix86_fixup_binary_operands_no_copy
4382 to handle nonimmediate operands.
4e82296c 4383 (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
2886ab73 4384 insn pattern.
4385 (mmx_smulv4hi3_highpart): New expander. Use
4386 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4e82296c 4387 (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
2886ab73 4388 insn pattern.
4389 (mmx_umulv4hi3_highpart): New expander. Use
4390 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4e82296c 4391 (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
2886ab73 4392 (mmx_<code>v4hi3): New expander. Use
4393 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4e82296c 4394 (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
2886ab73 4395 (mmx_<code>v8qi3): New expander. Use
4396 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4e82296c 4397 (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
2886ab73 4398 (mmx_<code><mode>3): New expander. Use
4399 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4400
0300832e 44012008-05-05 Jan Hubicka <jh@suse.cz>
4402
4403 PR tree-optimization/36118
4404 * passes.c (pass_init_dump_file): Fix dump header.
4405
6ec63422 44062008-05-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
4407
4408 PR middle-end/36141
2886ab73 4409 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
4410 VCE for function decls.
6ec63422 4411
e0b803aa 44122008-05-05 H.J. Lu <hongjiu.lu@intel.com>
4413
4414 * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
4415
801ff5b2 44162008-05-05 H.J. Lu <hongjiu.lu@intel.com>
4417
4418 * config/i386/i386.md (sat_plusminus): New.
4419 (plusminus_insn): Likewise.
4420 (plusminus_mnemonic): Likewise.
4421 (addsub): Removed.
4422 (comm): Add ss_plus, us_plus, ss_minus and us_minus.
4423 (*<addsub><mode>3_cc_overflow): Renamed to ...
4424 (*<plusminus_insn><mode>3_cc_overflow): This.
4425 (*<addsub>si3_zext_cc_overflow): Renamed to ...
4426 (*<plusminus_insn>si3_zext_cc_overflow): This.
4427
e0b803aa 4428 * config/i386/sse.md (<addsub><mode>3): Renamed to ...
801ff5b2 4429 (<plusminus_insn><mode>3): This.
4430 (*<addsub><mode>3): Renamed to ...
4431 (*<plusminus_insn><mode>3): This.
4432 (<sse>_vm<addsub><mode>3): Renamed to ...
4433 (<sse>_vm<plusminus_insn><mode>3): This.
4434 (sse3_h<addsub>v4sf3): Renamed to ...
4435 (sse3_h<plusminus_insn>v4sf3): This.
4436 (sse3_h<addsub>v2df3): Renamed to ...
4437 (sse3_h<plusminus_insn>v2df3): This.
4438 (<plusminus_insn><mode>3): New.
4439 (*<plusminus_insn><mode>3): Likewise.
4440 (sse2_<plusminus_insn><mode>3): Likewise.
4441 (add<mode>): Removed.
4442 (*add<mode>3): Likewise.
4443 (sse2_ssadd<mode>3): Likewise.
4444 (sse2_usadd<mode>3): Likewise.
4445 (sub<mode>3): Likewise.
4446 (*sub<mode>3): Likewise.
4447 (sse2_sssub<mode>3): Likewise.
4448 (sse2_ussub<mode>3): Likewise.
4449
2915f97e 44502008-05-05 Benjamin Kosnik <bkoz@redhat.com>
4451
801ff5b2 4452 * gthr-single.h: Add in required interface elements as per gthr.h.
4453 Add stub types for __gthread_key_t, __gthread_once_t. Add defines
4454 for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
4455 Generalize UNUSED macro.
4456 (__gthread_once): Add.
4457 (__gthread_key_create): Add.
2886ab73 4458 (__gthread_key_delete): Add.
801ff5b2 4459 (__gthread_getspecific): Add.
2886ab73 4460 (__gthread_setspecific): Add.
2915f97e 4461
50f39ec6 44622008-05-05 Andrew Pinski <Andrew.Pinski@playstation.sony.com>
4463
2915f97e 4464 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
4465 the same size types for the indirect reference on the rhs, then
4466 create a VCE.
50f39ec6 4467
56dffa8c 44682008-05-05 Uros Bizjak <ubizjak@gmail.com>
4469
4470 * config/i386/i386.md
4471 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
4472 one insn template instead of template series.
4473 (*xordi_1_rex64): Ditto.
4474 (*xordi_2_rex64): Ditto.
4475
960a79c4 44762008-05-05 Ira Rosen <irar@il.ibm.com>
4477
56dffa8c 4478 PR tree-optimization/36119
960a79c4 4479 * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
4480 in case of SLP.
4481
7309a3bb 44822008-06-04 Jan Hubicka <jh@suse.cz>
4483
4484 tree-optimization/36100
4485 * tree-pass.h (pass_O0_always_inline): Declare.
4486 * ipa-inline.c (inline_transform): Remove dead code.
4487 (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
4488 pass_O0_always_inline): New.
4489 * passes.c (init_optimization_passes): Add pass_O0_always_inline.
4490
a3d42209 44912008-05-04 Kai Tietz <kai.tietz@onevision.com>
4492
4493 * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
4494 mnemonic in this_param move for TARGET_64BIT.
4495
501ec29a 44962008-05-04 Uros Bizjak <ubizjak@gmail.com>
4497
4498 * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
4499 (*strmovsi_rex_1): Ditto.
4500 (*strsetsi_1): Ditto.
4501 (*strsetsi_rex_1): Ditto.
4502
4503 (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
4504 adddicc expanders using SWI mode iterator.
4505
bb157d27 45062008-05-04 H.J. Lu <hongjiu.lu@intel.com>
4507
4508 PR target/36121
501ec29a 4509 * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
4510 argument handling.
bb157d27 4511
1168681b 45122008-05-04 David S. Miller <davem@davemloft.net>
4513
4514 * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
4515 (sparc*-*-linux*): Use linux.h in tm_file.
4516 (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
4517 compiler defaulting to 32-bit.
4518 (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
4519 no longer needed.
4520 * config/sparc/linux.h: Remove definitions now obtained
4521 properly from linux.h
4522 * config/sparc/linux64.h: Likewise.
4523 (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
4524 don't want this setting for 32-bit builds in a biarch compiler.
4525 * doc/install.texi: Add sparc-linux to list of targets
4526 supporting --enable-targets=all.
4527
94f4bf58 45282008-05-03 Andrew Pinski <pinskia@gmail.com>
4529
4530 * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
4531
31f7fbf0 45322008-05-03 H.J. Lu <hongjiu.lu@intel.com>
4533
4534 * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
4535 after V4SI_FTYPE_V8HI.
4536 (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
4537 case V4SI_FTYPE_V2DF.
4538
957f873e 45392008-05-03 Kenneth Zadeck <zadeck@naturalbridge.com>
1449dbde 4540
4541 * doc/invoke.texi (max-flow-memory-locations): Removed.
4542 * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
4543
e629070d 45442008-05-03 Richard Guenther <rguenther@suse.de>
4545
4546 PR middle-end/34973
4547 * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
4548
bbb5db40 45492008-05-02 David S. Miller <davem@davemloft.net>
4550
4551 * config.gcc (need_64bit_hwint): Document libcpp dependency.
4552
8e31b4b2 45532008-05-02 Simon Baldwin <simonb@google.com>
4554
4555 PR bootstrap/36108
4556 * c-common.h (warn_array_subscript_range): Removed.
4557 * c-common.c (warn_array_subscript_range): Ditto.
4558 * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
4559 * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
4560
875a66b2 45612008-05-02 H.J. Lu <hongjiu.lu@intel.com>
4562
4563 * config/i386/i386.c (ix86_special_builtin_type): New.
4564 (bdesc_special_args): Likewise.
4565 (ix86_expand_special_args_builtin): Likewise.
4566 (ix86_init_mmx_sse_builtins): Updated.
4567 (ix86_expand_builtin): Updated.
4568 (ix86_expand_store_builtin): Removed.
4569 (ix86_expand_unop_builtin): Likewise.
4570
4571 * config/i386/mm3dnow.h (__v2sf): Moved to ...
4572 * config/i386/mmintrin.h (__v2sf): Here.
4573
4574 * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
4575 const __v2sf.
4576 (_mm_loadl_pi): Likewise.
4577 (_mm_storeh_pi): Replace __v2si with __v2sf.
4578 (_mm_storel_pi): Likewise.
4579
4580 * doc/extend.texi: Correct __builtin_ia32_loadhps,
4581 __builtin_ia32_loadlps, __builtin_ia32_storehps,
4582 __builtin_ia32_storelps, __builtin_ia32_loadhpd and
4583 __builtin_ia32_loadlpd.
4584
45852008-05-02 H.J. Lu <hongjiu.lu@intel.com>
4586
4587 * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
4588 V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
4589 (bdesc_args): Updated. Add scalar SSE builtins with vec_merge.
4590 (ix86_init_mmx_sse_builtins): Updated.
4591 (ix86_expand_args_builtin): Likewise.
4592 (ix86_expand_builtin): Likewise.
4593 (ix86_expand_unop1_builtin): Renamed to ...
4594 (ix86_expand_unop_vec_merge_builtin): This.
4595
fba7ae09 45962008-05-01 Jan Hubicka <jh@suse.cz>
4597
4598 PR bootstrap/36100
4599 * ipa-inline.c (inline_generate_summary): Make static.
4600 (inline_transform): Do not call inlining at -O0; make static.
4601 * passes.c (execute_todo): Add sanity check.
4602 (execute_one_ipa_transform_pass): Execute proper flags.
4603
c67bf066 46042008-05-01 Eric Botcazou <ebotcazou@adacore.com>
4605
4606 * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
4607 (DECL_NONADDRESSABLE_P): Likewise.
4608 * alias.c (record_component_aliases): Fix comment.
4609
98cb064a 46102008-05-01 Simon Baldwin <simonb@google.com>
4611
4612 * c-common.h (warn_array_subscript_range): New function.
4613 * c-common.c (warn_array_subscript_range): Ditto.
4614 * tree-vrp.c (check_array_ref): Corrected code to agree with
4615 comment, ignoring only arrays of size 0 or size 1.
4616 * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
4617
49698f18 46182008-05-01 H.J. Lu <hongjiu.lu@intel.com>
4619
4620 * config/i386/i386.c (ix86_builtin_type): Replace
4621 DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
4622 (bdesc_args): Updated.
4623 (ix86_init_mmx_sse_builtins): Likewise.
4624 (ix86_expand_args_builtin): Likewise.
4625
4626 * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
4627 with __v1di.
4628
4629 * doc/extend.texi: Correct __builtin_ia32_palignr.
4630
2424d00f 46312008-05-01 H.J. Lu <hongjiu.lu@intel.com>
4632
4633 PR target/36095
4634 * config/i386/i386.c (bdesc_crc32): Removed.
4635 (ix86_expand_crc32): Likewise.
4636 (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
4637 V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
4638 V2DI2TI_FTYPE_V2DI_V2DI_INT. Add UINT64_FTYPE_UINT64_UINT64,
4639 UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
4640 UINT_FTYPE_UINT_UCHAR.
4641 (bdesc_args): Updated. Add crc32 builtins.
4642 (ix86_init_mmx_sse_builtins): Updated.
4643 (ix86_expand_args_builtin): Updated to support subreg.
4644
4645 * doc/extend.texi: Correct __builtin_ia32_crc32di.
4646
68e3904e 46472008-05-01 Jan Hubicka <jh@suse.cz>
4648
4649 * tree-pass.h (opt_pass): Add IPA_PASS.
4650 (varpool_node, cgraph_node): Forward declare.
4651 (ipa_opt_pass): Define.
4652 (pass_ipa_inline): Turn into ipa_opt_pass.
4653 (pass_apply_inline): Remove.
4654 * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
4655 (apply_inline): Turn into ....
4656 (inline_transform): ... this one.
4657 (inline_generate_summary): New function.
4658 (pass_apply_inline): Remove.
4659 * function.h (ipa_opt_pass): Forward declare structure; typedef;
4660 vector.
4661 (struct function): Add ipa_transforms_to_apply.
4662 * passes.c (register_one_dump_file): Work on IPA_PASS.
4663 (init_optimization_passes): Remove pass_inline_parameters and
4664 pass_apply_inline.
4665 (pass_init_dump_file, pass_fini_dump_file): Break out from ....
4666 (execute_one_pass) ... here; apply transforms when possible.
4667 (add_ipa_transform_pass, execute_ipa_summary_asses,
4668 execute_one_ipa_transform_pass): New.
4669 (execute_ipa_pass_list): Update for IPA_PASS type.
4670
95a18f4e 46712008-05-01 H.J. Lu <hongjiu.lu@intel.com>
4672
4673 * config/i386/i386.c (ix86_builtin_type): Add
4674 V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
4675 V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
4676 (bdesc_args): Add SSE4a builtins.
4677 (ix86_init_mmx_sse_builtins): Updated.
4678 (ix86_expand_args_builtin): Likewise.
4679 (ix86_expand_builtin): Likewise.
4680
30063220 46812008-05-01 H.J. Lu <hongjiu.lu@intel.com>
4682
4683 * config/i386/i386.c (ix86_builtin_type): Add
4684 V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
4685 V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
4686 V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
4687 V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
4688 V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
4689 V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
4690 V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
4691 V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
4692 and DI_FTYPE_DI_DI_INT.
4693 (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
4694 (ix86_init_mmx_sse_builtins): Updated.
4695 (ix86_expand_args_builtin): Likewise.
4696 (ix86_expand_builtin): Likewise.
4697 (ix86_expand_binop_imm_builtin): Removed.
4698
4699 * doc/extend.texi: Correct __builtin_ia32_palignr128.
4700
acc0a673 47012008-04-30 Richard Guenther <rguenther@suse.de>
4702
4703 PR tree-optimization/32921
4704 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
4705
6025a5e6 47062008-04-30 Richard Sandiford <rsandifo@nildram.co.uk>
4707
4708 * config/arm/arm.c (arm_unwind_emit): Use
4709 crtl->all_throwers_are_sibcalls instead of
4710 cfun->all_throwers_are_sibcalls.
4711 (arm_output_fn_unwind): Likewise.
4712 * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
4713 instead of cfun->uses_pic_offset_table.
4714 (frv_expand_prologue): Likewise.
4715 (frv_frame_pointer_required): Likewise.
4716 (frv_expand_fdpic_call): Likewise.
4717 (frv_emit_movsi): Likewise.
4718 * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
4719 cfun->returns_pcc_struct instead of
4720 current_function_returns_pcc_struct.
4721 * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
4722 instead of cfun->calls_eh_return.
4723 (m32c_pushm_popm): Likewise.
4724 * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
4725 "extern" declaration.
4726
912f109f 47272008-04-30 Richard Guenther <rguenther@suse.de>
4728
4729 PR tree-optimization/21636
4730 * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
4731 constant address.
4732 (evaluate_stmt): Print the likely value.
4733 (ccp_visit_stmt): Avoid excessive vertical spacing.
4734
55c10931 47352008-04-30 Rafael Espindola <espindola@google.com>
4736
4737 * builtins.c (fold_call_expr): Return realret.
4738 * tree-ssa-threadedge.c
4739 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
4740 __builtin_object_size.
4741
0bfd146e 47422008-04-30 Seongbae Park <seongbae.park@gmail.com>
4743
4744 * gcc.c (wrapper_string): New variable.
4745 (insert_wrapper): New function.
4746 (execute): New option -wrapper.
4747 * doc/invoke.texi (Overall Options): New driver option -wrapper.
4748
19872d0b 47492008-04-30 Nathan Froyd <froydnj@codesourcery.com>
4750
501ec29a 4751 * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
4752 config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
4753 config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
4754 from...
4755 * config/rs6000/crtsavres.asm: ...here. Remove unneeded file.
4756 * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
4757 config/rs6000/e500crtres64gprctr.asm,
4758 config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
4759 config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
4760 config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
4761 config/rs6000/e500crtsav64gprctr.asm,
4762 config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
4763 config/rs6000/e500crtsavg64gprctr.asm: New files.
4764 * config/rs6000/t-ppccomm: Add build rules for new files.
4765 (LIB2FUNCS_STATIC_EXTRA): Add new files.
4766 * config/rs6000/t-netbsd: Add build rules for new files.
4767 (LIB2FUNCS_STATIC_EXTRA): New variable.
4768 * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
4769 (CRTSAVRES_DEFAULT_SPEC): Likewise.
4770 * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
19872d0b 4771
6f50184d 47722008-04-30 H.J. Lu <hongjiu.lu@intel.com>
4773
4774 * config/i386/i386.c (ix86_builtin_type): Add
4775 FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
4776 V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
4777 V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
4778 V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
4779 V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
4780 V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
4781 V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
4782 V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
4783 V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
4784 V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
4785 V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
4786 V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
4787 V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
4788 V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
4789 V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
4790 V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
4791 V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
4792 V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
4793 V1DI_FTYPE_V2SI_V2SI.
4794 (bdesc_2arg): Moved to ...
4795 (bdesc_args): Here.
4796 (ix86_init_mmx_sse_builtins): Updated.
4797 (ix86_expand_args_builtin): Updated. Take a pointer
4798 to const struct builtin_description. Handle comparison
4799 builtin functions.
501ec29a 4800 (ix86_expand_sse_compare): Take a new argument for swapping operands.
6f50184d 4801 (ix86_expand_builtin): Updated.
4802
4803 * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
4804 (ssse3_pmaddubsw128): This.
4805 (ssse3_pmaddubswv4hi3): Renamed to ...
4806 (ssse3_pmaddubsw): This.
4807
501ec29a 4808 * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
6f50184d 4809 (__builtin_ia32_packssdw128): Likewise.
501ec29a 4810 (__builtin_ia32_packuswb128): Likewise.
6f50184d 4811 (__builtin_ia32_pmaddubsw): Likewise.
4812 (__builtin_ia32_pmaddubsw128): Likewise.
4813
c9686d06 48142008-04-30 Richard Guenther <rguenther@suse.de>
4815
4816 PR tree-optimization/14847
4817 * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
4818 (recognize_bits_test): Use it.
4819 (recognize_single_bit_test): Likewise.
4820
1fc19b80 48212008-04-30 Martin Jambor <mjambor@suse.cz>
4822
4823 * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
4824 instead of setting number of formal parameters to zero.
4825 (ipcp_init_stage): Do not set the number of actual parameters to zero
4826 either.
4827 (ipcp_propagate_stage): Explicitly skipping all calls to nodes
4828 which are called with variable number of arguments.
4829 (ipcp_insert_stage): Explicitely skipping all nodes which are
4830 called with variable number of arguments.
4831 (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
4832 number of parameters.
4833
4834 * ipa-prop.h (struct ipa_node_params): Added flag
4835 called_with_var_arguments
4836 (ipa_set_param_count): Added. Changed sole setter to use it.
4837 (ipa_get_param_count): Added. All readers of param_count
4838 converted to use it instead.
4839 (ipa_set_called_with_variable_arg): Added.
4840 (ipa_is_called_with_var_arguments): Added.
4841 (ipa_get_ith_param): Added. All readers of param_decls converted
4842 to use it instead.
4843 (ipa_set_cs_argument_count): Added, sole writer to argument_count
4844 changed to use it.
4845 (ipa_get_cs_argument_count): Added, all readers of argument_count
4846 changed to cal it.
4847 (ipa_get_ith_jump_func): Added. Accessors of jump values changed
4848 to use it.
4849
4850 * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
4851 (struct ipcp_lattice): Renamed cval_type to type
4852 (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
4853
4854 * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
4855 (ipcp_cval_set_cvalue): Changed type of parameter value to tree
4856 (ipcp_insert_stage): Changed the type of variable cvalue to tree
4857 (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
4858 (build_const_val): Changed the type of parameter cvalue to tree
4859 (ipcp_propagate_const): Changed the type of parameter cvalue to tree
4860 (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
4861
4862 * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
4863 constant
4864
4865 * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
4866 (ipa_methodlist_not_empty): Removed, the sole user now checks directly
4867 (ipa_add_method): Renamed to ipa_push_func_to_list
4868 (ipa_remove_method): Renamed to ipa_pop_func_from_list
4869 (ipa_callsite_param_count): Removed.
4870 (ipa_callsite_param_count_set): Removed.
4871 (ipa_callsite_param): Removed.
4872 (ipa_callsite_callee): Removed.
4873 (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
4874 (ipa_callsite_compute_count): Renamed to ipa_count_arguments
4875 (ipa_method_formal_count): Removed.
4876 (ipa_method_formal_count_set): Removed.
4877 (ipa_method_get_tree): Removed.
4878 (ipa_method_tree_map_create): Removed.
4879 (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
4880 (ipa_create_param_decls_array): Creates the array itself
4881 (ipa_create_param_decls_array): Temporary variable info instead of
4882 a few dereferences.
4883 (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
4884 (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
4885 (get_type): Removed.
4886 (ipa_jf_get_info_type): Removed.
4887 (ipa_node_create): Renamed to ipa_create_node_params
4888 (ipa_free): Renamed to ipa_free_all_node_params
4889 (ipa_nodes_create): Renamed to ipa_create_all_node_params
4890 (ipa_edges_create): Renamed to ipa_create_all_edge_args
4891 (ipa_edges_free): Renamed to ipa_free_all_edge_args
4892 (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
4893 (ipa_free_all_node_params): Deallocation to jump_functions moved to
4894 ipa_free_all_edge_args
4895 (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
4896 (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
4897 (ipa_create_methodlist_node): Removed.
4898 (ipa_methodlist_method): Removed.
4899 (ipa_methodlist_method_set): Removed.
4900 (ipa_methodlist_next_method): Removed.
4901 (ipa_methodlist_next_method_set): Removed.
4902 (ipa_method_is_modified): Removed.
4903 (ipa_method_modify_create): Removed.
4904 (ipa_method_modify_init): Temporary variable info instead of a few
4905 dereferences.
4906 (ipa_detect_param_modifications): Temporary variable info instead of
4907 a few dereferences.
4908 (ipa_compute_jump_functions): Temporary variable info instead of
4909 a few dereferences.
4910 (ipa_method_modify_set): Removed.
4911 (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
4912 (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
4913 than craph_node as the first parameter.
4914 (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
4915 (ipa_method_modify_init): Removed.
4916 (ipa_compute_jump_functions): Added a temp variable instead of
4917 repeatadly dereferencing the cgraph_edge.aux pointer
4918 (ipa_callsite_param_set_type): Removed.
4919 (ipa_compute_jump_functions): i renamed to index and moved to
4920 an inner block
4921 (ipa_callsite_param_set_info_type_formal): Removed.
4922 (ipa_callsite_param_set_info_type): Removed.
4923 (ipa_callsite_param_map_create): Removed.
4924 (ipa_callsite_tree): Removed.
4925 (ipa_callsite_caller): Removed.
4926 (ipa_pop_func_from_list): return_method removed to return_func
4927
4928 * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
4929 prefixed all values with IPA_. Changed all users.
4930 (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
4931 CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
4932 and FORMAL_IPATYPE IPA_PASS_THROUGH.
4933 (union parameter_info): Renamed to jump_func_value.
4934 (union jump_func_value): Renamed value to constant
4935 (struct ipa_jump_func): Renamed info_type to value
4936 (struct ipa_node): Renamed to ipa_node_params
4937 (struct ipa_node_params): Renamed ipa_arg_num to param_count
4938 (struct ipa_node_params): Renamed ipa_param_tree to param_decls
4939 (struct ipa_node_params): Renamed ipa_mod to modified_flags
4940 (struct ipa_edge): Renamed to ipa_edge_args
4941 (struct ipa_edge_args): Renamed ipa_param_num to argument_count
4942 (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
4943 (struct ipa_methodlist): Renamed to ipa_func_list
4944 (struct ipa_func_list): method_p renamed to node, next_method
4945 renamed to next
4946 (ipa_methodlist_p): Removed, switched all users to struct pointer
4947 (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
4948
cd30e128 49492008-04-30 Alan Modra <amodra@bigpond.net.au>
4950
4951 * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
4952 (rs6000_emit_epilogue): Use backchain to restore only when we
4953 have a large frame. Make use of frame pointer to restore if we
4954 have one. Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
4955
f005400e 49562008-04-29 Paolo Bonzini <bonzini@gnu.org>
4957
4958 * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
4959 Add mode to zero_extract.
4960 (sign bit tests peepholes): (Ditto.).
4961
ea4dd78d 49622008-04-29 H.J. Lu <hongjiu.lu@intel.com>
4963
4964 * config/i386/i386.c (ix86_builtins): Replace Prescott New
4965 Instructions in comments with SSE3.
4966 (ix86_builtin_type): This. Add FLOAT128_FTYPE_FLOAT128,
4967 INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
4968 INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
4969 V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
4970 V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
4971 V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
4972 V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
4973 V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
4974 V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
4975 V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
4976 V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
4977 V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
4978 (bdesc_sse_args): Renamed to ...
4979 (bdesc_args): This. Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
4980 IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
4981 IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
4982 IX86_BUILTIN_FABSQ.
4983 (bdesc_1arg): Moved to ...
4984 (bdesc_args): Here.
4985 (ix86_init_mmx_sse_builtins): Updated. Replace Prescott New
4986 Instructions in comments with SSE3.
4987 (ix86_expand_sse_operands_builtin): Renamed to ...
4988 (ix86_expand_args_builtin): This. Updated.
4989 (ix86_expand_unop1_builtin): Update comments.
4990 (ix86_expand_builtin): Updated.
4991
b2a225ba 49922008-04-29 Richard Guenther <rguenther@suse.de>
4993
4994 PR tree-optimization/36078
4995 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
4996 Update virtual SSA form after cleaning up the CFG.
4997
f4cd9b29 49982008-04-29 Richard Guenther <rguenther@suse.de>
4999
5000 PR middle-end/15255
5001 * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
5002
d0cfbbf2 50032008-04-29 Richard Guenther <rguenther@suse.de>
5004
5005 * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
5006 (compute_may_aliases): Do not call finalize_ref_all_pointers.
5007 (compute_flow_insensitive_aliasing): Do not treat
5008 PTR_IS_REF_ALL pointers special.
5009 (get_smt_for): Likewise.
5010 (may_alias_p): Re-structure.
5011 (is_escape_site): A ref-all pointer conversion is not an escape site.
5012 * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
5013 PTR_IS_REF_ALL pointers special.
5014 * tree-ssa-structalias.h (struct alias_info): Remove
5015 ref_all_symbol_mem_tag field.
5016 (PTR_IS_REF_ALL): Remove.
5017
c79abec2 50182008-04-29 Richard Guenther <rguenther@suse.de>
5019
5020 PR middle-end/36077
5021 * fold-const.c (extract_muldiv_1): In combining division constants
5022 make sure to never overflow.
5023
d458baea 50242008-04-29 Nick Clifton <nickc@redhat.com>
5025
5026 * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
5027
13c2c394 50282008-04-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5029
5030 PR bootstrap/35169
5031 * optc-gen.awk: Work around HP-UX/IA awk bug.
5032
f6ecd416 50332008-04-28 Danny Smith <dannysmith@users.sourceforge.net>
5034
5035 * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
5036 2008-04-25 commit.
5037
e263da54 50382008-04-28 Uros Bizjak <ubizjak@gmail.com>
5039
5040 PR target/36073
5041 * config/i386/i386.md
5042 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
5043 Change operand 1 predicate to nonimmediate_operand.
5044
ae093573 50452008-04-28 Jakub Jelinek <jakub@redhat.com>
5046
5047 PR debug/36060
5048 * dwarf2out.c (struct die_struct): Mark as chain_circular through
5049 die_sub field.
5050 * gengtype.c (walk_type, write_func_for_structure): Handle
5051 chain_circular.
5052 * doc/gty.texi: Document chain_circular.
5053
b06d96b5 50542008-04-28 Richard Guenther <rguenther@suse.de>
5055
5056 PR tree-optimization/36066
5057 * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
5058 SCEV and loop.
5059
a369a55c 50602008-04-28 Uros Bizjak <ubizjak@gmail.com>
5061
5062 PR target/36064
e263da54 5063 * config/i386/i386.md
5064 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
a369a55c 5065 Use match_scratch instead of match_operand for operands 3 and 4.
5066
d88fd237 50672008-04-27 Richard Guenther <rguenther@suse.de>
5068
5069 PR tree-optimization/18754
5070 PR tree-optimization/34223
5071 * tree-pass.h (pass_complete_unrolli): Declare.
5072 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
5073 loop size before and after unconditionally of UL_NO_GROWTH in effect.
5074 Rewrite loop into loop closed SSA form if it is not already.
5075 (tree_unroll_loops_completely): Re-structure to iterate over
5076 innermost loops with intermediate CFG cleanups.
5077 Unroll outermost loops only if requested or the code does not grow
5078 doing so.
5079 * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
5080 loops are available.
5081 (tree_vectorize): Instead do so here.
5082 (tree_complete_unroll): Also unroll outermost loops.
5083 (tree_complete_unroll_inner): New function.
5084 (gate_tree_complete_unroll_inner): Likewise.
5085 (pass_complete_unrolli): New pass.
5086 * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
5087 uses outside of the loop.
5088 (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
5089 form if it is available.
5090 * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
5091 * passes.c (init_optimization_passes): Schedule complete inner
5092 loop unrolling pass before the first CCP pass after final inlining.
5093
38475469 50942008-04-27 Nathan Sidwell <nathan@codesourcery.com>
5095
5096 * targhooks.h (default_emutls_var_fields,
5097 default_emutls_var_init): Declare.
5098 * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
5099 * target.h (struct gcc_target): Add struct emutls member.
5100 * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
5101 TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
5102 TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
5103 TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
5104 TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
5105 TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
5106 (TARGET_INITIALIZER): Add TARGET_EMUTLS.
5107 * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
5108 BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
5109 * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
5110 emit debug information.
5111 * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
5112 * varasm.c: Include targhooks.h.
5113 (emutls_object_section, emutls_tmpl_section): New.
5114 (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
5115 (EMUTLS_SEPARATOR): New.
5116 (prefix_name): New.
5117 (get_emutls_object_name): New.
5118 (default_emutls_var_fields): New, broken out of ...
5119 (get_emutls_object_type): ... here. Adjust to use target hooks.
5120 (get_emutls_init_templ_addr): Adjust to use target hooks.
5121 (emutls_decl): Adjust to use target hooks.
5122 (emutls_finish): Likewise.
5123 (default_emutls_var_init): New, broken out of ...
5124 (assemble_variable): ... here. Adjust to use target hooks.
5125 * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
5126 SECCAT_EMUTLS_TMPL.
5127 * c-common.c (handle_section_attribute): Prevent overriding
5128 sections for emulated tls with special sections.
5129 * config/i386/i386.c (x86_64_elf_select_section): Add
5130 SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
5131 (x86_64_elf_unique_section): Likewise.
5132 * config/vxworks.c: Include tree.h.
5133 (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
5134 (vxworks_override_options): Set TLS scheme.
ae093573 5135 * doc/tm.texi (Emulated TLS): New node.
38475469 5136
7e3b64b4 51372008-04-26 Simon Baldwin <simonb@google.com>
5138
5139 PR c/35652
5140 * builtins.c (c_strlen): Suppressed multiple warnings that can occur
5141 with propagated string constants.
5142
500d8ed2 51432008-04-26 Uros Bizjak <ubizjak@gmail.com>
5144
5145 * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
5146 constraint for operand 2 when operand 0 is memory operand.
5147 (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
5148 operand 0 is memory operand.
5149 (fix_trunc<mode>_i387_with_temp): Ditto.
5150 (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
5151 operand 2 when operand 1 is memory operand.
5152 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
5153 (*floatsi<mode>2_vector_sse_with_temp): Ditto.
5154 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
5155 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
5156 (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
5157 operands 2,3 and 4 when operand 1 is memory operand.
5158 (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
5159 is memory operand.
5160 (fistdi2_floor_with_temp): Ditto.
5161 (fist<mode>2_floor_with_temp): Ditto.
5162 (fistdi2_ceil_with_temp): Ditto.
5163 (fist<mode>2_ceil_with_temp): Ditto.
5164 (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
5165
346c9aaf 51662008-04-26 David Daney <ddaney@avtrex.com>
5167
5168 * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
5169 unspec_volitile.
5170 (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
5171 UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
5172 UNSPEC_UPDATE_GOT_VERSION): Renumber.
5173 (sync_compare_and_swap<mode>): New expand for QI and HI modes.
5174 (compare_and_swap_12): New insn.
5175 * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
5176 * config/mips/mips.c (mips_force_binary): New function.
5177 (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
5178 (mips_expand_compare_and_swap_12): New function.
5179 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
5180
18d50ae6 51812008-04-25 Jan Hubicka <jh@suse.cz>
5182
5183 PR testsuite/35843
5184 * cfgexpand.c (pass_expand): Turn into RTL pass.
5185 * passes.c (execute_one_pass): Do pass typechecking after execution.
5186 * tree-pass.h (pass_expand): Turn into RTL pass.
5187
5188 * function.h (struct rtl_data): Move here fields
5189 accesses_prior_frames, calls_eh_return, saves_all_registers,
5190 has_nonlocal_goto, has_asm_statement, is_thunk,
5191 all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
5192 uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
5193 arg_pointer_save_area_init from struct function; turn into bool.
5194 (struct function): Move
5195 calls_eh_return, saves_all_registers, has_nonlocal_goto,
5196 has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
5197 profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
5198 tail_call_emit, arg_pointer_save_area_init
5199 into struct rtl_data. Remove recursive_call_emit and gimplified flags.
5200 (current_function_returns_struct, current_function_returns_pcc_struct,
5201 current_function_calls_setjmp, current_function_calls_alloca,
5202 current_function_accesses_prior_frames,
5203 current_function_calls_eh_return, current_function_is_thunk,
5204 current_function_stdarg, current_function_profile,
5205 current_function_limit_stack, current_function_uses_pic_offset_table,
5206 current_function_uses_const_pool, current_function_has_nonlocal_label,
5207 current_function_saves_all_registers,
5208 current_function_has_nonlocal_goto,
5209 current_function_has_asm_statement): Remove accesor macros.
5210 * ra-conflict.c (global_conflicts): Update.
5211 * tree-tailcall.c (suitable_for_tail_opt_p): Update.
5212 (suitable_for_tail_call_opt_p): Update.
5213 * builtins.c (expand_builtin_return_addr): Update.
5214 (expand_builtin_setjmp_setup): Update.
5215 (expand_builtin_nonlocal_goto): Update.
5216 * final.c (final_start_function): Update.
5217 (profile_function): Update.
5218 (leaf_function_p): Update.
5219 (only_leaf_regs_used): Update.
5220 * df-scan.c (df_get_exit_block_use_set): Update.
5221 * dojump.c (clear_pending_stack_adjust): Update.
5222 * tree-stdarg.c (gate_optimize_stdarg): Update.
5223 * gimple-low.c (lower_function_body): Update.
5224 * global.c (compute_regsets): Update.
5225 (global_alloc): Update.
5226 * dwarf2out.c (dwarf2out_begin_prologue): Update.
5227 * expr.c (expand_assignment): Update.
5228 * dse.c (dse_step0): Update.
5229 (dse_step1): Update.
5230 * c-decl.c (store_parm_decls): Update.
5231 * local-alloc.c (combine_regs): Update.
5232 (find_free_reg): Update.
5233 * function.c (assign_parms_augmented_arg_list): Update.
5234 (assign_parm_find_data_types): Update.
5235 (assign_parms): Update.
5236 (allocate_struct_function): Update.
5237 (expand_function_start): Update.
5238 (expand_function_end): Update.
5239 (get_arg_pointer_save_area): Update.
5240 (thread_prologue_and_epilogue_insns): Update.
5241 (rest_of_match_asm_constraints): Update.
5242 * stor-layout.c (variable_size): Update.
5243 * gcse.c (gcse_main): Update.
5244 (bypass_jumps): Update.
5245 * gimplify.c (gimplify_function_tree): Update.
5246 * calls.c (emit_call_1): Update.
5247 (expand_call): Update.
5248 * bt-load.c (compute_defs_uses_and_gen): Update.
5249 * except.c (sjlj_assign_call_site_values): Update.
5250 (sjlj_emit_function_enter): Update.
5251 (can_throw_external): Update.
5252 (set_nothrow_function_flags): Update.
5253 (expand_builtin_unwind_init): Update.
5254 (expand_eh_return): Update.
5255 (convert_to_eh_region_ranges): Update.
5256 (output_function_exception_table): Update.
5257 * emit-rtl.c (gen_tmp_stack_mem): Update.
5258 * cfgexpand.c (expand_used_vars): Update.
5259 (tree_expand_cfg): Update.
5260 * cfgcleanup.c (rest_of_handle_jump): Update.
5261 * explow.c (allocate_dynamic_stack_space): Update.
5262 * varasm.c (assemble_start_function): Update.
5263 (force_const_mem): Update.
5264 (mark_constant_pool): Update.
5265 * tree-optimize.c (tree_rest_of_compilation): Update.
5266 * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
5267 * tree-cfg.c (notice_special_calls): Update.
5268 (is_ctrl_altering_stmt): Update.
5269 (tree_can_make_abnormal_goto): Update.
5270 (tree_purge_dead_abnormal_call_edges): Update.
5271 * config/alpha/predicates.md: Update.
5272 * config/alpha/alpha.c (alpha_sa_mask): Update.
5273 (alpha_sa_size): Update.
5274 (alpha_does_function_need_gp): Update.
5275 (alpha_expand_prologue): Update.
5276 (alpha_start_function): Update.
5277 (alpha_output_function_end_prologue): Update.
5278 (alpha_expand_epilogue): Update.
5279 * config/frv/frv.c (frv_stack_info): Update.
5280 (frv_expand_epilogue): Update.
5281 * config/s390/s390.c (s390_regs_ever_clobbered): Update.
5282 (s390_register_info): Update.
5283 (s390_frame_info): Update.
5284 (s390_init_frame_layout): Update.
5285 (s390_can_eliminate): Update.
5286 (save_gprs): Update.
5287 * config/spu/spu.c (spu_split_immediate): Update.
5288 (need_to_save_reg): Update.
5289 (spu_expand_prologue): Update.
5290 (spu_expand_epilogue): Update.
5291 * config/sparc/sparc.md: Update.
5292 * config/sparc/sparc.c (eligible_for_return_delay): Update.
5293 (sparc_tls_got): Update.
5294 (legitimize_pic_address): Update.
5295 (sparc_emit_call_insn): Update.
5296 (sparc_expand_prologue): Update.
5297 (output_return): Update.
5298 (print_operand): Update.
5299 (sparc_function_ok_for_sibcall): Update.
5300 * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
5301 * config/m32r/m32r.md: Update.
5302 * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
5303 (m32r_compute_frame_size): Update.
5304 (m32r_expand_prologue): Update.
5305 (m32r_expand_epilogue): Update.
5306 (m32r_legitimize_pic_address): Update.
5307 * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
5308 * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
5309 * config/i386/i386.c (ix86_frame_pointer_required): Update.
5310 (gen_push): Update.
5311 (ix86_save_reg): Update.
5312 (ix86_compute_frame_layout): Update.
5313 (ix86_expand_prologue): Update.
5314 (ix86_expand_epilogue): Update.
5315 * config/sh/sh.c (output_stack_adjust): Update.
5316 (calc_live_regs): Update.
5317 (sh5_schedule_saves): Update.
5318 (sh_expand_prologue): Update.
5319 (sh_expand_epilogue): Update.
5320 (sh_setup_incoming_varargs): Update.
5321 (sh_allocate_initial_value): Update.
5322 (sh_get_pr_initial_val): Update.
5323 * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
5324 * config/sh/sh.md (label:): Update.
5325 * config/avr/avr.c (out_movhi_mr_r): Update.
5326 * config/crx/crx.h (enum): Update.
5327 * config/xtensa/xtensa.h (along): Update.
5328 * config/stormy16/stormy16.c Update.
5329 (xstormy16_compute_stack_layout): Update.
5330 * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
5331 (fr30_expand_prologue): Update.
5332 * config/cris/cris.c (cris_conditional_register_usage): Update.
5333 (cris_reg_saved_in_regsave_area): Update.
5334 (cris_initial_frame_pointer_offset): Update.
5335 (cris_simple_epilogue): Update.
5336 (cris_expand_prologue): Update.
5337 (cris_expand_epilogue): Update.
5338 (cris_expand_pic_call_address): Update.
5339 (cris_asm_output_symbol_ref): Update.
5340 (cris_asm_output_label_ref): Update.
5341 * config/cris/cris.md Update.
5342 * config/iq2000/iq2000.c (compute_frame_size): Update.
5343 (iq2000_expand_epilogue): Update.
5344 * config/mt/mt.h (save_direction): Update.
5345 * config/mn10300/mn10300.c (mn10300_function_value): Update.
5346 * config/ia64/ia64.c (ia64_compute_frame_size): Update.
5347 (ia64_secondary_reload_class): Update.
5348 * config/m68k/m68k.c (m68k_save_reg): Update.
5349 (m68k_expand_prologue): Update.
5350 (m68k_expand_epilogue): Update.
5351 (legitimize_pic_address): Update.
5352 * config/rs6000/rs6000.c (rs6000_got_register): Update.
5353 (first_reg_to_save): Update.
5354 (first_altivec_reg_to_save): Update.
5355 (compute_vrsave_mask): Update.
5356 (compute_save_world_info): Update.
5357 (rs6000_stack_info): Update.
5358 (spe_func_has_64bit_regs_p): Update.
5359 (rs6000_ra_ever_killed): Update.
5360 (rs6000_emit_eh_reg_restore): Update.
5361 (rs6000_emit_allocate_stack): Update.
5362 (rs6000_emit_prologue): Update.
5363 (rs6000_emit_epilogue): Update.
5364 (rs6000_output_function_epilogue): Update.
5365 (output_profile_hook): Update.
5366 (rs6000_elf_declare_function_name): Update.
5367 * config/rs6000/rs6000.h (rs6000_args): Update.
5368 * config/rs6000/rs6000.md: Update.
5369 * config/mcore/mcore.c (mcore_expand_prolog): Update.
5370 * config/arc/arc.c (arc_output_function_epilogue): Update.
5371 * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
5372 * config/darwin.c (machopic_function_base_name): Update.
5373 * config/score/score3.c (score3_compute_frame_size): Update.
5374 (rpush): Update.
5375 (rpop): Update.
5376 (score3_epilogue): Update.
5377 * config/score/score7.c (score7_compute_frame_size): Update.
5378 (score7_prologue): Update.
5379 (score7_epilogue): Update.
5380 * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
5381 * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
5382 * config/arm/arm.c (use_return_insn): Update.
5383 (require_pic_register): Update.
5384 (arm_load_pic_register): Update.
5385 (arm_compute_save_reg0_reg12_mask): Update.
5386 (arm_compute_save_reg_mask): Update.
5387 (thumb1_compute_save_reg_mask): Update.
5388 (output_return_instruction): Update.
5389 (arm_output_function_prologue): Update.
5390 (arm_output_epilogue): Update.
5391 (arm_get_frame_offsets): Update.
5392 (arm_expand_prologue): Update.
5393 (thumb_pushpop): Update.
5394 (thumb_exit): Update.
5395 (thumb1_expand_prologue): Update.
5396 (thumb1_expand_epilogue): Update.
5397 (arm_unwind_emit): Update.
5398 (arm_output_fn_unwind): Update.
5399 * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
5400 * config/arm/arm.md: Update.
5401 * config/pa/pa.md: Update.
5402 * config/pa/pa.c (legitimize_pic_address): Update.
5403 (compute_frame_size): Update.
5404 (hppa_expand_prologue): Update.
5405 (hppa_expand_epilogue): Update.
5406 (borx_reg_operand): Update.
5407 * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
5408 (HARD_REGNO_RENAME_OK): Update.
5409 * config/mips/mips.c (mips_global_pointer): Update.
5410 (mips_save_reg_p): Update.
5411 (mips_compute_frame_info): Update.
5412 (mips_frame_pointer_required): Update.
5413 (mips_expand_prologue): Update.
5414 (mips_expand_epilogue): Update.
5415 (mips_can_use_return_insn): Update.
5416 (mips_reorg_process_insns): Update.
5417 * config/v850/v850.c (compute_register_save_size): Update.
5418 * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
5419 * config/mmix/mmix.c (along): Update.
5420 (mmix_expand_epilogue): Update.
5421 * config/bfin/bfin.c (legitimize_pic_address): Update.
5422 (must_save_p): Update.
5423 (stack_frame_needed_p): Update.
5424 (add_to_reg): Update.
5425 (bfin_expand_prologue): Update.
5426 * stmt.c (expand_asm_operands): Update.
5427 * reload1.c (reload): Update.
5428 (init_elim_table): Update.
5429
9407e9ac 54302008-04-25 Bob Wilson <bob.wilson@acm.org>
5431
5432 * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
5433
f96e219b 54342008-04-25 H.J. Lu <hongjiu.lu@intel.com>
5435
501ec29a 5436 * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
f96e219b 5437 (*mov<mode>_internal): Likewise. Support V4SF and V2DF.
5438 (mov<mode>): Removed.
5439 (*movv4sf_internal): Likewise.
5440 (*movv2df_internal): Likewise.
5441
29ed6076 54422008-04-25 Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
5443
5444 * config.gcc (crx-*-elf): Remove deprecation.
5445
a64de0e6 54462008-04-25 Danny Smith <dannysmith@users.sourceforge.net>
5447
5448 * config/i386/cygming-crtend.c (register_frame_ctor): Register
5449 __gcc_deregister_frame with atexit.
5450 (deregister_frame_dtor): Remove.
5451
d636296f 54522008-04-24 Nathan Froyd <froydnj@codesourcery.com>
ff84f6db 5453 Nathan Sidwell <nathan@codesourcery.com>
5454
48d0a424 5455 * config/rs6000/rs6000.opt (mspe): Remove Var property.
ff84f6db 5456 (misel): Likewise.
48d0a424 5457 * config/rs6000/rs6000.h (rs6000_spe): Declare.
ff84f6db 5458 (rs6000_isel): Likewise.
48d0a424 5459 * config/rs6000/rs6000.c (rs6000_spe): New variable.
ff84f6db 5460 (rs6000_isel): New variable.
48d0a424 5461 (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
ff84f6db 5462
d991e6e8 54632008-04-24 Jakub Jelinek <jakub@redhat.com>
5464
5465 PR c++/35758
5466 * c-common.c (handle_vector_size_attribute): Call
5467 lang_hooks.types.reconstruct_complex_type instead of
5468 reconstruct_complex_type.
5469 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
5470 * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
5471 * langhooks.h (struct lang_hooks_for_types): Add
5472 reconstruct_complex_type hook.
5473 * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
5474 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
5475
d43cee80 54762008-04-24 Richard Guenther <rguenther@suse.de>
5477
5478 * c-common.h (check_builtin_function_arguments): Declare.
5479 * c-common.c (validate_nargs): New function.
5480 (check_builtin_function_arguments): Likewise.
5481 * c-typeck.c (build_function_call): Call
5482 check_builtin_function_arguments.
5483 * builtins.c (fold_builtin_classify): Remove error reporting code.
5484 (fold_builtin_unordered_cmp): Likewise.
5485 (fold_builtin_1): Likewise.
5486 (fold_builtin_n): Likewise.
5487
5791999f 54882008-04-24 Jakub Jelinek <jakub@redhat.com>
5489
5490 PR tree-optimization/36008
5491 * fold-const.c (try_move_mult_to_index): If s == NULL, divide
5492 the original op1, rather than delta by step.
5493
e06f9c34 54942008-04-22 Antoniu Pop <antoniu.pop@gmail.com>
48d0a424 5495 Sebastian Pop <sebastian.pop@amd.com>
e06f9c34 5496
5497 * tree-parloops.c (take_address_of, eliminate_local_variables_1,
5498 eliminate_local_variables_stmt, eliminate_local_variables,
5499 separate_decls_in_loop_name, separate_decls_in_loop_stmt,
5500 separate_decls_in_loop, gen_parallel_loop): Make them work on a region
5501 of code delimited by two edges in the CFG.
5502 (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
5503 (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
5504 (separate_decls_in_loop): Renamed separate_decls_in_region. Isolate
5505 the case of parallelisation of reductions.
5506 (expr_invariant_in_region_p): New.
5507
5508 * tree-flow.h (gather_blocks_in_sese_region): Declared.
5509 * tree-cfg.c (gather_blocks_in_sese_region): Extern.
5510
664af971 55112008-04-24 Ira Rosen <irar@il.ibm.com>
48d0a424 5512 Richard Guenther <rguenther@suse.de>
664af971 5513
5514 PR tree-optimization/36034
5515 * tree-vect-analyze.c (vect_analyze_group_access): SLP is
5516 incapable of dealing with loads with gaps.
5517
ced5bc56 55182008-04-24 Rafael Espindola <espindola@google.com>
5519
5520 * tree-flow.h (vrp_evaluate_conditional): Change signature.
5521 * tree-ssa-propagate.c (fold_predicate_in): Update call to
5522 vrp_evaluate_conditional.
5523 * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
48d0a424 5524 (vrp_evaluate_conditional): Split the cond argument.
5525 (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
5526 (simplify_stmt_for_jump_threading): Update call to
ced5bc56 5527 vrp_evaluate_conditional.
5528
06d44c00 55292008-04-24 Ira Rosen <irar@il.ibm.com>
5530
5531 PR tree-optimization/35982
5532 * tree-vect-analyze.c (vect_check_interleaving): Check that the
5533 interleaved data-refs are of the same type.
5534
d351f137 55352008-04-24 Danny Smith <dannysmith@users.net>
5536
48d0a424 5537 * c-format.c (check_format_info_main): Use strncmp rather than a
5538 magic prefix to handle multichar length specs.
d351f137 5539 * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
5540 Don't prefix "I64" and "I32" with '\0'.
5541
85637477 55422008-04-24 Jakub Jelinek <jakub@redhat.com>
5543
5544 PR target/36015
5545 * config/i386/i386.c (init_cumulative_args): Don't pass anything
5546 in registers for -m32 only if stdarg_p (fntype).
5547
39925406 55482008-04-24 Uros Bizjak <ubizjak@gmail.com>
5549
5550 PR rtl-optimization/36006
5551 * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
5552 temp to op0 in order to avoid invalid rtx sharing.
5553
c7d4e749 55542008-04-23 Paolo Bonzini <bonzini@gnu.org>
5555
5556 * tree-cfg.c (verify_expr): Check with is_gimple_address. Don't
5557 check TREE_INVARIANT.
5558 * tree-gimple.c (is_gimple_address): New.
5559 (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
5560 * tree-gimple.h (is_gimple_address): New.
5561 * tree.h (decl_address_invariant_p): New.
5562 * tree.c (make_node_stat): Don't set TREE_INVARIANT.
5563 (build_string): Likewise.
5564 (decl_address_invariant_p): New, from is_gimple_invariant_address.
5565 (tree_invariant_p_1): Likewise.
5566 (save_expr): Use it.
5567 (tree_invariant_p): New.
5568 (skip_simple_arithmetic): Use it.
5569 (stabilize_reference_1): Use it.
5570 (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
5571 simplify.
5572 (build1_stat): Drop code to compute TREE_INVARIANT.
5573 (build2_stat): Drop code to compute TREE_INVARIANT.
5574 (build3_stat): Drop code to compute TREE_INVARIANT.
5575 (build4_stat): Drop code to compute TREE_INVARIANT.
5576 (build5_stat): Drop code to compute TREE_INVARIANT.
5577 (build7_stat): Drop code to compute TREE_INVARIANT.
5578 (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
5579 * tree.h (struct tree_base): Remove invariant_flag.
5580 (TREE_INVARIANT): Remove.
5581 * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
5582 (fold_builtin_expect): Check TREE_CONSTANT.
5583 * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
5584 * c-tree.h (c_expr_to_decl): Drop third parameter.
5585 * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
5586 (build_c_cast): Don't set TREE_INVARIANT.
5587 (pop_init_level): Don't set TREE_INVARIANT.
5588 (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
5589 * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
5590 TREE_CONSTANT.
5591 (gimplify_init_constructor): Don't set TREE_INVARIANT.
5592 (gimplify_addr_expr): Adjust comment.
5593 * tree-mudflap.c (mf_build_string):
5594 * print-tree.c (print_node): Don't print TREE_INVARIANT.
5595 * tree-nested.c (convert_nonlocal_reference): Adjust comment.
5596 * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
5597 * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
5598 * langhooks.c (lhd_expr_to_decl): Drop third parameter.
5599 * langhooks.h (struct lang_hooks): Drop third parameter from
5600 expr_to_decl.
5601
4f8f2f76 56022008-04-23 Richard Guenther <rguenther@suse.de>
5603
5604 PR tree-optimization/27799
5605 PR tree-optimization/32921
5606 PR tree-optimization/32624
5607 * tree-ssa-structalias.c (merge_smts_into): Only merge the
5608 SMTs aliases and the tag itself into the solution.
5609 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
5610 merge the points-to solution back into the SMT aliases.
5611 (may_alias_p): Use alias_set_subset_of instead of
5612 aliases_conflict_p. A pointer which points to
5613 memory with alias set zero may access any variable.
5614
6c711ccf 56152008-04-23 Richard Guenther <rguenther@suse.de>
5616
5617 * alias.c (alias_set_subset_of): Correctly handle asking
5618 if zero is a subset of an alias set with zero child.
5619 * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
5620 (compute_flow_insensitive_aliasing): Correctly walk all
5621 pointers. Do not unnecessarily union sets.
5622
2802826e 56232008-04-23 Richard Guenther <rguenther@suse.de>
5624
5625 PR middle-end/36021
5626 * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
5627
1aa0d4ff 56282008-04-22 Tomas Bily <tbily@suse.cz>
5629
39925406 5630 * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
5631 unreachable case.
5632 * tree-vrp.c (extract_range_from_unary_expr): Removed unused
5633 NON_LVALUE_EXPR.
5634 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
5635 * tree-ssa-structalias.c (get_constraint_for): Likewise.
5636 * tree-inline.c (estimate_num_insns_1): Likewise.
5637 * varasm.c (const_hash_1, compare_constant, copy_constant)
5638 (compute_reloc_for_constant, output_addressed_constants): Likewise.
5639 * emit-rtl.c (component_ref_for_mem_expr)
5640 (set_mem_attributes_minus_bitpos): Likewise.
5641 * expr.c (highest_pow2_factor, expand_expr_real_1, )
5642 (is_aligning_offset): Likewise.
5643 * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
5644 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
5645 * dojump.c (do_jump): Likewise.
5646 * builtins.c (get_pointer_alignment, get_memory_rtx)
5647 (integer_valued_real_p, fold_builtin_next_arg): Likewise.
5648 * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
1aa0d4ff 5649
08491912 56502008-04-23 Jakub Jelinek <jakub@redhat.com>
5651
5652 PR rtl-optimization/36017
5653 * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
5654 expanding the library call.
5655
7ded8d6e 56562008-04-22 Ian Lance Taylor <iant@google.com>
5657
5658 * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
5659 than size_in_bytes.
5660
dd7bfdc0 56612008-04-22 Pat Haugen <pthaugen@us.ibm.com>
5662
5663 * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
5664 of LR/CTR moves for Power6.
5665
957f873e 56662008-04-22 Kenneth Zadeck <zadeck@naturalbridge.com>
023c2d03 5667
5668 PR middle-end/36003
5669 * passes.c (init_optimization_passes): Remove
5670 pass_fast_rtl_byte_dce.
5671
6e22f3c7 56722008-04-22 Uros Bizjak <ubizjak@gmail.com>
5673
5674 PR target/29096
5675 * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
5676 builtin functions to generate faster code.
5677 (_mm_cvtpu16_ps): Ditto.
5678 (_mm_cvtpi32x2_ps): Ditto.
5679
12f2d5e9 56802008-04-22 Nick Clifton <nickc@redhat.com>
5681
2b945500 5682 * common.opt (ftree-loop-distribution): Add Optimization
5683 attribute.
5684
ca852515 5685 * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
5686 (frv_expand_builtin_va_start): Likewise.
5687
12f2d5e9 5688 * config/arm/arm.c (thumb_find_work_register): Fix location of
5689 argument register count.
5690
2ccdedfd 56912008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com>
5692
5693 Support scheduling for ColdFire V1 and V3 microarchitecture.
5694 Improve scheduling of multiplication instructions.
5695
5696 * config/m68k/m68k.md (cpu): Add cfv1 and cfv3. Rename cf_v2 to cfv1.
5697 (mac): New instruction attribute.
5698 * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
5699 (m68k_sched_mac): New variable.
5700 (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
5701 Handle cfv1 and cfv3.
5702 (max_insn_size): New static variable.
5703 (struct _sched_ib): New type.
5704 (sched_ib): New static variable.
5705 (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
5706 to fields of 'struct _sched_ib sched_ib'. Update all uses.
5707 (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
5708 Update.
5709 (m68k_sched_md_init_global, m68k_sched_md_finish_global,
5710 m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3. Init
5711 new variables. Update.
5712 (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
5713 Add modeling of cfv3 instruction buffer. Update.
5714 * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
5715 * config/m68k/m68k.h (TUNE_CFV3): New macro.
5716 * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
5717 (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
5718 a particular reservation applies to.
5719 (type2): Reorganize attribute values. Rename alu to alu_reg,
5720 alu_l to alu, move_l to omove. Join move to alu. Split mul
5721 to mul_l and mul_w.
5722 (cf_ib_*): Simplify description of instruction buffer.
5723 (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
5724 (cf_mem): Split into cf_mem1 and cf_mem2.
5725 (cf_v2_move_??): Rename to cfv12_alu_??.
5726 (cf_v2_move_l_??): Rename to cfv12_omove_??.
5727 (cf_v2_mul_??): Remove reservations.
5728 (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
5729 cfv12_emac_??, cfv12_emac_w_i0): New reservations.
5730 (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
5731 appropriate place.
5732 (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
5733 cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
5734 cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
5735 cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
5736 cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
5737 cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
5738 (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
5739 expansions of the above reservations for instructions of sizes
5740 1, 2 and 3 words.
5741
a86fc23b 57422008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com>
5743
5744 * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
5745
fe66e922 57462008-04-21 Adam Nemet <anemet@caviumnetworks.com>
5747
5748 * coverage.c: Include tree-pass.h.
5749 (coverage_counter_alloc): Print da_file_name to the dump file.
5750
957f873e 57512008-04-21 Kenneth Zadeck <zadeck@naturalbridge.com>
fe66e922 5752
349621f0 5753 * sbitmap.c (sbitmap_range_empty_p): New function.
5754 * sbitmap.h (sbitmap_range_empty_p): New function.
fe66e922 5755 * bitmap.h: Now includes obstack.h.
349621f0 5756
fe66e922 57572008-04-21 Richard Sandiford <rsandifo@nildram.co.uk>
957f873e 5758 Kenneth Zadeck <zadeck@naturalbridge.com>
bf1f8fbc 5759
5760 * dbgcnt.def (ra_byte_scan): Added.
5761 * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
5762 when the last hit happens for a counter.
5763 * timevar.def (TV_DF_BYTE_LR): New variable.
5764 * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
5765 * passes.c (pass_fast_rtl_byte_dce): New pass.
5766 * fwprop.c (update_df): Added mode to call df_ref_create.
5767 Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
5768 DF_REF_EXTRACT_OFFSET.
5769 * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
5770 DF_BYTE_LR_OUT, df_byte_lr): New macro.
5771 (df_mm): New enum.
5772 (df_ref_extract): Added mode field.
5773 (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
5774 DF_REF_EXTRACT_OFFSET.
5775 (DF_REF_EXTRACT_MODE): New macro.
5776 (df_byte_lr_bb_info): New structure.
5777 (df_print_byte_regset, df_compute_accessed_bytes,
5778 df_byte_lr_add_problem, df_byte_lr_get_regno_start,
5779 df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
5780 df_byte_lr_simulate_uses,
5781 df_byte_lr_simulate_artificial_refs_at_top,
5782 df_byte_lr_simulate_artificial_refs_at_end,
5783 df_compute_accessed_bytes): New function.
5784 (df_ref_create): Add parameter.
5785 (df_byte_lr_get_bb_info): New inline function.
5786 * df-scan.c (df_ref_record, df_uses_record,
5787 df_ref_create_structure): Added mode parameter.
5788 (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
5789 df_defs_record, df_uses_record, df_get_conditional_uses,
5790 df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
5791 df_entry_block_defs_collect, df_exit_block_uses_collect):
5792 Added mode parameter to calls to df_ref_record, df_uses_record,
5793 df_ref_create_structure.
39925406 5794 (df_ref_equal_p, df_ref_compare): Added test for modes.
bf1f8fbc 5795 (df_ref_create_structure): Added code to set mode. Renamed
5796 DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
5797 DF_REF_EXTRACT_OFFSET.
5798 * df-core.c (df_print_byte_regset): New function.
5799 * df-byte-scan.c: New file.
5800 * df-problems.c (df_rd_transfer_function): Removed unnecessary
5801 calls to BITMAP_FREE.
5802 (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
5803 (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
5804 df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
5805 df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
5806 df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
5807 df_byte_lr_local_compute, df_byte_lr_init,
5808 df_byte_lr_confluence_0, df_byte_lr_confluence_n,
5809 df_byte_lr_transfer_function, df_byte_lr_free,
5810 df_byte_lr_top_dump, df_byte_lr_bottom_dump,
5811 df_byte_lr_add_problem, df_byte_lr_simulate_defs,
5812 df_byte_lr_simulate_uses,
5813 df_byte_lr_simulate_artificial_refs_at_top,
5814 df_byte_lr_simulate_artificial_refs_at_end): New function.
5815 * dce.c (byte_dce_process_block): New function.
5816 (dce_process_block): au is now passed in rather than computed
5817 locally. Changed loops that look at artificial defs to not look
5818 for conditional or partial ones, because there never are any.
5819 (fast_dce): Now is able to drive byte_dce_process_block or
5820 dce_process_block depending on the kind of dce being done.
5821 (rest_of_handle_fast_dce): Add parameter to fast_dce.
5822 (rest_of_handle_fast_byte_dce): New function.
5823 (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
5824 * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
5825
798b415d 58262008-04-21 Daniel Franke <franke.daniel@gmail.com>
5827
5828 PR fortran/35019
5829 * gcc.h: Added fortran options that take arguments to
5830 DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
5831 macros.
5832
5749b7fb 58332008-04-20 Eric Botcazou <ebotcazou@adacore.com>
5834
5835 * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
5836 scalarization if on the LHS and not a full access.
5837
0c8e56a8 58382008-04-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5839
5749b7fb 5840 * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
0c8e56a8 5841
d31e54f1 58422008-04-18 Rafael Espindola <espindola@google.com>
5749b7fb 5843
d31e54f1 5844 * tree-vrp.c (find_case_label_index): Fix the binary search.
5845 (find_case_label_range): New.
5846 (vrp_visit_switch_stmt): Use find_case_label_range.
5847 (simplify_switch_using_ranges): Use find_case_label_range.
5848
65903740 58492008-04-18 Eric Botcazou <ebotcazou@adacore.com>
5850
5851 * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
5852 using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
5853
662dbd74 58542008-04-18 Tom Tromey <tromey@redhat.com>
5855
5856 PR libcpp/15500:
5857 * doc/cpp.texi (Implementation-defined behavior): Mention
5858 -finput-charset.
5859
9fa14f44 58602008-04-18 Ian Lance Taylor <iant@google.com>
5861
5862 * fold-const.c (pointer_may_wrap_p): New static function.
5863 (fold_comparison): Add another test for pointer overflow. Use
5864 pointer_may_wrap_p to disable some false positives.
5865
924bbf02 58662008-04-18 Kris Van Hees <kris.van.hees@oracle.com>
5867
5868 * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
5869 (fname_as_string): Match updated cpp_interpret_string prototype.
5870 (fix_string_type): Support char16_t* and char32_t*.
5871 (c_common_nodes_and_builtins): Add char16_t and char32_t (and
5872 derivative) nodes. Register as builtin if C++0x.
5873 (c_parse_error): Support CPP_CHAR{16,32}.
5874 * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
5875 (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
5876 CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
5877 CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
5878 CTI_CHAR32_ARRAY_TYPE>: New elements.
5879 (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
5880 char32_type_node, signed_char32_type_node, char16_array_type_node,
5881 char32_array_type_node): New defines.
5882 * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
5883 (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
5884 (lex_string): Support CPP_STRING{16,32}, match updated
5885 cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
5886 (lex_charconst): Support CPP_CHAR{16,32}.
5887 * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
5888 and CPP_STRING{16,32}.
5889
6a88da51 58902008-04-18 Paolo Bonzini <bonzini@gnu.org>
5891
5892 PR bootstrap/35457
5893 * aclocal.m4: Regenerate.
5894 * configure: Regenerate.
5895
edb7afe8 58962008-04-18 Jan Hubicka <jh@suse.cz>
5897
5898 * except.c (dw2_size_of_call_site_table,
5899 sjlj_size_of_call_site_table): Use vector API for call_site_record.
5900
5901 * cgraphbuild.c (build_cgraph_edges): Update.
5902 * tree-pass.h: Update comment.
5903 * final.c (leaf_function_p): Update.
5904 (leaf_renumber_regs): Update.
5905 (rest_of_clean_state): Update.
5906 * omp-low.c (expand_omp_parallel): Update.
5907 * ipa-reference.c (analyze_function): Update.
5908 * reorg.c (find_end_label): Update.
5909 (optimize_skip): Update.
5910 (fill_simple_delay_slots): Update.
5911 (fill_simple_delay_slots): Update.
5912 (make_return_insns): Update.
5913 (dbr_schedule): Update.
5914 * gimple-low.c (record_vars_into): Update.
5915 * cfgbuild.c (make_edges): Update.
5916 * function.c (assign_stack_local): Update.
5917 (assign_parm_adjust_stack_rtl): Update.
5918 (locate_and_pad_parm): Update.
5919 (allocate_struct_function): Do not initialize stack_alignment_needed
5920 and preferred_stack_boundary here.
5921 (stack_protect_prologue): Update.
5922 (stack_protect_epilogue): Update.
5923 (expand_function_start): Initialize stack_alignment_needed,
5924 preferred_stack_boundary and max_jumptable_ents.
5925 (expand_function_end): Update.
5926 (free_after_compilation): Do not NULLify epilogue_delay_list.
5927 * function.h (struct rtl_data): Add stack_protect_guard,
5928 stack_alignment_needed,
5929 preferred_stack_boundary, epilogue_delay_list.
5930 (struct function): Remove value_histograms, stack_alignment_needed,
5931 preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
5932 last_label_uid,
5933 unexpanded_var_list, stack_protect_guard.
5934 (current_function_epilogue_delay_list): Remove.
5935 * ipa-type-escape.c (analyze_function): Update.
5936 * gimplify.c (pop_gimplify_context): Update comment.
5937 * calls.c (expand_call): Update.
5938 (emit_library_call_value_1): Update.
5939 * except.c (set_nothrow_function_flags): Update.
5940 * cfgexpand.c (get_decl_align_unit): Update.
5941 (create_stack_guard): Update.
5942 (estimated_stack_frame_size): Update.
5943 (expand_used_vars): Update.
5944 (tree_expand_cfg): Free histogram earliers, init expansion variables.
5945 * explow.c (allocate_dynamic_stack_space): Update.
5946 * tree-ssa-live.c (remove_unused_locals): Update.
5947 * varasm.c (mark_constant_pool): Update.
5948 * tree-inline.c (remap_decls): Update.
5949 (initialize_cfun): Update.
5950 (declare_return_variable): Update.
5951 (inline_forbidden_p): Update.
5952 (expand_call_inline): Update.
5953 (declare_inline_vars): Update.
5954 (tree_function_versioning): Update.
5955 * tree-flow.h (value_histograms): New.
5956 (VALUE_HISTOGRAMS): New macro.
5957 * basic-block.h (control_flow_graph): Add max_jumptable_ents,
5958 last_label_uid.
5959 * tree-cfg.c (set_bb_for_stmt): Update.
5960 (replace_by_duplicate_decl): Update.
5961 (move_block_to_fn): Update.
5962 (new_label_mapper): Update.
5963 (dump_function_to_file): Update.
5964 * ipa-struct-reorg.c (build_data_structure): Update.
5965 * cfgrtl.c (print_rtl_with_bb): Update.
5966 * reload1.c (reload): Update.
5967 (reload): Update.
5968 * config/i386/i386.c (setup_incoming_varargs_64,
5969 ix86_compute_frame_layout): Update.
5970 * config/arc/arc.c (arc_output_function_epilogue): Update.
5971
4f364038 59722008-04-18 Marius Strobl <marius@FreeBSD.org>
5973
5974 * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
5975 for FreeBSD as well.
5976 * gthr-posix95.h: Likewise.
5977
a6c18cd6 59782008-04-17 Richard Sandiford <rsandifo@nildram.co.uk>
5979
5980 PR rtl-optimization/35838
5981 * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
5982 out the byte offset of the first subreg.
5983
cdb04b84 59842008-04-17 Uros Bizjak <ubizjak@gmail.com>
5985
5986 * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
5987 to split_ti instead of three separate calls with single member arrays.
5988 (subti3 splitter): Ditto.
5989 (adddi3 splitter): Ditto with split_di.
5990 (subdi3 splitter): Ditto.
5991 (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
5992 two separate calls with single member arrays. Swap match_dup
5993 operands 1 and 2 to better fit into the array.
5994 (negdi2 splitter): Ditto with split_di.
5995 (movdfcc splitter): Pass arrays of 2 operands to split_di instead of
5996 two separate calls with single member arrays. Swap match_dup operands
5997 6 and 7 to better fit into the array.
5998
382e3eba 59992008-04-17 H.J. Lu <hongjiu.lu@intel.com>
6000
6001 * config/i386/i386.c (sse_builtin_type): New.
6002 (bdesc_sse_args): Likewise.
6003 (bdesc_sse_3arg): Removed.
6004 (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
6005 (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
6006 IX86_BUILTIN_ROUNDPS.
6007 (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args. Remove
6008 bdesc_sse_3arg. Remove IX86_BUILTIN_ROUNDPD and
6009 IX86_BUILTIN_ROUNDPS.
6010 (ix86_expand_sse_4_operands_builtin): Removed.
6011 (ix86_expand_sse_operands_builtin): New.
6012 (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
6013 and CODE_FOR_sse4_1_roundps.
6014 (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
6015 Handle bdesc_sse_args. Remove bdesc_sse_3arg.
6016
0dd5aca6 60172008-04-17 Alan Modra <amodra@bigpond.net.au>
6018
6019 PR target/35907
6020 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
6021 regs before frame pop when needed. If use_backchain_to_restore_sp
6022 then load backchain into a temp reg to restore vr and vrsave. Add
6023 code to restore vr after frame pop if possible.
6024
659ce413 60252008-04-17 Richard Guenther <rguenther@suse.de>
6026
6027 * tree-vn.c (expressions_equal_p): Do not check type
6028 equality or compatibility before calling operand_equal_p.
6029 * fold-const.c (operand_equal_p): Check equivalence of
6030 integer constants before bailing out due to signedness or
6031 precision differences.
6032 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
6033 spurious differences in type qualification. Ignore types
6034 for COMPONENT_REFs at all.
6035
9037a84c 60362008-04-17 Christian Bruel <christian.bruel@st.com>
6037
6038 * config/sh/sh.c (expand_cbranchdi4): Use original operands for
6039 msw_skip comparison.
6040
520c4c09 60412008-04-16 Jakub Jelinek <jakub@redhat.com>
6042
e264d515 6043 PR c/35739
6044 * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
6045 reg type.
6046
520c4c09 6047 PR tree-optimization/35899
6048 * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
6049 rather than TREE_OPERAND.
6050
5628aad4 60512008-04-16 Uros Bizjak <ubizjak@gmail.com>
6052
6053 PR target/35944
6054 * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
6055 temporary registers. Change operand predicate to general_operand.
6056 (remainderxf3): Ditto.
6057
00ae4124 60582008-04-16 Richard Guenther <rguenther@suse.de>
6059
6060 * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
6061 * tree-affine.c (aff_combination_expand): Look through some
6062 conversions.
6063
7df7561b 60642008-04-15 Doug Kwan <dougkwan@google.com>
6065
6066 * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
6067 for hex printing.
6068 * tree-pretty-print.c (dump_generic_node): Ditto.
6069 * final.c (output_addr_const): Ditto.
6070 * dwarf2out.c (output_cfi): Ditto.
6071 * c-pretty-print.c (pp_c_integer_constant): Ditto.
6072 * print-rtl.c (print_rtx): Ditto.
6073 * print-tree.c (print_node_brief, print_node): Ditto.
6074 * c-common.c (match_case_to_enum_1): Ditto.
6075 * sched-vis.c (print_value): Ditto.
6076 * config/i386/i386.c (print_operand): Cast to long unsigned int
6077 for hex printing.
6078
c5aaf380 60792008-04-15 Danny Smith <dannysmith@users.sourceforge.net>
6080 * libgcc2.c [L_trampoline]: Remove unnecessary prototype for
6081 MS Windows VirtualProtect function.
6082
4dd3de56 60832008-04-15 Jan Hubicka <jh@suse.cz>
6084
6085 * gengtype.c (write_root): Param_is argument is OK.
6086 * expr.c (expand_expr_real_1): Update call of get_exception_*.
6087 * function.h: Include varray.h
6088 (rtl_eh): New stucture based on except.c one.
6089 (call_site_record): New forward declaration and vector type.
6090 * calls.c (emit_call_1): Do not call
6091 note_current_region_may_contain_throw.
6092 * except.c (eh_status): Remove cur_region, try_region since they are
6093 unused.
6094 Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
6095 exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
6096 sjlj_fc, sjlj_exit_after to rth_eh in function.h.
6097 Remove call_site_data_used, call_site_data_size.
6098 Turn call_site_record into vector in function.h.
6099 (note_current_region_may_contain_throw): Remove.
6100 (get_exception_pointer, get_exception_filter): Do not take struct
6101 function argument; update.
6102 (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
6103 add_ttypes_entry, add_ehspec_entry, assign_filter_values,
6104 build_post_landing_pads, dw2_build_landing_pads,
6105 sjlj_assign_call_site_values, sjlj_mark_call_sites,
6106 sjlj_emit_function_enter, sjlj_emit_function_enter,
6107 sjlj_emit_function_exit, sjlj_emit_dispatch_table,
6108 sjlj_build_landing_pads, finish_eh_generation,
6109 remove_exception_handler_label, remove_eh_handler,
6110 maybe_remove_eh_handler, add_reachable_handler,
5628aad4 6111 reachable_handlers, expand_builtin_eh_return, expand_eh_return,
6112 add_action_record, collect_one_action_chain, add_call_site,
6113 convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
4dd3de56 6114 sjlj_output_call_site_table, output_function_exception_table,
6115 * except.h (note_current_region_may_contain_throw): Remove
6116 (get_exception_pointer, get_exception_filter): Do not take struct
6117 function argument.
6118 * Makefile.in (GTFILES): Put varargs before struct function.
6119
220322c1 61202008-04-15 Eric Botcazou <ebotcazou@adacore.com>
6121
6122 * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
6123 punt for STRING_CST.
6124 (get_constraint_for): Deal with STRING_CST here instead.
6125
fc50275a 61262008-04-15 Richard Guenther <rguenther@suse.de>
6127
6128 * tree-ssa-propagate.c (substitute_and_fold): Substitute
6129 statements in a basic-block with a backward walk. Do not
6130 substitute into dead statements but instead remove those.
6131
77975172 61322008-04-15 Richard Guenther <rguenther@suse.de>
6133
6134 * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
6135 to zero, thus disable creation of SFTs.
6136
154edec0 61372008-04-15 Eric Botcazou <ebotcazou@adacore.com>
6138
6139 * tree-predcom.c (suitable_reference_p): Return false if the
6140 reference can throw.
6141
1f93c018 61422008-04-15 Jakub Jelinek <jakub@redhat.com>
6143
6144 PR c/35751
6145 * c-decl.c (finish_decl): If extern or static var has variable
6146 size, set TREE_TYPE (decl) to error_mark_node.
6147
d14c123b 61482008-04-15 Rafael Espindola <espindola@google.com>
6149
1f93c018 6150 * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
d14c123b 6151 variable arg1.
6152
fb05ee87 61532008-04-15 Richard Guenther <rguenther@suse.de>
6154
6155 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
6156 * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
6157 (visit_reference_op_load): Do walk vuse-vdef chains on
6158 vn_reference_lookup.
6159 (visit_reference_op_store): But do not here.
6160 * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
6161 vn_reference_lookup.
6162 (vn_lookup_with_vuses): But do so here.
6163
d0fe3bd7 61642008-04-14 Ian Lance Taylor <iant@google.com>
6165
6166 * fold-const.c (fold_overflow_warning): Remove assertion.
6167
b71600b1 61682008-04-15 Ben Elliston <bje@au.ibm.com>
6169
6170 * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
6171 temp1 local variables.
6172
61732008-04-15 Zuxy Meng <zuxy.meng@gmail.com>
3c3b31c6 6174
6175 PR target/35661
6176 * config/i386/winnt.c (i386_pe_section_type_flags): Mark
6177 ".text.unlikely" section as executable.
6178
aaff414b 61792008-04-14 James E. Wilson <wilson@tuliptree.org>
6180
6181 * config/ia64/ia64.c (rtx_needs_barrier): Handle
6182 UNSPEC_FR_SQRT_RECIP_APPROX_RES.
6183 * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
6184 (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
6185 divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
6186 divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
6187 divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
6188
e867fa7f 61892008-04-14 Ian Lance Taylor <iant@google.com>
6190
6191 * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
6192 * fold-const.c (fold_comparison): If appropriate, test
6193 POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
6194 (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
6195 reassociating a pointer type.
6196 * doc/invoke.texi (Optimize Options): Document that
6197 -fstrict-overflow applies to pointer wraparound.
6198
393edb51 61992008-04-13 Jan Hubicka <jh@suse.cz>
6200
6201 * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
6202
415d43a4 62032008-04-12 Andrew Pinski <pinskia@gmail.com>
6204
6205 * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
6206 we are going to "save the world".
6207
8c6db08a 62082008-04-13 Hans-Peter Nilsson <hp@axis.com>
6209
6210 * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
6211 ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
6212 operand 0 constraint, not "=".
6213
1f6c309f 62142008-04-11 James E. Wilson <wilson@tuliptree.org>
6215
6216 * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
6217
07509ef3 62182008-04-11 H.J. Lu <hongjiu.lu@intel.com>
6219
6220 * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
6221 of size of positions_needed * CHAR_BIT.
6222
4e43e20a 62232008-04-11 H.J. Lu <hongjiu.lu@intel.com>
6224
6225 PR middle-end/35897
6226 * dse.c (store_info): Change positions_needed to unsigned
6227 HOST_WIDE_INT.
6228 (lowpart_bitmask): New.
6229 (record_store): Cast to unsigned HOST_WIDE_INT for
6230 positions_needed. Assert width <= size of positions_needed *
6231 CHAR_BIT. Call lowpart_bitmask to initialize positions_needed.
6232 (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask. Call
6233 lowpart_bitmask to set mask.
6234
87943377 62352008-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
6236
6237 * config/bfin/constraints.md: New file.
6238 * config/bfin/bfin.md: Include it.
6239 (adddi3): Use satisfies_constraint functions instead of the old macros.
6240 * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
6241 CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
6242 CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
6243 CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
6244 CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
6245 CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
6246 EXTRA_CONSTRAINT): Delete.
6247 * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
6248 reg_or_neg7bit_operand): Use satisfies_constraint functions instead
6249 of the old macros.
6250 * config/bfin/bfin.c: Include "tm-constrs.h".
6251 (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
6252 Use satisfies_constraint functions instead of the old macros.
6253 * doc/md.texi (Blackfin Constraints): Update file name reference.
6254
ffeeba75 62552008-04-11 Richard Guenther <rguenther@suse.de>
6256
6257 PR tree-optimization/35869
6258 * tree-vrp.c (execute_vrp): Move switch statement update after
6259 jump threading. Schedule another cfg cleanup run.
6260
1ccba7b7 62612008-04-11 Volker Reichelt <v.reichelt@netcologne.de>
6262
6263 PR c/35744
6264 * attribs.c (decl_attributes): Return early on errorneous node.
6265
83901169 62662008-04-10 Oleg Ryjkov <olegr@google.com>
6267
6268 * tree.h (struct tree_base): Added a new flag default_def_flag.
6269 (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
6270
fc7383ad 62712008-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
6272
6273 * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
6274
4f0b6f04 62752008-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6276
6277 PR target/35768
6278 * pa.md: Define mode iterator P. Define mode attribute dwc.
6279 (dcacheflush): Update pattern to use iterator P and attribute dwc.
6280 (icacheflush): Likewise.
6281 * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
6282 !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
6283
5dfbd18f 62842008-04-11 Ben Elliston <bje@au.ibm.com>
6285
6286 * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
6287
984bd637 62882008-04-10 Rafael Espindola <espindola@google.com>
6289
1f93c018 6290 * tree-vrp.c (extract_range_from_binary_expr): Don't handle
984bd637 6291 TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
6292 (extract_range_from_expr): The same.
6293
40e4a59d 62942008-04-10 Adam Nemet <anemet@caviumnetworks.com>
6295
6296 * config/mips/mips.md (GPR2): New mode iterator.
6297 (seq): Add comment.
6298 (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
6299 *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
6300 *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
6301 Rewrite these to take two modes, the mode of comparison and the
6302 mode of the destination.
6303 * config/mips/mips.c (mips_expand_scc): Instead of having
6304 paradoxical subreg as destination, expand "narrowing" scc if mode
6305 of comparison is SI and target is requested in DI mode.
6306 (mips_emit_int_order_test): Update comment. Make mode of
6307 comparison match CMP0 rather than TARGET. When creating inverse
6308 target use mode of TARGET.
6309
44d32dba 63102008-04-10 Adam Nemet <anemet@caviumnetworks.com>
6311
6312 * gcov-dump.c (tag_summary): Only print summaries for the first
6313 GCOV_COUNTERS_SUMMABLE counters.
6314
f9162d6c 63152008-04-10 Uros Bizjak <ubizjak@gmail.com>
6316
6317 * config/i386/i386.md (absneg): New code iterator.
6318 (absnegprefix): New code attribute.
6319 (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
6320 patterns using absneg code iterator.
6321 (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
6322 using absneg code iterator.
6323 (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
6324 *neg<mode>2 patterns using absneg code iterator.
6325 (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
6326 *negextendsfdf2 patterns using absneg code iterator.
6327 (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
6328 *negextendsfxf2 patterns using absneg code iterator.
6329 (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
6330 *negextendsfdf2 patterns using absneg code iterator.
6331 * config/i386/sse.md (<code><mode>2): Macroize expander from
6332 abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
6333
175ddbd8 63342008-04-10 Andreas Krebbel <krebbel1@de.ibm.com>
6335
6336 * config/s390/s390.h: Remove the remains of the recent search
6337 & replace action of current_function_outgoing_args_size.
6338
5c919262 63392008-04-10 Ira Rosen <irar@il.ibm.com>
6340
6341 PR tree-optimization/35821
6342 * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
6343 NEW_STMT_LIST is not NULL.
6344
f3b662a5 63452008-04-09 David Edelsohn <edelsohn@gnu.org>
6346
6347 PR libstdc++/35597
6348 * toplev.c (process_options): Remove -ffunction-sections debugging
6349 warning.
6350
eeadedeb 63512008-04-09 Peter Bergner <bergner@vnet.ibm.com>
6352
6353 PR middle-end/PR28690
6354 * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
6355 than gen_rtx_fmt_ee to perform more canonicalizations.
6356
c4c94b80 63572008-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6358
6359 PR driver/35665
6360 * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
6361
04ba083d 63622008-04-09 Richard Guenther <rguenther@suse.de>
6363
6364 * tree-cfg.c (verify_stmt): Print complete bogus stmt.
6365 (dump_function_to_file): Dump function arguments with types.
6366
ff5dd140 63672008-04-08 Richard Guenther <rguenther@suse.de>
6368
6369 * fold-const.c (fold_widened_comparison): Do not allow
6370 sign-changes that change the result.
6371
d44615ce 63722008-04-08 Janis Johnson <janis187@us.ibm.com>
6373
6374 PR target/35839
6375 * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
6376 kinds of indirect references.
6377
b3b9cde3 63782008-04-08 David Edelsohn <edelsohn@gnu.org>
6379
6380 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
6381 GNU Fortran language string.
6382
18f22ec3 63832008-04-08 Rafael Espindola <espindola@google.com>
6384
6385 * fold-canst.c (tree_call_nonnegative_warnv_p): New.
6386 (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
6387 * tree.h (tree_call_nonnegative_warnv_p): New.
6388
a9f6414b 63892008-04-08 Jan Hubicka <jh@suse.cz>
6390
6391 * function.c (free_after_compilation): Clear out regno_reg_rtx
6392 pointer.
6393
d7cbf087 63942008-04-08 Peter Bergner <bergner@vnet.ibm.com>
6395
6396 Revert
6397 2008-04-07 Peter Bergner <bergner@vnet.ibm.com>
6398
6399 PR middle-end/PR28690
6400 * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
6401 same precedence as REG_POINTER and MEM_POINTER operands.
6402
63a29e85 64032008-04-08 Richard Guenther <rguenther@suse.de>
6404
6405 PR middle-end/35834
6406 * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
6407 for adding index to base.
6408
11d6399c 64092008-04-08 Kai Tietz <kai.tietz@onevision.com>
6410
6411 * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
6412 (MINGW_ENABLE_EXECUTE_STACK): New.
6413 (IN_LIBGCC2): For libgcc include windows.h file for
6414 function declarations.
6415
fbedf334 64162008-04-08 Hans-Peter Nilsson <hp@axis.com>
6417
6418 * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
6419 and tem2 if tem1 is not a REG or MULT.
6420
abe32cce 64212008-04-08 Jan Hubicka <jh@suse.cz>
6422
6423 * function.h (incomming_args): Break out of struct function.
6424 (function_subsections): Break out of struct function.
6425 (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
6426 return_rtx and hard_reg_initial_vals from struct function.
6427 Kill inl_max_label_num.
6428 (current_function_pops_args, current_function_args_info,
6429 current_function_args_size, current_function_args_size,
6430 current_function_pretend_args_size,
6431 current_function_outgoing_args_size,
6432 current_function_internal_arg_pointer, current_function_return_rtx):
6433 Kill compatibility accestor macros.
6434 * builtins.c (expand_builtin_apply_args_1): Update.
6435 (expand_builtin_next_arg): Update.
6436 * df-scan.c (df_get_call_refs): Update.
6437 * dbxout.c (dbxout_function_end): Update.
6438 * dwarf2out.c (dwarf2out_switch_text_section): Update.
6439 (output_line_info): Update.
6440 (secname_for_decl): Update.
6441 (dwarf2out_var_location): Update.
6442 * function.c (free_after_compilation): Update.
6443 (assign_parm_find_stack_rtl): Update.
6444 (assign_parms): Update.
6445 (expand_dummy_function_end): Update.
6446 (expand_function_end): Update.
6447 * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
6448 (expand_call): Update.
6449 (emit_library_call_value_1): Update.
6450 (store_one_arg): Update.
6451 * varasm.c (initialize_cold_section_name): Update.
6452 (unlikely_text_section): Update.
6453 (unlikely_text_section_p): Update.
6454 (assemble_start_function): Update.
6455 (assemble_end_function): Update.
6456 (default_section_type_flags): Update.
6457 (switch_to_section): Update.
6458 * integrate.c (set_decl_abstract_flags): Update.
6459 (get_hard_reg_initial_val): Update.
6460 (has_hard_reg_initial_val): Update.
6461 (allocate_initial_values): Update.
6462 * resource.c (init_resource_info): Update.
6463 * config/alpha/alpha.c (NUM_ARGS): Update.
6464 (direct_return): Update.
6465 (alpha_va_start): Update.
6466 (alpha_sa_size): Update.
6467 (alpha_initial_elimination_offset): Update.
6468 (alpha_expand_prologue): Update.
6469 (alpha_start_function): Update.
6470 (alpha_expand_epilogue): Update.
6471 (unicosmk_initial_elimination_offset):
6472 * config/alpha/alpha.md (call expander): Update.
6473 * config/s390/s390.c (s390_register_info): Update.
6474 (s390_register_info): Update.
6475 (s390_frame_info): Update.
6476 (s390_initial_elimination_offset): Update.
6477 (s390_build_builtin_va_list): Update.
6478 (s390_va_start): Update.
6479 * config/spu/spu.c (direct_return): Update.
6480 (spu_expand_prologue): Update.
6481 (spu_initial_elimination_offset): Update.
6482 (spu_build_builtin_va_list): Update.
6483 (spu_va_start): Update.
6484 * config/sparc/sparc.c (sparc_init_modes): Update.
6485 (sparc_compute_frame_size): Update.
6486 (function_value): Update.
6487 * config/m32r/m32r.c (m32r_compute_frame_size): Update.
6488 * config/i386/i386.md (return expander): Update.
6489 * config/i386/i386.c (ix86_va_start): Update.
6490 (ix86_can_use_return_insn_p): Update.
6491 (ix86_compute_frame_layout): Update.
6492 (ix86_expand_epilogue): Update.
6493 * config/sh/sh.c (output_stack_adjust): Update.
6494 (calc_live_regs): Update.
6495 (sh_expand_prologue): Update.
6496 (sh_builtin_saveregs): Update.
6497 (sh_va_start): Update.
6498 (initial_elimination_offset): Update.
6499 (sh_allocate_initial_value): Update.
6500 (sh_function_ok_for_sibcall): Update.
6501 (sh_get_pr_initial_val): Update.
6502 * config/sh/sh.md (return expander): Update.
6503 * config/avr/avr.c (frame_pointer_required_p): UPdate.
6504 * config/crx/crx.c (crx_compute_frame): UPdate.
6505 (crx_initial_elimination_offset): UPdate.
6506 * config/xtensa/xtensa.c (compute_frame_size): Update
6507 (xtensa_builtin_saveregs): Update.
6508 (xtensa_va_start): Update.
6509 (order_regs_for_local_alloc): Update.
6510 * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
6511 (xstormy16_expand_builtin_va_start): Update.
6512 * config/fr30/fr30.c (fr30_compute_frame_size): Update.
6513 * config/m68hc11/m68hc11.md (return expanders): Update.
6514 * config/m68hc11/m68hc11.c (expand_prologue): Update.
6515 (expand_epilogue): Update.
6516 * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
6517 (cris_simple_epilogue): Update.
6518 (cris_expand_prologue): Update.
6519 (cris_expand_epilogue): Update.
6520 * config/iq2000/iq2000.c (iq2000_va_start): Update.
6521 (compute_frame_size): Update.
6522 * config/mt/mt.c (mt_compute_frame_size): Update.
6523 * config/mn10300/mn10300.c (expand_prologue): Update.
6524 (expand_epilogue): Update.
6525 (initial_offset): Update.
6526 (mn10300_builtin_saveregs):
6527 * config/mn10300/mn10300.md (return expander): Update.
6528 * config/ia64/ia64.c (ia64_compute_frame_size): Update.
6529 (ia64_initial_elimination_offset): Update.
6530 (ia64_initial_elimination_offset): Update.
6531 (ia64_expand_prologue): Update.
6532 * config/m68k/m68k.md (return expander): Update.
6533 * config/rs6000/rs6000.c (rs6000_va_start): Update.
6534 (rs6000_stack_info): Update.
6535 * config/mcore/mcore.c (layout_mcore_frame): Update.
6536 (mcore_expand_prolog): Update.
6537 * config/arc/arc.c (arc_compute_frame_size): Update.
6538 * config/score/score3.c (score3_compute_frame_size): Update.
6539 * config/score/score7.c (score7_compute_frame_size): Update.
6540 * config/arm/arm.c (use_return_insn): Update.
6541 (thumb_find_work_register): Update.
6542 (arm_compute_save_reg_mask): Update.
6543 (arm_output_function_prologue): Update.
6544 (arm_output_epilogue): Update.
6545 (arm_size_return_regs): Update.
6546 (arm_get_frame_offsets): Update.
6547 (arm_expand_prologue): Update.
6548 (thumb_exit): Update.
6549 (thumb_unexpanded_epilogue): Update.
6550 (thumb1_output_function_prologue): Update.
6551 * config/pa/pa.md (return expander): Update.
6552 * config/pa/pa.c (compute_frame_size): Update.
6553 (hppa_builtin_saveregs): Update.
6554 * config/mips/mips.c (mips_va_start): Update.
6555 (mips16_build_function_stub): Update.
6556 (mips_compute_frame_info): Update.
6557 (mips_restore_gp): Update.
6558 (mips_output_function_prologue): Update.
6559 (mips_expand_prologue): Update.
6560 * config/v850/v850.c (compute_frame_size): Update.
6561 (expand_prologue): * config/mmix/mmix.c (along): update.
6562 (mmix_initial_elimination_offset): update.
6563 (mmix_reorg): update.
6564 (mmix_use_simple_return): update.
6565 (mmix_expand_prologue): update.
6566 (mmix_expand_epilogue): Update.
6567 * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
6568 (emit_link_insn): Update.
6569
cb373d8c 65702008-04-08 Anatoly Sokolov <aesok@post.ru>
6571
6572 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
6573 __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
6574 instructions.
6575 * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
6576 atmega103 device.
6577
fd6ffb7c 65782008-04-07 Jan Hubicka <jh@suse.cz>
6579
6580 * function.h (rtl): Rename to x_rtl.
6581 (crtl): New define.
6582 (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
6583 frame_offset, stack_check_probe_note, arg_pointer_save_area,
6584 used_temp_slots avail_temp_slots, temp_slot_level,
6585 nonlocal_goto_handler_labels): Update accesstors.
6586 (rtl): New global variable.
6587 (struct function): Move some fileds to rtl_data.
6588 (get_arg_pointer_save_area): Update prototype.
6589 * builtins.c (expand_builtin_setjmp_receiver): Update call of
6590 get_arg_pointer_save_area.
6591 * expr.c (init_expr): Update
6592 * function.c (get_frame_size): Update
6593 (assign_stack_local): Update
6594 (expand_function_end): Update.
6595 (get_art_pointer_save_area): Update
6596 * function.h
6597 * emit-rtl.c (rtl): Declare.
6598 (regno_reg_rtx): Declare.
6599 (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
6600 Update.
6601 (gen_reg_rtx): Update.
6602 * varasm.c (n_deferred_constatns): Update accestor.
6603 (init_varasm_status): Do not allocate varasm_status.
6604 (force_const_mem, get_pool_size, output_constant_pool): Update.
6605 * stmt.c (force_label_rtx): Do not use x_ prefixes.
6606 (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
6607 * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
6608 * sparc/sparc.h (INIT_EXPANDERS): Update.
6609 * ia64/ia64.h (INIT_EXPANDERS): Update.
6610
92d21e32 66112008-04-07 James E. Wilson <wilson@tuliptree.org>
6612
6613 * reload.c (push_secondary_reload): Add missing break to for loop.
6614
ae12ddda 66152008-04-07 Peter Bergner <bergner@vnet.ibm.com>
6616
6617 PR middle-end/PR28690
6618 * rtlanal.c: Update copyright years.
6619 (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
6620 as REG_POINTER and MEM_POINTER operands.
6621 * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
6622 (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
6623 * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
6624 * gcse.c: Update copyright years.
6625 (pre_delete): Call gen_reg_rtx_and_attrs.
6626 (hoist_code): Likewise.
6627 (build_store_vectors): Likewise.
6628 (delete_store): Likewise.
6629 * loop-invariant.c (move_invariant_reg): Likewise.
6630 Update copyright years.
6631
ae3049cd 66322008-04-07 Uros Bizjak <ubizjak@gmail.com>
6633
6634 * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
6635 control string instead of quoted.
6636
957f873e 66372008-04-07 Kenneth Zadeck <zadeck@naturalbridge.com>
6cbc0aeb 6638
ae3049cd 6639 * doc/rtl.texi: Rewrite of subreg section.
6640
814cfa37 66412008-04-07 Kai Tietz <kai.tietz@onevision.com>
6642
ae3049cd 6643 PR/35842
6644 * config/i386/i386.c (legitimize_pic_address): Add treating
6645 of dllimport SYM_REF's.
6646 (legitimize_dllimport_symbol): Add prototype.
814cfa37 6647
27e9f331 66482008-04-07 Eric Botcazou <ebotcazou@adacore.com>
6649
6650 * fold-const.c (fold) <ARRAY_REF>: New case. Try to fold constant
6651 reference in constructor with non self-referential type.
6652
ff3ae375 66532008-04-07 Eric Botcazou <ebotcazou@adacore.com>
6654
6655 Removal of Return with Depressed Stack Pointer support
6656 * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
6657 (ECF_SP_DEPRESSED): Likewise.
6658 (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
6659 * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
6660 (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
6661 (expand_call): Do not test ECF_SP_DEPRESSED.
6662 * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
6663 * function.c (keep_stack_depressed): Delete.
6664 (handle_epilogue_set): Likewise.
6665 (update_epilogue_consts): Likewise.
6666 (emit_equiv_load): Likewise.
6667 (thread_prologue_and_epilogue_insns): Remove support for Return with
6668 Depressed Stack Pointer.
6669 * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
6670
48674266 66712008-04-06 Richard Guenther <rguenther@suse.de>
6672
6673 PR tree-optimization/35400
6674 * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
6675 information from SSA_NAMEs.
6676
4f0e2214 66772008-04-06 Anatoly Sokolov <aesok@post.ru>
6678
6679 * config/avr/avr.h (avr_mega_p): Remove declaration.
6680 (AVR_MEGA): Remove macro.
6681 * config/avr/avr.c (avr_mega_p): Remove variable.
6682 (avr_override_options): Remove inicializion of avr_mega_p.
6683 Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
6684 (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
6685 (avr_jump_mode): (Ditto.).
6686 (avr_output_progmem_section_asm_op): (Ditto.).
6687 (avr_asm_init_sections): (Ditto.).
6688 (avr_asm_init_sections): (Ditto.).
6689 (avr_rtx_costs): (Ditto.).
6690 * config/avr/avr.md: (Ditto.).
6691 * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
6692 '__AVR_MEGA__'.
6693
d8b498d3 66942008-04-06 Richard Guenther <rguenther@suse.de>
6695
6696 PR tree-optimization/35842
6697 * tree-ssa-address.c (fixed_address_object_p): Adjust to match
6698 is_gimple_invariant_address.
6699
00c6e780 67002008-04-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
6701
6702 * gcc.c (default_compilers): Sync Fortran extensions list with
6703 that in fortran/lang-specs.h.
6704 * doc/invoke.texi: Likewise.
6705 * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
6706 * dwarf2out.c (gen_compile_unit_die): Likewise.
6707
58f96ec3 67082008-04-06 Tom G. Christensen <tgc@jupiterrise.com>
6709
6710 * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
6711
e1dbffbf 67122008-04-05 Uros Bizjak <ubizjak@gmail.com>
6713
6714 PR target/12329
6715 * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
6716 attribute is used for nested functions.
6717
5d48fdb4 67182008-04-05 Jan Hubicka <jh@suse.cz>
6719
3eedda05 6720 * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
6721
5d48fdb4 6722 * tree-dump.c (dump_enable_all): Remove prototype; do not accept
6723 letter argument.
6724 (dump_files): Update.
6725 (enable_rtl_dump_file): Do not accept letter argument.
6726 * tree-pass.h (dump_file_info): Remove letter argument.
6727 * toplev.c (decode_d_option): Update -da handling.
6728 * toplev.h (enable_rtl_dump_file): Update prototype.
6729 * passes.c (register_one_dump_file): Do not accept IPA argument; work
6730 it out based on pass type.
6731 (register_dump_files_1): Likewise.
6732 (init_optimization_passes): Update register_one_dump_file calls.
e1dbffbf 6733 (execute_one_pass): Sanity check that IPA passes are called at IPA
6734 level and RTL passes at RTL level.
5d48fdb4 6735 (execute_pass_list): IPA pass can not be after or subpass of
6736 GIMPLE/RTL pass.
6737 (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
6738 disallov RTL subpasses of IPA subpasses.
6739
eb5bb63e 67402008-04-05 Ben Elliston <bje@au.ibm.com>
6741
6742 * tree-cfg.c (need_fake_edge_p): Return false for calls to
6743 builtins that return exactly once and do not throw. Cache call to
6744 call_expr_flags.
6745
67f57040 67462008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
6747
6748 PR rtl-optimization/34916
6749 PR middle-end/35519
6750 * combine.c (create_log_links): Do not create duplicate LOG_LINKS
6751 between instruction pairs.
6752
96a7f216 67532008-04-04 Naveen.H.S <naveen.hs@kpitcummins.com>
6754
6755 * doc/invoke.texi: Document -mbitops for SH.
6756 * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
6757 * config/sh/predicates.md (bitwise_memory_operand): New predicate.
6758 * config/sh/sh.c (print_operand): Add %t operand code.
6759 * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
6760 * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
6761 (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
6762 (extendqihi2): Likewise.
6763 (movqi_i): Likewise.
6764 (insv): Use bset, bclr and bst instructions for SH2A if possible.
6765 (extv): Use bld instruction for SH2A if possible.
6766 (extzv): Likewise.
6767 (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
6768 bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
6769 bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
6770 (bset.b, bclr.b): Define peepholes.
6771 * config/sh/sh.opt (mbitops): New option.
6772
d35d5b75 67732008-04-04 Janis Johnson <janis187@us.ibm.com>
6774
6775 PR target/35620
6776 * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
6777 and view convert expression.
6778
5018e7cd 67792008-04-04 Jakub Jelinek <jakub@redhat.com>
6780
6781 PR target/35364
6782 * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
6783
1d9ef704 67842008-04-04 H.J. Lu <hongjiu.lu@intel.com>
6785
6786 * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
6787
6788 * config/i386/cpuid.h (bit_AES): New.
6789 (bit_PCLMUL): Likewise.
6790
6791 * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
6792 (override_options): Handle PTA_AES and PTA_PCLMUL. Enable
6793 SSE2 if AES or PCLMUL is enabled.
6794 (ix86_builtins): Add IX86_BUILTIN_AESENC128,
6795 IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
6796 IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
6797 IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
6798 (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
6799 (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
6800 IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
6801 IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
6802 (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
6803 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
6804 __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
6805 __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
6806 __builtin_ia32_aeskeygenassist128 and
6807 __builtin_ia32_pclmulqdq128.
6808 * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
6809 (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
6810 IX86_BUILTIN_PSRLDQI128. Handle IX86_BUILTIN_AESKEYGENASSIST128.
6811
6812 * config/i386/i386.h (TARGET_AES): New.
6813 (TARGET_PCLMUL): Likewise.
6814 (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
6815
6816 * config/i386/i386.md (UNSPEC_AESENC): New.
6817 (UNSPEC_AESENCLAST): Likewise.
6818 (UNSPEC_AESDEC): Likewise.
6819 (UNSPEC_AESDECLAST): Likewise.
6820 (UNSPEC_AESIMC): Likewise.
6821 (UNSPEC_AESKEYGENASSIST): Likewise.
413347ff 6822 (UNSPEC_PCLMUL): Likewise.
1d9ef704 6823
6824 * config/i386/i386.opt (maes): New.
6825 (mpclmul): Likewise.
6826
6827 * config/i386/sse.md (aesenc): New pattern.
6828 (aesenclast): Likewise.
6829 (aesdec): Likewise.
6830 (aesdeclast): Likewise.
6831 (aesimc): Likewise.
6832 (aeskeygenassist): Likewise.
6833 (pclmulqdq): Likewise.
6834
6835 * config/i386/wmmintrin.h: New.
6836
6837 * doc/extend.texi: Document AES and PCLMUL built-in function.
6838
6839 * doc/invoke.texi: Document -maes and -mpclmul.
6840
b75409ba 68412008-04-04 Paolo Bonzini <bonzini@gnu.org>
6842
6843 * function.c (free_after_parsing): Replace with
6844 cxx_push_function_context from C++ front-end.
6845 (allocate_struct_function): Don't call langhook.
6846 * langhooks.h (struct lang_hooks_for_functions): Delete.
6847 (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
6848 member "function".
6849 * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
6850 (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
6851 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
6852 LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
6853 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
6854 remove LANG_HOOKS_FUNCTION_INITIALIZER.
6855 * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
6856
6857 * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
6858 Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
6859
87d31deb 68602008-04-04 Jakub Jelinek <jakub@redhat.com>
6861
6862 PR c/35440
6863 * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
6864 for all types.
6865
226c5ce4 68662008-04-04 Richard Guenther <rguenther@suse.de>
6867
6868 PR middle-end/35823
6869 * fold-const.c (optimize_minmax_comparison): Use the correct
6870 type for the constant in the simplified comparison.
6871
4c8b808d 68722008-04-04 Zuxy Meng <zuxy.meng@gmail.com>
6873
6874 * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
6875 Pass L2 size as "--param l2-cache-size" to the compiler.
6876 (decode_l2_cache): New function to decode L2 cache parameters using
6877 0x8000006 extended cpuid function.
6878 (detect_caches_amd): Determine parameters of L2 cache using
6879 decode_l2_caches function.
6880 (decode_caches_intel): Decode L2 cache parameters.
6881 (detect_caches_intel): Determine L2 cache parameters using
6882 decode_caches_intel and decode_l2_caches functions.
6883
da19f93f 68842008-04-03 Bob Wilson <bob.wilson@acm.org>
6885
6886 * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
6887 secondary input reload for subword loads from the constant pool.
6888
3a58582a 68892008-04-03 Janis Johnson <janis187@us.ibm.com>
6890
2bedfb20 6891 PR target/35713
6892 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
6893 constants of the appropriate size for runtime calculations.
6894
3a58582a 6895 PR c/35712
6896 * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
6897 decimal-float literal constant zero.
6898
e7327393 68992008-04-03 Jakub Jelinek <jakub@redhat.com>
6900
3cc31756 6901 PR c/35738
6902 * c-parser.c (c_parser_omp_atomic): Call
6903 default_function_array_conversion on the RHS.
6904
e7327393 6905 PR middle-end/35818
6906 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
6907 call is_variable_sized if decl has incomplete type.
6908
e0d72b88 69092008-04-03 H.J. Lu <hongjiu.lu@intel.com>
6910
6911 * config/i386/i386-protos.h (ix86_aligned_p): Removed.
6912
21d7f1af 69132008-04-03 Adam Nemet <anemet@caviumnetworks.com>
6914
6915 * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
6916 iterators.
ae3049cd 6917 (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
21d7f1af 6918 (sgt<u>): Merge sgt and sgtu into new expander.
6919 (sgt, sgtu): Remove expanders.
ae3049cd 6920 (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
21d7f1af 6921 (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
6922 (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
6923 *sgtu_<mode>_mips16 into new pattern.
6924 (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
6925 (sge<u>): Merge sge and sgeu into new expander.
6926 (sge, sgeu): Remove expanders.
6927 (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
6928 new pattern.
6929 (*sge_<mode>, second *sge_<mode>): Remove patterns.
6930 (slt<u>): Merge slt and sltu into new expander.
6931 (slt, sltu): Remove expanders.
ae3049cd 6932 (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
21d7f1af 6933 (*slt_<mode>, *sltu_<mode>): Remove patterns.
6934 (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
6935 *sltu_<mode>_mips16 into new pattern.
6936 (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
6937 (sle<u>): Merge sle and sleu into new expander.
6938 (sle, sleu): Remove expanders.
ae3049cd 6939 (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
21d7f1af 6940 (*sle_<mode>, *sleu_<mode>): Remove patterns.
6941 (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
6942 *sleu_<mode>_mips16 into new pattern.
6943 (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
6944
d5b52ebc 69452008-04-03 Jan Hubicka <jh@suse.cz>
6946
6947 PR tree-optimization/35795
6948 * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
6949 * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
6950 * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
6951 * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
6952 * score/score3.c (score3_output_mi_thunk): Likewise.
6953 * score/score7.c (score7_output_mi_thunk): Likewise.
6954 * mips/mips.c (mips_output_mi_thunk): Likewise.
6955
0d27ac1e 69562008-04-03 Richard Guenther <rguenther@suse.de>
6957
6958 * tree-vrp.c (extract_range_from_unary_expr): Handle all
6959 conversions. Simplify code.
6960
6c5df66e 69612008-04-03 Kaz Kojima <kkojima@gcc.gnu.org>
6962
6963 * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
6964
6fb2153a 69652008-04-03 Tom Tromey <tromey@redhat.com>
6966 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6967
6968 * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
6969 * config/bfin/t-bfin-linux (generated_files): Add
6970 linux-sysroot-suffix.h.
6971 * doc/install.texi (Prerequisites): Require make 3.80.
6972 * doc/sourcebuild.texi (Front End Directory): Document new
6973 variable.
6974 * Makefile.in (generated_files): New variable.
6975 (ALL_HOST_OBJS): New variable.
6976 ($(ALL_HOST_OBJS)): New target.
6977
32020b10 69782008-04-03 Paolo Bonzini <bonzini@gnu.org>
6979
d5b52ebc 6980 * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
6981 (remap_block): Call id->transform_lang_insert_block instead
6982 of langhook.
6983 (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
6984 Set id.transform_lang_insert_block to NULL.
6985 (clone_body): Move to cp/optimize.c
6986 * tree-inline.h (struct copy_body_data): Change
6987 transform_lang_insert_block to function pointer.
6988 (copy_generic_body, copy_decl_no_change): Export.
6989 * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
6990 * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
6991 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
6992
6993 * c-tree.h (insert_block): Kill.
6994 * c-decl.c (insert_block): Kill.
32020b10 6995
d2764e2d 69962008-04-03 Paolo Bonzini <bonzini@gnu.org>
6997
d5b52ebc 6998 * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
6999 LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
7000 * c-tree.h (c_push_function_context, c_pop_function_context): Remove
7001 argument.
7002 * c-decl.c (c_push_function_context, c_pop_function_context): Remove
7003 argument, call {push,pop}_function_context from here.
7004 * c-parser.c: Use c_{push,pop}_function_context.
7005
7006 * function.c (push_function_context_to): Move meat ...
7007 (push_function_context): ... here. Simplify.
7008 * function.c (pop_function_context_from): Move meat ...
7009 (pop_function_context): ... here. Simplify.
7010 * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
7011 leave_nested).
7012 * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
7013 LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
7014 (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
7015 * tree.h (push_function_context_to, pop_function_context_from): Remove.
d2764e2d 7016
3fc499d6 70172008-04-03 Ben Elliston <bje@au.ibm.com>
7018
7019 * expmed.c (extract_force_align_mem_bit_field): Remove.
7020
469b75f7 70212008-04-03 Richard Guenther <rguenther@suse.de>
7022
7023 PR middle-end/35800
7024 * expr.h (try_casesi): Adjust prototype.
7025 * expr.c (try_casesi): Take fallback label as extra parameter.
7026 Use that for gen_casesi if default_label is NULL.
7027 * stmt.c (expand_case): Pass fallback label to try_casesi,
7028 make sure to fill gaps with a fallback label if default_label
7029 is not present.
7030
bdc98a90 70312008-04-03 Dominique d'Humieres <dominiq@lps.ens.fr>
7032
7033 PR target/35801
7034 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
7035
6b2813fb 70362008-04-03 Ben Elliston <bje@au.ibm.com>
7037
7038 * expmed.c (extract_split_bit_field): Remove if (0) code.
7039 * tree-ssa-structalias.c (do_sd_constraint): Likewise.
7040 (do_ds_constraint): Likewise.
7041
34c3de48 70422008-04-02 Joseph Myers <joseph@codesourcery.com>
7043
7044 * doc/cppopts.texi (-dU): Document.
7045 * c-common.h (flag_dump_macros): Update comment.
7046 * c-opts.c (handle_OPT_d): Handle -dU.
7047 * c-ppoutput.c (macro_queue, define_queue, undef_queue,
7048 dump_queued_macros, cb_used_define, cb_used_undef): New.
7049 (init_pp_output): Handle -dU.
7050 (cb_line_change): Call dump_queued_macros.
7051 * toplev.c (decode_d_option): Accept -dU as preprocessor option.
7052
48310879 70532008-04-02 Anatoly Sokolov <aesok@post.ru>
7054
7055 * config/avr/predicates.md (io_address_operand): New predicate.
7056 * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
7057 * config/avr/avr.c (avr_io_address_p): Remove function.
7058 (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
7059 'avr_io_address_p' function.
7060 (out_movhi_r_mr): (Ditto.).
7061 (out_movqi_mr_r): (Ditto.).
7062 (out_movhi_mr_r): (Ditto.).
7063 (avr_address_cost): (Ditto.).
7064
470d0bc8 70652008-04-02 Uros Bizjak <ubizjak@gmail.com>
7066
7067 * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
7068 Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
7069 in 32bit mode when XMM registers are available to avoid store
7070 forwarding stalls.
7071 (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
7072 corresponding post-reload splitters.
7073
b1417d7e 70742008-04-02 H.J. Lu <hongjiu.lu@intel.com>
7075
7076 * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
7077 and __builtin_ia32_shufpd. Provide __builtin_ia32_roundsd and
7078 __builtin_ia32_roundss.
7079 (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
7080 __builtin_ia32_shufpd, __builtin_ia32_roundsd and
7081 __builtin_ia32_roundss.
7082 (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
7083 IX86_BUILTIN_SHUFPD here.
7084
b6bc2701 70852008-04-02 H.J. Lu <hongjiu.lu@intel.com>
7086
7087 * config/i386/i386.md (plogic): New.
7088 (plogicprefix): Likewise.
7089
7090 * config/i386/mmx.md (mmx_<code><mode>3): New.
7091 (mmx_and<mode>3): Removed.
7092 (mmx_ior<mode>3): Likewise.
7093 (mmx_xor<mode>3): Likewise.
7094
7095 * config/i386/sse.md (<code><mode>3): New.
7096 (*<code><mode>3): Likewise.
7097 (*<code><mode>3): Likewise.
7098 (<code><mode>3): Likewise.
7099 (*sse_<code><mode>3): Likewise.
7100 (*sse2_<code><mode>3): Likewise.
7101 (<code>tf3): Likewise.
7102 (*<code>tf3): Likewise.
7103 (and<mode>3): Likewise.
7104 (*and<mode>3): Likewise.
7105 (ior<mode>3): Removed.
7106 (*ior<mode>3): Likewise.
7107 (xor<mode>3): Likewise.
7108 (*xor<mode>3): Likewise.
7109 (*and<mode>3): Likewise.
7110 (*ior<mode>3): Likewise.
7111 (*xor<mode>3): Likewise.
7112 (and<mode>3): Likewise.
7113 (*sse_and<mode>3): Likewise.
7114 (*sse2_and<mode>3): Likewise.
7115 (andtf3): Likewise.
7116 (*andtf3): Likewise.
7117 (ior<mode>3): Likewise.
7118 (*sse_ior<mode>3): Likewise.
7119 (*sse2_ior<mode>3): Likewise.
7120 (iortf3): Likewise.
7121 (*iortf3): Likewise.
7122 (xor<mode>3): Likewise.
7123 (*sse_xor<mode>3): Likewise.
7124 (*sse2_xor<mode>3): Likewise.
7125 (xortf3): Likewise.
7126 (*xortf3): Likewise.
7127
72c30859 71282008-04-02 Richard Guenther <rguenther@suse.de>
7129
7130 PR tree-optimization/14495
7131 PR tree-optimization/34793
7132 * tree-vrp.c (struct switch_update): New structure.
7133 (to_remove_edges, to_update_switch_stmts): New VECs.
7134 (simplify_switch_using_ranges): New function. Remove not taken
7135 case labels and edges.
7136 (simplify_stmt_using_ranges): Call it.
7137 (identify_jump_threads): Mark edges we have queued for removal
7138 so we don't thread them.
7139 (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
7140 case label vector.
7141 * tree-cfg.c (group_case_labels): Deal with missing default label.
7142 (tree_verify_flow_info): Allow missing default label.
7143 * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
7144 (emit_case_nodes): Likewise.
7145 (expand_case): Do not rely on the default label to be present.
7146 * expr.c (try_casesi): Deal with NULL default_label.
7147 (do_tablejump): Likewise.
7148
b6d7b6c5 71492008-04-02 Richard Guenther <rguenther@suse.de>
7150
7151 PR tree-optimization/14495
7152 * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
7153 SWITCH_EXPR here ...
7154 (vrp_visit_switch_stmt): ... but here (new function).
7155 (find_case_label_index): New helper function.
7156 (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
7157
217c0c86 71582008-04-02 Paolo Bonzini <bonzini@gnu.org>
7159
7160 * fwprop.c: Fix ISO-C99ism.
7161
794723c1 71622008-04-02 Paolo Bonzini <bonzini@gnu.org>
7163
7164 PR bootstrap/35752
7165 * Makefile.in (objdir): Set it here.
7166 * configure.ac: Not here. Find dynamic linker characteristics.
7167 * exec-tool.in: Use them.
7168 * aclocal.m4: Regenerate.
7169 * configure: Regenerate.
7170
1a105fae 71712008-04-02 Paolo Bonzini <bonzini@gnu.org>
7172
7173 * expr.c (expand_var): Delete it.
7174 * expr.h (expand_var): Delete prototype.
7175 * function.c (expand_function_start): Use expand_decl instead.
7176 * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
7177 langhook.
7178
f533acbe 71792008-04-02 Andy Hutchinson <hutchinsonamdy@aim.com>
7180
7181 PR rtl-optimization/35542
7182 * fwprop.c (forward_propagate_and_simplify): Replace
7183 loc_reg_mentioned_in_p with reg_mentioned_p.
7184
f8f13645 71852008-04-02 Paolo Bonzini <bonzini@gnu.org>
7186
f533acbe 7187 PR rtl-optimization/35281
f8f13645 7188 * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
7189 (propagate_rtx_1): Handle PR_HANDLE_MEM.
7190 (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
7191 (varying_mem_p): Move above propagate_rtx.
7192 (all_uses_available_at): Do not check MEMs.
7193
a00913c7 71942008-04-02 Rafael Espindola <espindola@google.com>
7195
7196 * tree-vrp.c (extract_code_and_val_from_cond): Remove.
7197 (register_edge_assert_for_2): Split the cond argument.
7198 (register_edge_assert_for_1): Adjust for the change in
7199 register_edge_assert_for_2.
7200 (register_edge_assert_for): Split the cond argument.
7201 (find_switch_asserts): Adjust for the change in
7202 register_edge_assert_for.
7203
c8c521bb 72042008-04-02 Kai Tietz <kai.tietz@onevision.com>
7205
7206 * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
1f93c018 7207 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
c61eb773 7208 offsets for 64-bit mingw.
1f93c018 7209 * config/i386/i386.c (ix86_pass_by_reference): Correct calling
c61eb773 7210 abi for x86_64-pc-mingw.
c8c521bb 7211
22cdb855 72122008-04-02 Richard Guenther <rguenther@suse.de>
7213
7214 * tree-vrp.c (extract_range_from_assert): Make sure to not
7215 produce range min/max with TREE_OVERFOW set.
7216 If merging a anti-range and a range keep the anti-range if
7217 the range covers all values of the type.
7218 (register_edge_assert_for_2): Only allow sign-changing
7219 conversions in detecting canonical range checks. Also
7220 register an assert for the unsigned name if useful.
7221
7222 PR tree-optimization/35787
7223 * tree-vrp.c (vrp_val_max): New function.
7224 (vrp_val_min): Likewise.
7225 (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
7226 (vrp_val_is_min): Likewise.
7227 (supports_overflow_infinity): Use vrp_val_{min,max}.
7228 (negative_overflow_infinity): Likewise.
7229 (positive_overflow_infinity): Likewise.
7230 (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
7231 (is_positive_overflow_infinity): Likewise.
7232 (is_overflow_infinity): Likewise.
7233 (avoid_overflow_infinity): Use vrp_val_{min,max} and
7234 vrp_val_is_{min,max}.
7235 (set_and_canonicalize_value_range): Canonicalize anti-ranges
7236 to ranges if possible. Avoid empty ranges.
7237
10494d65 72382008-04-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7239
7240 PR middle-end/35705
7241 * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
7242 the expression is a function address.
7243
a12691f0 72442008-04-01 George Helffrich <george@gcc.gnu.org>
7245
ae093573 7246 PR fortran/35154, fortran/23057
a12691f0 7247 * dbxout.c: Emit .stabs debug info for Fortran COMMON block
7248 variables as base symbol name + offset using N_BCOMM/N_ECOMM.
7249 (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
7250 (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
7251 in common.
7252 (dbxout_syms): Check for COMMON-based symbol and wrap in
7253 N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
7254 in bracket for efficiency.
7255
7256 * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
7257 using DW_TAG_common_block + member offset.
7258 (add_pubname_string): New function.
7259 (dw_expand_expr): New function to find block name and offset for
7260 COMMON var.
7261 (common_check): New function to check whether symbol in Fortran COMMON.
7262 (gen_variable_die): If COMMON, use DW_TAG_common_block.
7263
fa3b771a 72642008-04-01 Volker Reichelt <v.reichelt@netcologne.de>
7265
7266 PR c/35436
7267 * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
7268
dbec73a5 72692008-04-02 Ben Elliston <bje@au.ibm.com>
7270
7271 * config/v850/v850.md (casesi): Remove if (0) code.
7272 * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
7273 * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
7274
3a8f2ab9 72752008-04-01 Uros Bizjak <ubizjak@gmail.com>
7276
7277 * config/i386/i386.md (rex64suffix): New mode attribute.
7278 (floathi<mode>2): Disable expander for SSE math.
7279 (*floathi<mode>2_1): New insn insn_and_split pattern.
7280 (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
7281 corresponding post-reload splitters.
7282 (*floathi<mode>2_i387): New macroized insn pattern.
7283 (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
7284 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
7285 insn_and_split pattern.
7286 (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
7287 New macroized instruction patterns and corresponding post-reload
7288 splitters.
7289 (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
7290 and corresponding post-reload splitters.
7291 (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
7292 New macroized instruction patterns.
7293 (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
7294 macroized instruction patterns and corresponding post-reload splitters.
7295 (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
7296 corresponding post-reload splitters.
7297 (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
7298 New macroized instruction patterns.
7299 (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
7300 corresponding post-reload splitters.
7301 (*floatsi<mode>2_i387): New macroized instruction patterns.
7302
9409fce7 73032008-04-01 H.J. Lu <hongjiu.lu@intel.com>
7304
7305 * config/i386/i386.md (smaxmin): New.
7306 (umaxmin): Likewise.
7307 (maxminiprefix): Likewise.
7308 (maxminfprefix): Likewise.
7309 (<code><mode>3): Likewise.
7310 (smin<mode>3): Removed.
7311 (smax<mode>3): Likewise.
7312
7313 * config/i386/mmx.md (mmx_<code>v2sf3): New.
7314 (mmx_<code>v4hi3): Likewise.
7315 (mmx_<code>v8qi3): Likewise.
7316 (mmx_smaxv2sf3): Removed.
7317 (mmx_sminv2sf3): Likewise.
7318 (mmx_umaxv8qi3): Likewise.
7319 (mmx_smaxv4hi3): Likewise.
7320 (mmx_uminv8qi3): Likewise.
7321 (mmx_sminv4hi3): Likewise.
7322
7323 * config/i386/sse.md (<addsub><mode>3): New.
7324 (*<addsub><mode>3): Likewise.
7325 (<sse>_vm<addsub><mode>3): Likewise.
7326 (<maxmin><mode>3): Likewise.
7327 (*<maxmin><mode>3_finite): Likewise.
7328 (*<maxmin><mode>3): Likewise.
7329 (<sse>_vm<maxmin><mode>3): Likewise.
7330 (sse3_h<addsub>v4sf3): Likewise.
7331 (sse3_h<addsub>v2df3): Likewise.
7332 (<maxmin>v16qi3): Likewise.
7333 (*<maxmin>v16qi3): Likewise.
7334 (<maxmin>v8hi3): Likewise.
7335 (*<maxmin>v8hi3): Likewise.
7336 (*sse4_1_<maxmin><mode>3): Likewise.
7337 (*sse4_1_<maxmin><mode>3): Likewise.
7338 (add<mode>3): Removed.
7339 (*add<mode>3): Likewise.
7340 (<sse>_vmadd<mode>3): Likewise.
7341 (sub<mode>3): Likewise.
7342 (*sub<mode>3): Likewise.
7343 (<sse>_vmsub<mode>3): Likewise.
7344 (smin<mode>3): Likewise.
7345 (*smin<mode>3_finite): Likewise.
7346 (*smin<mode>3): Likewise.
7347 (<sse>_vmsmin<mode>3): Likewise.
7348 (smax<mode>3): Likewise.
7349 (*smax<mode>3_finite): Likewise.
7350 (*smax<mode>3): Likewise.
7351 (<sse>_vmsmax<mode>3): Likewise.
7352 (sse3_haddv4sf3): Likewise.
7353 (sse3_haddv2df3): Likewise.
7354 (sse3_hsubv4sf3): Likewise.
7355 (sse3_hsubv2df3): Likewise.
7356 (umaxv16qi3): Likewise.
7357 (*umaxv16qi3): Likewise.
7358 (smaxv8hi3): Likewise.
7359 (*smaxv8hi3): Likewise.
7360 (*sse4_1_smax<mode>3): Likewise.
7361 (*sse4_1_umax<mode>3): Likewise.
7362 (uminv16qi3): Likewise.
7363 (*uminv16qi3): Likewise.
7364 (sminv8hi3): Likewise.
7365 (*sminv8hi3): Likewise.
7366 (*sse4_1_smin<mode>3): Likewise.
7367 (*sse4_1_umin<mode>3): Likewise.
7368
d3ec693f 73692008-04-01 Rafael Espindola <espindola@google.com>
7370
7371 * tree-cfg.c (verify_expr): remove in_phi.
9409fce7 7372 (verify_stmt): Don't call walk_tree with verify_expr. Use
d3ec693f 7373 is_gimple_min_invariant instead of is_gimple_val.
7374
eae7da65 73752008-04-01 Joseph Myers <joseph@codesourcery.com>
7376
7377 * doc/include/gpl_v3.texi: Update for manpage generation.
7378 * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
7379 gpl.texi.
7380 * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
7381 * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
7382 gpl_v3.texi instead of gpl.texi.
7383 (gpl.pod): New.
7384
f2225b1a 73852008-04-01 Jakub Jelinek <jakub@redhat.com>
7386
7387 PR pch/13675
7388 * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
7389
7433d1d6 73902008-04-01 Rafael Espindola <espindola@google.com>
7391
7392 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
7393 (extract_code_and_val_from_cond): Use
7394 extract_code_and_val_from_cond_with_ops.
7395
1321f22c 73962008-04-01 Jan Hubicka <jh@suse.cz>
7397
7398 * function.c (free_after_compilation): Free epilogue_delay_list.
7399 (prepare_function_start): Assert that previous compilation was freed.
7400
08d2afb4 74012008-04-01 Jan Hubicka <jh@suse.cz>
7402 Jim Wilson <wilson@tuliptree.org>
7403 Andreas Tobler <andreast@gcc.gnu.org>
7404
7405 PR middle-end/35781
7406 * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
7407 rtl.emit instead cfun->emit.
7408 * sparc/sparc.h (INIT_EXPANDERS): Likewise.
7409 * ia64/ia64.h (INIT_EXPANDERS): Likewise.
7410
21b45faa 74112008-04-01 Ben Elliston <bje@au.ibm.com>
7412
7413 * doc/c-tree.texi (Function Basics): Fix grammatical error.
7414
3e3a0e9c 74152008-03-31 Seongbae Park <seongbae.park@gmail.com>
7416
7417 * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
7418 New options
7419 (fprofile-use): Add var flag_profile_use
3a8f2ab9 7420 * coverage.c (coverage_begin_output): Do not open a gcno file for
7421 output only if -ftest-coverage is set.
3e3a0e9c 7422 Do not add getpwd() to gcda file path.
3a8f2ab9 7423 (build_gcov_info): Check the new flag
3e3a0e9c 7424 flag_profile_datafile_relative_path.
7425 (coverage_init): Use profile_data_prefix.
7426 Read profile counter only if flag_profile_use is set.
7427 * opts.c (common_handle_option): New option fprofile-use=,
7428 fprofile-dir=, fprofile-generate=.
7429 * toplev.c (profile_data_prefix): New variable definition.
7430 * toplev.h (profile_data_prefix): New declaration.
7431 * doc/invoke.tex (Option Summary, Optimization Options):
7432 Add new options.
7433
4e508025 74342008-03-31 James E. Wilson <wilson@tuliptree.org>
7435
3a8f2ab9 7436 * varasm.c (output_constant_pool_1): In LABEL_REF check,
7437 use tmp consistently.
4bd8d9a1 7438
4e508025 7439 PR target/35695
7440 * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
7441 * config/ia64/ia64.c (rtx_needs_barrier): Handle
7442 UNSPEC_FR_RECIP_APPROX_RES.
7443 * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
7444
e911c0fe 74452008-03-31 Volker Reichelt <v.reichelt@netcologne.de>
7446
7447 PR c/35750
7448 * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
7449
70a866cf 74502008-03-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
7451
7452 PR middle-end/30186
7453 * fold-const.c (fold_indirect_ref_1): Support accessing non first
7454 element of the vector via a pointer.
7455
168de4c5 74562008-03-31 Ian Lance Taylor <iant@google.com>
7457
3a8f2ab9 7458 * tlink.c (scan_linker_output): Look for symbol name in single quotes.
168de4c5 7459
b079a207 74602008-03-31 Jan Hubicka <jh@suse.cz>
7461
7462 * builtins.c (expand_builtin_setjmp_receiver): Update call of
7463 get_arg_pointer_save_area.
7464 * expr.c (init_expr): Just clear out rtl.expr.
7465 * function.c (free_after_compilation): Clear out whole RTL structure.
7466 (get_func_frame_size): Merge into ...
7467 (get_frame_size): ... this one.
7468 (assign_stack_local_1): Merge into ...
7469 (assign_stack_local): ... this one.
7470 (expand_function_end): Update call of get_arg_pointer_save_area.
7471 (get_art_pointer_save_area): Remove cfun argument.
7472 * function.h (emit_status): regno_pointer_align does not need length
7473 attribute. Move x_regno_reg_rtx to ...
7474 (regno_reg_rtx): ... new global array.
7475 (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
7476 (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
3a8f2ab9 7477 apply_args_value, forced_labels, stack_pointer_delta):
7478 Update accestors.
b079a207 7479 (struct varasm_status): Move here from varasm.c
7480 (struct rtl_data): New. Move here some fields from struct function.
7481 (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
7482 frame_offset, stack_check_probe_note, arg_pointer_save_area,
7483 used_temp_slots avail_temp_slots, temp_slot_level,
7484 nonlocal_goto_handler_labels): Update accesstors.
7485 (rtl): New global variable.
7486 (struct function): Move some fileds to rtl_data.
7487 (get_arg_pointer_save_area): Update prototype.
7488 * emit-rtl.c (rtl): Declare.
7489 (regno_reg_rtx): Declare.
3a8f2ab9 7490 (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
7491 Update.
b079a207 7492 (gen_reg_rtx): Update.
7493 (init_virtual_regs): Do not tate emit_status argument.
7494 (init_emit): Do not allocate emit.
7495 * varasm.c (varasm_statuc): Move to function.h.
7496 (n_deferred_constatns): Update accestor.
7497 (init_varasm_status): Do not allocate varasm_status.
7498 (force_const_mem, get_pool_size, output_constant_pool): Update.
7499 * stmt.c (force_label_rtx): Do not use x_ prefixes.
7500 (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
7501
13ecee21 75022008-03-31 Zdenek Dvorak <ook@ucw.cz>
7503
7504 PR rtl-optimization/35729
7505 * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
7506 references.
7507
0010688c 75082008-03-31 H.J. Lu <hongjiu.lu@intel.com>
7509
7510 PR target/32000
7511 * config/i386/i386.md (*movti_internal): Emit unaligned SSE
7512 load/store if memory is unaligned.
7513 (*movti_rex64): Likewise.
7514
7515 * config/i386/predicates.md (misaligned_operand): New.
7516
435e1a75 75172008-03-31 Andrew Pinski <pinskia@gmail.com>
7518
7519 PR tree-opt/35431
7520 * tree-ssa-phiopt.c (conditional_replacement): Return early for
7521 complex types.
7522
80538812 75232008-03-31 Jan Beulich <jbeulich@novell.com>
7524
7525 * config/ia64/constraints.md: Add 'j' constraint.
7526 * config/ia64/ia64.md (movsi_internal): Add addp4 case.
7527 (movdi_internal): Likewise.
7528
ae4400fc 75292008-03-30 Volker Reichelt <v.reichelt@netcologne.de>
7530
7531 PR c/35748
7532 * c-typeck.c (build_c_cast): Skip invalid fields in unions.
7533
7b18adb1 75342008-03-30 H.J. Lu <hongjiu.lu@intel.com>
7535
7536 PR target/35757
7537 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
7538 proper error message for the third argument on blendpd and
7539 blendps.
7540
7541 * config/i386/sse.md (blendbits): New.
7542 (sse4_1_blendp<ssemodesuffixf2c>): Use it.
7543
54bd17de 75442008-03-30 Eric Botcazou <ebotcazou@adacore.com>
7545
7546 * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
7547
8db0c0ff 75482008-03-30 Richard Guenther <rguenther@suse.de>
7549
7550 PR middle-end/31023
7551 * fold-const.c (fold_sign_changed_comparison): Do leave
7552 conversions to base-types alone.
7553
29c144d1 75542008-03-29 Andrew Pinski <andrew_pinski@playstation.sony.com>
7555
7556 * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
7557 the link register if one altivec register is be saved.
7558
55007e96 75592008-03-30 Ben Elliston <bje@au.ibm.com>
7560
7561 * final.c (final_scan_insn): Remove if (0) code.
7562
b3cafa91 75632008-03-28 Volker Reichelt <v.reichelt@netcologne.de>
7564
7565 * c-parser.c (c_parser_next_token_is_keyword): Simplify.
7566
18861bde 75672008-03-28 H.J. Lu <hongjiu.lu@intel.com>
7568
7569 * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
7570 of V4SFmode to ix86_binary_operator_ok.
7571
d173d680 75722008-03-28 Uros Bizjak <ubizjak@gmail.com>
7573
7574 * config/i386/i386.c (override_options): Initialize
7575 ix86_veclib_handler to ix86_veclibabi_svml when
7576 -mveclibabi=svml is used.
7577 (ix86_veclibabi_svml): New function for SVML ABI style
7578 vectorization support.
7579 * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
7580
93116081 75812008-03-28 Rafael Espindola <espindola@google.com>
7582
7583 * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
7584 (tree_binary_nonnegative_warnv_p): Make it public.
7585 (tree_single_nonnegative_warnv_p): Make it public.
7586 (tree_invalid_nonnegative_warnv_p): Make it public.
7587 (tree_unary_nonzero_warnv_p): Make it public.
7588 (tree_binary_nonzero_warnv_p): Make it public
7589 (tree_single_nonzero_warnv_p): Make it public.
7590 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
7591 (extract_range_from_binary_expr): Split the expr argument.
7592 (extract_range_from_unary_expr): Split the expr argument.
7593 (extract_range_from_comparison): Split the expr argument.
7594 (extract_range_from_expr): Use the new aux functions.
7595 (vrp_evaluate_conditional_warnv): Use
7596 vrp_evaluate_conditional_warnv_with_ops.
7597 * tree.h (tree_unary_nonzero_warnv_p): Declare.
7598 (tree_binary_nonzero_warnv_p): Declare.
7599 (tree_single_nonzero_warnv_p): Declare.
7600 (tree_expr_nonzero_warnv_p): Declare.
7601 (tree_unary_nonnegative_warnv_p): Declare.
7602 (tree_binary_nonnegative_warnv_p): Declare.
7603 (tree_single_nonnegative_warnv_p): Declare.
7604 (tree_invalid_nonnegative_warnv_p): Declare.
7605
bed8bec4 76062008-03-28 Richard Guenther <rguenther@suse.de>
7607
7608 PR tree-optimization/30317
7609 PR tree-optimization/30911
7610 PR tree-optimization/34793
7611 * tree-vrp.c (set_and_canonicalize_value_range): New function.
7612 (struct assert_locus_d): New member EXPR.
7613 (register_new_assert_for): Add EXPR parameter to support
7614 ASSERT_EXPR <name, expr OP limit>.
7615 (register_edge_assert_for_1): Adjust callers.
7616 (find_assert_locations): Likewise.
d173d680 7617 (process_assert_insertions_for): Build condition from expression.
bed8bec4 7618 (extract_range_from_assert): Handle ASSERT_EXPRs
7619 of the form ASSERT_EXPR <name, expr OP limit>.
7620 (register_edge_assert_for_2): New helper registering
7621 asserts for comparisons. Recognize range tests of the form
7622 (unsigned)i - CST1 OP CST2.
7623 (register_edge_assert_for_1): Use it.
7624 (register_edge_assert_for): Likewise.
7625 (needs_overflow_infinity): Integer sub-types
7626 do not need overflow infinities.
7627 (vrp_val_is_max): The extreme values of integer sub-types
7628 are those of the base type.
7629 (vrp_val_is_min): Likewise.
7630 * tree.def (ASSERT_EXPR): Document extra allowed conditional
7631 expressions.
7632
55f3f40f 76332008-03-28 Nick Clifton <nickc@redhat.com>
7634
12f2d5e9 7635 PR target/31110
55f3f40f 7636 * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
d173d680 7637 Return GENERAL_REGS for stack adjustment reloads.
55f3f40f 7638
cb47bce8 76392008-03-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
7640
7641 PR target/31334
7642 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
7643 const_vector when all the vectors are constant.
7644
a22be2c5 76452008-03-27 Bob Wilson <bob.wilson@acm.org>
7646
7647 * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
7648 comparisons.
7649 * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
7650 (any_scc_sf): Add uneq, unlt, unle and unordered operators.
7651 (scc_sf): New.
7652 (s<code>_sf): Use new scc_sf attribute for opcode names.
7653
21886706 76542008-03-27 Tom Tromey <tromey@redhat.com>
7655
7656 * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
7657 configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
7658 config/spu/t-spu-elf, config/i386/t-interix,
7659 config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
7660 config/i386/x-darwin, config/i386/x-mingw32,
7661 config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
7662 config/sh/t-sh, config/sh/t-symbian, config/x-linux,
7663 config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
7664 config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
7665 config/rs6000/x-rs6000, config/rs6000/x-darwin64,
7666 config/rs6000/x-darwin, config/rs6000/t-rs6000,
7667 config/score/t-score-elf, config/arm/t-strongarm-pe,
7668 config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
7669 config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
7670 Revert automatic dependency patch.
7671
4f0ebb16 76722008-03-27 H.J. Lu <hongjiu.lu@intel.com>
7673
7674 PR target/35657
7675 * config/i386/i386.c (ix86_function_arg_boundary): Align
7676 decimal floating point to its natural boundary.
7677
dd691fd8 76782008-03-27 Richard Guenther <rguenther@suse.de>
7679
7680 PR middle-end/35716
7681 * fold-const.c (fold_comparison): Restrict distinct decl
7682 comparison folding to VAR_DECLs and PARM_DECLs. Do not
7683 solely rely on operand_equal_p.
7684
059a60f3 76852008-03-27 Richard Guenther <rguenther@suse.de>
7686
7687 PR c/32511
7688 * c-common.c (handle_weak_attribute): Reject combination of
7689 weak and inline.
7690
590d65aa 76912008-03-27 Richard Guenther <rguenther@suse.de>
7692
7693 PR tree-optimization/32810
7694 * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
7695 conversions from DECL_INITIAL.
7696 (fold_const_aggregate_ref): Likewise from constructor elements.
7697
063a8bce 76982008-03-27 Zdenek Dvorak <ook@ucw.cz>
7699
7700 * tree-affine.h (aff_combination_expand): Declare.
7701 (get_inner_reference_aff): Likewise.
7702 * tree-affine.c (aff_combination_expand): Split out from
7703 tree_to_aff_combination_expand.
7704 (get_inner_reference_aff): New function.
7705 * tree-parloops.c (loop_parallel_p): Free vectorizer info.
d173d680 7706 * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
7707 (struct lim_aux_data): sm_done field removed.
7708 (mem_ref_loc_p, mem_ref_locs_p): New types.
7709 (struct mem_ref): Added id, stored, accesses_in_loop,
7710 indep_loop, dep_loop, indep_ref, dep_ref fields.
7711 Removed is_stored, locs and next fields.
7712 (memory_accesses): New variable.
7713 (movement_possibility): Do not allow moving statements
7714 that store to memory.
7715 (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
7716 New functions.
7717 (determine_max_movement): For statements with memory references,
7718 find the outermost loop in that the reference is independent.
7719 (move_computations_stmt): Mark the virtual operands for renaming.
7720 (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
7721 gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
7722 vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
7723 add_vop_ref_mapping, create_vop_ref_mapping_loop,
7724 create_vop_ref_mapping, analyze_memory_references,
7725 cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
7726 get_all_locs_in_loop, ref_always_accessed_p,
7727 refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
7728 ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
7729 store_motion_loop, store_motion): New functions.
7730 (struct vop_to_refs_elt): New type.
7731 (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
7732 memref_hash, memref_eq, hoist_memory_references): Rewritten.
7733 (schedule_sm): Replaced by...
7734 (execute_sm): ... this.
7735 (determine_lsm_ref, hoist_memory_references,
7736 loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
7737 find_more_ref_vops, free_mem_ref, free_mem_refs,
7738 determine_lsm_loop, determine_lsm): Removed.
7739 (tree_ssa_lim_finalize): Free data structures used by store motion.
7740 (tree_ssa_lim): Call analyze_memory_references. Use
7741 store_motion instead of determine_lsm.
063a8bce 7742
58a8c75f 77432008-03-27 Paolo Bonzini <bonzini@gnu.org>
7744
7745 * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
7746 rename tmake_file to m68hc11/t-m68hc11.
7747 (mcore): Set inhibit_libc to true.
7748 * config.host (alpha*-dec-*vms*): Set extra_programs.
7749 (interix3*): Don't use host_xmake_file.
7750 * configure.ac: Let config.gcc override inhibit_libc.
7751 * configure: Regenerate.
7752
7753 * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
7754 * config/t-openbsd-thread: Remove commented out lines.
7755
7756 * config/x-interix: Remove.
7757
7758 * config/m68hc11/t-m68hc11-gas: Rename to...
7759 * config/m68hc11/t-m68hc11: ... this. Remove T_CPPFLAGS.
7760
7761 * config/mcore/t-mcore: Remove T_CFLAGS.
7762 * config/mcore/t-mcore-pe: Likewise.
7763
b9146087 77642008-03-27 Paolo Bonzini <bonzini@gnu.org>
7765
7766 * configure.ac: Replace custom __GNU_SOURCE test with
7767 AC_USE_SYSTEM_EXTENSIONS. Move it earlier.
7768 * aclocal.m4: Regenerate.
7769 * configure: Regenerate.
7770 * config.in: Regenerate.
7771
ffdf1c47 77722008-03-27 Richard Guenther <rguenther@suse.de>
7773
7774 * fold-const.c (target.h): Include.
7775 (fold_comparison): Fold comparison of addresses of decls
7776 that bind locally or of constants. Consolidate address folding code.
7777 * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
7778 results from fold_binary_to_constant.
7779 (compare_values_warnv): Likewise.
7780
d159b72d 77812008-03-27 Andrew Pinski <pinskia@gmail.com>
7782
7783 PR middle-end/35429
7784 * fold-const.c (fold_truthop): Check for integeral types when folding
7785 a == 0 && b == 0 and a != 0 || b != 0 .
7786
bed74a71 77872008-03-26 Eric Botcazou <ebotcazou@adacore.com>
7788
7789 * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
7790
7e8061cf 77912008-03-26 Andreas Schwab <schwab@suse.de>
7792
7793 * doc/invoke.texi: Fix use of @item vs. @itemx.
7794
f731500e 77952008-03-26 Tom Tromey <tromey@redhat.com>
7796
7797 * Makefile.in (build/gensupport.o, build/print-rtl.o,
7798 build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
7799 build/genattrtab.o, build/genautomata.o, build/gencheck.o,
7800 build/gencodes.o, build/genconditions.o, build/genconfig.o,
7801 build/genconstants.o, build/genemit.o, build/genextract.o,
7802 build/genflags.o, build/genmddeps.o, build/genopinit.o,
7803 build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
7804 options.h.
7805
e7d6ed86 78062008-03-26 Richard Guenther <rguenther@suse.de>
7807
7808 Revert
7809 2008-03-26 Richard Guenther <rguenther@suse.de>
7810
7811 * fold-const.c (target.h): Include.
7812 (fold_comparison): Fold comparison of addresses of two decls
7813 that bind locally. Consolidate address folding code.
7814
3fa759a9 78152008-03-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7816
7817 * builtins.c (expand_builtin_pow, fold_builtin_cabs,
7818 fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
7819 fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
7820 dconstsqrt2, dconstthird, dconste and/or dconst10.
7821 * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
7822 * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
7823 dconstsqrt2, dconste): Delete.
7824 (init_emit_once): Likewise. Simplify initializing dconstm1.
7825 Constify variable.
7826 * real.c (get_real_const): New.
7827 * real.h (dconst3, dconst10, dconstm2, dconstthird,
7828 dconstsqrt2, dconste): Delete.
7829 (real_value_const, get_real_const): New.
7830
3a8a26d5 78312008-03-26 H.J. Lu <hongjiu.lu@intel.com>
7832
7833 * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
7834
7835 * config/i386/i386.c (ix86_function_arg_boundary): Check
7836 BIGGEST_ALIGNMENT instead of 128.
7837 (setup_incoming_varargs_64): Likewise.
7838
ae69189e 78392008-03-26 Tom Tromey <tromey@redhat.com>
7840
7841 * Makefile.in (DEPFILES): Add missing '/'.
7842
60f42188 78432008-03-26 Richard Guenther <rguenther@suse.de>
7844
7845 * fold-const.c (target.h): Include.
7846 (fold_comparison): Fold comparison of addresses of two decls
7847 that bind locally. Consolidate address folding code.
7848
a0ebe2ee 78492008-03-26 Nick Clifton <nickc@redhat.com>
7850
7851 PR target/31232
7852 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
7853 not allow INT+INT as a legitimate addressing mode.
7854
e607210a 78552008-03-26 Richard Guenther <rguenther@suse.de>
7856
7857 * tree-flow.h (widen_bitfield): Remove declaration.
7858 * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
7859 (widen_bitfield): Remove function.
7860 * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
7861 code.
7862
f082efb4 78632008-03-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
7864
5c00ef9c 7865 PR target/31558
f082efb4 7866 * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
7867 error_mark_node's.
7868
1e32b0c4 78692008-03-25 Richard Sandiford <rsandifo@nildram.co.uk>
7870
7871 PR rtl-optimization/35232
7872 * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
7873 (forget_old_reloads_1, forget_marked_reloads): Don't clear
7874 reg_reloaded_call_part_clobbered here.
7875 (reload_regs_reach_end_p): New function.
7876 (reload_reg_rtx_for_input): New variable.
7877 (reload_reg_rtx_for_output): Likewise.
7878 (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
7879 when reassigning a pseudo register. Load reloadreg from
7880 reload_reg_rtx_for_input, moving the mode and register
7881 calculation to...
7882 (do_input_reload): ...here. Use the mode-adjusted reg_rtx
7883 instead of the original when deciding whether an input reload
7884 would be a no-op or whether an output reload can be deleted.
7885 (emit_output_reload_insns): Use the mode-adjusted reg_rtx
7886 when setting up new_spill_reg_store. Load it from
7887 reload_reg_rtx_for_output, moving the mode and register
7888 calculation to...
7889 (do_output_reload): ...here. Use the mode-adjusted reg_rtx
7890 instead of the original when deciding whether an output reload
7891 would be a no-op. Do the same when modifying insn notes.
7892 Use rtx_equal_p instead of == to compare the registers.
7893 (inherit_piecemeal_p): Take a mode and two register numbers
7894 as argument.
7895 (emit_reload_insns): Clear new_spill_reg_store for every hard
7896 register in the reload register. Remove spill registers
7897 from reg_reloaded_valid before considering whether to record
7898 inheritance information for them. Use reload_reg_rtx_for_output
7899 instead of reg_rtx when recording output reloads. Use
7900 reload_reg_rtx_for_input instead of reg_rtx when recording
7901 input reloads. Set or clear reg_reloaded_call_part_clobbered
7902 at the same time as setting reg_reloaded_valid.
7903 (delete_output_reload): Add a new_reload_reg parameter and use it
7904 instead of rld[j].reg_rtx.
7905 (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
7906 calls accordingly.
7907
72490eb6 79082008-03-25 Tom Tromey <tromey@redhat.com>
7909
7910 * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
7911 (build/genattr.o): Likewise.
7912 (build/genattrtab.o): Likewise.
7913 (build/gencodes.o): Likewise.
7914 (build/genconfig.o): Likewise.
7915 (build/genconstants.o): Likewise.
7916 (build/genemit.o): Likewise.
7917 (build/genextract.o): Likewise.
7918 (build/genflags.o): Likewise.
7919
1bdc4996 79202008-03-25 Bob Wilson <bob.wilson@acm.org>
7921
7922 * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
7923 instead of size_int for integer types.
7924 (xtensa_gimplify_va_arg_expr): Likewise. Convert index to sizetype
7925 to match type of MINUS_EXPR.
7926
ac26af35 79272008-03-25 Tom Tromey <tromey@redhat.com>
7928
7929 * configure: Rebuilt.
7930 * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
7931 Makefile.
7932
277b05bb 79332008-03-25 Tom Tromey <tromey@redhat.com>
7934
7935 * config/x-solaris (host-solaris.o): Update.
7936 * config/x-linux (host-linux.o): Update.
7937 * config/x-hpux (host-hpux.o): Update.
7938 * config/x-darwin (host-darwin.o): Update.
7939 * config/v850/t-v850e (v850-c.o): Update.
7940 * config/v850/t-v850 (v850-c.o): Update.
7941 * config/t-vxworks (vxworks.o): Update.
7942 * config/t-sol2 (sol2-c.o, sol2.o): Update.
a4be8081 7943 * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
277b05bb 7944 * config/spu/t-spu-elf (spu-c.o): Update.
7945 (spu.o): Remove.
7946 * config/sh/t-symbian (sh-c.o): Update.
7947 (symbian.o): Update.
7948 * config/sh/t-sh (sh-c.o): Update.
7949 * config/score/t-score-elf (score7.o, score3.o): Update.
7950 * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
7951 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
7952 * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
7953 * config/rs6000/t-rs6000 (rs6000-c.o): Update.
7954 (rs6000.o): Remove.
7955 * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
7956 * config/m32c/t-m32c (m32c-pragma.o): Update.
7957 * config/ia64/t-ia64 (ia64-c.o): Update.
7958 * config/i386/x-mingw32 (host-mingw32.o): Update.
7959 * config/i386/x-i386 (driver-i386.o): Update.
7960 * config/i386/x-darwin (host-i386-darwin.o): Update.
7961 * config/i386/x-cygwin (host-cygwin.o): Update.
7962 * config/i386/t-nwld (nwld.o): Update.
7963 * config/i386/t-netware (netware.o): Update.
7964 * config/i386/t-interix (winnt.o): Update.
7965 * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
7966 * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
7967 msformat-c.o): Update.
7968 * config/bfin/t-bfin-linux (generated_files): Add
7969 linux-sysroot-suffix.h.
7970 * config/arm/t-wince-pe (pe.o): Update.
7971 * config/arm/t-strongarm-pe (pe.o): Update.
7972 * config/arm/t-pe (pe.o): Update.
7973 * config/arm/t-arm (arm-c.o): Update.
7974 * doc/install.texi (Prerequisites): Require make 3.80.
7975 * Makefile.in: Remove .o targets.
7976 (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
7977 (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
7978 (simple_generated_h, simple_generated_c): Move earlier.
7979 (generated_files): New variable.
7980 (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
7981 TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
7982 BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
7983 ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
7984 REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
7985 CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
7986 CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
7987 INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
7988 PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
7989 TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
7990 DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
7991 VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
7992 (.c.o): Remove.
7993 (COMPILE.base, COMPILE): New variables.
7994 (%.o): New pattern rule.
7995 (ALL_HOST_OBJS): New variable.
7996 (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
7997 (dummy-checksum.o, cc1-checksum.o): Remove.
7998 (DRIVER_SHLIB): New variable.
7999 (DRIVER_DEFINES): Use it.
8000 (gencondmd.c): Move out of build/.
8001 (s-conditions): Update.
8002 (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
8003 (ALL_BUILD_OBJS): Likewise.
8004 (build/%.o): Use BUILDCOMPILE.
8005 (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
8006 build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
8007 build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
8008 build/gencheck.o, build/gencodes.o, build/genconditions.o,
8009 build/genconfig.o, build/genconstants.o, build/genemit.o,
8010 build/genextract.o, build/genflags.o, build/genmddeps.o,
8011 build/genopinit.o, build/genoutput.o, build/genpeep.o,
8012 build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
8013 build/gen-protos.o, build/scan.o, build/fix-header.o,
8014 build/scan-decls.o): Simplify.
8015 (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
8016 cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
8017 prefix.o, toplev.o): Reduce to variable setting.
a4be8081 8018 (libbackend.o): Use COMPILE. Remove most dependencies. Move later.
277b05bb 8019 ($(out_object_file), gcc-options.o): New targets.
a4be8081 8020 ($(ALL_HOST_OBJS)): New target. Include dependency files.
277b05bb 8021 * configure: Rebuilt.
a4be8081 8022 * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
8023 * doc/sourcebuild.texi (Front End Directory): Document new variable.
277b05bb 8024
ebd21de4 80252008-03-25 Douglas Gregor <doug.gregor@gmail.com>
8026
a4be8081 8027 * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
8028 complain when we hit an error, return ERROR_MARK_NODE.
ebd21de4 8029
bc1c5420 80302008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
8031
8032 * config/sh/constraints.md (Pso, Psz): New constraints.
8033 * config/sh/sh.c (print_operand): Add %V and %W operand codes.
8034 * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
8035
5897d9f3 80362008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
8037
a4be8081 8038 * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
5897d9f3 8039 * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
8040
5f3ca2f6 80412008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
8042
8043 * config/sh/sh.md (prefetch): Add condition for SH2A target.
8044 (prefetch_sh2a): New.
8045
419b390c 80462008-03-25 Jayant Sonar <Jayant.sonar@kpitcummins.com>
8047 Naveen.H.S <naveen.hs@kpitcummins.com>
8048
8049 * config/sh/constraints.md (I28): New constraint.
8050 * config/sh/sh.c (broken_move): Add support for movi20s.
a4be8081 8051 * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
419b390c 8052
5241f4ad 80532008-03-25 Anil Paranjape <anil.paranjape@kpitcummins.com>
8054 Jayant Sonar <Jayant.sonar@kpitcummins.com>
8055 Naveen.H.S <naveen.hs@kpitcummins.com>
8056
8057 * config/sh/sh.c (SH_ATTRIBUTES): Define.
8058 (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
8059 (print_operand): Handle resbank in %@ operand code.
8060 (sh_encode_section_info): New.
8061 (push_regs): Add conditions for resbank.
8062 (sh_expand_epilogue): Likewise.
8063 (sh_insert_attributes): Likewise.
8064 (sh_attribute_table): Likewise.
8065 (sh_handle_resbank_handler_attribute): New.
8066 (sh2a_handle_function_vector_handler_attribute): New.
8067 (sh2a_is_function_vector_call): New.
8068 (sh2a_get_function_vector_number): New.
8069 (sh2a_function_vector_p): New.
8070 (sh_cfun_resbank_handler_p): New.
8071 * config/sh/sh.md (calli): Emit jsr/n if possible.
8072 (calli_tbr_rel): New.
8073 (calli_pcrel): Emit jsr/n if possible.
8074 (return_i): Emit rts/n if possible.
8075 (call_valuei_tbr_rel): New.
8076 (call_valuei_pcrel): Add condition for SH2A target.
8077 (call_value): Likewise.
8078 * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
8079 (sh2a_get_function_vector_number): Likewise.
8080 (sh2a_is_function_vector_call): Likewise.
8081 * doc/extend.texi: Document TBR relative addressing of SH2A.
8082 (resbank): Add description for SH2A.
8083
80296012 80842008-03-24 Richard Guenther <rguenther@suse.de>
8085
8086 PR c/22371
8087 * gimplify.c (gimplify_modify_expr): For frontend type-correct
8088 pointer assignments change conversions according to middle-end rules.
8089 (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
8090 * configure.ac: Include type checking in yes.
8091 * configure: Regenerate.
8092
43404f28 80932008-03-24 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8094
8095 * diagnostic.c (diagnostic_count_diagnostic): Delete.
8096 (diagnostic_report_diagnostic): Update. Handle ICEs here.
8097
0a824f63 80982008-03-24 Nathan Sidwell <nathan@codesourcery.com>
8099
8100 * gthr-vxworks.h (UNUSED): Define.
8101
ffc0b1ed 81022008-03-23 H.J. Lu <hongjiu.lu@intel.com>
8103
d173d680 8104 * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
ffc0b1ed 8105
9d5b78d0 81062008-03-23 Zuxy Meng <zuxy.meng@gmail.com>
8107
8108 * doc/extend.texi (Function Attributes): Add missing comma in the
8109 example of the "alloc_size" attribute.
8110
933a719e 81112008-03-23 Uros Bizjak <ubizjak@gmail.com>
8112
8113 Revert:
8114 2008-03-05 H.J. Lu <hongjiu.lu@intel.com>
8115
8116 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
8117 32bit host.
8118
8119 2008-03-19 Uros Bizjak <ubizjak@gmail.com>
8120
8121 PR target/35496
8122 * stor-layout.c (update_alignment_for_field): Set minimum alignment
8123 of the underlying type of a MS bitfield layout to the natural
8124 alignment of the type.
8125
8126 2008-03-22 Uros Bizjak <ubizjak@gmail.com>
8127
8128 * config/i386/i386.c (assign_386_stack_local): Align DImode slots
8129 to their natural alignment to avoid store forwarding stalls.
8130
0a685b29 81312008-03-22 Richard Guenther <rguenther@suse.de>
8132
8133 * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
8134 For PHI nodes verify the address is invariant.
8135 * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
8136 (get_symbol_constant_value): Use is_gimple_min_invariant.
8137 (maybe_fold_stmt_indirect): Likewise.
8138
10d4de0e 81392008-03-22 Richard Sandiford <rsandifo@nildram.co.uk>
8140
8141 PR rtl-optimization/33927
8142 * Makefile.in (dse.o): Depend on $(TM_P_H).
8143 * expr.h (extract_low_bits): Declare.
8144 * expmed.c (extract_low_bits): New function.
8145 * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
8146 * dse.c: Include tm_p.h.
8147 (find_shift_sequence): Remove the read_reg argument and return the
8148 read value. Emit the instructions instead of returning them.
8149 Iterate on new_mode rather than calculating it each time.
8150 Check MODES_TIEABLE_P. Use simplify_gen_subreg to convert the
8151 source to NEW_MODE and extract_low_bits to convert the shifted
8152 value to READ_MODE.
8153 (replace_read): Allow the load and store to have different mode
8154 classes. Use extract_low_bits when SHIFT == 0. Create the shift
8155 or extraction instructions before trying the replacement. Update
8156 dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
8157
941c7853 81582008-03-22 Uros Bizjak <ubizjak@gmail.com>
8159
8160 * config/i386/i386.c (assign_386_stack_local): Align DImode slots
8161 to their natural alignment to avoid store forwarding stalls.
8162
3a1e8d7a 81632008-03-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
8164
3a30a2a9 8165 PR target/27946
3a1e8d7a 8166 * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
8167 encouraging but not allowing gprs for input;
8168 change the input constraint to !f#r.
8169 (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
8170 gprs for output;
8171 change the output constraint to !f#r.
8172
89ba852b 81732008-03-21 Uros Bizjak <ubizjak@gmail.com>
8174
8175 PR target/13958
8176 * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
8177 corresponding post-reload splitters.
8178 ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
8179 when x87 FP math is selected.
8180 * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
8181 New function prototype.
8182 * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
8183 unreachable function to ease macroization of insn patterns.
8184
4cc34f6b 81852008-03-21 Martin Jambor <mjambor@suse.cz>
8186
8187 * tree-data-ref.c (dump_data_dependence_relation): Avoid data
8188 reference dumps if ddr is NULL or dependence is unknown.
8189
d9f903b8 81902008-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
8191
8192 * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
8193 unsigned extension into account.
8194 (ATOMIC_COMPARE_AND_SWAP): Likewise.
8195 (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
8196 Do computations on a scratch register.
8197
71d9af81 81982008-03-21 Richard Guenther <rguenther@suse.de>
8199
8200 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
8201 Use is_gimple_min_invariant instead of TREE_INVARIANT.
8202 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
8203 * tree-ssa-dom.c (record_equality): Likewise.
8204 * tree-inline.c (copy_body_r): Likewise.
8205 * tree-ssa-pre.c (make_values_for_stmt): Remove test for
8206 TREE_INVARIANT.
8207
5b54eabf 82082008-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
8209
8210 * config/sh/sh.c (split_branches): Pass zero to redirect_jump
8211 as 'delete_unused' argument.
8212
8ac2d49b 82132008-03-20 Richard Guenther <rguenther@suse.de>
8214
8215 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
8216 special casing of constant qualifiers.
8217 * tree-ssa.c (useless_type_conversion_p_1): Instead do not
8218 care about them in general.
8219 * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
8220 regardless of their type.
8221 (fold_stmt_r): Forcefully fold *& if we end up with that.
8222
9d6f81ac 82232008-03-20 Paul Brook <paul@codesourcery.com>
8224
8225 * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
8226 * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
8227 linker flags.
8228 * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
8229 definition.
8230 (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
8231 * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
8232
f63eb5d3 82332008-03-20 Volker Reichelt <v.reichelt@netcologne.de>
8234
8235 * common.opt (Wmudflap): New option.
8236 * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
8237 (mx_register_decls): Likewise.
8238 (mudflap_finish_file): Likewise.
8239 * doc/invoke.texi: Document -Wno-mudflap.
8240
82412008-03-20 Kai Tietz <kai.tietz@onevision.com>
635c5a98 8242
8243 * c-format.c (replace_format_name_to_system_name): New.
8244 (cmp_attribs): New.
8245 (convert_format_name_to_system_name): New.
8246 (decode_format_attr): Add use of convert_format_name_to_system_name.
8247 (format_types_orig): Add gnu_ prefix to names.
8248 (check_format_info_main): Special treating of \0 escaped names for
8249 supporting multi-character format specifiers as I32, I64.
8250 (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
8251 (gnu_target_overrides_format_attributes): New.
8252 * c-format.h: Add structure target_ovr_attr to hold
8253 system specific formatter names.
8254 * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
8255 msformat-c.o file to c_target_objs and cxx_target_objs.
8256 * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
8257 (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
8258 (TARGET_N_FORMAT_TYPES): New.
8259 * config/i386/msformat-c.c: New.
8260 * config/i386/t-cygming: Add build rule for msformat-c.o.
8261 * doc/extend.texi: Add new format names gnu_* and ms_* and
8262 further details.
8263 * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
8264
877e1093 82652008-03-20 Ira Rosen <irar@il.ibm.com>
8266
8267 * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
8268 optimizations turned on under -O3.
8269 (ftree-vectorize): Add that the flag is turned on with -O3.
8270
73b5bf07 82712008-03-20 Ben Elliston <bje@au.ibm.com>
8272
8273 * regmove.c (try_auto_increment): Fix spelling error in comment.
8274 * final.c (final_scan_insn): Likewise.
8275
59047d58 82762008-03-20 Uros Bizjak <ubizjak@gmail.com>
8277
8278 PR target/14552
8279 * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
8280 allocator preferences for "y" and "r" class registers.
8281 ("*mov<mode>_internal"): Ditto.
8282 ("*movv2sf_internal_rex64"): Ditto.
8283 ("*movv2sf_internal"): Ditto.
8284
c0e7e9f7 82852008-03-19 Michael Matz <matz@suse.de>
8286
8287 PR middle-end/35616
8288 * calls.c (expand_call): Check overlap of arguments with call
8289 address for sibcalls.
8290
bb51041c 82912008-03-19 Uros Bizjak <ubizjak@gmail.com>
8292
8293 PR target/35496
8294 * stor-layout.c (update_alignment_for_field): Set minimum alignment
8295 of the underlying type of a MS bitfield layout to the natural
8296 alignment of the type.
8297
20099e35 82982008-03-19 Jan Hubicka <jh@suse.cz>
8299
8300 PR other/35094
8301 * toplev.c (decode_d_option): Handle all CPP flags.
8302 * tree-vrp.c: Update tree_pass descriptors.
8303 * regrename.c: Update tree_pass descriptors.
8304 * fwprop.c: Update tree_pass descriptors.
8305 * doc/invoke.texi: Remove documentation of dropped -d? flags.
8306 * tree-into-ssa.c: Update tree_pass descriptors.
8307 * tree-dump.c: Update tree_pass descriptors.
8308 * tree-complex.c: Update tree_pass descriptors.
8309 * tree-dump.h: Update tree_pass descriptors.
8310 * see.c: Update tree_pass descriptors.
8311 * cgraphbuild.c: Update tree_pass descriptors.
8312 * tracer.c: Update tree_pass descriptors.
8313 * tree-loop-distribution.c: Update tree_pass descriptors.
8314 * cgraph.c: Update tree_pass descriptors.
8315 * postreload-gcse.c: Update tree_pass descriptors.
8316 * postreload.c: Update tree_pass descriptors.
8317 * tree-ssa-loop-ch.c: Update tree_pass descriptors.
8318 * tree-tailcall.c: Update tree_pass descriptors.
8319 * tree-pass.h (tree_opt_pass): Rename to ...
8320 (opt_pass) ... this one; add "type" field and remove letter field.
8321 (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
8322 (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
8323 all_lowering_passes): Update declaration.
8324 * ipa-cp.c: Update tree_pass descriptors.
8325 * final.c: Update tree_pass descriptors.
8326 * omp-low.c: Update tree_pass descriptors.
8327 * tree-ssa-dse.c: Update tree_pass descriptors.
8328 * ipa-reference.c: Update tree_pass descriptors.
8329 * tree-ssa-uncprop.c: Update tree_pass descriptors.
8330 * auto-inc-dec.c: Update tree_pass descriptors.
8331 * reorg.c: Update tree_pass descriptors.
8332 * cgraphunit.c: Update tree_pass descriptors.
8333 * tree-ssa-copyrename.c: Update tree_pass descriptors.
8334 * tree-ssa-ccp.c: Update tree_pass descriptors.
8335 * df-core.c: Update tree_pass descriptors.
8336 * mode-switching.c: Update tree_pass descriptors.
8337 * tree-nomudflap.c: Update tree_pass descriptors.
8338 * modulo-sched.c: Update tree_pass descriptors.
8339 * ipa-pure-const.c: Update tree_pass descriptors.
8340 * cse.c: Update tree_pass descriptors.
8341 * web.c: Update tree_pass descriptors.
8342 * tree-stdarg.c: Update tree_pass descriptors.
8343 * tree-ssa-math-opts.c: Update tree_pass descriptors.
8344 * tree-ssa-dom.c: Update tree_pass descriptors.
8345 * tree-nrv.c: Update tree_pass descriptors.
8346 * tree-ssa-alias.c: Update tree_pass descriptors.
8347 * loop-init.c: Update tree_pass descriptors.
8348 * gimple-low.c: Update tree_pass descriptors.
8349 * ipa-inline.c: Update tree_pass descriptors.
8350 * tree-ssa-sink.c: Update tree_pass descriptors.
8351 * global.c: Update tree_pass descriptors.
8352 * ifcvt.c: Update tree_pass descriptors.
8353 * jump.c: Update tree_pass descriptors.
8354 * predict.c: Update tree_pass descriptors.
8355 * tree-ssa-loop.c: Update tree_pass descriptors.
8356 * recog.c: Update tree_pass descriptors.
8357 * dse.c: Update tree_pass descriptors.
8358 * tree-ssa-ifcombine.c: Update tree_pass descriptors.
8359 * tree-eh.c: Update tree_pass descriptors.
8360 * regmove.c: Update tree_pass descriptors.
8361 * local-alloc.c
8362 * function.c: Update tree_pass descriptors.
8363 * tree-vectorizer.c: Update tree_pass descriptors.
8364 * gcse.c: Update tree_pass descriptors.
8365 * ipa-type-escape.c: Update tree_pass descriptors.
8366 * tree-if-conv.c: Update tree_pass descriptors.
8367 * init-regs.c: Update tree_pass descriptors.
8368 * ipa.c: Update tree_pass descriptors.
8369 * tree-ssa-phiopt.c: Update tree_pass descriptors.
8370 * rtl-factoring.c: Update tree_pass descriptors.
8371 * lower-subreg.c: Update tree_pass descriptors.
8372 * bt-load.c: Update tree_pass descriptors.
8373 * tree-dfa.c: Update tree_pass descriptors.
8374 * except.c: Update tree_pass descriptors.
8375 * emit-rtl.c: Update tree_pass descriptors.
8376 * cfgexpand.c: Update tree_pass descriptors.
8377 * tree-cfgcleanup.c: Update tree_pass descriptors.
8378 * cfgcleanup.c: Update tree_pass descriptors.
8379 * tree-ssa-pre.c: Update tree_pass descriptors.
8380 * tree-sra.c: Update tree_pass descriptors.
8381 * tree-mudflap.c: Update tree_pass descriptors.
8382 * tree-ssa-copy.c: Update tree_pass descriptors.
8383 * cfglayout.c: Update tree_pass descriptors.
8384 * tree-ssa-forwprop.c: Update tree_pass descriptors.
8385 * tree-ssa-dce.c: Update tree_pass descriptors.
8386 * tree-ssa.c: Update tree_pass descriptors.
8387 * regclass.c: Update tree_pass descriptors.
8388 * integrate.c: Update tree_pass descriptors.
8389 * tree-optimize.c: Update tree_pass descriptors.
8390 * tree-ssa-phiprop.c: Update tree_pass descriptors.
8391 * tree-object-size.c: Update tree_pass descriptors.
8392 * combine.c: Update tree_pass descriptors.
8393 * tree-outof-ssa.c: Update tree_pass descriptors.
8394 * bb-reorder.c: Update tree_pass descriptors.
8395 * stack-ptr-mod.c: Update tree_pass descriptors.
8396 * var-tracking.c: Update tree_pass descriptors.
8397 * tree-profile.c: Update tree_pass descriptors.
8398 * tree-vect-generic.c: Update tree_pass descriptors.
8399 * reg-stack.c: Update tree_pass descriptors.
8400 * sched-rgn.c: Update tree_pass descriptors.
8401 * tree-ssa-structalias.c: Update tree_pass descriptors.
8402 * tree-cfg.c: Update tree_pass descriptors.
8403 * passes.c (current_pass): Update declaration.
8404 (finish_optimization_passes): Update.
8405 (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
8406 (register_one_dump_file, register_dump_files_1, next_pass_1):
8407 Update arguments.
8408 (init_optimization_passes): Update handling of new types.
8409 (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
8410 * ipa-struct-reorg.c: Update tree_pass descriptors.
8411 * tree-ssa-reassoc.c: Update tree_pass descriptors.
8412 * combine-stack-adj.c: Update tree_pass descriptors.
8413 * cfgrtl.c: Update tree_pass descriptors.
8414 * dce.c: Update tree_pass descriptors.
8415 * tree-ssanames.c: Update tree_pass descriptors.
8416
25084579 84172008-03-19 Richard Guenther <rguenther@suse.de>
8418
8419 PR middle-end/35609
60f42188 8420 * tree-ssa.c (walk_data): New structure.
8421 (warn_uninitialized_var): If not always_executed warn with "maybe"
25084579 8422 instead of "is".
8423 (execute_early_warn_uninitialized): Compute post-dominators.
8424 Initialize always_executed before processing each basic block.
8425
671cfe26 84262008-03-18 Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
8427
8428 PR target/35504
8429 * config/i386/i386.c (x86_this_parameter): Calculate correct location
8430 of "this" pointer when "regparm = N" or "fastcall" is in effect.
8431
dd518ada 84322008-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8433
8434 * doc/include/texinfo.tex: Update to version 2008-03-17.10.
8435
dcfc697f 84362008-03-18 Paolo Bonzini <bonzini@gnu.org>
8437
671cfe26 8438 * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
8439 is true.
8440 (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
8441 (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
8442 is true. Add "&& !ignore" condition to reduce_bit_field. Modify
8443 target after ignore has been set, and move there also the commputation
8444 of subtarget and original_target.
8445 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
8446 (LANG_HOOKS_INITIALIZER): Remove it.
8447 * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
dcfc697f 8448
b9e98b8a 84492008-03-18 Richard Guenther <rguenther@suse.de>
8450
8451 * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
8452 found an expression with constants, note that in the VN for the lhs.
8453 * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
8454 fold them to constants if possible. Run cleanup_cfg if done so.
8455 (execute_pre): Return todo.
8456 (do_pre): Likewise.
8457 (execute_fre): Likewise.
8458 * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
8459 of constants.
8460 (get_prop_source_stmt): Look through pointer conversions.
8461
4a1849e3 84622008-03-18 Jan Hubicka <jh@suse.cz>
8463
8464 * tree-pretty-print.c: Include predict.h.
8465 (dump_generic_node): Dump predictor.
8466 * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
8467 * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
8468 * gimple-low.c (lower_stmt): Likewise.
8469 * expr.c (expand_expr_real): Likewise.
8470 * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
8471 them.
8472 (build_predict_expr, build_predict_expr): New.
8473 * predict.h (predictor_name, build_predict_expr): Update.
8474 * c-typeck.c (c_finish_bc_stmt): Add prediction.
8475 * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
8476 * predict.def (PRED_CONTINUE): Update hitrate.
8477 * tree.def (PREDICT_EXPR): Define.
8478 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
8479 do not handle BIND_EXPR.
8480 * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
8481 * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
8482 * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
8483 operands.
8484
a6eaabef 84852008-03-18 Michael Matz <matz@suse.de>
8486
8487 * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
8488
ffb04365 84892008-03-18 Richard Guenther <rguenther@suse.de>
8490
8491 * tree-gimple.h (is_gimple_invariant_address): Declare.
8492 (is_gimple_constant): Likewise.
8493 * tree-gimple.c (is_gimple_constant): New function.
8494 (is_gimple_invariant_address): Likewise.
8495 (is_gimple_min_invariant): Implement in terms of is_gimple_constant
8496 and is_gimple_invariant_address.
8497 * tree-ssa-loop-niter.c (expand_simple_operations): Revert
8498 previous change.
8499 * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
8500 an addressable base.
8501
0c378ed9 85022008-03-18 Jakub Jelinek <jakub@redhat.com>
8503
8504 PR middle-end/35611
8505 * gimplify.c (gimplify_expr): Gimplify second operand of
8506 OMP_ATOMIC_LOAD.
8507
0b4a6afc 85082008-03-17 Richard Guenther <rguenther@suse.de>
8509
8510 PR tree-optimization/19637
8511 * fold-const.c (fold_unary): Remove restrictions of removing
8512 intermediate pointer-conversions (P2)(P1)P0.
8513 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
8514 conversion to void pointer.
8515 (get_maxval_strlen): Handle addresses of the form &(*p)[0].
8516
e845094d 85172008-03-16 James E. Wilson <wilson@tuliptree.org>
8518
8519 PR debug/31510
8520 * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
8521 emulated thread local variables.
8522
25080779 85232008-03-16 Richard Guenther <rguenther@suse.de>
8524
8525 PR middle-end/35607
8526 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
8527 expand TREE_INVARIANT operations that are not gimple invariant.
8528
7290f090 85292008-03-16 Hans-Peter Nilsson <hp@axis.com>
8530
8531 * doc/extend.texi (Alignment): Say that the ABI controls
8532 the __alignof__ for non-strict-alignment targets rather
8533 than being a recommendation.
8534
49a83a87 85352008-03-15 Paul Brook <paul@codesourcery.com>
8536
8537 * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
8538 annotations.
8539 (arm_output_fn_unwind): Mark functions that can not be unwound.
8540
72e333b2 85412008-03-15 Paul Brook <paul@codesourcery.com>
8542
8543 * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
8544 extension instructions.
8545
04236c3a 85462008-03-15 Richard Guenther <rguenther@suse.de>
8547
8548 * tree-ssa-ccp.c (ccp_fold): Also read from constant values
8549 and fold constant aggregate refs.
8550 (fold_const_aggregate_ref): Handle string constants
8551 and constructors in ARRAY_REFs. Handle INDIRECT_REF.
8552 (evaluate_stmt): Simplify now that ccp_fold folds constant
8553 aggregate refs.
8554
8b054d5a 85552008-03-15 Paul Brook <paul@codesourcery.com>
8556
8557 * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
8558 (extzv): Use gen_extzv_t2.
8559 (insv_t2, insv_zero, extv, extzv_t2): New patterns.
8560
e004838d 85612008-03-15 Richard Guenther <rguenther@suse.de>
8562
8563 * tree-ssa-ccp.c (get_symbol_constant_value): Export.
8564 (fold_const_aggregate_ref): Likewise.
8565 (get_value): Return NULL if we don't have any values.
8566 (ccp_finalize): Set const_val to NULL after freeing it.
8567 * tree-flow.h (get_symbol_constant_value): Declare.
8568 (fold_const_aggregate_ref): Likewise.
8569 * tree-ssa-sccvn.c (try_to_simplify): Use them.
8570
b7488229 85712008-03-15 Richard Guenther <rguenther@suse.de>
8572
8573 PR middle-end/35593
8574 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
8575 to not produce negative array indices if not allowed. Add
8576 parameter to indicate that.
8577 (maybe_fold_offset_to_component_ref): Allow negative array
8578 indices only for the first member of a structure.
8579 (maybe_fold_offset_to_reference): Allow negative array indices.
8580 (maybe_fold_stmt_addition): Likewise.
8581
90ef7269 85822008-03-15 Bjoern Haase <bjoern.m.haase@web.de>
bb51041c 8583 Anatoly Sokolov <aesok@post.ru>
90ef7269 8584
1f93c018 8585 * config/avr/avr.c (avr_arch_types): Add avr6 entry.
90ef7269 8586 (avr_arch): Add ARCH_AVR6.
8587 (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
8588 (initial_elimination_offset): Initialize and use 'avr_pc_size'
8589 instead of fixed value 2.
8590 (print_operand_address): Use gs() asm specifier instead of pm().
8591 (avr_assemble_integer): (Ditto.).
8592 (avr_output_addr_vec_elt): (Ditto.).
8593 (print_operand): Handle "!" code.
1f93c018 8594 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
90ef7269 8595 __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
8596 (AVR_HAVE_EIJMP_EICALL): Define.
8597 (AVR_3_BYTE_PC): Redefine.
8598 (AVR_2_BYTE_PC): (Ditto.).
8599 (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
8600 (LINK_SPEC): Add atmega2560 and atmega2561.
8601 (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
8602 (crtm2561.o).
1f93c018 8603 * config/avr/avr.md (call_insn): Use eicall instead of icall
90ef7269 8604 for 3 byte PC devices.
8605 (call_value_insn): (Ditto.).
8606 (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
8607 (indirect_jump): Use only for for 2 byte PC devices.
8608 (*tablejump): (Ditto.).
8609 (*indirect_jump_avr6): Add insn.
8610 (*tablejump_rjmp): Don't use for 3 byte PC devices.
1f93c018 8611 * config/avr/libgcc.S (__prologue_saves__): Use eijmp
90ef7269 8612 instead of ijmp for 3 byte PC devices.
8613 (__tablejump2__): (Ditto.).
1f93c018 8614 * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
90ef7269 8615 (MULITLIB_DIRNAMES): (Ditto.).
8616 (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
8617
28a2ab9f 86182008-03-15 Uros Bizjak <ubizjak@gmail.com>
8619
8620 * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
8621 "sse2_umulsidi3". Use V1DI mode for operand 0.
8622 ("mmx_psadbw"): Use V1DI mode for operand 0.
8623 * config/i386/i386-modes.def (V1SI): New vector mode.
8624 * config/i386/i386.c (struct builtin_description)
8625 [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
8626 (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
8627 (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
8628 (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
8629 v1di_ftype_v8qi_v8qi type.
8630 [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
8631
8632 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
8633 __builtin_ia32_pmuludq]: Fix the mode of return value.
8634
a77a3698 86352008-03-15 Richard Guenther <rguenther@suse.de>
8636
8637 PR middle-end/35595
8638 * tree-ssa-pre.c (bitmap_find_leader): Handle expression
8639 being a PHI_NODE.
8640
2c613040 86412008-03-14 Bob Wilson <bob.wilson@acm.org>
8642
8643 * doc/invoke.texi (Option Summary, Xtensa Options): Document
8644 -mserialize-volatile and -mno-serialize-volatile Xtensa options.
8645 * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
8646 unless TARGET_SERIALIZE_VOLATILE is enabled.
8647 * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
8648 * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
8649 * config/xtensa/xtensa.opt (mserialize_volatile): New option.
8650
404d6be4 86512008-03-14 Richard Guenther <rguenther@suse.de>
8652
8653 PR tree-optimization/34172
8654 * tree-flow.h (refs_may_alias_p): Declare.
8655 (get_single_def_stmt): Likewise.
8656 (get_single_def_stmt_from_phi): Likewise.
8657 (get_single_def_stmt_with_phi): Likewise.
8658 * tree-dfa.c (refs_may_alias_p): New function.
8659 (get_single_def_stmt): Likewise.
8660 (get_single_def_stmt_from_phi): Likewise.
8661 (get_single_def_stmt_with_phi): Likewise.
8662 * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
8663 (vn_reference_lookup_1): New helper function.
8664 (vn_reference_lookup): Walk the virtual use-def chain to
8665 continue searching for a match if the def does not alias the
8666 reference we are looking for.
8667
a7af6b24 86682008-03-14 David Edelsohn <edelsohn@gnu.org>
8669
8670 * doc/install.texi (Binaries): Remove UCLA archive. Add HVCC
8671 archive and Perzl. Update The Written Word listing.
8672
1d9353f3 86732008-03-14 Richard Guenther <rguenther@suse.de>
8674
8675 PR tree-optimization/34043
8676 PR tree-optimization/33989
8677 * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
8678 when doing FRE.
8679 (bitmap_find_leader): Use extra argument to verify dominance
8680 relationship inside a basic-block.
8681 (can_PRE_operation): Add VIEW_CONVERT_EXPR.
8682 (find_leader_in_sets): Adjust.
8683 (create_component_ref_by_pieces): Take extra argument for
8684 dominance check, handle lookup failures.
8685 (find_or_generate_expression): Likewise.
8686 (create_expression_by_pieces): Likewise.
8687 (insert_into_preds_of_block): Adjust.
8688 (create_value_expr_from): If asked for, verify all operands
8689 are in the blocks AVAIL_OUT set.
8690 (make_values_for_stmt): Check for SSA_NAMEs that are life
8691 over an abnormal edge.
8692 (compute_avail): Remove such check.
8693 (do_SCCVN_insertion): New function.
8694 (eliminate): If we do not find a leader suitable for replacement
8695 insert a replacement expression from SCCVN if available.
8696 * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
8697 (struct vn_ssa_aux): Add needs_insertion flag.
8698 * tree-ssa-sccvn.c (may_insert): New global flag.
8699 (copy_reference_ops_from_ref): Value-number union member access
8700 based on its size, not type and member if insertion is allowed.
8701 (visit_reference_op_load): For a weak match from union type
8702 punning lookup a view-converted value and insert a SSA_NAME
8703 for that value if that is not found.
8704 (visit_use): Make dumps shorter. Do not disallow value numbering
8705 SSA_NAMEs that are life over an abnormal edge to constants.
8706 (free_scc_vn): Release inserted SSA_NAMEs.
8707 (run_scc_vn): New flag to specify whether insertion is allowed.
8708 Process SSA_NAMEs in forward order.
8709 * tree-ssa-loop-im.c (for_each_index): Handle invariant
8710 ADDR_EXPRs inside VIEW_CONVERT_EXPR.
8711 * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
8712 pointer type to/from integral types that do not change the
8713 precision to regular conversions.
8714
c9f96750 87152008-03-13 Uros Bizjak <ubizjak@gmail.com>
8716
8717 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
8718 __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
8719 __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
8720 __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
5b2ddfe1 8721 input arguments and the mode of return value. Built-in functions
8722 that operate on whole 64-bit MMX register now use V1DI mode.
c9f96750 8723
3992c686 87242008-03-13 Alon Dayan <alond@il.ibm.com>
8725 Olga Golovanevsky <olga@il.ibm.com>
8726
8727 PR tree-optimization/35041
8728 * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
8729 to locate the right position in a statement.
8730
517b0286 87312008-03-13 Uros Bizjak <ubizjak@gmail.com>
8732
8733 PR target/34000
8734 PR target/35553
8735 * config/i386/xmmintrin.h: Change all static inline functions to
8736 extern inline and add __gnu_inline__ attribute.
8737 * config/i386/bmintrin.h: Ditto.
8738 * config/i386/smmintrin.h: Ditto.
8739 * config/i386/tmmintrin.h: Ditto.
8740 * config/i386/mmintrin-common.h: Ditto.
8741 * config/i386/ammintrin.h: Ditto.
8742 * config/i386/emmintrin.h: Ditto.
8743 * config/i386/pmmintrin.h: Ditto.
8744 * config/i386/mmintrin.h: Ditto.
8745 * config/i386/mm3dnow.h: Ditto.
8746
a4890dc9 87472008-03-13 Jakub Jelinek <jakub@redhat.com>
8748
8749 PR middle-end/35185
8750 * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
8751 (lower_omp_2): New function.
8752 (lower_omp_1, lower_omp): Rewritten.
8753
ebba2dc7 87542008-03-13 Danny Smith <dannysmith@users.sourceforge.net>
8755
8756 PR 35054
8757 * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
8758 with the phrase "Microsoft Windows compilers".
8759 (Push/Pop Macro Pragmas): New subsection. Document
8760 #pragma push_macro and pragma pop_macro.
8761
1c4adc7a 87622008-03-12 Paul Brook <paul@codesourcery.com>
8763
8764 * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
8765
1d9e8561 87662008-03-12 Paul Brook <paul@codesourcery.com>
8767
8768 * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
8769 (thumb2_alusi3_short): Exclude PLUS and MINUS.
8770 (thumb2_addsi_shortim): Rename ...
8771 (thumb2_addsi_short): ... to this. Allow register operands.
8772 (thumb2_subsi_short): New pattern.
8773 (thumb2_one_cmplsi2_short,
8774 thumb2_negsi2_short): New patterns and peepholes.
8775
e077db18 87762008-03-12 Paul Brook <paul@codesourcery.com>
8777
e077db18 8778 * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
8779
96b39775 87802008-03-12 Uros Bizjak <ubizjak@gmail.com>
8781
8782 * config/i386/i386.md (int_cond): New code iterator.
8783 (fp_cond): Ditto.
8784 ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
8785 sge, sgeu, sle and sleu expanders usign int_cond code iterator.
8786 ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
8787 sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
8788 ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
8789 bge, bgeu, ble and bleu expanders usign int_cond code iterator.
8790 ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
8791 bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
8792
bb21ed29 87932008-03-12 Paul Brook <paul@codesourcery.com>
8794
8795 * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
8796 instead of {arm,thumb}_compute_save_reg_mask.
8797 (output_return_instruction): Ditto.
8798 (thumb_unexpanded_epilogue): Ditto.
8799 (thumb1_expand_prologue): Ditto.
8800 (thumb1_output_function_prologue): Ditto.
8801 (arm_set_return_address): Ditto.
8802 (thumb_set_return_address): Ditto.
8803 (arm_get_frame_offsets): Set offsets->saved_regs_mask. Push extra
8804 regs to achieve stack alignment.
8805 (thumb1_compute_save_reg_mask): Fix compiler warning.
8806 (arm_output_epilogue): Use offsets->saved_regs_mask.
8807 Adjust stack pointer by poping call clobered registers.
8808 (arm_expand_prologue): Use offsets->saved_regs_mask.
8809 Adjust stack pointer by pushing extra registers.
a4890dc9 8810 * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
bb21ed29 8811
92b2f241 88122008-03-12 Paolo Bonzini <bonzini@gnu.org>
8813
8814 PR tree-opt/35422
8815 * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
8816 conversion to the operands of a multiplication.
8817
a2fd87ad 88182008-03-12 Richard Guenther <rguenther@suse.de>
8819
8820 * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
8821 (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
8822 * timevar.def (TV_TREE_PHIPROP): Add.
8823 * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
8824 pass description. Use TV_TREE_PHIPROP.
8825 * tree-ssa-forwprop.c: Remove phiprop code.
8826
e8a588af 88272008-03-12 Jakub Jelinek <jakub@redhat.com>
8828
8829 PR middle-end/35549
8830 * omp-low.c (maybe_lookup_decl): Constify first argument.
8831 (use_pointer_for_field): Change last argument from bool to
8832 omp_context *. Disallow shared copy-in/out in nested
8833 parallel if decl is shared in outer parallel too.
8834 (build_outer_var_ref, scan_sharing_clauses,
8835 lower_rec_input_clauses, lower_copyprivate_clauses,
8836 lower_send_clauses, lower_send_shared_vars): Adjust callers.
8837
c6ba58f9 88382008-03-12 Victor Kaplansky <victork@il.ibm.com>
8839 Ira Rosen <irar@il.ibm.com>
8840
8841 * tree-vectorizer.c (free_stmt_vec_info): New function.
8842 (destroy_loop_vec_info): Move code to free_stmt_vec_info().
8843 Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
8844 * tree-vectorizer.h (free_stmt_vec_info): Declare.
8845 * tree-vect-transform.c (vectorizable_conversion): Free
8846 vec_oprnds0 if it was allocated.
8847 (vect_permute_store_chain): Remove unused VECs.
8848 (vectorizable_store): Free VECs that are allocated in the..
8849 function.
8850 (vect_transform_strided_load, vectorizable_load): Likewise.
8851 (vect_remove_stores): Simplify the code.
8852 (vect_transform_loop): Move code to vect_remove_stores().
8853 Call vect_remove_stores() and free_stmt_vec_info().
8854
feb01ed5 88552008-03-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8856
8857 * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
8858 TARGET_HPUX. Revise comment.
8859 (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
8860 * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
8861 Use sr4 variant of `be' instruction when not generating PIC code.
8862 (attr_length_call): Adjust for above change.
8863
6219f064 88642008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
8865
8866 * ipa-reference.c (static_execute): Remove module_statics_const and
8867 associated setting code.
8868
47b5db9d 88692008-03-11 Uros Bizjak <ubizjak@gmail.com>
8870
8871 PR target/35540
8872 * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
59047d58 8873 predicate for operand 1.
8874 (paritysi2_cmp): Use register_operand predicate for operand 2.
47b5db9d 8875 Use earlyclobber modifier for operand 1. Remove support for
8876 memory operands.
59047d58 8877 (paritydi2_cmp): Use register_operand predicate for operand 3.
47b5db9d 8878 Use earlyclobber modifier for operand 1. Remove support for
8879 memory operands.
8880
6640ca58 88812008-03-11 Paul Brook <paul@codesourcery.com>
47b5db9d 8882 Vladimir Prus <vladimir@codesourcery.com>
6640ca58 8883
8884 * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
8885 (arm_compute_save_reg0_reg12_mask): Always
8886 check if register 11 must be saved. Always safe hard frame pointer
8887 when frame_pointer_needeed.
8888 (arm_compute_save_reg_mask): Save IP and PC
8889 only with apcs frames.
8890 (arm_output_epilogue): Adjust Thumb2 codepath to
8891 be also invoked and work for ARM non-apcs frames.
8892 (arm_expand_prologue): Don't bother saving IP
8893 for non-apcs frame, since it's not clobbered by
8894 prologue code. Implement non-apcs frame
8895 layout.
8896
8ae2fa3b 88972008-03-11 Paolo Bonzini <bonzini@gnu.org>
8898
8899 PR rtl-optimization/35281
8900 * expr.c (convert_move): Use a new pseudo for the intermediate
8901 from_mode->word_mode result.
8902
c616456b 89032008-03-11 Paolo Bonzini <bonzini@gnu.org>
8904
6640ca58 8905 * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
8906 * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
8907 * toplev.c (compile_file): Don't call it.
c616456b 8908
e06aee53 89092008-03-11 Uros Bizjak <ubizjak@gmail.com>
8910
8911 PR middle-end/35526
8912 * expr.c (store_expr): Call emit_block_move if the mode
8913 of "temp" RTX is BLKmode.
8914
06240723 89152008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
e06aee53 8916 Richard Guenther <rguenther@suse.de>
06240723 8917
8918 PR tree-optimization/31358
8919 * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
8920 the step with a NULL_TREE.
8921 * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
8922 to sizetype if type is a pointer type.
8923 (add_candidate_1): Don't convert the base and step to
8924 the generic type if the orginal type is a pointer type.
8925 (add_iv_value_candidates): Use sizetype for the step
8926 if type is a pointer type.
8927 (cand_value_at): Likewise.
8928 * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
8929 for pointer types.
8930 * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
8931 Don't convert the tem affine to the type.
8932 (add_elt_to_tree): Use sizetype for the step if a pointer.
8933 Use POINTER_PLUS_EXPR for pointers.
8934 (aff_combination_to_tree): Use sizetype for the step if a
8935 pointer.
8936
267858a7 89372008-03-10 Vladimir Makarov <vmakarov@redhat.com>
8938
8939 * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
8940 Remove commutativity hint.
8941
b821e790 89422008-03-10 Jakub Jelinek <jakub@redhat.com>
8943
50389d5d 8944 PR c/35438
8945 PR c/35439
8946 * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
8947 errorneous type. Check that v is a VAR_DECL.
8948
b821e790 8949 PR middle-end/35099
8950 * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
8951
ff949d47 89522008-03-10 H.J. Lu <hongjiu.lu@intel.com>
8953
8954 PR tree-optimization/35494
8955 * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
8956 may be overriden at link and run time.
8957
466e11c3 89582008-03-10 Richard Guenther <rguenther@suse.de>
8959
8960 PR tree-optimization/34677
8961 * tree-ssa-pre.c (modify_expr_node_pool): Remove.
8962 (poolify_tree): Likewise.
8963 (modify_expr_template): Likewise.
8964 (poolify_modify_stmt): Likewise.
8965 (insert_fake_stores): Handle all component-ref style stores
8966 in addition to INDIRECT_REF. Also handle complex types.
8967 Do not poolify the inserted load.
8968 (realify_fake_stores): Do not rebuild the tree but only
8969 make it a SSA_NAME copy.
8970 (init_pre): Remove initialzation of modify_expr_template.
8971 Do not allocate modify_expr_node_pool.
8972 (fini_pre): Do not free modify_expr_node_pool.
8973
2c2d2f40 89742008-03-10 Paul Brook <paul@codesourcery.com>
8975
8976 * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
8977 to avoid conflicts.
8978
934a1e72 89792008-03-10 Paul Brook <paul@codesourcery.com>
e06aee53 8980 Mark Shinwell <shinwell@codesourcery.com>
934a1e72 8981
934a1e72 8982 * config/arm/cortex-r4.md: New.
8983 * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
8984 insn attributes.
8985 * config/arm/arm.md: Include cortex-r4.md.
8986 (insn): Add smmls, sdiv and udiv values.
8987 (generic_sched): Don't use generic scheduling for Cortex-R4.
8988 (arm_issue_rate): New function.
8989 (TARGET_SCHED_ISSUE_RATE): Define.
8990
767297d1 89912008-03-10 Sebastian Pop <sebastian.pop@amd.com>
8992
8993 * doc/invoke.texi (-ftree-loop-distribution): Add an example.
8994
10bf6100 89952008-03-10 Richard Guenther <rguenther@suse.de>
8996
8997 * tree-ssa-pre.c (get_sccvn_value): Simplify.
8998 (compute_avail): Do not add stmt uses to AVAIL_OUT.
8999
550a64af 90002008-03-10 Paolo Bonzini <bonzini@gnu.org>
9001
9002 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
9003 Set default to true.
9004
2c3b9819 90052008-03-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9006
9007 * c.opt (Wsynth): Deprecate.
9008 * doc/invoke.texi (Option Summary, Warning Options): Document
9009 -Wno-format-contains-nul.
9010
e2cb4221 90112008-03-09 Uros Bizjak <ubizjak@gmail.com>
9012
9013 PR target/35496
2f6e3388 9014 * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
e2cb4221 9015 ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
9016
5c93936e 90172008-03-09 Ira Rosen <irar@il.ibm.com>
9018
9019 * config/rs6000/rs6000.c (builtin_description): Rename vector
9020 left shift operations.
9021 * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
9022 (altivec_vsl<VI_char>): Rename to ...
9023 (ashl<mode>3): ... new name.
9024 (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
9025 gen_ashlv4si3.
9026 (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
9027
a961cdc2 90282008-03-08 Richard Guenther <rguenther@suse.de>
9029
9030 * coverage.h (tree_coverage_counter_addr): Declare.
9031 * coverage.c (tree_coverage_counter_addr): New function.
9032 * tree-profile.c (tree_gen_edge_profiler): Unshare counter
9033 before using again.
9034 (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
9035 (tree_gen_one_value_profiler): Likewise.
9036 (tree_gen_ic_profiler): Likewise.
9037 (tree_gen_average_profiler): Likewise.
9038 (tree_gen_ior_profiler): Likewise.
9039
51a23cfc 90402008-03-08 Richard Guenther <rguenther@suse.de>
9041
9042 * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
9043 (vn_binary_op_insert): Likewise.
9044 (vn_unary_op_lookup): Likewise.
9045 (vn_unary_op_insert): Likewise.
9046 (vn_nary_op_lookup): Declare.
9047 (vn_nary_op_insert): Likewise.
9048 * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
9049 and binary hashes, use a single obstack for unary_op_pool
9050 and binary_op_pool.
9051 (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
9052 a single struct vn_nary_op_s. Store tree code length and
9053 a variable number of operands.
9054 (struct vn_reference_op_struct): Remove unused op2.
9055 (vn_reference_op_eq): Do not compare op2.
9056 (vn_reference_op_compute_hash): Do not compute hash of op2.
9057 (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
9058 (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
9059 with vn_nary_op_compute_hash.
9060 (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
9061 (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
9062 vn_nary_op_lookup.
9063 (vn_unary_op_insert, vn_binary_op_insert): Replace with
9064 vn_nary_op_insert.
9065 (visit_unary_op): Call nary functions.
9066 (visit_binary_op): Likewise.
9067 (process_scc): Adjust for struct vn_tables_s changes.
9068 (allocate_vn_table): Likewise.
9069 (free_vn_table): Likewise.
9070 * tree-vn.c (vn_add): Call nary functions.
9071 (vn_lookup): Likewise.
9072
ce096d07 90732008-03-08 Jakub Jelinek <jakub@redhat.com>
9074
9075 PR target/35498
9076 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
9077 wdst back after sync_compare_and_swapqhi_internal.
9078
7916ca8a 90792008-03-08 Uros Bizjak <ubizjak@gmail.com>
9080
9081 PR target/22152
9082 * config/i386/i386-modes.def (V1DI): New vector mode.
9083 * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
9084 * config/i386/mmx.md (MMXMODEI8): New mode iterator.
9085 (MMXMODE248): Ditto.
9086 (MMXMODE): Add V1DI mode.
9087 (mmxvecsize): Change DI mode to V1DI mode.
9088 ("mov<mode>): Use MMXMODEI8 mode iterator.
9089 ("*mov<mode>_internal_rex64"): Ditto.
9090 ("*mov<mode>_internal"): Ditto.
9091 ("mmx_add<mode>3"): Ditto. Handle V1DImode for TARGET_SSE2.
9092 ("mmx_sub<mode>3"): Ditto.
9093 ("mmx_adddi3"): Remove insn pattern.
9094 ("mmx_subdi3"): Ditto.
9095 ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
9096 ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
9097 ("mmx_ashl<mode>3"): Ditto.
9098 ("mmx_lshrdi3"): Remove insn pattern.
9099 ("mmx_ashldi3"): Ditto.
9100 * config/i386/i386.c (classify_argument): Handle V1DImode.
9101 (function_arg_advance_32): Ditto.
9102 (function_arg_32): Ditto.
9103 (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
9104 mmx_addv1di3 insn pattern.
9105 [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
9106 [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
9107 IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
9108 IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
9109 Remove definitions of built-in functions.
9110 (V1DI_type_node): New node.
9111 (v1di_ftype_v1di_int): Ditto.
9112 (v1di_ftype_v1di_v1di): Ditto.
9113 (v2si_ftype_v2si_si): Ditto.
9114 (v4hi_ftype_v4hi_di): Remove node.
9115 (v2si_ftype_v2si_di): Ditto.
9116 (ix86_init_mmx_sse_builtins): Handle V1DImode.
9117 (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
9118 Redefine builtins using def_builtin_const with *_ftype_*_int node.
9119 (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
9120 Add new builtins using def_builtin_const.
9121 (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
9122 IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
9123 IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
9124 * config/i386/mmintrin.h (__v1di): New typedef.
9125 (_mm_add_si64): Cast arguments to __v1di type.
9126 (_mm_sub_si64): Ditto.
9127 (_mm_sll_pi16): Cast __count to __v4hi type.
9128 (_mm_sll_pi32): Cast __count to __v2si type.
9129 (_mm_sll_si64): Cast arguments to __v1di type.
9130 (_mm_srl_pi16): Cast __count to __v4hi type.
9131 (_mm_srl_pi32): Cast __count to __v2si type.
9132 (_mm_srl_si64): Cast arguments to __v1di type.
9133 (_mm_sra_pi16): Cast __count to __v4hi type.
9134 (_mm_sra_pi32): Cast __count to __v2si type.
9135 (_mm_slli_pi16): Use __builtin_ia32_psllwi.
9136 (_mm_slli_pi32): Use __builtin_ia32_pslldi.
9137 (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
9138 (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
9139 (_mm_srli_pi32): Use __builtin_ia32_psrldi.
9140 (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
9141 (_mm_srai_pi16): Use __builtin_ia32_psrawi.
9142 (_mm_srai_pi32): Use __builtin_ia32_psradi.
9143 * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
9144 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
9145 __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
9146 __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
9147
4d170403 91482008-03-07 Joseph Myers <joseph@codesourcery.com>
9149
9150 * doc/include/texinfo.tex: Update to version 2008-03-07.10.
9151
55100279 91522008-03-07 Peter Bergner <bergner@vnet.ibm.com>
9153
9154 PR target/35373
9155 * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
9156 reg+const addressing for Altivec modes. Don't generate reg+reg
9157 addressing for TFmode or TDmode quantities.
9158
29f51994 91592008-03-07 Paolo Bonzini <bonzini@gnu.org>
9160
9161 * c-common.c (vector_types_convertible_p): Call langhook
9162 instead of comptypes.
9163
6e6e51e5 91642008-03-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
9165
9166 PR tree-opt/35402
9167 * tree-ssa-ccp.c (get_symbol_constant_value): Handle
9168 integral and scalar float variables which have a
9169 NULL DECL_INITIAL.
9170
bf2e2aa9 91712008-03-06 Nathan Froyd <froydnj@codesourcery.com>
9172
9173 * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
9174 dwarf_register_span hook when emitting unwind information for
9175 register-to-memory saves.
9176 * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
9177 (rs6000_frame_related): Remove call to spe_synthesize_frame.
9178
83c5f690 91792008-03-06 Jakub Jelinek <jakub@redhat.com>
9180
9181 * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
9182 for the same VAR_DECL.
9183
167057eb 91842008-03-06 Tom Tromey <tromey@redhat.com>
9185
9186 * treelang: Delete.
9187 * doc/standards.texi (Standards): Don't mention treelang.
9188 * doc/invoke.texi (Overall Options): Don't mention treelang.
9189 * doc/install.texi (Prerequisites): Don't mention bison or
9190 treelang.
9191 (Configuration): Don't mention treelang.
9192 (Building): Likewise.
9193 * doc/frontends.texi (G++ and GCC): Don't mention treelang.
9194
8178351b 91952008-03-06 Paolo Bonzini <bonzini@gnu.org>
9196
9197 * simplify-rtx.c (simplify_subreg): Remove useless shifts from
9198 word-extractions out of a multi-word object.
9199
70337474 92002008-03-06 Richard Guenther <rguenther@suse.de>
9201
9202 * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
9203 * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
9204 result type and precision.
9205 * expr.c (get_inner_reference): Set unsignedp based on the result
9206 type of BIT_FIELD_REF.
9207 * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
9208 * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
9209 (try_instantiate_multiple_fields): Likewise. Use the correct type
9210 for BIT_FIELD_REF.
9211 (sra_build_assignment): Likewise.
9212 (sra_build_elt_assignment): Likewise.
9213 (sra_explode_bitfield_assignment): Likewise.
9214 * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
9215 * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
9216 set BIT_FIELD_REF_UNSIGNED.
9217 (vectorizable_load): Likewise.
9218
b357aba8 92192008-03-06 Andreas Krebbel <krebbel1@de.ibm.com>
9220
9221 * cse.c (cse_extended_basic_block): Invalidate artificial defs
9222 at bb start.
9223
1e020227 92242008-03-06 Richard Guenther <rguenther@suse.de>
9225
9226 * alias.c (struct alias_set_entry): Move has_zero_child field
9227 to pack with alias_set.
9228
4a8f8ebf 92292008-03-05 H.J. Lu <hongjiu.lu@intel.com>
9230
9231 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
9232 32bit host.
9233
f701cb4d 92342008-03-05 Ian Lance Taylor <iant@google.com>
9235
9236 * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
9237
957f873e 92382008-03-05 Kenneth Zadeck <zadeck@naturalbridge.com>
30de5b55 9239
9240 * fwprop.c (update_df): Support width and offset parameters of
9241 df_ref_create.
9242 * ra-conflict.c (mark_reg_store, clear_reg_in_live,
9243 global_conflicts): Change DF_REF_EXTRACT to either
9244 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
9245 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
9246 * df-scan.c (df_ref_record, df_defs_record,
9247 df_ref_create_structure, df_def_record_1, df_uses_record,
9248 df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
9249 df_bb_refs_collect, df_entry_block_defs_collect,
9250 df_exit_block_uses_collect): Support new width and offset fields.
9251 (ref_extract_pool): New storage pool.
9252 (df_free_ref): New function.
9253 (df_reg_chain_unlink, df_free_collection_rec,
9254 df_sort_and_compress_refs): Call df_free_ref.
9255 (df_ref_equal_p, df_ref_compare): Compare offset and width fields
9256 of df_ref_extract.
9257 (df_ref_create_structure): Allocate df_ref_extract if offset and
9258 width fields are used.
9259 (df_def_record_1): Get offset and width from ZERO_EXTRACT.
9260 (df_uses_record): Get offset and width from ZERO_EXTRACT
9261 and SIGN_EXTRACT.
9262 * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
9263 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
9264 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
9265 * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
9266 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
9267 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
9268 (df_ref_extract): New structure.
9269 (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
9270 (df_ref_create): Add width and offset parameters.
9271
a306ee43 92722008-03-05 Richard Guenther <rguenther@suse.de>
9273
9274 * tree-ssa-structalias.c (get_constraint_for_component_ref):
9275 Use ranges_overlap_p.
9276 (offset_overlaps_with_access): Rename
9277 to ranges_overlap_p and move ...
9278 * tree-flow-inline.h (ranges_overlap_p): ... here.
9279
9280 * tree.h (get_inner_reference, handled_component_p): Update
9281 comments.
9282
9283 * tree.h (record_component_aliases, get_alias_set,
9284 alias_sets_conflict_p, alias_sets_must_conflict_p,
9285 objects_must_conflict_p): Move declarations ...
9286 * alias.h (record_component_aliases, get_alias_set,
9287 alias_sets_conflict_p, alias_sets_must_conflict_p,
9288 objects_must_conflict_p): ... here.
9289 Include coretypes.h.
9290 * Makefile.in (ALIAS_H): Add coretypes.h dependency.
9291
d03ba86f 92922008-03-05 Aldy Hernandez <aldyh@redhat.com>
9293
9294 * cfg.c: Include tree-flow.h.
9295 (remove_edge_raw): Call redirect_edge_var_map_clear.
9296 (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
9297 * tree-flow-inline.h (redirect_edge_var_map_def): New.
9298 (redirect_edge_var_map_result): New.
9299 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
9300 PENDING_STMT use with redirect_edge_var_map_*.
9301 * tree-ssa.c (edge_var_maps): New definition.
9302 (redirect_edge_var_map_add): New.
9303 (redirect_edge_var_map_clear): New.
9304 (redirect_edge_var_map_dup): New.
9305 (redirect_edge_var_map_vector): New.
9306 (redirect_edge_var_map_destroy): New.
9307 (ssa_redirect_edge): Replace PENDING_STMT use with
9308 redirect_edge_var_map_*.
9309 (flush_pending_stmts): Same.
9310 (delete_tree_ssa): Destroy edge var map.
9311 * tree-flow.h (struct _edge_var_map): New.
9312 Define edge_var_map vector type.
9313 Declare redirect_edge_var_map_* prototypes.
9314 * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
9315 * tree-cfg.c (reinstall_phi_args): Replace
9316 PENDING_STMT use with redirect_edge_var_map_*.
9317
7cf3d282 93182008-03-05 Richard Guenther <rguenther@suse.de>
9319
9320 PR tree-optimization/35472
9321 * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
9322 whose single use_stmt has a overlapping set of loaded and
9323 stored symbols as that use_stmt might be a noop assignment then.
9324
2349cd3e 93252008-03-05 Joel Sherrill <joel.sherrill@oarcorp.com>
9326
9327 * gthr-rtems.h: Implement __gthread_mutex_destroy.
9328
70d2daf7 93292008-03-05 Richard Guenther <rguenther@suse.de>
9330
9331 PR c++/35336
9332 * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
9333 should be constants.
9334 * tree-cfg.c (verify_expr): Verify it.
9335 * fold-const.c (fold_truthop): Remove code generating
9336 BIT_FIELD_REFs of structure bases.
9337 (fold_binary): Likewise.
9338 (fold_ternary): Position and size of BIT_FIELD_REFs are
9339 always host integers.
9340 (make_bit_field_ref): Remove.
9341 (optimize_bit_field_compare): Remove.
9342 (all_ones_mask_p): Remove.
9343
a08778a2 93442008-03-05 Gabor Loki <loki@gcc.gnu.org>
9345
9346 PR gcc/33009
9347 * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
9348 (split_block_and_df_analyze): New. Split basic block and rebuild
9349 dataflow.
9350 (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
9351 SPLIT_BLOCK.
9352 (split_pattern_seq): Likewise.
9353 (erase_matching_seqs): Likewise.
9354 (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
9355
ad7c187a 93562008-03-04 Geoff Keating <geoffk@apple.com>
9357
9358 * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
9359 declaration and code.
9360 (tree_invalid_nonnegative_warnv_p): Likewise.
9361
57c56476 93622008-03-05 Serge Belyshev <belyshev@depni.sinp.msu.ru>
9363
9364 * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
9365 examples. Truncate option-names then causing overfull hbox.
9366
d4f869a6 93672008-03-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9368
9369 PR target/35222
9370 * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
9371 on hpux10.
9372 * configure: Rebuilt.
9373
ea1a85df 93742008-03-04 Rafael Espindola <espindola@google.com>
9375
9376 * fold-const.c (tree_simple_nonnegative_warnv_p): New.
9377 (tree_unary_nonnegative_warnv_p): New.
9378 (tree_binary_nonnegative_warnv_p): New.
9379 (tree_single_nonnegative_warnv_p): New.
9380 (tree_invalid_nonnegative_warnv_p): New.
9381 (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
9382
88d4fcc4 93832008-03-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9384
9385 PR 28322
9386 * opts.c (handle_option): Postpone 'unknown option' errors only for
9387 warning options.
9388
f98d7ce9 93892008-03-04 H.J. Lu <hongjiu.lu@intel.com>
9390
9391 PR target/35453
9392 * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
9393 (_SIDD_XXX): This.
9394
937bceaf 93952008-03-04 Rafael Espindola <espindola@google.com>
9396
9397 * fold-const.c (tree_unary_nonzero_warnv_p): New.
9398 (tree_binary_nonzero_warnv_p): New.
9399 (tree_single_nonzero_warnv_p): New.
9400 (tree_expr_nonzero_warnv_p): Redefine using the new functions.
9401
01e93ec4 94022008-03-04 Uros Bizjak <ubizjak@gmail.com>
9403
9404 PR middle-end/35456
9405 * fold-const.c (fold_cond_expr_with_comparison): Prevent
9406 transformations for modes that have signed zeros.
9407 * ifcvt.c (noce_try_abs): Ditto.
9408
cfb92464 94092008-03-04 Joseph Myers <joseph@codesourcery.com>
9410
9411 * config/i386/i386.c (override_options): Force
9412 -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
9413
fb1b7d77 94142008-03-04 Jan Hubicka <jh@suse.cz>
9415
9416 PR c++/35262
9417 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
9418 in last commit.
9419
9b980db1 94202008-03-04 Danny Smith <dannysmith@users.sourceforge.net>
9421
9422 * config/i386/i386.md (allocate_stack_worker_32): Use __chkstk
bb51041c 9423 label to probe the stack.
9b980db1 9424
abefb712 94252008-03-04 Danny Smith <dannysmith@users.sourceforge.net>
9426
9427 * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
9428 (__gthr_win32_mutex_destroy): Declare.
9429 [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
9430 __gthr_win32_mutex_destroy.
9431 * config/i386/gthr-win32.c (__gthr_win32_mutex_destroy): Define.
9432
99e909be 94332008-03-03 Jan Hubicka <jh@suse.cz>
9434
9435 PR c++/35262
9436 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
9437 aggressive on inlining cold calls.
9438
802d9f2f 94392008-03-03 Richard Guenther <rguenther@suse.de>
9440
9441 * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
9442 struct copies into the expression table.
9443 (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
9444 (try_to_simplify): Likewise.
9445 * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
9446 integral and pointer arguments which do not change the
9447 precision to NOP_EXPRs.
9448 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
9449 VIEW_CONVERT_EXPR case.
9450
663608f5 94512008-03-02 Sebastian Pop <sebastian.pop@amd.com>
9452
9453 * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
9454 defined in a loop at depth 0 is invariant.
9455 * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
9456 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
9457 be called at loop depth 0.
9458
e46a4556 94592008-03-02 Jakub Jelinek <jakub@redhat.com>
9460
9461 PR driver/35420
9462 * gcc.c (process_command): Update copyright notice dates.
9463 * gcov.c (print_version): Likewise.
9464 * gcov-dump.c (print_version): Likewise.
9465 * mips-tfile.c (main): Likewise.
9466 * mips-tdump.c (main): Likewise.
9467
07317e69 94682008-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9469
9470 PR 24924
9471 * c-common.c (flag_permissive): Delete.
9472 (constant_expression_warnings): Check flags first.
9473 (constant_expression_error): New.
9474 * c-common.h (flag_permissive): Delete.
9475 (constant_expression_error): Declare.
9476 * flags.h (flag_permissive): Declare. Update description.
9477 * diagnostic.c (pedwarn): Update.
9478 (permerror): New.
9479 * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
9480 (permissive_error_kind): New.
9481 * toplev.c (flag_permissive): Define. Update description.
9482 * toplev.h (permissive_error_kind): Declare.
9483 * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
9484 (pedwarn_c90): Use pedantic_warning_kind.
9485 * c-opts.c (c_common_post_options): flag_permissive does not affect
9486 flag_pedantic_errors.
9487
462a0c31 94882008-03-02 Joseph Myers <joseph@codesourcery.com>
9489
9490 * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
9491 __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
9492 __absvsi2, __absvDI2): Use unsigned arithmetic.
9493
64cf91f5 94942008-03-02 Andi Kleen <ak@suse.de>
e06aee53 9495 Richard Guenther <rguenther@suse.de>
64cf91f5 9496
9497 * struct-equiv.c: Remove file.
9498 * cfg_cleanup.c (condjump_equiv_p): Remove.
9499 * Makefile.in (OBJS-common): Remove struct-equiv.o.
9500 (struct-equiv.o): Remove rule.
9501 * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
9502 insns_match_p, struct_equiv_block_eq, struct_equiv_init,
9503 rtx_equiv_p, condjump_equiv_p): Remove prototypes.
9504
ba0b5cfc 95052008-03-01 Alexandre Oliva <aoliva@redhat.com>
9506
9507 * ifcvt.c (noce_process_if_block): Try to handle only the then
9508 block if the else block exists but isn't suitable.
9509
71239661 95102008-03-01 Janne Blomqvist <jb@gcc.gnu.org>
9511
9512 PR gcc/35063
9513 * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
9514 * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
9515 regression from previous patch.
9516
1cd3a344 95172008-03-01 Janne Blomqvist <jb@gcc.gnu.org>
9518
9519 PR gcc/35063
9520 * gthr.h: Add __gthread_mutex_destroy as a function that must be
9521 implemented.
9522 * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
9523 * gthr-single.h (__gthread_mutex_destroy): Likewise.
9524 * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
9525 * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
9526 * gthr-nks.h (__gthread_mutex_destroy): Likewise.
9527 * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
9528 * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
9529 (__gthread_mutex_destroy_function): Rename to
9530 __gthread_mutex_destroy.
9531 * gthr-dce.h (__gthread_mutex_destroy): Call
9532 pthread_mutex_destroy.
9533 * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
9534 * gthr-posix.h (__gthread_mutex_destroy): Likewise.
9535 * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
9536
a2bdd643 95372008-03-01 Alexandre Oliva <aoliva@redhat.com>
9538
9539 * df-scan.c (df_ref_chain_change_bb): Simplify.
9540 (df_insn_change_bb): Add new_bb argument. Simplify. Call
9541 set_block_for_insn if there's any change.
9542 * df.h ((df_insn_change_bb): Fix prototype.
9543 * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
9544 df_insn_change_bb, don't call set_block_for_insn.
9545 * emit-rtl.c (reorder_insns): Likewise.
9546 * haifa-sched.c (move_insn): Likewise.
9547
c8707f08 95482008-03-01 Alexandre Oliva <aoliva@redhat.com>
9549
9550 * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
9551
200ad982 95522008-03-01 Alexandre Oliva <aoliva@redhat.com>
9553
9554 * tree-flow-inline.h (next_readonly_imm_use): Return
9555 NULL_USE_OPERAND_P after the end.
9556
0045e505 95572008-03-01 Richard Guenther <rguenther@suse.de>
9558
9559 PR tree-optimization/35411
9560 * tree-sra.c (sra_build_assignment): Split conversion to
9561 final type to a separate statement if we are not assigning
9562 to a register.
9563
4a2f7014 95642008-02-29 Francois-Xavier Coudert <coudert@clipper.ens.fr>
9565
9566 * fold-const.c (fold_convertible_p): Correct the logic to follow
9567 that in fold_convert().
9568
e8e0078c 95692008-02-29 Douglas Gregor <doug.gregor@gmail.com>
9570
9571 PR c++/35315
9572 * tree-inline.c (build_duplicate_type): When we make a
9573 duplicate type, make it unique in the canonical types system.
9574
26cb3d1c 95752008-02-29 Tom Tromey <tromey@redhat.com>
9576
9577 * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
9578 input_file_stack_history, input_file_stack_restored): Remove.
9579 (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
9580 * input.h (struct file_stack): Remove.
9581 (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
9582 (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
9583 Likewise.
9584 * diagnostic.h (struct diagnostic_context) <last_module>: Change
9585 type.
9586 (diagnostic_last_module_changed): Add 'map' argument.
9587 (diagnostic_set_last_function): Likewise.
9588 * diagnostic.c (undiagnostic_report_current_module): Iterate using
9589 line map, not input_file_stack.
9590 * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
9591
a09d6770 95922008-02-29 Paul Brook <paul@codesourcery.com>
9593
9594 * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
9595
a7aa526d 95962008-02-29 Paul Brook <paul@codesourcery.com>
9597
9598 * config/arm/ieee754-df.S (muldf3): Use RET macros.
9599
d4cdfd27 96002008-02-29 Richard Guenther <rguenther@suse.de>
9601
9602 * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
9603 vn_lookup_or_add.
9604 * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
9605 value for comparing for a store match.
9606 (simplify_unary_expression): Do nothing for SSA_NAMEs.
9607 (try_to_simplify): Do not do a full-blown reference lookup.
9608
607ac910 96092008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
9610
9611 * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
9612 (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
9613
9614 * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
9615
2fcf1fbb 96162008-02-29 Sebastian Pop <sebastian.pop@amd.com>
9617
9618 * tree-loop-linear.c (try_interchange_loops): Compare memory access
9619 strides against cache sizes.
9620
583c0935 96212008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
9622
9623 * config/sh/sh.c (sh_secondary_reload): Handle loading a float
9624 constant to fpul.
9625
ad76ccf5 96262008-02-28 Richard Sandiford <rsandifo@nildram.co.uk>
9627
9628 * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
9629 of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
9630 is smaller than the original promoted value.
9631 (simplify_subreg): If OP is a SUBREG, try to preserve its
9632 SUBREG_PROMOTED_VAR_P information.
9633
b9584939 96342008-02-28 Steven Bosscher <stevenb.gcc@gmail.com>
9635
9636 * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
9637 (VN_INFO_GET): Allocate new objects on the obstack.
9638 (init_scc_vn): Initialize the obstack. Use XDELETE instead of free
9639 for rpo_numbers_temp, for consistency.
9640 (free_scc_vn): Free the obstack.
9641
801c5610 96422008-02-28 Sebastian Pop <sebastian.pop@amd.com>
9643
9644 * doc/invoke.texi: Document -ftree-loop-distribution.
9645 * tree-loop-distribution.c: New.
9646 * tree-pass.h (pass_loop_distribution): New.
9647 * graphds.h (struct graph): Add htab_t indices.
9648 * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
9649 * tree-vectorizer.c (rename_variables_in_loop): Extern.
9650 (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
9651 * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
9652 * tree-data-ref.c (debug_data_dependence_relations): New.
9653 (dump_data_dependence_relation): Also print data references.
9654 (free_data_ref): Extern.
9655 (same_access_functions): Moved...
9656 (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
9657 (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
9658 debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
9659 struct rdg_vertex_info, rdg_vertex_for_stmt): New.
9660 (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
9661 (stmts_from_loop): Skip LABEL_EXPR.
01e93ec4 9662 (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
9663 New.
801c5610 9664 (build_rdg): Initialize rdg->indices htab.
9665 (free_rdg, stores_from_loop, ref_base_address,
9666 rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
9667 have_similar_memory_accesses_1, ref_base_address_1,
9668 remove_similar_memory_refs): New.
9669 * tree-data-ref.h: Depend on tree-chrec.h.
9670 (debug_data_dependence_relations, free_data_ref): Declared.
9671 (same_access_functions): ... here.
01e93ec4 9672 (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
9673 New.
801c5610 9674 (struct rdg_vertex): Add has_mem_write and has_mem_reads.
9675 (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
9676 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
9677 (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
9678 debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
9679 rdg_vertex_for_stmt): Declared.
9680 (struct rdg_edge): Add level.
9681 (RDGE_LEVEL): New.
9682 (free_rdg, stores_from_loop, remove_similar_memory_refs,
01e93ec4 9683 rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
9684 Declared.
801c5610 9685 (rdg_has_similar_memory_accesses): New.
9686 * tree-vect-analyze.c: Remove unused static decls.
9687 * lambda.h (dependence_level): New.
9688 * common.opt (ftree-loop-distribution): New.
9689 * tree-flow.h (mark_virtual_ops_in_bb,
9690 slpeel_tree_duplicate_loop_to_edge_cfg,
9691 rename_variables_in_loop): Declared.
9692 * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
9693 (OBJS-common): Add tree-loop-distribution.o.
9694 (tree-loop-distribution.o): New rule.
9695 * tree-cfg.c (mark_virtual_ops_in_bb): New.
9696 (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
9697 * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
9698
9c467f13 96992008-02-28 Joseph Myers <joseph@codesourcery.com>
9700
9701 PR target/33963
9702 * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
9703 other than structures and unions.
9704
c0ff55b3 97052008-02-28 Richard Guenther <rguenther@suse.de>
9706
9707 Revert:
9708 2008-02-26 Richard Guenther <rguenther@suse.de>
9709
9710 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9711 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9712 (lookup_decl_from_uid): Declare.
9713 (remove_decl_from_map): Likewise.
9714 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9715 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9716 (decl_for_uid_map): New global hashtable mapping DECL_UID
9717 to the decl tree.
9718 (init_ttree): Allocate it.
9719 (insert_decl_to_uid_decl_map): New helper function.
9720 (make_node_stat): Insert new decls into the map.
9721 (copy_node_stat): Likewise.
9722 (lookup_decl_from_uid): New function.
9723 (remove_decl_from_map): Likewise.
9724 (print_decl_for_uid_map_statistics): New helper.
9725 (dump_tree_statistics): Call it.
9726
9727 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9728 (referenced_var_iterator): Adjust.
9729 (FOR_EACH_REFERENCED_VAR): Adjust.
9730 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9731 (num_referenced_vars): Adjust.
9732 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9733 (first_referenced_var): Remove.
9734 (end_referenced_vars_p): Likewise.
9735 (next_referenced_var): Likewise.
9736 (referenced_var_iterator_set): New helper function.
9737 * tree-dfa.c (referenced_var_lookup): Adjust.
9738 (referenced_var_check_and_insert): Likewise.
9739 (remove_referenced_var): Likewise.
9740 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9741 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9742 (verify_call_clobbering): Likewise.
9743 (verify_memory_partitions): Likewise.
9744 (init_tree_ssa): Allocate bitmap instead of hashtable for
9745 referenced_vars.
9746 (delete_tree_ssa): Adjust.
9747 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9748 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9749 (compute_tag_properties): Likewise.
9750 (set_initial_properties): Likewise.
9751 (find_partition_for): Likewise.
9752 (update_reference_counts): Likewise.
9753 (dump_may_aliases_for): Likewise.
9754 * tree-ssa-operands.c (add_virtual_operand): Likewise.
9755 (add_call_clobber_ops): Likewise.
9756 (add_call_read_ops): Likewise.
9757 (get_asm_expr_operands): Likewise.
9758 * tree-into-ssa.c (dump_decl_set): Likewise.
9759 (update_ssa): Likewise.
9760 * tree-sra.c (scan_function): Likewise.
9761 (decide_instantiations): Likewise.
9762 (scalarize_parms): Likewise.
9763 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9764 (dsa_named_for): Likewise.
9765 * tree-ssa-structalias.c (update_alias_info): Likewise.
9766 (merge_smts_into): Likewise.
9767
16b35285 97682008-02-27 David Daney <ddaney@avtrex.com>
9769
9770 PR target/34409
9771 * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
9772 * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
9773 * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
9774 * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
9775 * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
9776
d243d9c9 97772008-02-27 Uros Bizjak <ubizjak@gmail.com>
9778
9779 PR target/25477
9780 * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
9781 (BUILT_IN_NEXTTOWARD): Remove.
9782 (BUILT_IN_NEXTTOWARDF): Ditto.
9783 * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
9784 alloca/strcpy/strcat. Remove commented-out code. Fix whitespace.
9785
de9ebaea 97862008-02-27 Tom Tromey <tromey@redhat.com>
9787
9788 * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
9789 DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
9790
5f398d1f 97912008-02-27 Jan Beulich <jbeulich@novell.com>
9792
9793 * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
9794 update the respective field on newdecl.
9795
9cc5df33 97962008-02-27 Revital Eres <eres@il.ibm.com>
9797
9798 PR rtl-optimization/34999
9799 * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
9800 crossing edges that ends with a call insn.
9801 (fix_up_fall_thru_edges): Handle crossing edges that ends with a
9802 call insn and clear the EDGE_CROSSING flag of the crossing edge
9803 when fixing fallthru edges.
9804
c2f5179d 98052008-02-27 Richard Guenther <rguenther@suse.de>
9806
c0ff55b3 9807 PR middle-end/35390
c2f5179d 9808 * fold-const.c (fold_unary): Return the correct argument,
9809 converted to the result type.
9810
6295ca72 98112008-02-27 Richard Guenther <rguenther@suse.de>
9812
9813 PR middle-end/34971
9814 * expr.c (expand_expr_real_1): Assert on rotates that operate
9815 on partial modes.
9816 * fold-const.c (fold_binary): Use the types precision, not the
9817 bitsize of the mode if folding rotate expressions. Build rotates
9818 only for full modes.
9819
146a4308 98202008-02-27 Jakub Jelinek <jakub@redhat.com>
9821
9822 * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
9823 and CPP_PRAGMA_EOL.
9824 * c-pragma.c (pragma_ns_name): New typedef.
9825 (registered_pp_pragmas): New variable.
9826 (c_pp_lookup_pragma): New function.
9827 (c_register_pragma_1): If flag_preprocess_only, do nothing
9828 for non-expanded pragmas, for expanded ones push pragma's
9829 namespace and name into registered_pp_pragmas vector.
9830 (c_invoke_pragma_handler): Register OpenMP pragmas even when
9831 flag_preprocess_only, don't register GCC pch_preprocess
9832 pragma if flag_preprocess_only.
9833 * c-opts.c (c_common_init): Call init_pragma even if
9834 flag_preprocess_only.
9835 * c-pragma.c (c_pp_lookup_pragma): New prototype.
9836 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
9837 cpp_register_pragma if flag_preprocess_only.
9838
784c0df4 98392008-02-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9840
9841 PR c/28800
9842 * c-parser.c (c_parser_translation_unit): Warn for empty
9843 translation unit, not empty source file.
9844
aaa37ad6 98452008-02-26 Paul Brook <paul@codesourcery.com>
9846
9847 * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
9848 operand for Thumb-2.
9849 * config/arm/arm.h (reg_class): Add CORE_REGS.
9850 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
9851 (BASE_REG_CLASS): Use CORE_REGS.
9852 (PREFERRED_RELOAD_CLASS): Add STACK_REG.
9853 (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
9854 (REGNO_OK_FOR_INDEX_P): Exclude SP.
9855 (ARM_REG_OK_FOR_INDEX_P): Always define. Use
9856 ARM_REGNO_OK_FOR_INDEX_P.
9857 (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
9858 * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
9859 arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
9860 (ldm/stm peepholes): Ditto.
9861 * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
9862 * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
9863 * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
9864 * config/arm/constraints.md: Enable "k" constraint on ARM.
9865
7effebe0 98662008-02-27 Ben Elliston <bje@au.ibm.com>
9867
9868 * config/rs6000/rs6000.c: Annotate cache line size field in all
9869 instances of struct processor_costs.
9870
4ff06051 98712008-02-26 David Edelsohn <edelsohn@gnu.org>
9872
9873 * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
9874 dse2, gcse, if_conversion, if_after_combine, if_after_reload,
9875 jump_bypass): New counters.
9876 * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
9877 * dce.c (gate_ud_dce): Same.
9878 (gate_fast_dce): Same.
9879 * dse.c (gate_dse1): New function.
9880 (gate_dse2): New function.
9881 (gate_dse): Merge results of new gate functions.
9882 * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
9883 (gate_handle_jump_bypass): Add dbg_cnt.
9884 (gate_handle_gcse): Add dbg_cnt.
9885 * ifcvt.c (gate_handle_if_conversion): Same.
9886 (gate_handle_if_after_combine): Same.
9887 (gate_handle_if_after_reload): Same.
9888 * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
9889
0fc88469 98902008-02-26 Edmar Wienskoski <edmar@freescale.com>
9891
9892 * config/rs6000/rs6000.c (processor_costs): Update e300 cache
9893 line sizes.
9894 * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
9895
3ef0a05e 98962008-02-26 Jason Merrill <jason@redhat.com>
9897
9898 PR c++/35315
9899 * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
9900 alone if it's the naming decl for the type's main variant.
9901
9c85a98a 99022008-02-26 Tom Tromey <tromey@redhat.com>
9903
9904 * system.h (USE_MAPPED_LOCATION): Poison.
9905 * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
9906 * tree-cfg.c (make_cond_expr_edges): Remove old location code.
9907 (make_goto_expr_edges): Likewise.
9908 (remove_bb): Likewise.
9909 (execute_warn_function_return): Likewise.
9910 * basic-block.h (struct edge_def) <goto_locus>: Change type to
9911 location_t.
9912 * c-common.c (fname_decl): Remove old location code.
9913 * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
9914 location code.
9915 * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
9916 variant.
9917 (ASM_INPUT_SOURCE_LOCATION): Likewise.
9918 (gen_rtx_ASM_INPUT): Likewise.
9919 (gen_rtx_ASM_INPUT_loc): Likewise.
9920 (get_rtx_asm_OPERANDS): Remove.
9921 * cfglayout.c (insn_locators_alloc): Remove old location code.
9922 (set_curr_insn_source_location): Likewise.
9923 (curr_insn_locator): Likewise.
9924 * print-tree.c (print_node): Remove old location code.
9925 * tree-mudflap.c (mf_varname_tree): Remove old location code.
9926 (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
9927 * cfgexpand.c (expand_gimple_cond_expr): Don't use
9928 location_from_locus.
9929 (construct_exit_block): Remove old location code.
9930 * emit-rtl.c (force_next_line_note): Remove old location code.
9931 * profile.c (branch_prob): Remove old location code.
9932 * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
9933 LOC_LINE): Remove old-location variants.
9934 * langhooks.c (lhd_print_error_function): Remove old location
9935 code.
9936 * configure, config.in: Rebuilt.
9937 * configure.ac (--enable-mapped-location): Remove.
9938 * c-decl.c (c_init_decl_processing): Remove old location code.
9939 (finish_function): Likewise.
9940 * recog.c (decode_asm_operands): Remove old location code.
9941 * c-pch.c (c_common_read_pch): Remove old location code.
9942 * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
9943 variants.
9944 * gimple-low.c (lower_function_body): Remove old location code.
9945 * toplev.c (unknown_location): Remove.
9946 (push_srcloc): Remove old-location variant.
9947 (process_options): Remove old location code.
9948 (lang_dependent_init): Likewise.
9949 * input.h (UNKNOWN_LOCATION): Move definition.
9950 (location_t): Undeprecate.
9951 (source_locus): Remove.
9952 (location_from_locus): Remove.
9953 (struct location_s): Remove.
9954 Remove all old-location code.
9955 (input_line, input_filename): Remove.
9956 * final.c (final_scan_insn): Remove old location code.
9957 * diagnostic.c (diagnostic_build_prefix): Remove
9958 USE_MAPPED_LOCATION test.
9959 * tree.h (gimple_stmt) <locus>: Now a location_t.
9960 (tree_exp) <locus>: Likewise.
9961 (DECL_IS_BUILTIN): Remove old-location variant.
9962 (annotate_with_file_line, annotate_with_locus): Likewise.
9963 (expr_locus, set_expr_locus): Update.
9964 * tree.c (build1_stat): Remove old location code.
9965 (last_annotated_node): Remove.
9966 (annotate_with_file_line): Remove old-location variant.
9967 (annotate_with_locus): Likewise.
9968 (expr_location): Remove old location code.
9969 (set_expr_location): Likewise.
9970 (expr_has_location): Likewise.
9971 (expr_locus): Likewise.
9972 (set_expr_locus): Likewise.
9973 (expr_filename): Don't use location_from_locus.
9974 (expr_lineno): Likewise.
9975 * rtl-error.c (location_for_asm): Remove old location code.
9976 * c-lex.c (cb_line_change): Remove old location code.
9977 (fe_file_change): Likewise.
9978 (cb_def_pragma): Likewise.
9979 (c_lex_with_flags): Likewise.
9980 * gengtype.c (do_typedef): Don't special-case location types.
9981 (define_location_structures): Remove.
9982 (main): Don't call define_location_structures.
9983 * tree-pretty-print.c (dump_implicit_edges): Remove old location
9984 code.
9985
c0394294 99862008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9987
bb51041c 9988 PR 26264
c0394294 9989 * builtins.def (BUILT_IN_STDARG_START): Remove.
9990 * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
9991 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
9992 * tree-inline.c (inline_forbidden_p_1): Likewise.
9993
20308404 99942008-02-26 Richard Guenther <rguenther@suse.de>
9995
9996 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9997 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9998 (lookup_decl_from_uid): Declare.
9999 (remove_decl_from_map): Likewise.
10000 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
10001 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
10002 (decl_for_uid_map): New global hashtable mapping DECL_UID
10003 to the decl tree.
10004 (init_ttree): Allocate it.
10005 (insert_decl_to_uid_decl_map): New helper function.
10006 (make_node_stat): Insert new decls into the map.
10007 (copy_node_stat): Likewise.
10008 (lookup_decl_from_uid): New function.
10009 (remove_decl_from_map): Likewise.
10010 (print_decl_for_uid_map_statistics): New helper.
10011 (dump_tree_statistics): Call it.
10012
10013 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
10014 (referenced_var_iterator): Adjust.
10015 (FOR_EACH_REFERENCED_VAR): Adjust.
10016 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
10017 (num_referenced_vars): Adjust.
10018 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
10019 (first_referenced_var): Remove.
10020 (end_referenced_vars_p): Likewise.
10021 (next_referenced_var): Likewise.
10022 (referenced_var_iterator_set): New helper function.
10023 * tree-dfa.c (referenced_var_lookup): Adjust.
10024 (referenced_var_check_and_insert): Likewise.
10025 (remove_referenced_var): Likewise.
10026 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
10027 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10028 (verify_call_clobbering): Likewise.
10029 (verify_memory_partitions): Likewise.
10030 (init_tree_ssa): Allocate bitmap instead of hashtable for
10031 referenced_vars.
10032 (delete_tree_ssa): Adjust.
10033 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
10034 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10035 (compute_tag_properties): Likewise.
10036 (set_initial_properties): Likewise.
10037 (find_partition_for): Likewise.
10038 (update_reference_counts): Likewise.
10039 (dump_may_aliases_for): Likewise.
10040 * tree-ssa-operands.c (add_virtual_operand): Likewise.
10041 (add_call_clobber_ops): Likewise.
10042 (add_call_read_ops): Likewise.
10043 (get_asm_expr_operands): Likewise.
10044 * tree-into-ssa.c (dump_decl_set): Likewise.
10045 (update_ssa): Likewise.
10046 * tree-sra.c (scan_function): Likewise.
10047 (decide_instantiations): Likewise.
10048 (scalarize_parms): Likewise.
10049 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
10050 (dsa_named_for): Likewise.
10051 * tree-ssa-structalias.c (update_alias_info): Likewise.
10052 (merge_smts_into): Likewise.
10053
75130fc7 100542008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10055
10056 PR 34351
10057 * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
10058 * c-opts.c (c_common_handle_option): Wall enables
10059 Wvolatile-register-var.
10060 * common.opt: Move Wvolatile-register-var to...
10061 * c.opt: ...here.
10062
17c66687 100632008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10064
10065 * common.opt (Wlarger-than=): New.
10066 * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
10067 -Wlarger-than=.
10068 * opts.c (common_handle_option): Handle -Wlarger-than=.
10069 * optc-gen.awk: Likewise.
10070 * opth-gen.awk: Likewise.
10071 * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
10072 * tree-optimize.c (tree_rest_of_compilation): Likewise.
10073
6cbbbc89 100742008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10075
10076 * c-common.c (match_case_to_enum_1): Add appropriate
10077 OPT_W* parameter to warning.
10078 (c_do_switch_warnings): Likewise.
10079 * c-typeck.c (warning_init): Add one more parameter following
10080 'warning' function.
10081 (push_init_level): Update call to warning_init.
10082 (pop_init_level): Likewise.
10083 (add_pending_init): Likewise.
10084 (output_init_element: Likewise.
10085
ddb48b82 100862008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10087
10088 PR 28322
10089 * toplev.c (toplev_main): If there are warnings or error, print
10090 errors for ignored options.
10091 * opts.c (ignored_options): New static variable.
10092 (postpone_unknown_option_error): New.
10093 (print_ignored_options): New.
10094 (handle_option): Postpone errors for unknown -Wno-* options.
10095 * opts.h (print_ignored_options): Declare.
10096
7ecd9299 100972008-02-25 Richard Sandiford <rsandifo@nildram.co.uk>
10098
10099 * config/mips/mips.md (loadgp_blockage, blockage): Change type
10100 to "ghost".
10101
3a0e28bd 101022008-02-25 Richard Guenther <rguenther@suse.de>
10103
10104 Revert:
10105 2008-02-25 Richard Guenther <rguenther@suse.de>
10106
10107 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
10108 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
10109 (lookup_decl_from_uid): Declare.
10110 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
10111 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
10112 (decl_for_uid_map): New global hashtable mapping DECL_UID
10113 to the decl tree.
10114 (init_ttree): Allocate it.
10115 (insert_decl_to_uid_decl_map): New helper function.
10116 (make_node_stat): Insert new decls into the map.
10117 (copy_node_stat): Likewise.
10118 (lookup_decl_from_uid): New function.
10119 (print_decl_for_uid_map_statistics): New helper.
10120 (dump_tree_statistics): Call it.
10121
10122 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
10123 (referenced_var_iterator): Adjust.
10124 (FOR_EACH_REFERENCED_VAR): Adjust.
10125 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
10126 (num_referenced_vars): Adjust.
10127 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
10128 (first_referenced_var): Remove.
10129 (end_referenced_vars_p): Likewise.
10130 (next_referenced_var): Likewise.
10131 (referenced_var_iterator_set): New helper function.
10132 * tree-dfa.c (referenced_var_lookup): Adjust.
10133 (referenced_var_check_and_insert): Likewise.
10134 (remove_referenced_var): Likewise.
10135 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
10136 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10137 (verify_call_clobbering): Likewise.
10138 (verify_memory_partitions): Likewise.
10139 (init_tree_ssa): Allocate bitmap instead of hashtable for
10140 referenced_vars.
10141 (delete_tree_ssa): Adjust.
10142 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
10143 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10144 (compute_tag_properties): Likewise.
10145 (set_initial_properties): Likewise.
10146 (find_partition_for): Likewise.
10147 (update_reference_counts): Likewise.
10148 (dump_may_aliases_for): Likewise.
10149 * tree-ssa-operands.c (add_virtual_operand): Likewise.
10150 (add_call_clobber_ops): Likewise.
10151 (add_call_read_ops): Likewise.
10152 (get_asm_expr_operands): Likewise.
10153 * tree-into-ssa.c (dump_decl_set): Likewise.
10154 (update_ssa): Likewise.
10155 * tree-sra.c (scan_function): Likewise.
10156 (decide_instantiations): Likewise.
10157 (scalarize_parms): Likewise.
10158 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
10159 (dsa_named_for): Likewise.
10160 * tree-ssa-structalias.c (update_alias_info): Likewise.
10161 (merge_smts_into): Likewise.
10162
7e959c84 101632008-02-25 Janne Blomqvist <jb@gcc.gnu.org>
10164
10165 PR fortran/29549
10166 * doc/invoke.texi (-fcx-limited-range): Document new option.
10167 * toplev.c (process_options): Handle -fcx-fortran-rules.
bb51041c 10168 * common.opt: Add documentation for -fcx-fortran-rules.
7e959c84 10169
a8806066 101702008-02-25 Janne Blomqvist <jb@gcc.gnu.org>
10171
10172 PR c/35162
10173 * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
10174 actual behaviour and C99.
10175
b30c4a87 101762008-02-26 Ben Elliston <bje@au.ibm.com>
10177
10178 * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
10179 (ASM_CPU_POWER6_SPEC): Likewise.
10180 (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
10181 Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
10182 (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
10183
8ca26bdd 101842008-02-25 Richard Guenther <rguenther@suse.de>
10185
10186 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
10187 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
10188 (lookup_decl_from_uid): Declare.
10189 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
10190 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
10191 (decl_for_uid_map): New global hashtable mapping DECL_UID
10192 to the decl tree.
10193 (init_ttree): Allocate it.
10194 (insert_decl_to_uid_decl_map): New helper function.
10195 (make_node_stat): Insert new decls into the map.
10196 (copy_node_stat): Likewise.
10197 (lookup_decl_from_uid): New function.
10198 (print_decl_for_uid_map_statistics): New helper.
10199 (dump_tree_statistics): Call it.
10200
10201 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
10202 (referenced_var_iterator): Adjust.
10203 (FOR_EACH_REFERENCED_VAR): Adjust.
10204 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
10205 (num_referenced_vars): Adjust.
10206 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
10207 (first_referenced_var): Remove.
10208 (end_referenced_vars_p): Likewise.
10209 (next_referenced_var): Likewise.
10210 (referenced_var_iterator_set): New helper function.
10211 * tree-dfa.c (referenced_var_lookup): Adjust.
10212 (referenced_var_check_and_insert): Likewise.
10213 (remove_referenced_var): Likewise.
10214 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
10215 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10216 (verify_call_clobbering): Likewise.
10217 (verify_memory_partitions): Likewise.
10218 (init_tree_ssa): Allocate bitmap instead of hashtable for
10219 referenced_vars.
10220 (delete_tree_ssa): Adjust.
10221 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
10222 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10223 (compute_tag_properties): Likewise.
10224 (set_initial_properties): Likewise.
10225 (find_partition_for): Likewise.
10226 (update_reference_counts): Likewise.
10227 (dump_may_aliases_for): Likewise.
10228 * tree-ssa-operands.c (add_virtual_operand): Likewise.
10229 (add_call_clobber_ops): Likewise.
10230 (add_call_read_ops): Likewise.
10231 (get_asm_expr_operands): Likewise.
10232 * tree-into-ssa.c (dump_decl_set): Likewise.
10233 (update_ssa): Likewise.
10234 * tree-sra.c (scan_function): Likewise.
10235 (decide_instantiations): Likewise.
10236 (scalarize_parms): Likewise.
10237 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
10238 (dsa_named_for): Likewise.
10239 * tree-ssa-structalias.c (update_alias_info): Likewise.
10240 (merge_smts_into): Likewise.
10241
5fe61d21 102422008-02-25 Andreas Krebbel <krebbel1@de.ibm.com>
10243
10244 PR target/35258
10245 * cse.c (cse_insn): Avoid creation of overlapping MEMs.
10246 * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
10247 * alias.h (nonoverlapping_memrefs_p): Likewise.
10248
cab0c612 102492008-02-25 Jan Beulich <jbeulich@novell.com>
10250
d243d9c9 10251 * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
cab0c612 10252 * config/i386/netware-libgcc.exp: Add __bswap?i2,
10253 __emultls_get_address, __emultls_register_common,
10254 __floatundi?f, and _Unwind_GetIPInfo.
10255 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
10256 Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
10257 (gen_regparm_prefix): Likewise.
10258 (i386_nlm_encode_section_info): Sync with
10259 config/i386/winnt.c:i386_pe_encode_section_info().
10260 (i386_nlm_maybe_mangle_decl_assembler_name): New.
10261 i386_nlm_mangle_decl_assembler_name): New.
10262 (netware_override_options): New.
10263 * config/i386/netware.h (netware_override_options): Declare.
10264 (OVERRIDE_OPTIONS): Re-define to netware_override_options.
10265 (i386_nlm_mangle_decl_assembler_name): Declare.
10266 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
10267
5243b29d 102682008-02-25 Ben Elliston <bje@au.ibm.com>
10269
10270 PR other/32948
10271 * c-decl.c (grokdeclarator): Remove unused local variables
10272 `typedef_type' and `type_as_written'.
10273 * bb-reorder.c
10274 (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
10275 unused local variable `has_hot_blocks'.
10276 (fix_crossing_conditional_branches): Remove unused local variable
10277 `prev_bb'.
10278
620d0bf8 102792008-02-25 Uros Bizjak <ubizjak@gmail.com>
10280
10281 PR middle-end/19984
10282 * builtins.def (BUILT_IN_NAN): Define as c99 builtin
10283 using DEF_C99_BUILTIN.
10284 (BUILT_IN_NANF): Ditto.
10285 (BUILT_IN_NANL): Ditto.
10286
84004523 102872008-02-25 Ayal Zaks <zaks@il.ibm.com>
34d8410f 10288 Revital Eres <eres@il.ibm.com>
84004523 10289
10290 * modulo-sched.c (calculate_must_precede_follow): Address TODO
10291 regarding the order of two dependent insns in the same row.
10292
23f65835 102932008-02-25 Eric Botcazou <ebotcazou@adacore.com>
10294
10295 * stor-layout.c (layout_decl): Do not bump the alignment of a
10296 bit-field to more than byte alignment if it is packed.
10297
b18d68e3 102982008-02-24 David Edelsohn <edelsohn@gnu.org>
10299
10300 * config/rs6000/rs6000.c (processor_costs): Add cache costs for
10301 e300c2 and e300c3.
10302
100b67da 103032008-02-24 Diego Novillo <dnovillo@google.com>
10304
10305 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
10306
10307 PR 33738
10308 * tree-vrp.c (vrp_evaluate_conditional): With
10309 -Wtype-limits, emit a warning when comparing against a
10310 constant outside the natural range of OP0's type.
10311 * c.opt (Wtype-limits): Move ...
10312 * common.opt (Wtype-limits): ... here.
10313
2aeab935 103142008-02-24 Edmar Wienskoski <edmar@freescale.com>
73edc44b 10315
10316 * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
10317 * config/rs6000/e300c2c3.md: New file.
10318 * config/rs6000/rs6000.c (processor_costs): Add new costs for
10319 e300c2 and e300c3.
10320 (rs6000_override_options): Add e300c2 and e300c3 cases to
10321 processor_target_table. Do not allow usage of Altivec or Spe
10322 with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
10323 (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
10324 * config/rs6000/rs6000.h (processor_type): Add
10325 PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
10326 (ASM_CPU_SPEC): Add e300c2 and e300c3.
10327 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
10328 and ppce300c3. Include e300c2c3.md.
10329
070270ea 103302008-02-23 David Edelsohn <edelsohn@gnu.org>
10331
10332 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
10333 instead of TARGET_STRICT_ALIGN.
10334
64ec1b61 103352008-02-23 Joseph Myers <joseph@codesourcery.com>
10336
10337 * explow.c (memory_address): Assert that the generated address is
10338 valid.
10339
6aee6ac8 103402008-02-23 Francois-Xavier Coudert <coudert@clipper.ens.fr>
10341
10342 PR target/25477
10343 * config/darwin-protos.h: Add darwin_patch_builtins prototype.
10344 * config/darwin-ppc-ldouble-patch.def: New file.
10345 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
10346 * config/rs6000/rs6000.c (rs6000_init_builtins): Call
10347 SUBTARGET_INIT_BUILTINS if defined.
620d0bf8 10348 * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
10349 New functions.
6aee6ac8 10350
3d72a1b5 103512008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com>
10352
10353 PR rtl-opt/33512
10354 * simplify-rtx.c (simplify_binary_operation_1): Add simplification
10355 of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
10356
c12ee0c6 103572008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com>
10358
10359 PR pch/35027
10360 * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
10361 file" warning condtional on -Winvalid-PCH.
10362
05b481df 103632008-02-23 Daniel Jacobowitz <dan@codesourcery.com>
10364
10365 * expmed.c (extract_bit_field): Always use adjust_address for MEM.
10366
78624f54 103672008-02-23 Uros Bizjak <ubizjak@gmail.com>
10368
10369 PR target/22076
10370 PR target/34256
10371 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
10372 prevent reload from using MMX registers.
10373 (*mov<mode>_internal): Ditto.
10374 (*movv2sf_internal_rex64): Ditto.
10375 (*movv2sf_internal): Ditto.
10376
ed3f349a 103772008-02-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10378
10379 PR documentation/31569
10380 * doc/install.texi2html: Use makeinfo --no-number-sections.
10381
e720c3f0 103822008-02-22 Nathan Froyd <froydnj@codesourcery.com>
10383
10384 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
10385 ensure that we can address an entire entity > 8 bytes. Don't
10386 generate reg+reg addressing for such data.
10387
dc3be372 103882008-02-22 Nathan Froyd <froydnj@codesourcery.com>
10389
10390 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
10391 strings when optimizing for size, unless the target cares about
10392 alignment.
10393
af3f5a19 103942008-02-22 Tom Tromey <tromey@redhat.com>
10395
10396 * regclass.c (current_pass): Remove declaration.
10397
9e926232 103982008-02-22 Anatoly Sokolov <aesok@post.ru>
10399
10400 * config/avr/libgcc.S (__RAMPZ__): Define.
10401 (__do_copy_data): Add for devices with 128KB code memory.
10402
b9cd27b3 104032008-02-22 Nathan Froyd <froydnj@codesourcery.com>
10404
10405 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
10406 Use spe_abi.
10407 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
10408
e8cb528f 104092008-02-22 Hans-Peter Nilsson <hp@axis.com>
10410
10411 * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
10412 GENNONACR_REGS.
10413
067d82a2 104142008-02-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10415
10416 PR c/19999
10417 * c-typeck.c (build_binary_op): Warn about floating point
10418 comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
10419
f9c1a520 104202008-02-21 Janis Johnson <janis187@us.ibm.com>
10421
10422 PR target/34526
10423 * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
10424 (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
10425 add vrsave.
10426 (rs6000_override_options): Set altivec_abi as default, not override,
10427 for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
10428 TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
10429 is used; use new member spe_abi.
10430 (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
10431 spe_abi and altivec_abi.
10432
c7dcbde4 104332008-02-22 Tomas Bily <tbily@suse.cz>
10434
10435 * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
10436
d45cdac2 104372008-02-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10438
10439 PR bootstrap/35273
10440 * config.build (build_file_translate): Set to `CMD //c' only if
10441 it works.
10442 * Makefile.in (build_file_translate): Improve comment.
10443
f3cb8b1d 104442008-02-21 Jan Hubicka <jh@suse.cz>
10445
10446 * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
10447 PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
10448 PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
10449
6ef19463 104502008-02-21 Michael Matz <matz@suse.de>
10451
10452 PR target/35264
10453 * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
10454
3da2a73c 104552008-02-21 Uros Bizjak <ubizjak@gmail.com>
10456
10457 * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
10458 movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
10459 as insn constraint.
10460 * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
10461 from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
10462 SSE_VEC_FLOAT_MODE_P as insn constraint.
10463 (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
10464 (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
10465 sse4a_movntdf using MODEF mode iterator.
10466 (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
10467 sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
10468 (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
10469 (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
10470 (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
10471 (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
10472 (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
10473
751ff693 104742008-02-21 Richard Guenther <rguenther@suse.de>
10475
10476 * tree.def (PAREN_EXPR): New tree code.
10477 * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
10478 and PAREN_EXPR.
10479 * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
10480 * expr.c (expand_expr_real_1): Likewise.
10481 * tree-inline.c (estimate_num_insns_1): Likewise.
10482 * tree-complex.c (expand_complex_move): Likewise.
10483 * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
10484 as plain x.
10485
64c985e4 104862008-02-20 Kaz Kojima <kkojima@gcc.gnu.org>
10487
10488 PR target/35225
10489 * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
10490
af122d60 104912008-02-20 Kaz Kojima <kkojima@gcc.gnu.org>
10492
10493 PR target/35190
10494 * config/sh/sh.md (jump_compact): Disable for crossing jumps.
10495
10496 * config/sh/sh.c (find_barrier): Don't go past
10497 NOTE_INSN_SWITCH_TEXT_SECTIONS note.
10498
610e569b 104992008-02-20 DJ Delorie <dj@redhat.com>
10500
10501 * config/h8300/h8300.md (insv): Force source operand to be a register.
10502
10503 * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
10504 as a jump, not as a plain insn.
10505
6fdade09 105062008-02-20 Seongbae Park <seongbae.park@gmail.com>
10507
10508 * doc/invoke.texi (Warning Options): Add new option
10509 -Wframe-larger-than=.
10510 (-Wframe-larger-than): Document.
10511
10512 * flags.h (warn_frame_larger_than, frame_larger_than_size):
10513 Add declarations for new option variables.
10514
10515 * final.c (final_start_function): Check the frame size
10516 before emission and issue a Wframe-larger-than warning.
10517
10518 * opts.c (warn_frame_larger_than, frame_larger_than_size):
10519 Add definitions for new option variables.
10520 (common_handle_option): Handle new option OPT_Wframe_larger_than_.
10521
10522 * common.opt (Wframe-larger-than=): New option.
10523
82cc8ae1 105242008-02-20 Uros Bizjak <ubizjak@gmail.com>
10525
10526 * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
10527 (<sse>_div<mode>3): Ditto.
10528 (<sse>_vmdiv<mode>3): Ditto.
10529 (<sse>_vmsqrt<mode>2): Ditto.
10530 (*smax<mode>3): Ditto.
10531 (sse5_frcz<mode>2): Ditto.
10532 (sse5_vmfrcz<mode>2): Ditto. Use TARGET_SSE5 instead of TARGET_ROUND
10533 as insn constraint.
10534
c7f617c2 105352008-02-20 Richard Guenther <rguenther@suse.de>
10536
10537 PR middle-end/35265
10538 * builtins.c (validate_arg): If we want an INTEGER_TYPE,
10539 be happy with INTEGRAL_TYPE_P.
10540
a145256a 105412008-02-20 Richard Guenther <rguenther@suse.de>
10542
10543 * fold-const.c (split_tree): Associate floatig-point expressions
10544 if flag_associative_math is set.
10545
46ef5347 105462008-02-20 Richard Guenther <rguenther@suse.de>
10547
10548 * tree.h (fold_real_zero_addition_p): Declare.
10549 * fold-const.c (fold_real_zero_addition_p): Export.
10550 * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
10551 floating-point operations with zero and one.
10552
c898f165 105532008-02-20 Paolo Bonzini <bonzini@gnu.org>
10554
a55f1b4b 10555 * doc/install.texi: Correct references to CFLAGS, replacing them
10556 with BOOT_CFLAGS. Document flags used during bootstrap for
10557 target libraries.
c898f165 10558
2a466fea 105592008-02-20 Uros Bizjak <ubizjak@gmail.com>
10560
10561 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
10562 * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
10563 and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
10564 insn constraint.
10565 (smin<mode>3): Ditto from similar patterns.
10566 (smax<mode>3): Ditto.
10567 (*ieee_smin<mode>3): Ditto.
10568 (*ieee_smax<mode>3): Ditto.
10569 * config/i386/sse.md (sse): New mode attribute.
10570 (mov<mode>): Macroize expander from movv4sf and movv2df using
10571 SSEMODEF2P mode iterator.
10572 (<sse>_movnt<mode>): Ditto from similar patterns. Use
10573 SSE_VEC_FLOAT_MODE_P as insn constraint.
10574 (storent<mode>): Ditto.
10575 (storent<mode>): Macroize expander from storentsf and storentdf using
10576 MODEF mode iterator.
10577 (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
10578 mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
10579 (abs<mode>2): Ditto from similar patterns.
10580 (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
10581 (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
10582 (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
10583 (<sse>_vmsqrt<mode>2): Ditto.
10584 (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
10585 (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
10586 (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
10587 (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
10588 (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
10589 sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
10590 mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
10591 insn constraint.
10592 (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
10593 iterator and SSE_FLOAT_MODE_P as insn constraint.
10594 (<sse>_ucomi): Ditto from similar patterns.
10595 (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
10596 sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
10597 SSE_VEC_FLOAT_MODE_P as insn constraint.
10598 (vcond<mode>): Ditto from similar patterns.
10599 (and<mode>3, *and<mode>3): Ditto.
10600 (<sse>_nand<mode>3): Ditto.
10601 (ior<mode>3, *ior<mode>3): Ditto.
10602 (xor<mode>3, *xor<mode>3): Ditto.
10603 (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
10604 iterator and SSE_FLOAT_MODE_P as insn constraint.
10605 (*nand<mode>3): Ditto from similar patterns.
10606 (*ior<mode>3): Ditto.
10607 (*xor<mode>3): Ditto.
10608
8c85798c 106092008-02-20 Ira Rosen <irar@il.ibm.com>
10610
10611 * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
10612 vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
10613 vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
10614
3ed4a4a1 106152008-02-19 Jan Hubicka <jh@suse.cz>
10616
2d5652e4 10617 * predict.c (tree_bb_level_predictions): Remove variable next
10618 mistakely introduced by previous commit.
3ed4a4a1 10619
d704ea82 106202008-02-19 Jan Hubicka <jh@suse.cz>
10621
10622 * predict.c (predict_paths_leading_to): Rewrite.
10623 (predict_paths_for_bb): New.
10624 (tree_bb_level_predictions): Update call of predict_paths_leading_to.
10625
fbf9447e 106262008-02-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10627
10628 PR bootstrap/35218
10629 * Makefile.in (build_file_translate): New.
10630 (gcc-vers.texi): Use it for translating $(abs_srcdir).
10631 * config.build (build_file_translate): Set to `CMD //c' on MinGW.
10632 * configure.ac (build_file_translate): Substitute it.
10633 * configure: Regenerate.
10634
f82220c2 106352008-02-19 Jan Hubicka <jh@suse.cz>
10636
10637 PR rtl-optimization/34408
d704ea82 10638 * see.c (see_def_extension_not_merged): Copy subreg so we don't have
10639 invalid sharing.
f82220c2 10640
d4c3b5cd 106412008-02-19 Jan Hubicka <jh@suse.cz>
10642
10643 PR middle-end/28779
d704ea82 10644 * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
10645 call_expr.
d4c3b5cd 10646
1158320c 106472008-02-19 H.J. Lu <hongjiu.lu@intel.com>
10648
10649 PR Ada/35186
10650 * config/i386/i386-modes.def: Revert the last DI alignment
10651 change until Ada people can look into it.
10652
d06cb02d 106532008-02-19 Nick Clifton <nickc@redhat.com>
10654
10655 * opts.c (print_specific_help): Fix typo in --help text.
10656
beb96ec8 106572008-02-19 Jakub Jelinek <jakub@redhat.com>
10658
10659 PR target/35239
10660 * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
10661 32-bit inline asm without asm alternatives for host GCC < 3.0.
10662
971c637a 106632008-02-19 Richard Guenther <rguenther@suse.de>
10664
10665 PR tree-optimization/34989
10666 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
10667 Allow propagation to INDIRECT_REF if we can simplify only.
10668
23ce1cf6 106692008-02-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10670
10671 * c-common.c (warn_for_collisions_1): Use appropriate option when
10672 warning.
10673
86895a67 106742008-02-19 Nick Clifton <nickc@redhat.com>
10675
10676 PR other/31349
2d5652e4 10677 * opts.c (undocumented_msg): Leave blank unless checking is enabled.
86895a67 10678 (handle_options): Fix indentation.
10679 (print_filtered_help): If no language-specific options were
10680 displayed tell the user how to list all the options supported by
10681 the language's front-end.
10682 (print_specific_help): Fix indentation and remove duplicate line.
10683 (common_handle_option): Handle the -v option.
10684 For --help enable the display of undocumented options if the -v
10685 switch has been included on the command line.
10686 For --help= check for overlaps in the arguments between the option
10687 classes and the language names and issue a warning when they
10688 cannot be disambiguated.
10689 * c.opt (v): Pass on to the common option handler.
10690
34c7f568 106912008-02-19 Revital Eres <eres@il.ibm.com>
10692
10693 * modulo-sched.c (sms_schedule): Change dump message when
10694 create_ddg function fails.
10695 (try_scheduling_node_in_cycle): Rename row to cycle.
10696 (print_partial_schedule): Rename CYCLE to ROW.
10697
90bd1b58 106982008-02-19 Christian Bruel <christian.bruel@st.com>
2d5652e4 10699 Zdenek Dvorak <ook@ucw.cz>
10700
10701 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
10702
bd416d70 107032008-02-19 Uros Bizjak <ubizjak@gmail.com>
10704
10705 PR target/33555
10706 * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
10707 (*x86_movdicc_0_m1_se): Ditto.
10708
2a5abea1 107092008-02-19 Uros Bizjak <ubizjak@gmail.com>
10710
10711 * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
10712 (CMPtype): Define as __gcc_CMPtype.
10713 * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
10714 (CMPtype): Define as __gcc_CMPtype.
10715
a7779e75 107162008-02-19 Hans-Peter Nilsson <hp@axis.com>
10717
10718 Support valgrind 3.3 for --enable-checking=valgrind.
10719 * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
10720 here.
10721 [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
10722 [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
10723 [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
10724 * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
10725 Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
10726 VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
10727 VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
10728 respectively.
10729 * ggc-zone.c: Similar.
10730 * ggc-page.c: Similar.
10731
7addba43 107322008-02-19 Paul Brook <paul@codesourcery.com>
10733
10734 PR target/35071
10735 * config/arm/ieee754-df.S: Fix do_it typo.
10736 * config/arm/ieee754-sf.S: Fix do_it typo.
10737
4e06f6f8 107382008-02-18 H.J. Lu <hongjiu.lu@intel.com>
10739
10740 PR target/35189
10741 * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
10742 (OPTION_MASK_ISA_3DNOW_SET): Likewise.
10743 (OPTION_MASK_ISA_SSE_SET): Likewise.
10744 (OPTION_MASK_ISA_SSE2_SET): Likewise.
10745 (OPTION_MASK_ISA_SSE3_SET): Likewise.
10746 (OPTION_MASK_ISA_SSSE3_SET): Likewise.
10747 (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
10748 (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
10749 (OPTION_MASK_ISA_SSE4_SET): Likewise.
10750 (OPTION_MASK_ISA_SSE4A_SET): Likewise.
10751 (OPTION_MASK_ISA_SSE5_SET): Likewise.
10752 (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
10753 (OPTION_MASK_ISA_MMX_UNSET): Updated.
10754 (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
10755 (OPTION_MASK_ISA_SSE_UNSET): Likewise.
10756 (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
10757 (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
10758 (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
10759 (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
10760 (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
10761 (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
10762 (OPTION_MASK_ISA_SSE4): Removed.
10763 (ix86_handle_option): Turn on bits in ix86_isa_flags and
2f6e3388 10764 ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
4e06f6f8 10765 (override_options): Don't turn on implied SSE/MMX bits in
10766 ix86_isa_flags.
10767
dbbcdcd5 107682008-02-18 H.J. Lu <hongjiu.lu@intel.com>
10769
10770 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
10771 32bit host.
10772
beebc64a 107732008-02-18 Joey Ye <joey.ye@intel.com>
10774
10775 PR middle-end/34921
10776 * tree-nested.c (insert_field_into_struct): Set type alignment
10777 to field alignment if the former is less than the latter.
10778
8d705311 107792008-02-18 Jakub Jelinek <jakub@redhat.com>
10780
10781 * BASE-VER: Set to 4.4.0.
10782
7a5a9c54 107832008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10784
10785 * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
10786 * doc/cfg.texi: Likewise.
10787 * doc/extend.texi: Likewise.
10788 * doc/gty.texi: Likewise.
10789 * doc/invoke.texi: Likewise.
10790 * doc/loop.texi: Likewise.
10791 * doc/md.texi: Likewise.
10792 * doc/passes.texi: Likewise.
10793 * doc/rtl.texi: Likewise.
10794 * doc/sourcebuild.texi: Likewise.
10795 * doc/tm.texi: Likewise.
10796 * doc/tree-ssa.texi: Likewise.
10797
89cd38e0 107982008-02-17 Richard Guenther <rguenther@suse.de>
10799
10800 PR middle-end/35227
10801 * tree-complex.c (init_parameter_lattice_values): Handle parameters
10802 without default definition.
10803
d149d356 108042008-02-17 Richard Guenther <rguenther@suse.de>
10805
10806 PR tree-optimization/35231
10807 * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
10808 if A | B != 1.
10809
a3c40304 108102008-02-17 Uros Bizjak <ubizjak@gmail.com>
10811
10812 Revert:
a3c40304 10813 2008-02-15 Uros Bizjak <ubizjak@gmail.com>
10814 * config/i386/sfp-machine.h (CMPtype): Define as typedef using
10815 libgcc_cmp_return mode.
10816
a2e4e045 108172008-02-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10818
10819 PR c/28368
10820 * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
10821
8e2e6800 108222008-02-16 Ralf Corsepius <ralf.corsepius@rtems.org>
10823
10824 * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
10825 multilibs.
10826
a81d4cba 108272008-02-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10828
10829 * doc/c-tree.texi: Use `@.' where appropriate.
10830 * doc/extend.texi: Likewise.
10831 * doc/install.texi: Likewise.
10832 * doc/invoke.texi: Likewise.
10833 * doc/loop.texi: Likewise.
10834 * doc/makefile.texi: Likewise.
10835 * doc/md.texi: Likewise.
10836 * doc/passes.texi: Likewise.
10837 * doc/standards.texi: Likewise.
10838 * doc/tm.texi: Likewise.
10839
d74e6897 108402008-02-15 Jakub Jelinek <jakub@redhat.com>
10841
10842 PR middle-end/35196
10843 * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
10844 in entry_bb.
10845 (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
10846 rather than in entry_bb.
10847
c12b3bc6 108482008-02-15 Uros Bizjak <ubizjak@gmail.com>
10849
10850 * config/i386/sfp-machine.h (CMPtype): Define as typedef using
10851 libgcc_cmp_return mode.
10852
a5268989 108532008-02-15 Jakub Jelinek <jakub@redhat.com>
10854
10855 PR middle-end/35130
10856 * tree-nested.c (convert_call_expr): Put FRAME.* vars into
10857 OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
10858
b75537fb 108592008-02-15 Richard Guenther <rguenther@suse.de>
c12b3bc6 10860 Zdenek Dvorak <ook@ucw.cz>
b75537fb 10861
10862 PR tree-optimization/35164
10863 * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
10864 * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
10865 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
10866 Only propagate addresses which do not have abnormal SSA_NAMEs
10867 in their operands.
10868
86891459 108692008-02-15 Joseph Myers <joseph@codesourcery.com>
10870
10871 PR target/35088
10872 * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
10873
a4cb010f 108742008-02-15 Jan Hubicka <jh@suse.cz>
10875
10876 PR middle-end/35149
10877 * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
10878
b3f75873 108792008-02-15 Uros Bizjak <ubizjak@gmail.com>
10880
10881 PR middle-end/34621
10882 * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
10883 when calculating alignment_pad.
10884
46de89e7 108852008-02-15 Uros Bizjak <ubizjak@gmail.com>
10886
10887 * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
10888 (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
10889 * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
10890 and STACK_BOUNDARY define.
10891
b8989bc3 108922008-02-14 Danny Smith <dannysmith@users.sourceforge.net>
10893
10894 PR preprocessor/35061
10895 * c-pragma.c (handle_pragma_pop_macro): Check that
10896 pushed_macro_table has been allocated.
10897
0e41e637 108982008-02-14 Eric Botcazou <ebotcazou@adacore.com>
10899
10900 PR middle-end/35136
10901 * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
10902 (force_gimple_operand): Likewise.
10903 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
10904 for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
10905 Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
10906 (find_interesting_uses_address): Check addressability and alignment
10907 of the base expression only after substituting bases of IVs into it.
10908
7e507322 109092008-02-14 Michael Matz <matz@suse.de>
10910
10911 PR target/34930
10912 * function.c (instantiate_virtual_regs_in_insn): Reload address
10913 before falling back to reloading the whole operand.
10914
7338c728 109152008-02-14 Andreas Krebbel <krebbel1@de.ibm.com>
10916
10917 * config/s390/s390.c (s390_mainpool_start): Emit the pool
10918 before the first section switch note.
10919
83d10720 109202008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10921
49a55c95 10922 * doc/bugreport.texi: Update copyright years.
10923 * doc/c-tree.texi: Likewise.
10924 * doc/cfg.texi: Likewise.
10925 * doc/cpp.texi: Likewise.
10926 * doc/cppinternals.texi: Likewise.
10927 * doc/fragments.texi: Likewise.
10928 * doc/frontends.texi: Likewise.
10929 * doc/gcc.texi: Likewise.
10930 * doc/gty.texi: Likewise.
10931 * doc/hostconfig.texi: Likewise.
10932 * doc/implement-c.texi: Likewise.
10933 * doc/libgcc.texi: Likewise.
10934 * doc/loop.texi: Likewise.
10935 * doc/makefile.texi: Likewise.
10936 * doc/options.texi: Likewise.
10937 * doc/passes.texi: Likewise.
10938 * doc/rtl.texi: Likewise.
10939 * doc/sourcebuild.texi: Likewise.
10940 * doc/standards.texi: Likewise.
10941 * doc/tree-ssa.texi: Likewise.
10942 * doc/trouble.texi: Likewise.
10943
83d10720 10944 * doc/extend.texi: Use @: or add comma where appropriate.
10945 * doc/invoke.texi: Likewise.
10946 * doc/tm.texi: Likewise.
10947
2a4fe7b7 109482008-02-14 Alan Modra <amodra@bigpond.net.au>
10949
10950 PR target/34393
10951 * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
10952 to a reg.
10953
4ebee9e4 109542008-02-14 Jesper Nilsson <jesper.nilsson@axis.com>
10955
10956 * doc/md.texi (clz, ctz): Add reference.
10957 * doc/rtl.texi (clz, ctz): Likewise.
10958
a1a0674f 109592008-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10960
10961 PR other/35148
10962 * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
10963 srcdir.
10964
86428198 109652008-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
10966
10967 * config/s390/s390.c (struct constant_pool): New field
10968 emit_pool_after added.
10969 (s390_mainpool_start): Set the emit_pool_after flag according
10970 to the section switch notes.
10971 (s390_mainpool_finish): Consider emit_pool_after when emitting
10972 the literal pool at the end of the function.
10973 (s390_chunkify_start): Force literal pool splits at section
10974 switch notes.
10975
86079287 109762008-02-13 Michael Matz <matz@suse.de>
10977
10978 PR debug/35065
10979 * var-tracking.c (clobber_variable_part): Correctly traverse the
10980 list.
10981
bfce1236 109822008-02-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10983
10984 PR 29673
10985 * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
10986 Add -fdump-ipa-inline.
10987 * tree-dump.c (dump_files): Remove tree-inlined dump.
10988 * tree-pass.h (tree_dump_index): Remove TDI_inlined.
10989
e3e3ee4b 109902008-02-12 Richard Guenther <rguenther@suse.de>
10991
10992 PR tree-optimization/35171
10993 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
10994 default defs.
10995
d06ed0b1 109962008-02-12 Richard Guenther <rguenther@suse.de>
10997
10998 PR middle-end/35163
10999 * fold-const.c (fold_widened_comparison): Use get_unwidened in
11000 value-preserving mode. Disallow final truncation.
11001
06b0fbf1 110022008-02-12 Eric Botcazou <ebotcazou@adacore.com>
11003
11004 PR middle-end/35136
11005 * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
11006 code from here to...
11007 (force_gimple_operand): ...here.
11008
3f982e5a 110092008-02-12 Jakub Jelinek <jakub@redhat.com>
11010
194bd83c 11011 PR c++/35144
11012 * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
11013 non-compatible pointers.
11014 (generate_element_copy): If SRC and DST are RECORD_TYPEs with
11015 different FIELD_DECLs, try harder by comparing field offsets, sizes
11016 and types.
11017
3f982e5a 11018 PR inline-asm/35160
11019 * function.c (match_asm_constraints_1): Don't replace the same input
11020 multiple times.
11021
637dc5b6 110222008-02-12 Anatoly Sokolov <aesok@post.ru>
11023
11024 * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
11025 * config/avr/avr.c (expand_prologue): Save RAMPZ register.
11026 (expand_epilogue): Restore RAMPZ register.
11027 * config/avr/avr.md (RAMPZ_ADDR): New constant.
11028
41992f82 110292008-02-11 Kai Tietz <kai.tietz@onevision.com>
11030
6144731c 11031 * config/i386/cygwin.asm: (__alloca): Correct calling
41992f82 11032 convention and alignment.
11033 (__chkstk): Force 8 byte stack alignment.
11034
3de988b5 110352008-02-11 Uros Bizjak <ubizjak@gmail.com>
efd43187 11036 Richard Guenther <rguenther@suse.de>
3de988b5 11037
11038 PR tree-optimization/33992
11039 * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
11040 the zero we compare against.
11041
6144731c 110422008-02-10 Danny Smith <dannysmith@users.sourceforge.net>
11043
11044 PR libfortran/35063
11045 * gthr-win32.h (__gthread_mutex_destroy_function): New function
11046 to CloseHandle after unlocking to prevent accumulation of handle
11047 count.
11048
3e478718 110492008-02-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11050
11051 PR middle_end/34150
11052 * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
11053 pic_label_operand source. Similarly, add a REG_LABEL_OPERAND note
11054 and update LABEL_NUSES during and after reload.
11055
76d5115a 110562008-02-08 Steven Bosscher <stevenb.gcc@gmail.com>
11057
11058 PR middle-end/34627
ae731b4f 11059 * combine.c (simplify_if_then_else): Make sure the comparison is
76d5115a 11060 against const0_rtx when simplifying to (abs x) or (neg (abs X)).
11061
e506f1d4 110622008-02-08 Richard Sandiford <rsandifo@nildram.co.uk>
11063
11064 PR bootstrap/35051
11065 * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
11066 (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
11067 * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
11068 (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
11069 * tree.h (get_type_static_bounds): Likewise.
11070
bfbab40c 110712008-02-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11072
11073 * doc/invoke.texi (Option Summary, C++ Dialect Options)
11074 (Objective-C and Objective-C++ Dialect Options, Warning Options):
11075 Make -Wfoo language annotations match what the compiler outputs.
11076
c7386c28 110772008-02-08 Sa Liu <saliu@de.ibm.com>
11078
11079 * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
11080 intrinsics spu_convts, spu_convtu, spu_convtf.
c7386c28 11081
9bc2537d 110822008-02-08 Hans-Peter Nilsson <hp@axis.com>
11083
11084 * doc/extend.texi (Function Attributes) <noinline>: Mention
11085 asm ("") as method to keep calls.
11086
30b0f428 110872008-02-07 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
11088
11089 PR other/32754
11090 * doc/options.texi (Options): Replace references to opts.sh with
11091 optc-gen.awk.
11092 * opts-common.c: Likewise.
11093 * optc-gen.awk: Likewise.
11094
8364148d 110952008-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
11096
11097 * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
11098
110992008-02-07 Richard Henderson <rth@redhat.com>
e8e27646 11100
11101 PR rtl-opt/33410
11102 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
11103 EXPR_LIST for the REG_EQUAL instead of a comparison with a
11104 funny mode.
11105
4251ed76 111062008-02-07 Uros Bizjak <ubizjak@gmail.com>
11107
11108 PR tree-optimization/35085
11109 * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
11110 for operand entry oe2 in addition to operand entry oe3 in order to
11111 expose more opportunities for vectorizer sum reduction.
11112
6ca01c3b 111132008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11114
11115 PR other/35107
11116 * Makefile.in (LIBS): Remove $(GMPLIBS).
11117 (cc1-dummy, cc1): Add $(GMPLIBS).
11118
1dbb4355 111192008-02-06 Jan Hubicka <jh@suse.cz>
11120
5f704018 11121 PR target/23322
1dbb4355 11122 * i386.md (moddf_integer): Do not produce partial memory stalls for
11123 targets where it hurts.
11124
4c8054f4 111252008-02-06 Uros Bizjak <ubizjak@gmail.com>
11126
11127 PR target/35083
11128 * optabs.c (expand_float): Do not check for decimal modes when
11129 expanding unsigned integer through signed conversion.
11130
48f4cf85 111312008-02-06 Nick Clifton <nickc@redhat.com>
11132
11133 * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
11134 inside the clobber with a match_operand and duplicated operand
11135 number in the constraint.
11136 (ineqbranchsi): Delete redundant comment.
11137
3b7a17d9 111382008-02-06 Ralf Corsepius <ralf.corsepius@rtems.org>
11139
f04beaef 11140 * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
11141 builtin_define ("__USE_INIT_FINI__").
11142 * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
11143 -msx multilibs.
3b7a17d9 11144 * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
11145
b518f2ae 111462008-02-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11147
11148 PR documentation/30330
11149 * doc/invoke.texi (C++ Dialect Options)
11150 (Objective-C and Objective-C++ Dialect Options, Warning Options):
11151 For each warning option -Wfoo that allows -Wno-foo, ensure both
11152 -Wfoo and -Wno-foo are listed in the option index. Fix index
11153 entry of -Wswitch-default, index -Wnormalized= including the
11154 `=', and -Wlarger-than-@var{len} including @var{len}.
11155
840638ec 111562008-02-05 Uros Bizjak <ubizjak@gmail.com>
11157
11158 * config/i386/i386.md (floatunssisf2): Use
11159 ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
11160 (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
11161 Macroize expander using MODEF mode iterator.
11162
09885372 111632008-02-05 Diego Novillo <dnovillo@google.com>
11164
11165 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
11166
11167 PR 33738
840638ec 11168 * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
09885372 11169
ceb21d85 111702008-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11171
11172 PR other/35070
11173 * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
11174
df3ba0fe 111752008-02-05 H.J. Lu <hongjiu.lu@intel.com>
11176
11177 PR target/35084
11178 * config/i386/i386.c (ix86_function_sseregparm): Add an arg
11179 to indicate if a message should be generated.
11180 (init_cumulative_args): Updated.
11181 (function_value_32): Likewise.
11182
79f7a0b8 111832008-02-05 Joseph Myers <joseph@codesourcery.com>
11184
11185 * doc/include/texinfo.tex: Update to version 2008-02-04.16.
11186
470195a4 111872008-02-05 Uros Bizjak <ubizjak@gmail.com>
11188
11189 PR target/35083
11190 * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
11191 Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
11192
82ec0d8f 111932008-02-04 Diego Novillo <dnovillo@google.com>
11194
11195 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
11196
11197 PR 33738
11198 * tree-vrp.c (vrp_evaluate_conditional): With
11199 -Wtype-limits, emit a warning when comparing against a
11200 constant outside the natural range of OP0's type.
11201
bbf511cd 112022008-02-04 Richard Guenther <rguenther@suse.de>
11203
11204 PR middle-end/33631
11205 * expr.c (count_type_elements): Give for unions instead of
11206 guessing.
11207
5bad702f 112082008-02-04 Richard Guenther <rguenther@suse.de>
11209
11210 PR middle-end/35043
11211 * gimplify.c (gimplify_init_ctor_eval): Convert array indices
11212 to TYPE_DOMAINs base type instead of using bitsizetype here.
11213
930e8175 112142008-02-03 Jason Merrill <jason@redhat.com>
11215
11216 * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
11217
c55906eb 112182008-02-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11219
11220 PR other/29972
11221 * doc/invoke.texi (C++ Dialect Options, Optimize Options)
11222 (HPPA Options, i386 and x86-64 Options, IA-64 Options)
11223 (RS/6000 and PowerPC Options): Fix typos and markup.
11224 * doc/passes.texi (Tree-SSA passes): Likewise.
11225
ce53880e 112262008-02-02 Michael Matz <matz@suse.de>
11227
11228 PR target/35045
11229 * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
11230 from record_last_reg_set_info.
11231 (record_last_reg_set_info): Take an RTX argument, iterate over all
11232 constituent hardregs.
11233 (record_last_set_info, record_opr_changes): Change calls to
11234 new signature or to record_last_reg_set_info_regno.
11235
957fb083 112362008-02-02 Gerald Pfeifer <gerald@pfeifer.com>
11237
11238 * doc/extend.texi (X86 Built-in Functions): Fix grammar.
11239
dec9a6b8 112402008-02-01 Hans-Peter Nilsson <hp@axis.com>
11241
11242 PR rtl-optimization/34773
11243 * reg-notes.def (EQUAL): Mention significance of combination of
11244 REG_EQUAL and REG_RETVAL.
11245 * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
11246 insn that has a REG_RETVAL.
11247
6ccd4361 112482008-02-01 Roger Sayle <roger@eyesopen.com>
11249
11250 PR bootstrap/33781
11251 * configure.ac (--enable-fixed-point): Disable unless explicitly
11252 requested on IRIX.
11253 * configure: Regenerate.
11254
39e88a5d 112552008-02-01 Richard Guenther <rguenther@suse.de>
11256
11257 PR other/35042
11258 * invoke.texi (-finline-limit): Remove no longer true parts
11259 of the documentation. Note that there is no default value.
11260
2f5beddc 112612008-02-01 Andrew Pinski <pinskia@gmail.com>
11262 Mark Mitchell <mark@codesourcery.com>
11263 Ben Elliston <bje@au.ibm.com>
11264
11265 PR c/29326
11266 * doc/extend.texi (Other Builtins): Document.
11267
d40533b6 112682008-01-31 Tom Browder <tom.browder@gmail.com>
11269
11270 * doc/c-tree.texi (Types): Fix grammar.
11271 (Expression trees): Ditto.
11272 * doc/passes.texi (Tree-SSA passes): Ditto.
11273
11274 * doc/configterms.texi (Configure Terms): Fix typo.
11275 * doc/cpp.texi (Common Predefined Macros): Ditto.
11276 * doc/md.texi (Machine Constraints): Ditto.
11277
11278 * doc/makefile.texi (Makefile): Add comma.
11279
38cd7009 112802008-01-31 Tom Browder <tom.browder@gmail.com>
11281 Gerald Pfeifer <gerald@pfeifer.com>
11282
11283 * doc/sourcebuild.texi (Front End): Remove references to CVS
11284 and CVSROOT/modules.
11285 (Texinfo Manuals): Replace reference to CVS by one to SVN.
11286 (Back End): Remove reference to CVS.
11287
0d399d52 112882008-01-31 Richard Sandiford <rsandifo@nildram.co.uk>
11289
11290 PR target/34900
11291 * config/mips/mips.c (gen_load_const_gp): New function, taking a
11292 comment from...
11293 (mips16_gp_pseudo_reg): ...here.
11294 * config/mips/mips.md (load_const_gp): Replace with...
11295 (load_const_gp_<mode>): ...this :P-based insn.
11296
c75a5ac5 112972008-01-31 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
11298
11299 * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
11300 options. Minor fixes.
11301 (-std): Move reference to standards closer to where language
11302 standards are first mentioned.
11303
53716799 113042008-01-31 Richard Sandiford <rsandifo@nildram.co.uk>
11305
11306 PR rtl-optimization/34995
11307 * reload.c (alternative_allows_const_pool_ref): Take an rtx
11308 parameter and return a bool. If the rtx parameter is nonnull,
11309 check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
11310 (find_reloads): Update call accordingly. Pass the new operand
11311 if it needed no address reloads, otherwise pass null.
11312
e14d689c 113132008-01-30 Richard Henderson <rth@redhat.com>
11314
11315 PR c/34993
11316 * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
11317 for unbounded arrays.
11318
9424a8b9 113192008-01-30 Silvius Rus <rus@google.com>
11320
11321 * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
11322
89beb200 113232008-01-30 Jan Hubicka <jh@suse.cz>
11324
11325 PR target/34982
11326 * i386.c (init_cumulative_args): Use real function declaration when
11327 calling locally.
11328
9a9cbcd2 113292008-01-30 Richard Sandiford <rsandifo@nildram.co.uk>
11330
11331 PR rtl-optimization/34998
11332 * global.c (build_insn_chain): Treat non-subreg_lowpart
11333 SUBREGs of pseudos as clobbering all the words covered by the
11334 SUBREG, not just all the bytes.
11335 * ra-conflict.c (clear_reg_in_live): Likewise. Take the
11336 original df_ref rather than an extract parameter.
11337 (global_conflicts): Update call accordingly.
11338
365b8932 113392008-01-30 Andreas Krebbel <krebbel1@de.ibm.com>
11340
11341 * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
11342 the overflow check to make it easier to read.
11343 (__fixtfdi): Change the type of the ll member in union
11344 long_double to UDItype_x.
11345
c55e2943 113462008-01-30 Jakub Jelinek <jakub@redhat.com>
11347
117ef3d7 11348 PR middle-end/34969
11349 * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
11350 * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
11351 * tree-inline.c (fold_marked_statements): Call
11352 cgraph_update_edges_for_call_stmt if folding a call statement.
11353 * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
11354 debug_generic_stmt calls, reset it back afterwards.
11355
c55e2943 11356 PR c/35017
11357 * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
11358 static decls.
11359 * c-typeck.c (build_external_ref): Don't pedwarn about
11360 static vars in current function's scope.
11361
5bcb8578 113622008-01-29 Joseph Myers <joseph@codesourcery.com>
11363
11364 * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
11365
94023798 113662008-01-29 Bernhard Fischer <aldot@gcc.gnu.org>
11367
11368 PR c/35002
11369 * ipa-struct-reorg.c: Fix spelling.
11370 * params.def: Ditto.
11371
ed6049c8 113722008-01-29 Richard Guenther <rguenther@suse.de>
11373
11374 PR middle-end/35006
11375 * tree-inline.h (struct copy_body_data): Add remapping_type_depth
11376 field.
11377 * tree-inline.c (remap_type): Increment remapping_type_depth
11378 around remapping types.
11379 (copy_body_r): Only add referenced variables if they are referenced
11380 from code, not types.
11381
830a6615 113822008-01-29 Douglas Gregor <doug.gregor@gmail.com>
11383
11384 PR c++/34055
11385 PR c++/34103
11386 PR c++/34219
11387 PR c++/34606
11388 PR c++/34753
11389 PR c++/34754
11390 PR c++/34755
11391 PR c++/34919
11392 PR c++/34961
11393 * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
11394 qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
11395
48bffadc 113962008-01-28 Andy Hutchinson <hutchinsonandy@netscape.net>
11397
11398 PR target/34412
11399 * config/avr/avr.c (expand_prologue): Use correct QI mode frame
11400 pointer for tiny stack.
11401
260cf6df 114022008-01-28 Bernhard Fischer <aldot@gcc.gnu.org>
11403
11404 * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
11405
345ff830 114062008-01-28 Bernhard Fischer <aldot@gcc.gnu.org>
11407
11408 * config/vx-common.h: Fix typo in comment.
11409
c5f257af 114102008-01-28 Ian Lance Taylor <iant@google.com>
11411
11412 PR c++/34862
11413 PR c++/33407
11414 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
11415 coalesce pointers if they have different DECL_NO_TBAA_P values.
11416 * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
11417 between variables with different DECL_NO_TBAA_P values.
11418
c64b5439 114192008-01-28 Nathan Froyd <froydnj@codesourcery.com>
11420
11421 PR 31535
11422 * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
11423 are not legitimate small data references on SPE targets.
11424
bcedfa23 114252008-01-28 David Daney <ddaney@avtrex.com>
11426
11427 * doc/install.texi (mips-*-*): Recommend binutils 2.18.
11428
fe30b803 114292008-01-28 David Daney <ddaney@avtrex.com>
11430
11431 * doc/install.texi (--disable-libgcj-bc): Reword documentation.
11432
453829c7 114332008-01-27 Joseph Myers <joseph@codesourcery.com>
11434
11435 * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
11436 m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
11437 *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
11438 *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
11439 hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
11440 i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
11441 i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
11442 vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
11443
511934f9 114442008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
11445
11446 * basic-block.h (condjump_equiv_p): Fix comment.
11447
ba810638 114482008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
11449
11450 * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
11451 print_generic_stmt_indented): Fix comment.
11452
e214b635 114532008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
11454
11455 * configure.ac (__stack_chk_fail): Add detecion for availability
11456 of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
11457 * configure: Regenerate.
11458
b32b308d 114592008-01-26 Maxim Kuvyrkov <maxim@codesourcery.com>
11460
11461 PR middle-end/34688
11462 * final.c (output_addr_const): Handle TRUNCATE.
11463
3c2818b0 114642008-01-26 Zdenek Dvorak <ook@ucw.cz>
11465
11466 PR target/34711
11467 * tree-ssa-loop-ivopts.c (comp_cost): New type.
11468 (zero_cost, infinite_cost): New constants.
11469 (struct cost_pair): Change type of cost to comp_cost.
11470 (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
11471 (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
11472 New functions.
11473 (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
11474 split_address_cost, ptr_difference_cost, difference_cost,
11475 get_computation_cost_at, get_computation_cost,
11476 determine_use_iv_cost_generic, determine_use_iv_cost_address,
11477 determine_use_iv_cost_condition, determine_use_iv_costs,
11478 cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
11479 iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
11480 iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
11481 Change type of cost to comp_cost.
11482 (determine_iv_cost): Increase cost of non-original ivs, instead
11483 of decreasing the cost of original ones.
11484 (get_address_cost): Indicate the complexity of the addressing mode
11485 in comp_cost.
11486 (try_add_cand_for): Prefer using ivs not specific to some object.
11487 * tree-flow.h (force_expr_to_var_cost): Declaration removed.
11488
b32b308d 114892008-01-26 Peter Bergner <bergner@vnet.ibm.com>
bc5e6ea1 11490 Janis Johnson <janis187@us.ibm.com>
11491
11492 PR target/34814
11493 * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
11494 (TARGET_INSTANTIATE_DECLS): Likewise.
11495 * target.h (expand_to_rtl_hook): New target hook.
11496 (instantiate_decls): Likewise.
11497 * function.c (instantiate_decl): Make non-static. Rename to...
11498 (instantiate_decl_rtl): ... this.
11499 (instantiate_expr): Use instantiate_decl_rtl.
11500 (instantiate_decls_1): Likewise.
11501 (instantiate_decls): Likewise.
11502 (instantiate_virtual_regs: Call new instantiate_decls taget hook.
11503 * function.h (instantiate_decl_rtl): Add prototype.
11504 * cfgexpand.c (target.h): New include.
11505 (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
11506 * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
11507 (TARGET_INSTANTIATE_DECLS): Likewise.
11508 (TARGET_INITIALIZER): New target hooks added.
11509 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
11510 New prototype.
11511 * config/rs6000/rs6000.c (tree-flow.h): New include.
11512 (machine_function): Add sdmode_stack_slot field.
11513 (rs6000_alloc_sdmode_stack_slot): New function.
11514 (rs6000_instantiate_decls): Likewise.
11515 (rs6000_secondary_memory_needed_rtx): Likewise.
11516 (rs6000_check_sdmode): Likewise.
11517 (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
11518 (TARGET_INSTANTIATE_DECLS): Likewise.
11519 (rs6000_hard_regno_mode_ok): Allow SDmode.
11520 (num_insns_constant): Likewise. Handle _Decimal32 constants.
11521 (rs6000_emit_move): Handle SDmode.
11522 (function_arg_advance): Likewise.
11523 (function_arg): Likewise.
11524 (rs6000_gimplify_va_arg): Likewise. Add special handling of
11525 SDmode var args for 32-bit compiles.
11526 (rs6000_secondary_reload_class): Handle SDmode.
11527 (rs6000_output_function_epilogue): Likewise.
11528 (rs6000_function_value): Simplify if statement.
11529 (rs6000_libcall_value): Likewise.
11530 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
11531 (SECONDARY_MEMORY_NEEDED_RTX): Add define.
11532 * config/rs6000/dfp.md (movsd): New define_expand and splitter.
11533 (movsd_hardfloat): New define_insn.
11534 (movsd_softfloat): Likewise.
11535 (movsd_store): Likewise.
11536 (movsd_load): Likewise.
11537 (extendsddd2): Likewise.
11538 (extendsdtd2): Likewise.
11539 (truncddsd2): Likewise.
11540 (movdd_hardfloat64): Fixup comment.
11541 (UNSPEC_MOVSD_LOAD): New constant.
11542 (UNSPEC_MOVSD_STORE): Likewise.
11543
37aea014 115442008-01-26 Jakub Jelinek <jakub@redhat.com>
11545
11546 PR c++/34965
11547 * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
11548 TRUTH_XOR_EXPR.
11549 (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
11550 (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
11551 (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
11552 and TRUTH_XOR_EXPR.
11553
0cc77516 115542008-01-26 David Edelsohn <edelsohn@gnu.org>
11555
11556 PR target/34794
11557 * config.gcc: Separate AIX 5.3 from AIX 6.1.
11558 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
11559 __LONGDOUBLE128 too.
11560 * config/rs6000/aix61.h: New file.
11561
e03d813f 115622008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
11563
11564 PR rtl-optimization/34959
11565 * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
11566 popcount and parity rtxes the same mode as their operand.
11567 Truncate or extend the result to the return value's mode
11568 if necessary.
11569
5eec32fe 115702008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
11571
11572 PR target/34981
11573 * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
11574 * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
11575 to GOT_VERSION_REGNUM.
11576 (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
11577 (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
11578 * config/mips/mips.c (mips_emit_call_insn): New function.
11579 (mips_call_tls_get_addr): Call mips_expand_call directly.
11580 (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
11581 emit_call_insn.
11582 (mips16_build_call_stub): Likewise. Return the call insn or null.
11583 (mips_expand_call): Update the call to mips16_build_call_stub
11584 accordingly and a remove redundant condition. Assert that MIPS16
11585 stubs do not use lazy binding. Use mips_emit_call_insn and return
11586 the call insn.
11587 (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
11588 TARGET_USE_GOT.
11589 (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
11590 (mips_avoid_hazard): Remove hazard_set handling.
11591 * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
11592 (UNSPEC_RESTORE_GP): ...this.
11593 (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
11594 (FAKE_CALL_REGNO): Rename to...
11595 (GOT_VERSION_REGNUM): ...this.
11596 (type): Add "ghost" value. Add an associated insn reservation.
11597 (hazard_set): Remove.
11598 (exception_receiver): Rename to...
11599 (restore_gp): ...this and update the unspec identifier accordingly.
11600 (exception_receiver, nonlocal_got_receiver): New expanders.
11601 (load_call<mode>): Use GOT_VERSION_REGNUM. Don't set
11602 FAKE_CALL_REGNO. Remove hazard_set attribute.
11603 (set_got_version, update_got_version): New patterns.
11604
26b142a4 116052008-01-26 Danny Smith <dannysmith@users.sourceforge.net>
11606
11607 PR target/34970
11608 * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
11609
74a4b47f 116102008-01-25 Joseph Myers <joseph@codesourcery.com>
11611
11612 PR other/31955
11613 * doc/install.texi2html: Generate gcc-vers.texi.
11614
2cc20bba 116152008-01-25 DJ Delorie <dj@redhat.com>
11616
11617 * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
11618
99c77e32 116192008-01-25 Joseph Myers <joseph@codesourcery.com>
11620
11621 * config/c4x: Remove directory.
11622 * config.gcc (crx-*, mt-*): Mark obsolete.
11623 (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
11624 h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
11625 sh-*-rtemscoff*): Remove cases.
11626 * defaults.h (C4X_FLOAT_FORMAT): Remove.
11627 * real.c (encode_c4x_single, decode_c4x_single,
11628 encode_c4x_extended, decode_c4x_extended, c4x_single_format,
11629 c4x_extended_format): Remove.
11630 * real.h (c4x_single_format, c4x_extended_format): Remove.
11631 * doc/extend.texi (interrupt, naked): Remove mention of attributes
11632 on C4x.
11633 (Pragmas): Remove comment about c4x pragmas.
11634 * doc/install.texi (c4x): Remove target-specific instructions.
11635 * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
11636 * doc/md.texi (Machine Constraints): Remove C4x documentation.
11637 * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
11638 refer to C4x source files as examples.
11639 (C4X_FLOAT_FORMAT): Remove documentation.
11640
ced0033c 116412008-01-25 Bernd Schmidt <bernd.schmidt@analog.com>
11642
11643 * config/bfin/bfin.c (override_options): Reorder tests so that
11644 flag_pic gets enabled for -msep-data.
11645
5c9c131f 116462008-01-25 Richard Guenther <rguenther@suse.de>
11647
11648 PR middle-end/32244
11649 * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
11650 to its bitfield precision if required.
11651
b43fc0dc 116522008-01-25 Jakub Jelinek <jakub@redhat.com>
11653
11654 PR middle-end/33880
11655 * tree-nested.c (walk_omp_for): New function.
11656 (convert_nonlocal_reference, convert_local_reference): Call
11657 walk_omp_for on OMP_FOR.
11658 (convert_call_expr): Call walk_body on OMP_FOR's
11659 OMP_FOR_PRE_INIT_BODY.
11660
8090c12d 116612008-01-25 Richard Guenther <rguenther@suse.de>
11662
11663 PR tree-optimization/34966
11664 * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
11665 default defs and PHI_NODEs we have to insert after the
11666 defining statement.
11667
bcf954af 116682008-01-24 Nick Clifton <nickc@redhat.com>
11669
11670 * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
11671 Provide a default definition.
11672 (LIBGCC2_UNITS_PER_WORD): Likewise.
11673
11674 * config/stormy16/stormy16.c: Include df.h for the prototype
11675 for df_regs_ever_live_p.
11676 (xstormy16_expand_builtin_va_start): Convert the stack offset
11677 into a component_ref and then use POINTER_PLUS_EXPR to add it
11678 to the incoming_virtual_args_rtx.
11679 (xstormy16_gimplify_va_arg_expr): Rename to
11680 xstormy16_gimplify_va_arg_expr.
11681 Use POINTER_PLUS_EXPR when performing pointer arithmetic.
11682 (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
11683 xstormy16_gimplify_va_arg_expr.
11684 Fix up some formatting issues.
11685
11686 * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
11687 Move to predicates.md.
11688 (xs_hi_general_operand): Likewise.
11689 (xs_hi_nonmemory_operand): Likewise.
11690 * config/stormy16/predicates.md:
11691 (xstormy16_carry_plus_operand): New predicate.
11692 (xs_hi_general_operand): New predicate.
11693 (xs_hi_nonmemory_operand): New predicate.
11694 * config/stormy16/stormy16-protos.h:
11695 (xstormy16_carry_plus_operand): Delete prototype.
11696 (xs_hi_general_operand): Likewise.
11697 (xs_hi_nonmemory_operand): Likewise.
11698
11699 * config/storm16/stormy16.md (addhi3): Remove earlyclobber
11700 modifiers as they are no longer needed and they can trigger
11701 reload spill failures.
11702
11703 * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
11704 with a match_operand in order to help reload.
11705
11706 * config/storm16/stormy16.md (movhi_internal): Replace 'r'
11707 constraint with 'e' for the 8th alternative as this version of
11708 the mov.w instruction only accepts the lower 8 registers.
11709
72412d4b 117102008-01-25 Uros Bizjak <ubizjak@gmail.com>
11711
11712 PR target/34856
11713 * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
11714 Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
11715 vector elements.
11716
b22f2ff4 117172008-01-25 Jakub Jelinek <jakub@redhat.com>
11718
11719 PR middle-end/33333
11720 * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
11721
009b0c6d 117222008-01-25 Golovanevsky Olga <olga@il.ibm.com>
11723
11724 * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
11725 New functions.
11726 (remove_structure): Update allocations list before removing structure.
11727
864a494e 117282008-01-25 Golovanevsky Olga <olga@il.ibm.com>
11729
11730 * ipa-struct-reorg.c (is_safe_cond_expr,
11731 create_new_stmts_for_cond_expr): Use integer_zerop function,
11732 that recognize not only zero-pointer, but zero-integer too.
11733
98bdcbcf 117342008-01-25 Ben Elliston <bje@au.ibm.com>
11735
11736 PR other/22232
11737 * fixproto: Escape "." in sed expression that strips leading "./".
11738
79d52444 117392008-01-24 H.J. Lu <hongjiu.lu@intel.com>
11740
11741 PR driver/34904
11742 * gcc.c (SWITCH_OK): Removed.
11743 (SWITCH_LIVE): Changed to bit.
11744 (SWITCH_FALSE): Likewise.
11745 (SWITCH_IGNORE): Likewise.
11746 (switchstr): Change live_cond to unsigned int.
11747 (process_command): Replace SWITCH_OK with 0.
11748 (do_self_spec): Likewise.
11749 (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
11750 (give_switch): Likewise.
11751 (used_arg): Likewise.
11752 (do_spec_1): Set the SWITCH_IGNORE bit.
11753 (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
11754 bits. Set the SWITCH_LIVE bit.
11755
6cb659b1 117562008-01-24 Andreas Krebbel <krebbel1@de.ibm.com>
11757
11758 * config/s390/s390.h (MOVE_RATIO): Define new target macro.
11759
66bc4f2f 117602008-01-24 Richard Sandiford <rsandifo@nildram.co.uk>
11761
11762 PR tree-optimization/34472
11763 * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
11764 parameter to a "bool *" and set *DATA to false if there is
11765 an unsafe access. Do not delete the structure here.
11766 (check_cond_exprs): Delete it here instead.
11767 (check_cond_exprs, exclude_cold_structs): Do not increase
11768 I when removing a structure.
11769
098e8492 117702008-01-24 Uros Bizjak <ubizjak@gmail.com>
11771
11772 PR target/34856
11773 * config/i386/i386.c (ix86_expand_vector_init): Consider only
11774 CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
11775
4b53147e 117762008-01-24 Jakub Jakub Jelinek <jakub@redhat.com>
11777
11778 PR middle-end/34934
11779 * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
11780 a fixed vector for stack.
11781
0af13ed4 117822008-01-24 Ben Elliston <bje@au.ibm.com>
11783
11784 PR c++/25701
11785 * doc/gcc.texi (Software development): Add a direntry for g++.
11786
631d7bf1 117872008-01-23 Hans-Peter Nilsson <hp@axis.com>
11788
248c1389 11789 * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
11790 stale and straggling -fforce-addr comments above.
11791
631d7bf1 11792 * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
11793 define.
11794 * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
11795 * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
11796
f4aea3f4 117972008-01-23 Michael Matz <matz@suse.de>
11798
11799 PR debug/34895
11800 * dwarf2out.c (force_type_die): Use modified_type_die instead of
11801 gen_type_die.
11802
c7108d79 118032008-01-23 Andreas Krebbel <krebbel1@de.ibm.com>
11804
11805 * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
11806 malloc result type.
11807
b1eb5c83 118082008-01-23 Anatoly Sokolov <aesok@post.ru>
11809
11810 * config/avr/avr.c (avr_current_arch): New variable.
11811 (avr_arch_types): Add 'avr31' and 'avr51' entries.
11812 (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
11813 (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
11814 (avr_override_options): Init 'avr_current_arch'.
11815 (base_arch_s): Move from here...
11816 * config/avr/avr.h (base_arch_s): ... here. Add new members
11817 'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
11818 'mega' to 'have_jmp_call'.
11819 (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
11820 "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
11821 macros.
11822 (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
11823 architectures.
11824 * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
11825 MULTILIB_MATCHES): (Ditto.).
11826
46beef9a 118272008-01-23 Richard Guenther <rguenther@suse.de>
11828
11829 PR middle-end/31529
11830 * cgraphunit.c (cgraph_reset_node): Always mark the node
11831 not reachable if it is not queued already.
11832
f5c2bcb7 118332008-01-23 Bernd Schmidt <bernd.schmidt@analog.com>
11834
11835 * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
11836 * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
11837 (cputype_selected): New static variable.
11838 (bfin_handle_option): Set it if -mcpu is used.
11839 (override_option): Select default set of workarounds if no cpu type
11840 selected on the command line.
11841 (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
27bedcb4 11842
11843 From Michael Frysinger <michael.frysinger@analog.com>
11844 * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
11845 BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
11846
11847 * config/bfin/elf.h (LIB_SPEC): Use proper linker script
11848 for bf547, bf523, bf524, and bf526.
11849 * config/bfin/bfin.c (bfin_cpus[]): Add bf547, bf523, bf524, and
11850 bf526.
11851 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
11852 __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
11853 __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
11854 __ADSPBF547__ and __ADSPBF54x__ for bf547.
11855 * doc/invoke.texi (Blackfin Options): Document that
11856 -mcpu now accept bf547, bf523, bf524, and bf526.
11857
3888eedd 118582008-01-22 Eric Botcazou <ebotcazou@adacore.com>
11859
11860 PR rtl-optimization/34628
11861 * combine.c (try_combine): Stop and undo after the first combination
11862 if an autoincrement side-effect on the first insn has effectively
11863 been lost.
11864
e74b57b1 118652008-01-22 David Edelsohn <edelsohn@gnu.org>
11866
11867 PR target/34529
11868 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
11869 Offset addresses are not valid for Altivec or paired float modes.
11870
06faa2fe 118712008-01-22 Jakub Jelinek <jakub@redhat.com>
11872
bb436d4e 11873 PR c++/34607
11874 * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
11875 if DECL_INITIAL (decl) is error_mark_node.
11876
2cb0e5d9 11877 PR c++/34914
11878 * c-common.c (handle_vector_size_attribute): Only allow
11879 integral, scalar float and fixed point types. Handle OFFSET_TYPE
11880 the same way as pointer, array etc. types.
11881 * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
11882
06faa2fe 11883 PR c++/34917
11884 * tree.c (build_type_attribute_qual_variant): Call
11885 build_qualified_type if attributes are equal, but quals are not.
11886
a54ab330 118872008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
11888
11889 PR 32102
11890 * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
11891 * flags.h (warn_strict_aliasing): Remove.
11892 (warn_strict_overflow): Remove.
11893 * opts.c (warn_strict_aliasing): Remove.
11894 (warn_strict_overflow): Remove.
11895 * c-opts.c (c_common_handle_option): -Wall only sets
11896 -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
11897 (c_common_post_options): Give default values to -Wstrict-aliasing
11898 and -Wstrict-overflow if they are uninitialized.
11899 * common.opt (Wstrict-aliasing): Specify Var and Init.
11900 (Wstrict-overflow): Likewise.
11901
957f873e 119022008-01-22 Kenneth Zadeck <zadeck@naturalbridge.com>
f437e46d 11903
11904 PR rtl-optimization/26854
11905 PR rtl-optimization/34400
11906 PR rtl-optimization/34884
11907 * ddg.c (create_ddg_dep_from_intra_loop_link): Use
11908 DF_RD->gen.
11909 * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
11910 (df_rd_bb_info.expanded_lr_out): Deleted
11911 * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
11912 * loop_iv.c (iv_analysis_loop_init): Ditto. * df-problems.c
11913 (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
11914 df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
11915 Removed code to allocate, initialize or free expanded_lr_out.
11916 (df_rd_bb_local_compute_process_def): Restructured to make more
11917 understandable.
11918 (df_rd_confluence_n): Removed code to no apply invalidate_by_call
11919 sets if the sets are being trimmed.
11920
c7871c82 119212008-01-22 H.J. Lu <hongjiu.lu@intel.com>
11922
11923 PR bootstrap/32287
11924 * configure.ac (ld_vers): Support GNU linker version xx.xx.*
11925 (as_vers): Likewise.
11926 * configure: Regenerated.
11927
df3f0669 119282008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
11929
11930 PR middle-end/33092
11931 * tree-pass.h (pass_build_alias): New pass.
11932 * tree-ssa-alias.c (gate_build_alias): New.
11933 (pass_build_alias): New.
11934 * passes.c (init_optimization_passes): Add pass_build_alias after
11935 pass_create_structure_vars.
11936
d1191819 119372008-01-22 Wolfgang Gellerich <gellerich@de.ibm.com>
11938
11939 * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
11940 Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
11941 (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
11942 S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
11943 (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
11944 S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
11945 (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
11946 S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
11947 (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
11948 (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
11949 (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
11950 (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
11951 * config/s390/s390.md (FP_ALL): New mode iterator.
11952 (_d): New mode attribute.
11953 ("*signbit<mode>2>"): Changed mode of first operand.
11954 ("isinf<mode>2"): Changed mode of first operand.
11955 ("*TDC_insn"): Adaptation for DFP modes.
11956
f47ba5b1 119572008-01-22 Ben Elliston <bje@au.ibm.com>
11958
11959 * tree.c (check_qualified_type): Improve function description.
11960
0bc060a4 119612008-01-21 Jason Merrill <jason@redhat.com>
11962
11963 PR c++/34196
11964 * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
11965 * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
11966 if it is set.
11967
1c64e82e 119682008-01-21 DJ Delorie <dj@redhat.com>
11969
11970 * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
11971 return zero.
11972
2a2aef73 119732008-01-21 Richard Guenther <rguenther@suse.de>
11974
11975 PR middle-end/34856
11976 * tree-cfg.c (verify_expr): Allow all invariant expressions
11977 instead of just constant class ones as reference argument.
11978 * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
11979 like any other constant.
11980 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
11981
d8d756b9 119822008-01-21 H.J. Lu <hongjiu.lu@intel.com>
11983
11984 * regmove.c (fixup_match_1): Update call crossed frequencies.
11985
62437c86 119862008-01-21 Richard Guenther <rguenther@suse.de>
11987
11988 PR c/34885
11989 * tree-inline.c (setup_one_parameter): Deal with mismatched
11990 types using a VIEW_CONVERT_EXPR.
11991
f25ba2cf 119922008-01-21 Alon Dayan <alond@il.ibm.com>
11993 Olga Golovanevsky <olga@il.ibm.com>
11994
11995 PR tree-optimization/34701
11996 * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
11997 when the structure size is not a power of 2.
11998
957f873e 119992008-01-20 Kenneth Zadeck <zadeck@naturalbridge.com>
dbc72697 12000
12001 * doc/install.texi: Add doc for --enable-checking=df.
12002
c556495e 120032008-01-20 Kaz Kojima <kkojima@gcc.gnu.org>
12004
12005 PR rtl-optimization/34808
12006 * emit-rtl.c (try_split): Handle REG_RETVAL notes.
12007
d8f69cf6 120082008-01-20 Richard Sandiford <rsandifo@nildram.co.uk>
12009
12010 * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
12011 input.
12012
957f873e 120132008-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
2e49e3bc 12014
12015 PR rtl-optimization/26854
12016 PR rtl-optimization/34400
12017 * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
12018 DF_RD->gen.
12019 * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
12020 (df_rd_bb_info.expanded_lr_out): New.
12021 * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
12022 * loop_iv.c (iv_analysis_loop_init): Ditto.
12023 * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
12024 df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
12025 Added code to allocate, initialize or free expanded_lr_out.
12026 (df_rd_bb_local_compute_process_def): Restructured to make
12027 more understandable.
12028 (df_rd_confluence_n): Add code to do nothing with fake edges and
12029 code to no apply invalidate_by_call sets if the sets are being trimmed.
12030 (df_lr_local_finalize): Renamed to df_lr_finalize.
12031 (df_live_local_finalize): Renamed to df_live_finalize.
12032
d2f3e075 120332008-01-20 Richard Sandiford <rsandifo@nildram.co.uk>
12034
12035 PR target/34831
12036 * config/mips/mips.md (div<mode>3): Use <recip_condition> when
12037 deciding whether to use reciprocal instructions.
12038
4e971a07 120392008-01-19 Uros Bizjak <ubizjak@gmail.com>
12040
12041 * dwarf2out.c (dwarf2out_switch_text_section): Do not call
12042 dwarf2out_note_section_used if cold_text_section is NULL.
12043
b3a3ddec 120442008-01-19 Jakub Jelinek <jakub@redhat.com>
12045
12046 PR gcov-profile/34610
12047 * tree-cfg.c (make_edges): Mark both outgoing edges from
12048 OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
12049 * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
12050 from OMP_FOR and OMP_CONTINUE outgoing edges.
12051
12052 * tree-profile.c (tree_profiling): Return early if
12053 cfun->after_tree_profile != 0. Set cfun->after_tree_profile
12054 at the end.
12055 * omp-low.c (expand_omp_parallel): Copy after_tree_profile
12056 from cfun to child_cfun.
12057 * function.h (struct function): Add after_tree_profile bit.
12058
cb20fbcc 120592008-01-19 Anatoly Sokolov <aesok@post.ru>
12060
12061 * config/avr/avr.S (_exit): Disable interrupt.
12062
a7bc23c0 120632008-01-18 Kenneth Zadeck <zadeck@naturalbridge.com>
12064 Steven Bosscher <stevenb.gcc@gmail.com>
12065
12066 PR rtl-optimization/26854
12067 PR rtl-optimization/34400
12068 * df-problems.c (df_live_scratch): New scratch bitmap.
12069 (df_live_alloc): Allocate df_live_scratch when doing df_live.
12070 (df_live_reset): Clear the proper bitmaps.
12071 (df_live_bb_local_compute): Only process the artificial defs once
12072 since the order is not important.
12073 (df_live_init): Init the df_live sets only with the variables
12074 found live by df_lr.
12075 (df_live_transfer_function): Use the df_lr sets to prune the
12076 df_live sets as they are being computed.
12077 (df_live_free): Free df_live_scratch.
12078
7765591b 120792008-01-18 Ian Lance Taylor <iant@google.com>
12080
12081 * common.opt: Add fmerge-debug-strings.
12082 * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
12083 flag_merge_debug_strings rather than flag_merge_constants.
12084 * doc/invoke.texi (Option Summary): Mention
12085 -fmerge-debug-strings.
12086 (Debugging Options): Document -fmerge-debug-strings.
12087
68d6de5b 120882008-01-18 Ian Lance Taylor <iant@google.com>
12089
12090 PR c++/33407
12091 * tree.h (DECL_IS_OPERATOR_NEW): Define.
12092 (struct tree_function_decl): Add new field operator_new_flag.
12093 * tree-inline.c (expand_call_inline): When inlining a call to
12094 operator new, force the return value to go into a variable, and
12095 set DECL_NO_TBAA_P on that variable.
12096 * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
12097
af30c139 120982008-01-18 Uros Bizjak <ubizjak@gmail.com>
12099
12100 PR debug/34484
12101 * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
12102 DWARF2_DEBUGGING_INFO.
12103 (dwarf2out_note_section_used): Ditto. Add prototype.
12104 (have_multiple_function_sections, text_section_used,
12105 cold_text_section_used, *cold_text_sections): Move declarations
12106 before their uses.
12107
1650f4d3 121082008-01-17 Bob Wilson <bob.wilson@acm.org>
92f6e056 12109
12110 * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
12111 field and add signal_ra.
12112 * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
12113 assignments to frame state pc. Move end of stack check after
12114 MD_FALLBACK_FRAME_STATE_FOR.
12115 (uw_update_context_1): Use frame state signal_regs if set, instead
12116 of checking signal_frame flag.
12117 (uw_update_context): Use frame state signal_ra if set.
12118 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
12119 * config/xtensa/linux-unwind.h: New file.
12120
1650f4d3 121212008-01-18 Bernhard Fischer <aldot@gcc.gnu.org>
c15d54d8 12122
12123 * modulo-sched.c (get_sched_window): Fix comment typo.
12124
ea5876d9 121252008-01-17 Andrew MacLeod <amacleod@redhat.com>
12126
12127 PR tree-optimization/34648
12128 * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
12129
d5f9ff99 121302008-01-17 Anatoly Sokolov <aesok@post.ru>
12131
12132 * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
12133 * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
12134
a9e21c4c 121352008-01-17 Seongbae Park <seongbae.park@gmail.com>
12136
12137 PR rtl-optimization/34400
12138 * df-core.c (df_worklist_dataflow_overeager,
12139 df_worklist_dataflow_doublequeue): New functions.
12140 (df_worklist_dataflow): Two different worklist solvers.
12141 * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
12142 New param.
12143
9d6f50ba 121442008-01-16 Sebastian Pop <sebastian.pop@amd.com>
12145
12146 PR testsuite/34821
12147 * doc/invoke.texi: Document the dependence on pthread for fopenmp
12148 and ftree-parallelize-loops.
12149
fa7f4c0c 121502008-01-17 Mircea Namolaru <namolaru@il.ibm.com>
12151
12152 PR rtl-optimization/34826
12153 * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
12154
74748e47 121552008-01-17 Andreas Krebbel <krebbel1@de.ibm.com>
12156
12157 * global.c (find_reg): Mark the eh regs as used if necessary.
12158 * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
12159 * ra.h (struct allocno): no_eh_reg field added. Changed
12160 no_stack_reg type to bitfield.
12161
a13ff590 121622008-01-17 Eric Botcazou <ebotcazou@adacore.com>
12163
12164 * tree.c (substitute_in_expr): Add missing 'break'.
12165
119368d7 121662008-01-17 Richard Guenther <rguenther@suse.de>
12167
12168 PR tree-optimization/34825
12169 * tree-ssa-math-opts.c (is_division_by): Do not recognize
12170 x / x as division to handle.
12171
9f4dc59e 121722008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12173
12174 * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
12175 "-pthread" is specified.
12176 * pa-hpux11.h (LIB_SPEC): Likewise.
12177
1650f4d3 121782008-01-16 Janis Johnson <janis187@us.ibm.com>
2379ccd9 12179 Peter Bergner <bergner@vnet.ibm.com>
12180
12181 PR rtl-optimization/33796
12182 * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
12183
a2060dc3 121842008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12185
12186 PR libgfortran/34699
12187 * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
12188 static links.
12189 * pa-hpux10.h (LINK_SPEC): Likewise.
12190 * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
12191
0cfec3e9 121922008-01-16 Richard Guenther <rguenther@suse.de>
12193
12194 PR middle-end/32628
12195 * fold-const.c (fold_convert_const_int_from_int): Do not
12196 set overflow if that occured only because of a sign extension
12197 change when converting from/to a sizetype with the same
12198 precision and signedness.
12199
d848c04f 122002008-01-16 Uros Bizjak <ubizjak@gmail.com>
12201
12202 PR debug/34249
12203 * dwarf2out.c (output_call_frame_info): Move output of FDE initial
12204 location address to the correct place. Update copyright year.
12205
b44df49a 122062008-01-16 Sebastian Pop <sebastian.pop@amd.com>
12207
12208 * lambda-code.c (lambda_transform_legal_p): Handle the case of
12209 no dependences in the dependence_relations vector.
12210
a8587796 122112008-01-16 Jan Hubicka <jh@suse.cz>
12212
12213 PR rtl-optimization/31396
12214 * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
12215 * cfg.c (dump_reg_info): Print it.
12216 * regs.h (struct reg_info_t): add freq_calls_crossed.
12217 (REG_FREQ_CALLS_CROSSED): New macro.
12218 * global.c (global_alloc): Compute freq_calls_crossed for allocno.
12219 (find_reg): Update call of CALLER_SAVE_PROFITABLE.
12220 * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
12221 regmove_optimize): Update call crossed frequencies.
12222 * local-alloc.c (struct qty): Add freq_calls_crossed.
12223 (alloc_qty): Copute freq_calls_crossed.
12224 (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
12225 (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
12226 * ra.h (struct allocno): Add freq_calls_crossed.
12227
061202f8 122282008-01-16 Sebastian Pop <sebastian.pop@amd.com>
12229
12230 * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
12231 libgomp when compiling with ftree-parallelize-loops.
12232 (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
12233
c782188f 122342008-01-16 Richard Guenther <rguenther@suse.de>
12235
12236 PR tree-optimization/34769
12237 * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
12238 * tree.c (int_cst_value): Instead make this function more
12239 permissive in what it accepts as valid input. Document this
12240 function always sign-extends the value.
12241
db812c94 122422008-01-16 Jakub Jelinek <jakub@redhat.com>
4e971a07 12243 Richard Guenther <rguenther@suse.de>
db812c94 12244
12245 PR c/34668
12246 * gimplify.c (fold_indirect_ref_rhs): Rename to ...
12247 (gimple_fold_indirect_ref_rhs): ... this.
12248 (gimple_fold_indirect_ref): New function with foldings
12249 that preserve lvalueness.
12250 (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
12251 * tree-flow.h (gimple_fold_indirect_ref): Declare.
12252 * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
12253 to fold an INDIRECT_REF, fall back to the old use of
12254 fold_indirect_ref_1.
12255
e34df749 122562008-01-16 Sebastian Pop <sebastian.pop@amd.com>
12257
12258 * tree-data-ref.c (subscript_dependence_tester_1): Call
12259 free_conflict_function.
12260 (compute_self_dependence): Same.
12261
9bf03e06 122622008-01-16 Uros Bizjak <ubizjak@gmail.com>
12263
12264 PR debug/34249
12265 * debug.h (dwarf2out_switch_text_section): Move declaration from ...
12266 * dwarf2out.c (dwarf2out_switch_text_section): ... here. Make
12267 function global.
12268 * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
12269 Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
12270 for DWARF2_UNWIND_INFO targets.
12271
36d43c4a 122722008-01-16 Richard Guenther <rguenther@suse.de>
12273
12274 PR c/34768
12275 * c-typeck.c (common_pointer_type): Do not merge inconsistent
12276 type qualifiers for function types.
12277
6f22df65 122782008-01-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
12279
12280 * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
12281 loop_iterator li from previous commit.
12282
122832008-01-15 Sebastian Pop <sebastian.pop@amd.com>
d46d3c1c 12284
12285 * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
12286
d4fcfd16 122872008-01-12 Sebastian Pop <sebastian.pop@amd.com>
12288
12289 * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
12290 (parallelize_loops): Don't parallelize irreducible components.
12291
c9d90c25 122922008-01-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
12293
12294 PR c++/24924
12295 * c-opts (c_common_post_options): Do not enable CPP
12296 flag_pedantic_errors by default.
12297
d2c970fe 122982008-01-14 Eric Botcazou <ebotcazou@adacore.com>
12299
12300 PR rtl-optimization/31944
12301 * cse.c (remove_pseudo_from_table): New function.
12302 (merge_equiv_classes): Use above function to remove pseudo-registers.
12303 (invalidate): Likewise.
12304
3ff99faa 123052008-01-13 Richard Guenther <rguenther@suse.de>
12306
12307 PR middle-end/34601
12308 * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
12309 instead of TYPE_MODE to deal with calls from expand_one_error_var.
12310
3e179c53 123112008-01-13 Uros Bizjak <ubizjak@gmail.com>
12312
12313 * gcse.c (cprop_jump): Call validate_unshare_change instead of
12314 validate_change to unshare the source of the PC set.
12315
b513c084 123162008-01-12 Jan Hubicka <jh@suse.cz>
12317
12318 PR middle-end/32135
12319 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
12320 references above array bounds. This might trigger bounds checks for
12321 pointers to arrays.
12322
c2df357d 123232008-01-12 Sebastian Pop <sebastian.pop@amd.com>
12324
12325 * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
12326 new_replaceable_dependencies.
12327
36e37a87 123282008-01-12 Doug Kwan <dougkwan@google.com>
12329
12330 * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
12331 instead of OPT_Wreturn_type in warning due to ignored return type
12332 qualifiers.
12333 * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
12334 options included in -Wextra.
12335 * c.opt: New option -Wignored_qualifiers.
12336 * doc/invoke.texi (Warning Options, -Wextra): Add new option
12337 -Wignore_qualifiers.
12338 (-Wignored-qualifiers): Document.
12339 (-Wreturn-type): Remove description of functionality now handled
12340 by -Wignored-qualifiers.
12341
134ae613 123422008-01-12 Eric Botcazou <ebotcazou@adacore.com>
12343
12344 PR ada/33788
12345 * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
12346 NOP_EXPR if it is between integral types with the same precision.
12347
f9f517cc 123482008-01-12 Jan Hubicka <jh@suse.cz>
12349
12350 PR other/28023
12351 * invoke.texi (max-inline-recursive-depth): Fix default value.
12352
33f263f5 123532008-01-12 Zdenek Dvorak <ook@ucw.cz>
12354
12355 * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
12356 correct type.
12357
0d1c6644 123582008-01-11 Bob Wilson <bob.wilson@acm.org>
12359
12360 * config/xtensa/xtensa.c (override_options): Set flag_shlib.
12361
6090393c 123622008-01-11 James E. Wilson <wilson@specifix.com>
12363
12364 PR target/26015
12365 * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
12366
a0a028c2 123672008-01-11 Anatoly Sokolov <aesok@post.ru>
12368
12369 * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
12370 save/restore frame pointer register and don't use 'call-prologues'
12371 optimization in function with "OS_task" attribute.
12372
13a68d5b 123732008-01-11 Eric Botcazou <ebotcazou@adacore.com>
12374
12375 PR middle-end/31309
12376 * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
12377 when copying to memory.
12378
1ae2ffa7 123792008-01-11 Steven Bosscher <stevenb.gcc@gmail.com>
12380
12381 PR rtl-optimization/30905
12382 * cfgcleanup.c: Include dce.h
12383 (crossjumps_occured): New global variable.
12384 (try_crossjump_bb): Exit loop after finding a fallthru edge.
12385 If something changed, set crossjumps_occured to true.
12386 (try_optimize_cfg): Clear crossjumps_occured at the beginning.
12387 Don't add/remove fake edges to exit here...
12388 (cleanup_cfg): ...but do it here, when crossjumping.
12389 Run a fast DCE when successful crossjumps occured in the latest
12390 iteration of try_optimize_cfg.
12391
12661815 123922008-01-11 Richard Guenther <rguenther@suse.de>
12393
12394 * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
12395 (struct vn_unary_op_s): Likewise.
12396 (vn_reference_insert): Free old reference on hash collision.
12397
5bed1dca 123982008-01-10 Raksit Ashok <raksit@google.com>
12399
12400 PR rtl-optimization/27971
7650360f 12401 * combine.c (find_split_point): Split PLUS expressions which are
12402 inside a MEM rtx, and whose first operand is complex.
5bed1dca 12403
4a6a8336 124042008-01-10 DJ Delorie <dj@redhat.com>
12405
12406 * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
12407 (m32c_hard_regno_nregs): ...this, which is now a wrapper.
12408 (m32c_hard_regno_ok): Call the underlying function.
12409
5c6e4974 124102008-01-10 Richard Guenther <rguenther@suse.de>
12411
12412 PR middle-end/34683
12413 * tree-cfg.c (tree_merge_blocks): Do not go through the
12414 full-blown folding and stmt updating path if we just deal
12415 with virtual operands.
12416 * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
12417 test for abnormal SSA_NAMEs.
12418
cd6659e3 124192008-01-10 Andreas Krebbel <krebbel1@de.ibm.com>
12420
12421 PR middle-end/34641
12422 * reload.c (push_reload): Add assertions. All constants from
12423 reg_equiv_constant should have been used for replacing the respective
12424 pseudo earlier.
12425 (find_reloads_address): Invoke find_reloads_address_part for
12426 constant taken from the reg_equiv_constant array.
12427
6d6adc82 124282008-01-10 Steven Bosscher <stevenb.gcc@gmail.com>
12429
12430 * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
12431 field (valnum) the first in the struct. Replace bools with
12432 unit bit fields.
12433
b050ae3e 124342008-01-10 Richard Guenther <rguenther@suse.de>
12435
12436 PR tree-optimization/34651
12437 * tree-sra.c (sra_build_assignment): Sanitize. Use the correct
12438 types and ordering for masking and converting.
12439
77727654 124402008-01-09 Sebastian Pop <sebastian.pop@amd.com>
12441
12442 PR tree-optimization/34017
12443 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
12444 also for PHI_NODE expressions.
12445
cc9c1c51 124462008-01-09 Jan Hubicka <jh@suse.cz>
12447
12448 PR tree-optimization/34708
12449 * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
12450 based on number of case labels.
12451 (init_inline_once): Remove switch_cost.
12452 * tree-inline.h (eni_weights_d): Remove switch_cost.
12453
e8b8bad7 124542008-01-09 Richard Guenther <rguenther@suse.de>
12455 Andrew Pinski <andrew_pinski@playstation.sony.com>
12456
12457 PR middle-end/30132
12458 * gimplify.c (gimplify_cond_expr): Do not create an addressable
12459 temporary if an rvalue is ok or an lvalue is not required.
12460
8b58aec5 124612008-01-09 Richard Guenther <rguenther@suse.de>
12462
12463 PR middle-end/34458
12464 * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
12465 adjust return type.
12466
b2ee3594 124672008-01-09 Richard Guenther <rguenther@suse.de>
12468
12469 PR middle-end/34679
12470 * tree.c (host_integerp): Check for sizetype only if the
12471 type is an integer type.
12472
3e6bab0c 124732008-01-09 Steven Bosscher <stevenb.gcc@gmail.com>
12474
12475 PR debug/26364
12476 * opts.c (decode_options): Disable inlining of functions called
12477 once if not in unit-at-a-time mode.
12478
f72a5ea4 124792008-01-09 Alexandre Oliva <aoliva@redhat.com>
12480
12481 * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
12482
454a1307 124832008-01-08 Richard Guenther <rguenther@suse.de>
12484
12485 PR middle-end/31863
12486 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
12487 out early if the result will be unused.
12488
1615433d 124892008-01-08 Uros Bizjak <ubizjak@gmail.com>
12490
12491 PR target/34709
12492 Revert:
12493
12494 2008-01-05 Uros Bizjak <ubizjak@gmail.com>
12495 * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
12496 for TARGET_RECIP.
12497
e96df6c2 124982008-01-08 Jan Sjodin <jan.sjodin@amd.com>
12499
1615433d 12500 * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
12501 for vectorization tuned.
e96df6c2 12502
911908dc 125032008-01-08 Richard Guenther <rguenther@suse.de>
12504
12505 PR tree-optimization/34683
12506 * tree-ssa-operands.c (operand_build_cmp): Export.
12507 * tree-ssa-operands.h (operand_build_cmp): Declare.
12508 * tree-vn.c (vuses_compare): Remove.
12509 (sort_vuses): Use operand_build_cmp.
12510 (sort_vuses_heap): Likewise.
12511 * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
12512 to re-use old VEC if available. Do not sort already sorted VUSEs.
12513 (vdefs_to_vec): Do not sort already sorted VDEFs.
12514
d7c85fac 125152008-01-08 Jakub Jelinek <jakub@redhat.com>
12516
12517 PR middle-end/34694
12518 * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
12519
c7f0e882 125202008-01-08 Uros Bizjak <ubizjak@gmail.com>
12521
12522 PR target/34702
12523 * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
12524 limitations of reciprocal sequences on x86 targets.
12525
b5ea3701 125262008-01-08 Richard Guenther <rguenther@suse.de>
12527
12528 PR tree-optimization/34683
12529 * tree-flow-inline.h (var_ann): Remove overzealous asserts.
12530
a7df40d7 125312008-01-07 Jakub Jelinek <jakub@redhat.com>
12532
12533 PR target/34622
12534 * config/darwin.c (darwin_mergeable_string_section): Don't use
12535 .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
12536
5921cbdf 125372008-01-07 Uros Bizjak <ubizjak@gmail.com>
12538
12539 PR target/34682
12540 * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
12541 negxf2. Macroize expander using X87MODEF mode iterator. Change
12542 predicates of op0 and op1 to register_operand.
c7f0e882 12543 (abs<mode>2): Rename from abssf2, absdf2 and negxf2. Macroize
12544 expander using X87MODEF mode iterator. Change predicates of
12545 op0 and op1 to register_operand.
5921cbdf 12546 ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
12547 corresponding patterns and macroize using MODEF macro. Change
12548 predicates of op0 and op1 to register_operand and remove
12549 "m" constraint. Disparage "r" alternative with "!".
12550 ("*absneg<mode>2_i387"): Rename from corresponding patterns and
12551 macroize using X87MODEF macro. Change predicates of op0 and op1
12552 to register_operand and remove "m" constraint. Disparage "r"
12553 alternative with "!".
12554 (absneg splitter with memory operands): Remove.
12555 ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
12556 patterns and macroize using X87MODEF mode iterator.
12557 * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
12558 Change predicate of op1 to register_operand.
12559 * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
c7f0e882 12560 for memory operands.
5921cbdf 12561
1dd6dd88 125622008-01-07 Nathan Froyd <froydnj@codesourcery.com>
12563
12564 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
12565
b041d147 125662008-01-07 Richard Guenther <rguenther@suse.de>
12567
12568 * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
12569 fields.
12570
3ee3dfa4 125712008-01-07 Richard Guenther <rguenther@suse.de>
12572
12573 PR tree-optimization/34683
12574 * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
12575 VOPs of the needed size to save memory. Use VEC_quick_push
12576 to save compile-time.
12577 (vdefs_to_vec): Likewise.
12578
ca03fed0 125792008-01-07 Sa Liu <saliu@de.ibm.com>
3ee3dfa4 12580
5921cbdf 12581 * config/spu/spu.md (divdf3): Genetate inline code for double
12582 division. The implementation doesn't handle INF or NAN, therefore it
12583 only applies when -ffinite-math-only is given.
ca03fed0 12584
be46c846 125852008-01-06 Paolo Carlini <pcarlini@suse.de>
12586
12587 PR libstdc++/34680
12588 * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
12589 * doc/cpp.texi ([Common Predefined Macros]): Document.
12590
9edaf48c 125912008-01-06 Uros Bizjak <ubizjak@gmail.com>
12592
12593 * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
12594 order to use commutative addition instead of subtraction.
12595
aa620173 125962008-01-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
12597 Mircea Namolaru <namolaru@il.ibm.com>
12598 Vladimir Yanovsky <yanov@il.ibm.com>
12599 Revital Eres <eres@il.ibm.com>
12600
12601 PR tree-optimization/34263
12602 * tree-outof-ssa.c (process_single_block_loop_latch,
12603 contains_tree_r): New functions.
12604 (analyze_edges_for_bb): Call process_single_block_loop_latch
12605 function to empty single-basic-block latch block if possible.
12606
459609ab 126072008-01-05 Uros Bizjak <ubizjak@gmail.com>
12608
12609 * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
12610 for TARGET_RECIP.
12611 (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
12612
35160457 126132008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
12614
12615 * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
12616
5f98e2aa 126172008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
12618
12619 * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
12620
640fba6f 126212008-01-05 Jakub Jelinek <jakub@redhat.com>
12622
12623 PR tree-optimization/34618
12624 * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
12625 flag from T.
12626
1a086819 126272008-01-05 Uros Bizjak <ubizjak@gmail.com>
12628
12629 PR target/34673
12630 * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
12631 in the call to gen_rtx_NE. Remove unneeded VECTOR_MODE_P check.
12632 Update copyright year.
12633
12634 * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
12635 Update copyright year.
12636 * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
12637 using NR fixup.
12638
f831baaf 126392008-01-05 Zhouyi Zhou <zhouzhouyi@FreeBSD.org>
12640
12641 * tree-vrp.c (find_conditional_asserts): Remove redundant check that
12642 edge does not point to current bb before changing need_assert.
12643
cd3f90e2 126442008-01-04 Richard Guenther <rguenther@suse.de>
12645
12646 PR middle-end/34029
12647 * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
12648 for verifying purposes if they are is_gimple_min_invariant.
12649
5b56c905 126502008-01-04 Aldy Hernandez <aldyh@redhat.com>
12651
12652 PR tree-optimization/34448
12653 PR tree-optimization/34465
12654 * gimplify.c (gimplify_init_constructor): Add new parameter
12655 notify_temp_creation. Use it.
12656 (gimplify_modify_expr_rhs): Take volatiles into account when
12657 optimizing constructors.
12658 Do not optimize constructors if gimplify_init_constructor will dump to
12659 memory.
12660 * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
12661 * gcc.c-torture/compile/pr34448.c: New.
12662
dfbb5324 126632008-01-04 Jakub Jelinek <jakub@redhat.com>
12664
12665 PR gcov-profile/34609
12666 * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
12667 return_slot if result is TREE_ADDRESSABLE.
12668
1bbc673e 126692008-01-04 Richard Sandiford <rsandifo@nildram.co.uk>
12670
12671 * config/mips/mips.md (sqrt_condition): Tweak comment.
12672 (recip_condition): Likewise. Require TARGET_FLOAT64 for DFmode.
12673
78c2e180 126742008-01-03 Tom Tromey <tromey@redhat.com>
12675
dfbb5324 12676 PR c/34457
78c2e180 12677 * c-common.c (c_type_hash): Handle VLAs.
12678
186f5fff 126792008-01-03 Jan Hubicka <jh@suse.cz>
12680
12681 PR tree-optimization/31081
12682 * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
12683 0 when inlining and not inlining to first basic block.
12684 (remap_decl): When var is initialized to 0, don't set default_def.
12685 (expand_call_inline): Set entry_bb.
12686 * tree-inline.h (copy_body_data): Add entry_bb.
12687
361c9aad 126882008-01-03 Jakub Jelinek <jakub@redhat.com>
12689
e3a37aef 12690 PR c++/34619
12691 * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
12692 before returning.
12693
361c9aad 12694 PR tree-optimization/29484
12695 * tree-inline.c (inline_forbidden_p_2): New function.
12696 (inline_forbidden_p): Disallow inlining if some static var
12697 has an address of a local LABEL_DECL in its initializer.
12698 * doc/extend.texi (Labels as Values): Document &&foo behaviour
12699 vs. inlining.
12700
e1feff4f 127012008-01-03 Sebastian Pop <sebastian.pop@amd.com>
bfe20447 12702
12703 PR tree-optimization/34635
12704 * tree-data-ref.c (add_other_self_distances): Make sure that the
12705 evolution step is constant.
12706
fbe86b1b 127072008-01-03 Jakub Jelinek <jakub@redhat.com>
12708
12709 PR middle-end/34608
f831baaf 12710 * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
fbe86b1b 12711
99f35fae 127122008-01-02 Richard Sandiford <rsandifo@nildram.co.uk>
12713
12714 * tree-sra.c (scalarize_init): Insert the generate_element_init
12715 statements after the generate_element_zero statements.
12716
20e67c9a 127172008-01-02 Richard Guenther <rguenther@suse.de>
12718
12719 PR middle-end/34093
12720 PR middle-end/31976
12721 * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
12722 for very large number of operands instead of ICEing.
12723
02be515c 127242008-01-02 Arthur Norman <acn1@cam.ac.uk>
12725
f831baaf 12726 PR target/34013
a4890dc9 12727 * config/i386/i386.c (ix86_expand_prologue): Save red-zone
02be515c 12728 while stack probing.
12729
799bdf64 127302008-01-01 Douglas Gregor <doug.gregor@gmail.com>
12731
02be515c 12732 * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
f831baaf 12733 in C++0x mode.
799bdf64 12734
65e47be2 127352008-01-01 Volker Reichelt <v.reichelt@netcologne.de>
12736
12737 PR libmudflap/26442
12738 * tree-mudflap.c (mx_register_decls): Guard warning by
12739 !DECL_ARTIFICIAL check.
12740
25a3b4c5 127412008-01-01 Jakub Jelinek <jakub@redhat.com>
12742
12743 * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
12744 sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
12745 sse5_perm<mode>): Fix constraints.