tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE for field decls.
[gcc.git] / gcc / ChangeLog
1 2009-06-02 Richard Guenther <rguenther@suse.de>
2
3 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
4 for field decls.
5
6 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
7
8 * cfgexpand.c (gimple_expand_cfg): Discard the source location
9 only for builtins that are not overridden.
10
11 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
12
13 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
14 label string.
15
16 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
17
18 * df-core.c (df_ref_debug): Honor -fdump-noaddr.
19
20 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
21
22 * combine.c (move_deaths): Compare LUIDs within the same BB only.
23
24 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
25
26 * common.opt (fdump-unnumbered-links): New.
27 * doc/invoke.texi (-fdump-unnumbered-links): Document it.
28 * print-rtl.c (flag_dump_unnumbered_links): New.
29 (print_rtx): Test it.
30
31 2009-06-02 Richard Earnshaw <rearnsha@arm.com>
32
33 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
34 push/pop multiple to 8-byte alignment.
35
36 2009-06-01 Jakub Jelinek <jakub@redhat.com>
37
38 * config/i386/i386.c (queued_cfa_restores): New static variable.
39 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
40 functions.
41 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
42 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
43 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
44 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
45 note unconditionally.
46 (ix86_emit_restore_regs_using_mov): Likewise.
47 (ix86_emit_restore_sse_regs_using_mov): Likewise.
48 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
49 it through to ix86_emit_restore_reg_using_pop.
50 (ix86_emit_leave): Add RED_OFFSET argument. Call
51 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note
52 instead of adding REG_CFA_OFFSET note unconditionally.
53 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
54 the above functions. Call ix86_add_queued_cfa_restore_notes when
55 needed.
56
57 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
58 force output of the label even for dwarf2out_do_cfi_asm.
59 (add_fde_cfi): If -g2 and above and cfi might change CFA,
60 force creation of CFI label and chain DW_CFA_set_loc jumping to it
61 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
62 caller.
63 (dwarf2out_stack_adjust, dwarf2out_frame_debug,
64 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
65 dwarf2out_cfi_label callers.
66 * tree.h (dwarf2out_cfi_label): Adjust prototype.
67 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
68 Adjust dwarf2out_cfi_label callers.
69 * config/vax/vax.c (vax_output_function_prologue): Likewise.
70
71 * config/i386/i386.h (struct machine_cfa_state,
72 struct machine_function): Guard with ifndef USED_FOR_TARGET
73 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
74
75 PR other/40024
76 * emutls.c (__emutls_get_address): Change arr->size to mean number
77 of allocated arr->data entries instead of # of slots + 1.
78
79 PR middle-end/40316
80 * recog.c (peep2_reinit_state): New function.
81 (peephole2_init_state): Use it at the end of a basic block and also
82 when seeing a RTX_FRAME_RELATED_P insn.
83
84 2009-06-01 Steve Ellcey <sje@cup.hp.com>
85
86 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
87 fixuns_truncrfdi2): New.
88 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
89 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
90 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
91 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
92 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
93 *recip_approx): Remove.
94 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
95 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
96 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
97 move to div.md.
98 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
99 setf_exp_rf): New.
100
101 2009-06-01 Ian Lance Taylor <iant@google.com>
102
103 * attribs.c (register_attribute): Use CONST_CAST.
104 * collect2.c (main): Use CONST_CAST2.
105 (scan_prog_file): Likewise.
106 * gcc.c (process_command, main): Likewise.
107 * toplev.c (toplev_main): Likewise.
108
109 * c-typeck.c (handle_warn_cast_qual): New static function,
110 partially broken out of build_c_cast.
111 (build_c_cast): Call handle_warn_cast_qual.
112 * doc/invoke.texi (Warning Options): Document new effect of
113 -Wcast-qual.
114
115 2009-06-01 Aldy Hernandez <aldyh@redhat.com>
116
117 * diagnostic.c (diagnostic_build_prefix): Always print columns.
118 (diagnostic_report_current_module): Print columns.
119 * common.opt (flag_show_column): Enable by default.
120
121 2009-06-01 Luis Machado <luisgpm@br.ibm.com>
122
123 * alias.c (find_base_term): Check for NULL term before returning.
124
125 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
126
127 Revert due to PR40320:
128
129 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
130 * calls.c (emit_library_call_value_1): Don't force_operand for move
131 and push insns.
132
133 2009-06-01 Olivier Hainque <hainque@adacore.com>
134 Eric Botcazou <botcazou@adacore.com>
135
136 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
137 to be processed as a bitfield for constructor output purposes.
138 * output.h (initializer_constant_valid_for_bitfield_p): Declare
139 new function.
140 * varasm.c (oc_local_state): New type, output_constructor
141 local state to support communication with helpers.
142 (oc_outer_state): New type, output_constructor outer state of
143 relevance in recursive calls.
144 (output_constructor_array_range): New output_constructor helper,
145 extracted code for an array range element.
146 (output_constructor_regular_field): New output_constructor helper,
147 extracted code for an element that is not a bitfield.
148 (output_constructor_bitfield): New output_constructor helper,
149 extracted code for a bitfield element. Accept an OUTER state
150 argument for recursive processing. Recurse on record or array
151 CONSTRUCTOR values, possibly past noop conversions.
152 (initializer_constant_valid_for_bitfield_p): New predicate. Whether
153 VALUE is a valid constant-valued expression for use in a static
154 bit-field initializer.
155 (output_constructor): Rework to use helpers. Accept and honor an
156 OUTER state argument for recursive calls. Return total size. Be
157 prepared for nested constructors initializing bitfields.
158 (output_constant): Feed OUTER in calls to output_constructor.
159
160 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
161
162 * calls.c (emit_library_call_value_1): Don't force_operand for move
163 and push insns.
164
165 2009-06-01 Nick Clifton <nickc@redhat.com>
166
167 * doc/invoke.texi (IA-64 Options): Fix typo.
168
169 2009-06-01 Ira Rosen <irar@il.ibm.com>
170
171 PR tree-optimization/39129
172 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
173 printed message.
174 (vect_do_peeling_for_loop_bound): Use
175 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
176 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
177 (vect_loop_versioning): Likewise.
178 (vect_create_cond_for_alias_checks): Fix indentation.
179 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
180 macros.
181 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
182 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
183 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
184 "control flow in loop".
185 (vect_estimate_min_profitable_iters): Use
186 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
187 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
188 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
189 (vect_create_data_ref_ptr): Don't mention array dimension in printing.
190 * tree-vect-stmts.c (vectorizable_store): Replace the check that the
191 statement belongs to a group of strided accesses with the exact code
192 check.
193 (vectorizable_load): Likewise.
194 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
195 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
196
197 2009-06-01 Gerald Pfeifer <gerald@pfeifer.com>
198
199 * config/freebsd-stdint.h: New file.
200 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
201 Add freebsd-stdint.h to tm_file.
202
203 2009-06-01 Richard Earnshaw <rearnsha@arm.com>
204
205 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
206 (thumb2_extendhidi2): Likewise.
207
208 2009-05-31 Ian Lance Taylor <iant@google.com>
209
210 * regstat.c (regstat_n_sets_and_refs): Remove duplicate
211 definition.
212
213 2009-05-31 Ian Lance Taylor <iant@google.com>
214
215 * Makefile.in (except.o): Depend upon gt-except.h, not
216 gt-$(EXCEPT_H).
217 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
218 (ipa-reference.o): Depend upon gt-ipa-reference.h.
219
220 2009-05-31 Jason Merrill <jason@redhat.com>
221
222 * tree-pretty-print.c (print_call_name): Take the callee, not the
223 call itself. Make non-static. Use dump_function_name for
224 functions.
225 (dump_generic_node): Adjust.
226 * diagnostic.h: Declare print_call_name.
227 * gimple-pretty-print.c (dump_gimple_call): Use it.
228
229 2009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
230
231 * config/sh/sh.md (ashldi3_std): New define_expand.
232 (ashldi3): Use it.
233
234 2009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
235
236 PR target/40313
237 * config/sh/sh.c: Include debug.h.
238 (sh_expand_epilogue): Emit a blockage insn before the frame
239 pointer adjustment also when dwarf2out_do_frame returns true.
240
241 2009-05-31 Richard Earnshaw <rearnsha@arm.com>
242
243 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
244 (thumb2_extendqidi2): New pattern.
245
246 2009-05-31 Ira Rosen <irar@il.ibm.com>
247
248 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
249 mark phis for renaming.
250 * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
251 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
252 Call mark_sym_for_renaming.
253 * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
254 * tree-vect-loop.c (vect_transform_loop): Remove vect_memsyms_to_rename
255 initialization and a call to mark_set_for_renaming.
256
257 2009-05-31 Jakub Jelinek <jakub@redhat.com>
258
259 PR middle-end/40304
260 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
261 frame related even if !set_cfa && style < 0.
262
263 2009-05-30 Kai Tietz <kai.tietz@onevision.com>
264
265 * config/i386/mingw-tls.c: New file.
266 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add
267 mingw-tls.c file.
268 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define
269 it for targets defining _WIN32 but not __CYGWIN__.
270
271 2009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
272
273 * configure.ac: Add MPC support.
274
275 * config.in, configure: Regenerate.
276
277 2009-05-29 Richard Henderson <rth@redhat.com>
278
279 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
280 NOTE_INSN_BASIC_BLOCK.
281 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
282 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
283 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
284 to be deleted.
285 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
286 add in_use field.
287 (add_cfi): Disable check redefining cfa away from drap.
288 (lookup_cfa_1): Add remember argument; handle remember/restore.
289 (lookup_cfa): Pass remember argument.
290 (cfa_remember): New.
291 (compute_barrier_args_size_1): Remove sibcall check.
292 (dwarf2out_frame_debug_def_cfa): New.
293 (dwarf2out_frame_debug_adjust_cfa): New.
294 (dwarf2out_frame_debug_cfa_offset): New.
295 (dwarf2out_frame_debug_cfa_register): New.
296 (dwarf2out_frame_debug_cfa_restore): New.
297 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
298 (dwarf2out_begin_epilogue): New.
299 (dwarf2out_frame_debug_restore_state): New.
300 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
301 DW_CFA_restore_state.
302 (output_cfi_directive): Likewise.
303 (convert_cfa_to_fb_loc_list): Likewise.
304 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
305 * dwarf2out.h: Update.
306 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
307 (copy_insn_1): Early out for null.
308 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
309 and dwarf2out_frame_debug_restore_state.
310 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
311 (prologue_insn_hash, epilogue_insn_hash): New.
312 (free_after_compilation): Adjust freeing accordingly.
313 (record_insns): Create hash table if needed; push insns into
314 hash instead of array.
315 (maybe_copy_epilogue_insn): New.
316 (contains): Search hash table instead of array.
317 (sibcall_epilogue_contains): Remove.
318 (thread_prologue_and_epilogue_insns): Split eh_return insns
319 and mark them as epilogues.
320 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
321 scanning in terms of basic blocks.
322 * insn-notes.def (CFA_RESTORE_STATE): New.
323 * jump.c (returnjump_p_1): Accept EH_RETURN.
324 (eh_returnjump_p_1, eh_returnjump_p): New.
325 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
326 CFA_REGISTER, CFA_RESTORE): New.
327 * rtl.def (EH_RETURN): New.
328 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
329
330 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
331 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
332
333 * config/i386/i386.c (gen_push): Update cfa state.
334 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
335 add a CFA_ADJUST_CFA note.
336 (ix86_dwarf_handle_frame_unspec): Remove.
337 (ix86_expand_prologue): Update cfa state.
338 (ix86_emit_restore_reg_using_pop): New.
339 (ix86_emit_restore_regs_using_pop): New.
340 (ix86_emit_leave): New.
341 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
342 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
343 * config/i386/i386.h (struct machine_cfa_state): New.
344 (ix86_cfa_state): New.
345 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
346 (eh_return_internal): Merge from eh_return_<mode>,
347 use eh_return rtx, split w/ epilogue.
348
349 2009-05-29 Ian Lance Taylor <iant@google.com>
350
351 * builtins.c (validate_gimple_arglist): Don't use va_arg with
352 enum type.
353 * calls.c (emit_library_call_value_1): Likewise.
354
355 * c-typeck.c (c_build_va_arg): New function.
356 * c-tree.h (c_build_va_arg): Declare.
357 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
358 instead of build_va_arg.
359
360 2009-05-29 Eric Botcazou <ebotcazou@adacore.com>
361
362 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
363 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
364 (ptr_difference_cost): Use affine combinations to compute it.
365 (difference_cost): Likewise.
366 (get_computation_cost_at): Compute more accurate cost for addresses
367 if the ratio is a multiplier allowed in addresses.
368 For non-addresses, consider that an additional offset or symbol is
369 added only once.
370
371 2009-05-29 Jakub Jelinek <jakub@redhat.com>
372
373 * config/i386/i386.c (ix86_decompose_address): Avoid useless
374 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
375
376 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
377 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
378 (prefix_rex): For UNIT_MMX don't imply the prefix by default
379 if MODE_DI.
380 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
381 to 1 for TYPE_SSE{IADD1,CVT1}.
382 (prefix_vex_imm8): Removed.
383 (length_vex): Only pass 1 as second argument to
384 ix86_attr_length_vex_default if prefix_extra is 0.
385 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
386 (length): For prefix vex computation use length_immediate
387 attribute instead of prefix_vex_imm8.
388 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
389 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
390 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
391 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
392 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
393 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
394 a space in between the operands.
395 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
396 if one operand is 0xff and the other one si, di, bp or sp.
397 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
398 other one si, di, bp or sp.
399 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
400 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
401 type and mode attributes.
402 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
403 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
404 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
405 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
406 prefix_data16 attribute iff MODE_DF.
407 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
408 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
409 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
410 constm128_operand in length_immediate computation.
411 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
412 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
413 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
414 length_immediate attribute to 1.
415 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
416 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
417 for certain alternatives.
418 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
419 prefix_data16 attribute if MODE_V1DF.
420 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
421 length_immediate to 1.
422 (set_got_rex64, set_rip_rex64): Remove length attribute, set
423 length_address to 4, set mode attribute to MODE_DI.
424 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
425 (fxam<mode>2_i387): Set length attribute to 4.
426 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
427 *prefetch_3dnow_rex): Override length_address attribute.
428 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
429 attributes.
430 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
431 (constm128_operand): Removed.
432 * config/i386/i386.c (memory_address_length): For
433 disp && !index && !base in 64-bit mode account for SIB byte if
434 print_operand_address can't optimize disp32 into disp32(%rip)
435 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
436 for fs: or gs: segment.
437 (ix86_attr_length_immediate_default): When checking if shortform
438 is possible, truncate immediate to the length of the non-shortened
439 immediate.
440 (ix86_attr_length_address_default): Ignore MEM_P operands
441 with X constraint.
442 (ix86_attr_length_vex_default): Only check for DImode on
443 GENERAL_REG_P operands.
444 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
445 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
446 (sse_cvttps2pi): Clear prefix_rep attribute.
447 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
448 attribute.
449 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
450 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
451 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
452 iff operand 2 is const_int_operand.
453 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
454 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
455 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
456 instead of vex.
457 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
458 prefix_data16.
459 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
460 prefix_data16 attribute for movlpd and movhpd instructions.
461 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
462 length_immediate for shufpd instruction.
463 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
464 (avx_cmpp<avxmodesuffixf2c><mode>3,
465 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
466 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
467 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
468 *vec_dupv4sf_avx, *vec_dupv4sf): Set
469 length_immediate attribute to 1.
470 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
471 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
472 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
473 prefix_data16 attribute for the first alternative to 1.
474 (*avx_loadlps): Override length_immediate for the first alternative.
475 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
476 attributes for second alternative.
477 (*vec_concatv2sf_sse4_1): Override length_immediate and
478 prefix_data16 attributes for second alternative.
479 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
480 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
481 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
482 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
483 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
484 prefix_data16 and length_immediate to 1.
485 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
486 to 1.
487 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
488 prefix_extra attribute for variants that don't have 0f prefix
489 alone.
490 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
491 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
492 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
493 *sse4_1_pextrd): Set length_immediate to 1.
494 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
495 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
496 to 1.
497 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
498 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
499 length_immediate to 1 for second alternative.
500 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
501 prefix_extra and length_immediate attributes for the first
502 alternative.
503 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
504 first alternative.
505 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
506 to 1 for the first and third alternative.
507 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
508 alternative.
509 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
510 attribute.
511 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
512 attribute to 0.
513 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
514 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
515 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
516 *avx_psign<mode>3): Set prefix_extra attribute to 1.
517 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
518 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
519 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
520 ssse3_psign<mode>3): Override prefix_rex attribute.
521 (*avx_palignrti): Override prefix_extra and length_immediate
522 to 1.
523 (ssse3_palignrti): Override length_immediate to 1.
524 (ssse3_palignrdi): Override length_immediate to 1, override
525 prefix_rex attribute.
526 (abs<mode>2): Override prefix_rep to 0, override prefix_rex
527 attribute.
528 (sse4a_extrqi): Override length_immediate to 2.
529 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
530 (sse4a_insertq): Override prefix_data16 to 0.
531 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
532 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
533 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
534 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
535 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
536 and length_immediate to 1.
537 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
538 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
539 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
540 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
541 and length_immediate to 1.
542 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
543 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
544 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
545 avx_ptest256): Override prefix_extra to 1.
546 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
547 Override prefix_data16 and length_immediate to 1.
548 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
549 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
550 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
551 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
552 prefix_data16 to 0 and prefix_extra to 2.
553 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
554 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
555 attribute.
556 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
557 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
558 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
559 and prefix_extra to 2.
560 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
561 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
562 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
563 avx_vpermilvar<mode>3,
564 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
565 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
566 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
567 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
568 Override prefix_extra to 1.
569 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
570 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
571 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
572 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
573 prefix_extra and length_immediate to 1.
574 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
575 modrm to 0.
576 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
577 to 1 for the first alternative.
578 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
579 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
580 cases.
581 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
582 *movv2sf_internal_avx, *movv2sf_internal): Override
583 prefix_rep attribute for certain alternatives.
584 (*mov<mode>_internal): Override prefix_rep or prefix_data16
585 attributes for certain alternatives.
586 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
587 attributes for certain alternatives.
588 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
589 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
590 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
591 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
592 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
593 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
594 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
595 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
596 length_immediate to 1 if operand 2 is const_int_operand.
597 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
598 *vec_extractv2si_1): Set length_immediate
599 attribute to 1.
600 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
601 using old 3DNOW insn rather than SSE/3DNOW_A.
602 (mmx_emms, mmx_femms): Clear modrm attribute.
603
604 2009-05-29 Martin Jambor <mjambor@suse.cz>
605
606 * tree-sra.c: New implementation of SRA.
607
608 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
609 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
610 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
611 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
612 (SRA_MAX_STRUCTURE_COUNT): Removed.
613 (SRA_FIELD_STRUCTURE_RATIO): Removed.
614 * doc/invoke.texi (sra-max-structure-size): Removed.
615 (sra-field-structure-ratio): Removed.
616
617 2009-05-29 Jakub Jelinek <jakub@redhat.com>
618
619 PR middle-end/40291
620 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
621 before expansion.
622
623 2009-05-29 Andrey Belevantsev <abel@ispras.ru>
624
625 PR rtl-optimization/40101
626 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
627 seqno. Adjust comment.
628 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
629 inserting bookkeeping before a jump, the jump is not scheduled.
630 When no positive seqno found, provide a value. Add comment.
631
632 2009-05-29 Richard Guenther <rguenther@suse.de>
633
634 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
635 short-cutting on the first component.
636
637 2009-05-29 Jakub Jelinek <jakub@redhat.com>
638
639 PR middle-end/39958
640 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
641 for trees other than decls/types.
642
643 2009-05-29 Richard Guenther <rguenther@suse.de>
644
645 * tree-ssa-operands.c (get_expr_operands): Do not handle
646 INDIRECT_REFs in the handled-component case. Remove
647 unused get_ref_base_and_extent case.
648 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
649 tree_low_cst and host_integerp where possible.
650 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
651 codes for equivalence.
652 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
653
654 2009-05-29 David Billinghurst <billingd@gcc.gnu.org>
655
656 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
657 to tmake_file for i[34567]86-*-cygwin*.
658
659 2009-05-29 Jakub Jelinek <jakub@redhat.com>
660
661 PR target/40017
662 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
663 (altivec_categorize_keyword, init_vector_keywords,
664 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
665 similar to bool.
666
667 2009-05-29 Kai Tietz <kai.tietz@onevision.com>
668
669 * tree.c (handle_dll_attribute): Check if node is
670 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
671
672 2009-05-29 Richard Earnshaw <rearnsha@arm.com>
673
674 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
675 component.
676 (thumb2_zero_extendqidi2): Likewise.
677
678 2009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
679
680 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
681 instead of gen_movrt.
682 * config/sh/sh.md (movrt): Remove.
683
684 2009-05-28 Steve Ellcey <sje@cup.hp.com>
685
686 * doc/invoke.texi (IA-64 Options)
687 Add -msdata, -mfused-madd, -mno-inline-float-divide,
688 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
689 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
690 -msched-prefer-non-control-spec-insns,
691 -msched-stop-bits-after-every-cycle,
692 -msched-count-spec-in-critical-path,
693 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
694 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns
695 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
696 and -msched-spec-verbose.
697
698 2009-05-28 Joseph Myers <joseph@codesourcery.com>
699
700 * config/arm/lib1funcs.asm (__clear_cache): Define if
701 L_clear_cache.
702 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
703 error if used.
704 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
705
706 2009-05-28 Richard Guenther <rguenther@suse.de>
707
708 * tree-ssa-alias.c (ao_ref_init): New function.
709 (ao_ref_base): Likewise.
710 (ao_ref_base_alias_set): Likewise.
711 (ao_ref_alias_set): Likewise.
712 (refs_may_alias_p_1): Change signature.
713 (refs_may_alias_p): Adjust.
714 (refs_anti_dependent_p): Likewise.
715 (refs_output_dependent_p): Likewise.
716 (call_may_clobber_ref_p_1): Change signature.
717 (call_may_clobber_ref_p): Adjust.
718 (stmt_may_clobber_ref_p_1): New function split out from ...
719 (stmt_may_clobber_ref_p): ... here.
720 (maybe_skip_until): Adjust signature.
721 (get_continuation_for_phi): Likewise.
722 (walk_non_aliased_vuses): Likewise.
723 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
724 (ao_ref_init): Declare.
725 (ao_ref_base): Likewise.
726 (ao_ref_alias_set): Likewise.
727 (stmt_may_clobber_ref_p_1): Likewise.
728 (walk_non_aliased_vuses): Adjust.
729 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
730 (get_ref_from_reference_ops): remove.
731 (vn_reference_lookup_2): Adjust signature.
732 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
733 (vn_reference_lookup_pieces): Adjust signature, do not re-build
734 trees.
735 (vn_reference_lookup): Adjust.
736 (vn_reference_insert): Likewise.
737 (vn_reference_insert_pieces): Adjust signature.
738 (visit_reference_op_call): Adjust.
739 * tree-ssa-pre.c (get_expr_type): Simplify.
740 (phi_translate_1): Adjust.
741 (compute_avail): Likewise.
742 (translate_vuse_through_block): Do not re-build trees.
743 (value_dies_in_block_x): Likewise.
744 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
745 fields.
746 (vn_reference_lookup_pieces): Adjust declaration.
747 (vn_reference_insert_pieces): Likewise.
748
749 2009-05-28 Benjamin Kosnik <bkoz@redhat.com>
750
751 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
752 with checking disabled.
753
754 2009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
755
756 PR target/37216
757
758 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
759 macro definition for support of three-operand format aligned
760 .comm directive in assembler on cygwin/pe/mingw target OS.
761 * configure: Regenerate.
762 * config.h: Regenerate.
763
764 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
765 aligned form of .comm directive if -mpe-aligned-commons is in effect.
766 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
767
768 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
769 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
770
771 2009-05-28 Ira Rosen <irar@il.ibm.com>
772
773 PR tree-optimization/40254
774 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
775 in analysis of basic blocks.
776
777 2009-05-28 Adam Nemet <anemet@caviumnetworks.com>
778
779 PR middle-end/33699
780 * target.h (struct gcc_target): Fix indentation. Add
781 const_anchor.
782 * target-def.h (TARGET_CONST_ANCHOR): New macro.
783 (TARGET_INITIALIZER): Use it.
784 * cse.c (CHEAPER): Move it up to the other macros.
785 (insert): Rename this ...
786 (insert_with_costs): ... to this. Add cost parameters. Update
787 function comment.
788 (insert): New function. Call insert_with_costs.
789 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
790 find_reg_offset_for_const, try_const_anchors): New functions.
791 (cse_insn): Call try_const_anchors. Adjust cost of src_related
792 when using a const-anchor. Call insert_const_anchors.
793 * config/mips/mips.c (mips_set_mips16_mode): Set
794 targetm.const_anchor.
795 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
796
797 2009-05-28 Alexandre Oliva <aoliva@redhat.com>
798
799 * tree-inline.c (remap_decls): Enable nonlocalized variables
800 when not optimizing.
801
802 2009-05-28 Alexandre Oliva <aoliva@redhat.com>
803
804 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
805 Simplify other tests involving optimize.
806
807 2009-05-27 Tom Tromey <tromey@redhat.com>
808
809 * unwind-dw2.c (_Unwind_DebugHook): New function.
810 (uw_install_context): Call _Unwind_DebugHook.
811
812 2009-05-27 Tom Tromey <tromey@redhat.com>
813
814 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
815
816 2009-05-27 Ian Lance Taylor <iant@google.com>
817
818 * Makefile.in (LINKER, LINKER_FLAGS): Define.
819 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
820 (ALL_LINKERFLAGS): Define.
821 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
822 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
823 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
824 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
825 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
826 $(LINKER_FOR_BUILD).
827 (build/gcov-iov$(build_exeext)): Likewise.
828
829 2009-05-27 Julian Brown <julian@codesourcery.com>
830
831 * gcse.c (target.h): Include.
832 (can_assign_to_reg_without_clobbers_p): Check that the target allows
833 copy of argument to a pseudo register.
834
835 2009-05-27 Diego Novillo <dnovillo@google.com>
836
837 * tree-ssa-live.c (dump_scope_block): Document arguments.
838 (dump_scope_blocks): Document.
839 (debug_scope_blocks): New.
840 * tree-flow.h (debug_scope_blocks): Declare.
841
842 2009-05-21 Denis Chertykov <denisc@overta.ru>
843
844 * doc/contrib.texi (Contributors): add myself to the list.
845
846 2009-05-27 Olivier Hainque <hainque@adacore.com>
847
848 * expr.c (target_align): New function. Alignment the TARGET of an
849 assignment may be assume to have.
850 (highest_pow2_factor_for_target): Use it instead of relying on
851 immediate tree attributes of TARGET, not necessarily honored when
852 intermediate bitfields are involved.
853
854 2009-05-27 H.J. Lu <hongjiu.lu@intel.com>
855
856 PR target/40266
857 * config/i386/driver-i386.c (host_detect_local_cpu): Support
858 AVX, SSE4, AES, PCLMUL and POPCNT.
859
860 2009-05-27 Diego Novillo <dnovillo@google.com>
861
862 * tree-pretty-print.c (dump_location): New.
863 (dump_generic_node): Call it.
864 Factor code to handle BLOCK nodes ...
865 (dump_block_node): ... here.
866
867 2009-05-27 Rafael Avila de Espindola <espindola@google.com>
868
869 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h with
870 it.
871 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
872 included.
873 * gcc-plugin.h: Include config.h and system.h.
874 (IN_GCC): Define if not defined.
875
876 2009-05-27 Hans-Peter Nilsson <hp@axis.com>
877
878 PR middle-end/40249
879 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
880 with -fno-inline.
881
882 2009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
883
884 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
885 applicable.
886 * config/m32r/m32r.h: Ditto.
887 * config/m32r/m32r.md: Ditto.
888 * config/m32r/predicates.md: Ditto.
889
890 2009-05-27 Alexandre Oliva <aoliva@redhat.com>
891
892 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
893
894 2009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
895
896 * doc/plugins.texi
897 (Loading plugins): typo.
898 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
899 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
900 (Interacting with the GCC Garbage Collector): Added new section.
901 (Giving information about a plugin): Added new section for
902 PLUGIN_INFO.
903 * ggc.h (ggc_register_root_tab): Added declaration.
904 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
905 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
906 (register_callback): Improved comment in declaration.
907 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for
908 vectors.
909 (extra_root_vec) Added static variable for dynamic roots
910 registration.
911 (ggc_register_root_tab) Added new routine.
912 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
913 PLUGIN_GGC_MARKING event.
914 * ggc-zone.c: Include plugin.h.
915 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
916 * ggc-page.c: Include plugin.h.
917 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
918 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
919 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
920 (register_callback): check lack of callbacks for
921 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
922 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
923 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
924 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
925 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
926 dependency on plugin.h.
927 (plugin.o): Added dependency on ggc.h...
928
929 2009-05-26 Richard Guenther <rguenther@suse.de>
930
931 PR middle-end/40248
932 Revert
933 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
934 with mismatched comparison modes.
935
936 * expr.c (expand_expr_real_1): Expand the operand of a
937 VIEW_CONVERT_EXPR in its natural mode.
938
939 2009-05-26 Ian Lance Taylor <iant@google.com>
940
941 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
942 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
943 (ALL_COMPILERFLAGS): Define.
944 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
945 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
946 (collect2$(exeext), collect2.o): Likewise.
947 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
948 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
949 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
950 (libbackend.o, intl.o, cppdefault.o): Likewise.
951 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
952 (build/%.o): Use $(COMPILER_FOR_BUILD).
953 (build/gen%$(build_exeext)): Likewise.
954 (build/gcov-iov$(build_exeext)): LIkewise.
955 * config/t-darwin (darwin.o): Use $(COMPILER).
956 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
957 * config/t-sol2 (sol2-c.o): Likewise.
958 (sol2.o): Likewise.
959 * config/t-vxworks (vxworks.o): Likewise.
960 * config/x-darwin (host-darwin.o): Likewise.
961 * config/x-hpux (host-hpux.o): Likewise.
962 * config/x-linux (host-linux.o): Likewise.
963 * config/x-solaris (host-solaris.o): Likewise.
964 * config/alpha/x-alpha (driver-alpha.o): Likewise.
965 * config/arm/t-arm (arm-c.o): Likewise.
966 * config/arm/t-pe (pe.o): Likewise.
967 * config/arm/t-wince-pe (pe.o): Likewise.
968 * config/i386/t-cygming (winnt.o): Likewise.
969 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
970 * config/i386/t-cygwin (cygwin1.o): Likewise.
971 (cygwin2.o): Likewise.
972 * config/i386/t-i386 (i386-c.o): Likewise.
973 * config/i386/t-interix (winnt.o): Likewise.
974 * config/i386/t-netware (netware.o): Likewise.
975 * config/i386/t-nwld (nwld.o): Likewise.
976 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
977 * config/i386/x-i386 (driver-i386.o): Likewise.
978 * config/i386/x-cygwin (host-cygwin.o): Likewise.
979 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
980 * config/ia64/t-ia64 (ia64-c.o): Likewise.
981 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
982 * config/mips/x-native (driver-native.o): Likewise.
983 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
984 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
985 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
986 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
987 * config/score/t-score-elf (score7.o): Likewise.
988 (score3.o): Likewise.
989 * config/sh/t-sh (sh-c.o): Likewise.
990 * config/sh/t-symbian (sh-c.o): Likewise.
991 (symbian.o): Likewise.
992 * config/spu/t-spu-elf (spu-c.o): Likewise.
993 * config/v850/t-v850 (v850-c.o): Likewise.
994 * config/v850/t-v850e (v850-c.o): Likewise.
995
996 2009-05-26 Richard Guenther <rguenther@suse.de>
997
998 PR tree-optimization/40122
999 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
1000 VECTOR_CSTs if possible.
1001 (fold_gimple_assign): Likewise.
1002
1003 2009-05-26 Richard Guenther <rguenther@suse.de>
1004
1005 PR middle-end/40252
1006 * fold-const.c (fold_binary): Use the correct types for building
1007 rotates.
1008
1009 2009-05-26 Richard Guenther <rguenther@suse.de>
1010
1011 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
1012 redundant calls to merge_alias_info.
1013 (bump_vector_ptr): Likewise.
1014 * tree-ssa-copy.c (merge_alias_info): Remove.
1015 (replace_exp_1): Remove call to merge_alias_info.
1016 (propagate_tree_value): Likewise.
1017 (fini_copy_prop): Propagate points-to info.
1018 * tree-flow.h (merge_alias_info): Remove.
1019
1020 2009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
1021
1022 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
1023
1024 2009-05-25 Jan Hubicka <jh@suse.cz>
1025
1026 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
1027 * cgraph.h (struct inline_summary): New filed self_wize,
1028 size_inlining_benefit, self_time and time_inlining_benefit.
1029 (struct cgraph_global_info): Replace insns by time ans size fields.
1030 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
1031 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
1032 (ipcp_update_callgraph): Do not touch function bodies.
1033 * ipa-inline.c: Include except.h
1034 (MAX_TIME): New constant.
1035 (overall_insns): Remove.
1036 (leaf_node_p): New.
1037 (overall_size, max_benefit): New static variables.
1038 (cgraph_estimate_time_after_inlining): New function.
1039 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
1040 (cgraph_clone_inlined_nodes): Update size.
1041 (cgraph_mark_inline_edge): Update size.
1042 (cgraph_estimate_growth): Use size info.
1043 (cgraph_check_inline_limits): Check size.
1044 (cgraph_default_inline_p): Likewise.
1045 (cgraph_edge_badness): Compute badness based on benefit and size cost.
1046 (cgraph_decide_recursive_inlining): Check size.
1047 (cgraph_decide_inlining_of_small_function): Update size; dump sizes and
1048 times.
1049 (cgraph_decide_inlining): Likewise.
1050 (cgraph_decide_inlining_incrementally): Likewise; honor
1051 PARAM_EARLY_INLINING_INSNS.
1052 (likely_eliminated_by_inlining_p): New predicate.
1053 (estimate_function_body_sizes): New function.
1054 (compute_inline_parameters): Use it.
1055 * except.c (must_not_throw_labels): New function.
1056 * except.h (must_not_throw_labels): Declare.
1057 * tree-inline.c (init_inline_once): Kill inlining_weigths
1058 * tree-ssa-structalias.c: Avoid uninitialized warning.
1059 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
1060 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
1061 (PARAM_INLINE_CALL_COST): Remove.
1062 (PARAM_EARLY_INLINING_INSNS): New.
1063
1064 2009-05-25 Richard Guenther <rguenther@suse.de>
1065
1066 PR tree-optimization/36327
1067 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
1068 callback for reference translation or lookup at the point
1069 of may-defs.
1070 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
1071 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
1072 for union COMPONENT_REFs.
1073 (vn_reference_lookup_3): New callback. Lookup from memset
1074 and CONSTRUCTOR assignment, translate through struct copies.
1075 (vn_reference_lookup_pieces): Make sure to not free the
1076 passed operands array. Adjust walk_non_aliased_vuses call.
1077 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
1078 make sure we do not leak memory.
1079
1080 2009-05-25 Richard Guenther <rguenther@suse.de>
1081
1082 * tree-ssa-alias.h (dump_points_to_solution): Declare.
1083 * tree-inline.c (expand_call_inline): Reset the escaped and
1084 callused solutions.
1085 * tree-ssa-structalias.c (pass_build_ealias): New.
1086 * tree-pass.h (pass_build_ealias): Declare.
1087 * passes.c (init_optimization_passes): Add PTA during
1088 early optimizations.
1089 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
1090 and CALLUSED solutions.
1091 (dump_points_to_solution): New function, split out from ...
1092 (dump_points_to_info_for): ... here.
1093 * tree-parloops.c (parallelize_loops): Reset the escaped and
1094 callused solutions.
1095
1096 2009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1097
1098 PR bootstrap/40027
1099 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
1100 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
1101
1102 2009-05-25 Ira Rosen <irar@il.ibm.com>
1103
1104 PR tree-optimization/40238
1105 * tree-vect-stmts.c (vect_init_vector): Insert initialization
1106 statements after basic block's labels.
1107 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
1108 to free the allocated memory.
1109
1110 2009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
1111
1112 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
1113 return address with a USE.
1114
1115 2009-05-24 Richard Guenther <rguenther@suse.de>
1116
1117 PR middle-end/40233
1118 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
1119 array type from the main variant of the inner type.
1120
1121 2009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1122
1123 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
1124 definition to bool (from int) to un-break build.
1125 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
1126
1127 2009-05-24 Paolo Bonzini <bonzini@gnu.org>
1128
1129 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
1130 discard_stmt_changes): Delete.
1131 * tree-ssa-operands.c (scb_stack): Delete.
1132 (init_ssa_operands): Do not initialize it.
1133 (fini_ssa_operands): Do not free it.
1134 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
1135
1136 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
1137 update_stmt, remove the others. Fix comments.
1138 * tree-dfa.c (optimize_stack_restore): Likewise.
1139 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
1140 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
1141 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
1142 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
1143 Likewise.
1144 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
1145 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
1146 (dom_opt_finalize_block): Likewise, adjusting access to stmts_to_rescan.
1147 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
1148 (stmts_to_rescan): Change item type to gimple.
1149 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
1150
1151 2009-05-24 Ira Rosen <irar@il.ibm.com>
1152
1153 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
1154 * tree-pass.h (pass_slp_vectorize): New pass.
1155 * params.h (SLP_MAX_INSNS_IN_BB): Define.
1156 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
1157 * tree-vectorizer.c (timevar.h): Include.
1158 (user_vect_verbosity_level): Declare.
1159 (vect_location): Fix comment.
1160 (vect_set_verbosity_level): Update user_vect_verbosity_level
1161 instead of vect_verbosity_level.
1162 (vect_set_dump_settings): Add an argument. Ignore user defined
1163 verbosity if dump flags require higher level of verbosity. Print to
1164 stderr only for loop vectorization.
1165 (vectorize_loops): Update call to vect_set_dump_settings.
1166 (execute_vect_slp): New function.
1167 (gate_vect_slp): Likewise.
1168 (struct gimple_opt_pass pass_slp_vectorize): New.
1169 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
1170 access its members.
1171 (vec_info_for_bb): New function.
1172 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
1173 (VECTORIZATION_ENABLED): New macro.
1174 (SLP_ENABLED, SLP_DISABLED): Likewise.
1175 (vect_is_simple_use): Add bb_vec_info argument.
1176 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
1177 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
1178 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
1179 vect_schedule_slp, vect_analyze_slp): Likewise.
1180 (vect_analyze_stmt): Add slp_tree argument.
1181 (find_bb_location): Declare.
1182 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
1183 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
1184 (vect_analyze_loop_operations, vect_analyze_loop,
1185 get_initial_def_for_induction, vect_create_epilog_for_reduction,
1186 vect_finalize_reduction, vectorizable_reduction,
1187 vectorizable_live_operation, vect_transform_loop): Likewise.
1188 * tree-data-ref.c (dr_analyze_innermost): Update comment,
1189 skip evolution analysis if analyzing a basic block.
1190 (dr_analyze_indices): Likewise.
1191 (initialize_data_dependence_relation): Skip the test whether the
1192 object is invariant for basic blocks.
1193 (compute_all_dependences): Skip dependence analysis for data
1194 references in basic blocks.
1195 (find_data_references_in_stmt): Don't fail in case of invariant
1196 access in basic block.
1197 (find_data_references_in_bb): New function.
1198 (find_data_references_in_loop): Move code to
1199 find_data_references_in_bb and add a call to it.
1200 (compute_data_dependences_for_bb): New function.
1201 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
1202 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
1203 that STEP is 0.
1204 (vect_analyze_data_ref_dependence): Check for interleaving in case of
1205 unknown dependence in basic block and fail in case of dependence in
1206 basic block.
1207 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
1208 dependence instances from either loop or basic block vectorization
1209 info.
1210 (vect_compute_data_ref_alignment): Check if it is loop vectorization
1211 before calling nested_in_vect_loop_p.
1212 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
1213 dependence instances from either loop or basic block vectorization
1214 info.
1215 (vect_verify_datarefs_alignment): Likewise.
1216 (vect_enhance_data_refs_alignment): Adjust function calls.
1217 (vect_analyze_data_refs_alignment): Likewise.
1218 (vect_analyze_group_access): Fix printing. Skip different checks if
1219 DR_STEP is 0. Keep strided stores either in loop or basic block
1220 vectorization data structure. Fix indentation.
1221 (vect_analyze_data_ref_access): Fix comments, allow zero step in
1222 basic blocks.
1223 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
1224 dependence instances from either loop or basic block vectorization
1225 info.
1226 (vect_analyze_data_refs): Update comment. Call
1227 compute_data_dependences_for_bb to analyze basic blocks.
1228 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
1229 case of loop vectorization. In case of basic block vectorization use
1230 data-ref itself as a base.
1231 (vect_create_data_ref_ptr): In case of basic block vectorization:
1232 don't advance the pointer, add new statements before the current
1233 statement. Adjust function calls.
1234 (vect_supportable_dr_alignment): Support only aligned accesses in
1235 basic block vectorization.
1236 * common.opt (ftree-slp-vectorize): New flag.
1237 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
1238 (vect_pattern_recog_1): Likewise.
1239 * tree-vect-stmts.c (process_use): Likewise.
1240 (vect_init_vector): Add new statements in the beginning of the basic
1241 block in case of basic block SLP.
1242 (vect_get_vec_def_for_operand): Adjust function calls.
1243 (vect_finish_stmt_generation): Likewise.
1244 (vectorizable_call): Add assert that it is loop vectorization, adjust
1245 function calls.
1246 (vectorizable_conversion, vectorizable_assignment): Likewise.
1247 (vectorizable_operation): In case of basic block SLP, take
1248 vectorization factor from statement's type and skip the relevance
1249 check. Adjust function calls.
1250 (vectorizable_type_demotion): Add assert that it is loop
1251 vectorization, adjust function calls.
1252 (vectorizable_type_promotion): Likewise.
1253 (vectorizable_store): Check for outer loop only in case of loop
1254 vectorization. Adjust function calls. For basic blocks, skip the
1255 relevance check and don't advance pointers.
1256 (vectorizable_load): Likewise.
1257 (vectorizable_condition): Add assert that it is loop vectorization,
1258 adjust function calls.
1259 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
1260 that it is not reduction, get vector type, call only supported
1261 functions, skip loop specific parts.
1262 (vect_transform_stmt): Check for outer loop only in case of loop
1263 vectorization.
1264 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
1265 (vect_is_simple_use): Fix comment, add new argument, fix conditions
1266 for external definition.
1267 * passes.c (pass_slp_vectorize): New pass.
1268 * tree-vect-slp.c (find_bb_location): New function.
1269 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
1270 check for patterns only in loops.
1271 (vect_build_slp_tree): Add argument, adjust function calls, fail in
1272 case of multiple types in basic block SLP.
1273 (vect_mark_slp_stmts_relevant): New function.
1274 (vect_supported_load_permutation_p): Fix comment.
1275 (vect_analyze_slp_instance): Add argument. In case of basic block
1276 SLP, take vectorization factor from statement's type, check that
1277 unrolling factor is 1. Adjust function call. Save SLP instance in
1278 either loop or basic block vectorization structure. Return FALSE,
1279 if SLP failed.
1280 (vect_analyze_slp): Add argument. Get strided stores groups from
1281 either loop or basic block vectorization structure. Return FALSE
1282 if basic block SLP failed.
1283 (new_bb_vec_info): New function.
1284 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
1285 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
1286 (vect_schedule_slp): Add argument. Get SLP instances from either
1287 loop or basic block vectorization structure. Set vectorization factor
1288 to be 1 for basic block SLP.
1289 (vect_slp_transform_bb): New function.
1290 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
1291
1292 2009-05-23 Mark Mitchell <mark@codesourcery.com>
1293
1294 * final.c (shorten_branches): Do not align labels for jump tables.
1295 (final_scan_insn): Use JUMP_TABLE_DATA_P.
1296
1297 2009-05-23 Eric Botcazou <ebotcazou@adacore.com>
1298
1299 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
1300 Remove outdated reference to flow.c and fix nits.
1301 * doc/gccint.texi: Tweak RTL description.
1302 * doc/rtl.texi: Likewise.
1303
1304 2009-05-23 Denis Chertykov <chertykov@gmail.com>
1305
1306 * config/avr/avr.c: Change my email address.
1307 * config/avr/avr.h: Likewise.
1308 * config/avr/avr.md: Likewise.
1309 * config/avr/avr-protos.h: Likewise.
1310 * config/avr/libgcc.S: Likewise.
1311
1312 2009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
1313
1314 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
1315 (spu_split_load, spu_split_store): Change return type to int.
1316 (spu_split_convert): Declare.
1317 * config/spu/predicates.md (spu_mem_operand): Remove.
1318 (spu_mov_operand): Update.
1319 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
1320 * config/spu/spu.c (regno_aligned_for_load): Remove.
1321 (reg_aligned_for_addr, spu_expand_load): Define.
1322 (spu_expand_extv): Reimplement and handle MEM.
1323 (spu_expand_insv): Handle MEM.
1324 (spu_sched_reorder): Handle insn's with length 0.
1325 (spu_legitimate_address_p): Reimplement.
1326 (store_with_one_insn_p): Return TRUE for any mode with size
1327 larger than 16 bytes.
1328 (address_needs_split): Define.
1329 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
1330 operands.
1331 (spu_convert_move): Define.
1332 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
1333 (spu_split_store): Change all MEM's to TImode.
1334 (spu_init_expanders): Preallocate registers that correspond to
1335 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
1336 mark_reg_pointer.
1337 (spu_split_convert): Define.
1338 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
1339 (_move<mode>, _movdi, _movti): Update predicate and condition.
1340 (load, store): Change to define_split.
1341 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
1342 extend<mode>ti2.
1343 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
1344 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
1345 define_insn_and_split of lshr<mode>3.
1346 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
1347 (<v>ashr<mode>3_imm): Define.
1348 (extv, extzv, insv): Allow MEM operands.
1349 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
1350 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
1351 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
1352 (_spu_convert2): Change to define_insn_and_split and remove the
1353 corresponding define_peephole2.
1354 (stack_protect_set, stack_protect_test, stack_protect_test_si):
1355 Change predicates to memory_operand.
1356
1357 2009-05-22 Mark Mitchell <mark@codesourcery.com>
1358
1359 * config/arm/thumb2.md: Add 16-bit multiply instructions.
1360
1361 2009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
1362
1363 PR tree-optimization/40219
1364 * tree.c (iterative_hash_expr): Make sure the builtin function is
1365 a normal builtin function and not a front end or back end builtin
1366 before indexing into the built_in_decls array.
1367
1368 2009-05-22 Richard Guenther <rguenther@suse.de>
1369
1370 PR middle-end/38964
1371 * alias.c (write_dependence_p): Do not use TBAA for answering
1372 anti-dependence or output-dependence.
1373 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
1374 (emit_pointer_definition): Remove.
1375 (emit_alias_warning): Likewise.
1376 (find_what_var_points_to): Remove TBAA pruning code.
1377 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
1378 violations.
1379 (compute_points_to_sets): Remove code computing the set of
1380 dereferenced pointers.
1381 * tree-data-ref.c (dr_may_alias_p): Properly use the split
1382 oracle for querying anti and output dependencies.
1383 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
1384 if TBAA may be applied.
1385 (refs_anti_dependent_p): New function.
1386 (refs_output_dependent_p): Likewise.
1387 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
1388 (refs_output_dependent_p): Likewise.
1389 * doc/tree-ssa.texi (Memory model): New section.
1390 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
1391 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
1392 * cfgexpand.c (expand_gimple_basic_block): Do not handle
1393 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
1394 * expr.c (expand_expr_real_1): Likewise.
1395 * gimple-low.c (lower_stmt): Likewise.
1396 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
1397 (dump_gimple_cdt): Remove.
1398 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
1399 (gimple_size): Likewise.
1400 (walk_gimple_op): Likewise.
1401 (is_gimple_stmt): Likewise.
1402 (walk_stmt_load_store_addr_ops): Likewise.
1403 (gimple_build_cdt): Remove.
1404 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
1405 * gimple.h (gimple_cdt_new_type): Remove.
1406 (gimple_cdt_new_type_ptr): Likewise.
1407 (gimple_cdt_set_new_type): Likewise.
1408 (gimple_cdt_location): Likewise.
1409 (gimple_cdt_location_ptr): Likewise.
1410 (gimple_cdt_set_location): Likewise.
1411 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
1412 * tree-cfg.c (remove_useless_stmts_1): Do not handle
1413 GIMPLE_CHANGE_DYNAMIC_TYPE.
1414 (verify_types_in_gimple_stmt): Likewise.
1415 * tree-inline.c (estimate_num_insns): Likewise.
1416 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
1417 (copy_decl_to_var): Likewise.
1418 (copy_result_decl_to_var): Likewise.
1419 * tree-pretty-print.c (dump_generic_node): Do not handle
1420 CHANGE_DYNAMIC_TYPE_EXPR.
1421 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
1422 * tree-ssa-operands.c (get_expr_operands): Likewise.
1423 * tree-ssa-structalias.c (struct variable_info): Remove
1424 no_tbaa_pruning member.
1425 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
1426 (unify_nodes): Do not copy it.
1427 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
1428 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
1429 (set_uids_in_ptset): Do not check it.
1430 (find_what_var_points_to): Likewise.
1431 (compute_tbaa_pruning): Remove.
1432 (compute_points_to_sets): Do not call it.
1433 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
1434 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
1435 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
1436 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
1437 (DECL_NO_TBAA_P): Likewise.
1438 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
1439 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
1440 (expand_omp_atomic_pipeline): Do not set it.
1441 * print-tree.c (print_node): Do not dump it.
1442 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
1443 redundant check.
1444
1445 2009-05-22 Vladimir Makarov <vmakarov@redhat.com>
1446
1447 PR target/39856
1448 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
1449 for clobber.
1450
1451 2009-05-22 Mark Mitchell <mark@codesourcery.com>
1452
1453 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
1454 non-external.
1455
1456 2009-05-22 Ben Elliston <bje@au.ibm.com>
1457
1458 * Makefile.in (bversion.h, s-bversion): New targets.
1459 (TOPLEV_H): Add bversion.h.
1460 * toplev.h: Include "bversion.h".
1461 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
1462 the __format__ attribute only if compiling with the same version
1463 of GCC as the sources (the "build version").
1464
1465 2009-05-22 Ben Elliston <bje@au.ibm.com>
1466
1467 * c-format.c (handle_format_attribute): Fix comment typo.
1468
1469 2009-05-21 Steve Ellcey <sje@cup.hp.com>
1470
1471 PR target/37846
1472 * config/ia64/ia64.opt (mfused-madd): New.
1473 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
1474 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
1475 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
1476 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
1477 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
1478 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
1479 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
1480 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
1481 instruction if !TARGET_FUSED_MADD.
1482 (fpma, fpms): Remove colon from name.
1483
1484 2009-05-22 Richard Guenther <rguenther@suse.de>
1485
1486 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
1487 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
1488 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
1489 TARGET_MEM_REF.
1490 (create_expression_by_pieces): Only convert if necessary.
1491 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
1492 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
1493
1494 2009-05-21 Adam Nemet <anemet@caviumnetworks.com>
1495
1496 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
1497 regular pattern from a template and rename it ...
1498 (*extzv_truncsi_exts): ... to this.
1499
1500 2009-05-21 Richard Guenther <rguenther@suse.de>
1501
1502 * cgraph.h (struct cgraph_node): Remove inline_decl member.
1503 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
1504 (cgraph_default_inline_p): Likewise.
1505 (cgraph_decide_inlining_incrementally): Likewise.
1506
1507 2009-05-21 H.J. Lu <hongjiu.lu@intel.com>
1508 Uros Bizjak <ubizjak@gmail.com>
1509
1510 * config/i386/cpuid.h (bit_MOVBE): New.
1511
1512 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
1513
1514 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
1515 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
1516 (ix86_handle_option): Handle OPT_mmovbe.
1517 (ix86_target_string): Add -mmovbe.
1518 (pta_flags): Add PTA_MOVBE.
1519 (processor_alias_table): Add PTA_MOVBE to "atom".
1520 (override_options): Handle PTA_MOVBE.
1521
1522 * config/i386/i386.h (TARGET_MOVBE): New.
1523
1524 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
1525 (*bswapsi_movbe): New.
1526 (*bswapdi_movbe): Likewise.
1527 (bswapdi2): Renamed to ...
1528 (*bswapdi_1): This.
1529 (bswapdi2): New expander.
1530
1531 * config/i386/i386.opt (mmovbe): New.
1532
1533 * doc/invoke.texi: Document -mmovbe.
1534
1535 2009-05-21 Taras Glek <tglek@mozilla.com>
1536
1537 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
1538 * gcc-plugin.h (plugin_init): Updated signature.
1539 * gcc-plugin.h (plugin_name_args): Moved to this header.
1540 * doc/plugins.texi (plugin_init): Updated documention to reflect
1541 API change.
1542 * doc/plugins.texi (plugin_name_args): Added to documention.
1543
1544 2009-05-21 Mark Mitchell <mark@codesourcery.com>
1545
1546 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
1547 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
1548
1549 2009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
1550
1551 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
1552 JUMP_TABLE_DATA_P predicates where applicable.
1553 * config/i386/predicates.md: Ditto.
1554 * config/i386/sse.md: Ditto.
1555
1556 2009-05-21 Jakub Jelinek <jakub@redhat.com>
1557
1558 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
1559 operand2 -128 override length_immediate attribute to 1.
1560 * config/i386/predicates.md (constm128_operand): New predicate.
1561
1562 * config/i386/i386.c (memory_address_length): Handle %r12
1563 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
1564 also check REGNO.
1565 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
1566 mode look through optional ZERO_EXTEND and SUBREG.
1567 * config/i386/i386.md (R12_REG): New define_constant.
1568 (prefix_data16): For sse unit set also for MODE_TI insns.
1569 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
1570 insns set if operand 1 is ext_QIreg_operand.
1571 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
1572 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
1573 immediate.
1574 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
1575 mode from MODE_DI to MODE_SI.
1576 (movdi_1_rex64): Override modrm and length_immediate attributes
1577 only for movabs (TYPE_IMOV, alternative 2).
1578 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
1579 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
1580 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
1581 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
1582 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
1583 prefix_rex attribute if DImode.
1584 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
1585 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
1586 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
1587 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
1588 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
1589 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
1590 Likewise. For TYPE_IMOV clear length_immediate attribute.
1591 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
1592 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
1593 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
1594 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
1595 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
1596 or one operand TYPE_ISHIFT.
1597 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
1598 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
1599 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
1600 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
1601 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
1602 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
1603 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
1604 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
1605 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
1606 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
1607 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
1608 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
1609 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
1610 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
1611 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
1612 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
1613 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
1614 set mode attribute, don't override length attribute.
1615 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
1616 to 1.
1617 (return_internal_long): Set length attribute to 2 instead of 1.
1618 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
1619 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
1620 prefix_rex attribute.
1621 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
1622 New predicates.
1623 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
1624
1625 2009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1626
1627 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
1628
1629 2009-05-20 Ian Lance Taylor <iant@google.com>
1630
1631 * tree.c (build_tree_list_vec_stat): New function.
1632 (ctor_to_vec): New function.
1633 (build_nt_call_vec): New function.
1634 (build_call_array): Change args to be a const pointer.
1635 (build_call_vec): New function.
1636 * tree.h (build_nt_call_vec): Declare.
1637 (build_tree_list_vec_stat): Declare.
1638 (build_tree_list_vec): Define.
1639 (build_call_array): Update declaration.
1640 (build_call_vec): Declare.
1641 (ctor_to_vec): Declare.
1642 * c-common.c (tree_vector_cache): New static variable.
1643 (make_tree_vector): New function.
1644 (release_tree_vector): New function.
1645 (make_tree_vector_single): New function.
1646 (make_tree_vector_copy): New function.
1647 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
1648 (make_tree_vector_single, make_tree_vector_copy): Declare.
1649 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
1650 (c_parser_expr_list): Don't manage cache here, instead call
1651 make_tree_vector.
1652 (c_parser_release_expr_list): Remove static function.
1653 (c_parser_vec_to_tree_list): Remove static function.
1654 (c_parser_attributes): Call build_tree_list_vec instead of
1655 c_parser_vec_to_tree_list. Call release_tree_vector instead of
1656 c_parser_release_expr_list.
1657 (c_parser_postfix_expression_after_primary): Likewise.
1658 (c_parser_objc_keywordexpr): Likewise.
1659
1660 2009-05-20 Sandra Loosemore <sandra@codesourcery.com>
1661
1662 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
1663 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
1664 TARGET_CONVERT_TO_TYPE.
1665 * hooks.c (hook_tree_const_tree_null): Define.
1666 * hooks.h (hook_tree_const_tree_null): Declare.
1667 * target.h (struct gcc_target): Add invalid_parameter_type,
1668 invalid_return_type, promoted_type, and convert_to_type fields.
1669 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
1670 (TARGET_INVALID_RETURN_TYPE): Define.
1671 (TARGET_PROMOTED_TYPE): Define.
1672 (TARGET_CONVERT_TO_TYPE): Define.
1673 (TARGET_INITIALIZER): Update for new fields.
1674 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
1675 (grokparms): Check targetm.invalid_parameter_type.
1676 * c-typeck.c (default_conversion): Check targetm.promoted_type.
1677 * c-convert.c (convert): Check targetm.convert_to_type.
1678
1679 2009-05-20 Adam Nemet <anemet@caviumnetworks.com>
1680
1681 * config/mips/mips.md (*extenddi_truncate<mode>,
1682 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
1683 defintions.
1684 (*extendhi_truncateqi): New define_insn_and_sptit.
1685
1686 2009-05-20 Jakub Jelinek <jakub@redhat.com>
1687
1688 PR middle-end/40204
1689 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
1690 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
1691
1692 2009-05-20 Eric Botcazou <ebotcazou@adacore.com>
1693
1694 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
1695 the operand of VIEW_CONVERT_EXPR.
1696
1697 2009-05-20 H.J. Lu <hongjiu.lu@intel.com>
1698
1699 * config/i386/driver-i386.c (host_detect_local_cpu): Check
1700 extended family and model for Intel processors. Support Intel
1701 Atom.
1702
1703 2009-05-20 Olivier Hainque <hainque@adacore.com>
1704
1705 * gstab.h (stab_code_type): Define, to be used instead of the
1706 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
1707 notice.
1708 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
1709 occurrences by stab_code_type.
1710 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
1711
1712 2009-05-20 Martin Jambor <mjambor@suse.cz>
1713
1714 * tree-flow.h (insert_edge_copies_seq): Undeclare.
1715 (sra_insert_before): Likewise.
1716 (sra_insert_after): Likewise.
1717 (sra_init_cache): Likewise.
1718 (sra_type_can_be_decomposed_p): Likewise.
1719 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
1720 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
1721 (sra_insert_before): Likewise.
1722 (sra_insert_after): Likewise.
1723 (sra_init_cache): Likewise.
1724 (insert_edge_copies_seq): Made static and moved upwards.
1725
1726 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
1727 case.
1728
1729 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
1730
1731 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
1732 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
1733 simple copies.
1734
1735 2009-05-20 Richard Guenther <rguenther@suse.de>
1736
1737 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
1738 with mismatched comparison modes.
1739
1740 2009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1741
1742 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
1743 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
1744 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
1745 with shifts for Thumb2.
1746 (orsi_notsi): New for orn.
1747 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
1748 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
1749 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
1750 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
1751 Don't invert remainder for IOR.
1752
1753 2009-05-19 Zdenek Dvorak <ook@ucw.cz>
1754
1755 PR tree-optimization/40087
1756 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
1757 number_of_iterations_ne): Rename never_infinite argument.
1758 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
1759 number_of_iterations_le): Handle pointer-type ivs when
1760 exit_must_be_taken is false.
1761 (number_of_iterations_cond): Do not always assume that
1762 exit_must_be_taken if the control variable is a pointer.
1763
1764 2009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
1765
1766 * c-typeck.c (build_binary_op): Allow % on integal vectors.
1767 * doc/extend.texi (Vector Extension): Document that % is allowed too.
1768
1769 2009-05-19 H.J. Lu <hongjiu.lu@intel.com>
1770
1771 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
1772 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
1773
1774 2009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
1775
1776 PR c/40172
1777 * c.opt (Wlogical-op): Disabled by default.
1778 * c-opt (c_common_post_options): Do not enable Wlogical-op with
1779 Wextra.
1780 * doc/invoke.texi (Wlogical-op): Likewise.
1781
1782 2009-05-19 Eric Botcazou <ebotcazou@adacore.com>
1783
1784 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
1785 into CASE_CONVERT.
1786 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
1787 Propagate the type of the first operand.
1788 <ASSERT_EXPR>: Simplify.
1789 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
1790 Rewrite using the RHS code as discriminant.
1791 <NOP_EXPR>: Turn into CASE_CONVERT.
1792 <PLUS_EXPR>: Propagate the type of the first operand.
1793
1794 2009-05-19 Steve Ellcey <sje@cup.hp.com>
1795
1796 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
1797 (ia64_dconst_0_375): New.
1798 * config/ia64/ia64.c (ia64_override_options): Remove
1799 -minline-sqrt-min-latency warning.
1800 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
1801 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
1802 * config/ia64/ia64.md (*sqrt_approx): Remove.
1803 (sqrtsf2): Remove #if 0.
1804 (sqrtsf2_internal_thr): Rewrite and move to div.md.
1805 (sqrtdf): Remove assert.
1806 (sqrtdf2_internal_thr): Rewrite and move to div.md.
1807 (sqrtxf2): Remove #if 0.
1808 (sqrtxf2_internal_thr): Rewrite and move to div.md.
1809 * div.md (sqrt_approx_rf): New.
1810 (sqrtsf2_internal_thr): New implementation.
1811 (sqrtsf2_internal_lat): New.
1812 (sqrtdf2_internal_thr: New implementation.
1813 (sqrtxf2_internal): New implementation.
1814
1815 2009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
1816 Hans-Peter Nilsson <hp@axis.com>
1817
1818 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
1819 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
1820 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
1821 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
1822 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
1823 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
1824 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
1825 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
1826 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
1827 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
1828 * c-common.c: ...from here.
1829
1830 2009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
1831
1832 * c-common.c (warn_logical_operator): Remove unnecessary
1833 conditionals.
1834
1835 2009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1836
1837 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
1838
1839 2009-05-19 Ben Elliston <bje@au.ibm.com>
1840
1841 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
1842 assignments with memcpy calls.
1843 (add_fdes): Likewise.
1844 (binary_search_unencoded_fdes): Likewise.
1845 (linear_search_fdes): Eliminate type puns.
1846
1847 2009-05-19 Richard Guenther <rguenther@suse.de>
1848
1849 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
1850 not falsely claim to have propagated into all uses.
1851
1852 2009-05-19 Ben Elliston <bje@au.ibm.com>
1853
1854 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
1855 version to v3.0.
1856
1857 2009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
1858
1859 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
1860 * config/sh/sh.c (sh_legitimate_address_p): Make static.
1861 (TARGET_LEGITIMATE_ADDRESS_P): New.
1862 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1863 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
1864
1865 2009-05-18 Dodji Seketeli <dodji@redhat.com>
1866
1867 PR debug/40109
1868 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
1869 child of the containing namespace's DIE.
1870
1871 2009-05-18 Adam Nemet <anemet@caviumnetworks.com>
1872
1873 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
1874 *zero_extendhi_truncqi): Move after the zero_extend patterns.
1875 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
1876 extend patterns.
1877
1878 2009-05-18 H.J. Lu <hongjiu.lu@intel.com>
1879
1880 PR target/39942
1881 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
1882 gen_align with gen_pad.
1883 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
1884 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
1885
1886 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
1887 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
1888
1889 * config/i386/i386.md (align): Renamed to ...
1890 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
1891 ASM_OUTPUT_MAX_SKIP_PAD.
1892
1893 2009-05-18 Andreas Schwab <schwab@linux-m68k.org>
1894
1895 * config.gcc: Fix variable syntax.
1896
1897 PR target/39531
1898 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
1899 before calling exact_log2.
1900 (output_iorsi3): Likewise.
1901 (output_xorsi3): Likewise.
1902
1903 2009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
1904
1905 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
1906 for the none zero constant operand except for EQ and NE
1907 comprisons even when the first operand is R0.
1908
1909 2009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
1910
1911 * config/s390/2064.md: Remove trailing whitespaces.
1912 * config/s390/2084.md: Likewise.
1913 * config/s390/constraints.md: Likewise.
1914 * config/s390/fixdfdi.h: Likewise.
1915 * config/s390/libgcc-glibc.ver: Likewise.
1916 * config/s390/s390-modes.def: Likewise.
1917 * config/s390/s390-protos.h: Likewise.
1918 * config/s390/s390.c: Likewise.
1919 * config/s390/s390.h: Likewise.
1920 * config/s390/s390.md: Likewise.
1921 * config/s390/tpf-unwind.h: Likewise.
1922
1923 2009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
1924
1925 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
1926
1927 2009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
1928
1929 M68K TLS support.
1930 * configure.ac (m68k-*-*): Check if binutils support TLS.
1931 * configure: Regenerate.
1932 * config/m68k/predicates.md (symbolic_operand): Extend comment.
1933 * config/m68k/constraints.md (Cu): New constraint.
1934 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
1935 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
1936 (movsi): Handle TLS symbols.
1937 (addsi3_5200): Handle XTLS symbols, indent.
1938 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
1939 (m68k_tls_reference_p): Declare.
1940 (m68k_legitimize_address): Declare.
1941 (m68k_unwrap_symbol): Declare.
1942 * config/m68k/m68k.opt (mxtls): New option.
1943 * config/m68k/m68k.c (ggc.h): Include.
1944 (m68k_output_dwarf_dtprel): Implement hook.
1945 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
1946 (m68k_expand_prologue): Load GOT pointer when function needs it.
1947 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
1948 (m68k_legitimate_constant_address_p): Same.
1949 (m68k_decompose_address): Handle TLS references.
1950 (m68k_get_gp): New static function.
1951 (enum m68k_reloc): New contants.
1952 (TLS_RELOC_P): New macro.
1953 (m68k_wrap_symbol): New static function.
1954 (m68k_unwrap_symbol): New function.
1955 (m68k_final_prescan_insn_1): New static function.
1956 (m68k_final_prescan_insn): New function.
1957 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
1958 functions.
1959 (legitimize_pic_address): Handle TLS references..
1960 (m68k_tls_get_addr, m68k_get_tls_get_addr)
1961 (m68k_libcall_value_in_a0_p)
1962 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
1963 (m68k_call_m68k_read_tp): Helper variables and functions for ...
1964 (m68k_legitimize_tls_address): Handle TLS references.
1965 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
1966 New functions.
1967 (m68k_legitimize_address): Handle TLS symbols.
1968 (m68k_get_reloc_decoration): New static function.
1969 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
1970 UNSPEC_RELOC32.
1971 (m68k_output_dwarf_dtprel): Implement hook.
1972 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
1973 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
1974 m68k_call_* routines.
1975 (sched_attr_op_type): Handle TLS symbols.
1976 (gt-m68k.h): Include.
1977 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
1978 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
1979
1980 2009-05-18 Martin Jambor <mjambor@suse.cz>
1981
1982 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
1983 (visit_store_addr_for_mod_analysis): New function.
1984 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
1985 (determine_cst_member_ptr): Use gimple_assign_single_p.
1986 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
1987 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
1988 operands. Don't check number of operands of a NOP_EXPR.
1989
1990 2009-05-18 Eric Fisher <joefoxreal@gmail.com>
1991
1992 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
1993
1994 2009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
1995
1996 PR c/40172
1997 * c-common.c (warn_logical_operator): Don't warn if one of
1998 expression isn't always true or false.
1999
2000 2009-05-17 Kai Tietz <kai.tietz@onevision.com>
2001
2002 * config/i386/biarch32.h: New file.
2003 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
2004
2005 2009-05-17 Adam Nemet <anemet@caviumnetworks.com>
2006
2007 * config/mips/mips.md (*zero_extend<mode>_trunchi,
2008 *zero_extend<mode>_truncqi): Merge these into ...
2009 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
2010 Name the pattern following this as *zero_extendhi_truncqi.
2011
2012 2009-05-16 Brad Lucier <lucier@math.purdue.edu>
2013
2014 PR middle-end/39301
2015 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
2016 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
2017 (output_info): Make field HOST_WIDEST_INT.
2018 (print_statistics): Use HOST_WIDEST_INT_PRINT.
2019 (dump_bitmat_statistics): Same.
2020
2021 2009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
2022
2023 * config.gcc (use_gcc_stdint): Set to wrap.
2024 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
2025 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
2026 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
2027 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
2028 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
2029 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
2030 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
2031 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
2032
2033 2009-05-16 Joseph Myers <joseph@codesourcery.com>
2034
2035 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
2036 tune_64.
2037 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
2038 Move definitions earlier.
2039 (OPT_ARCH64, OPT_ARCH32): Define.
2040 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
2041 and tune_64.
2042
2043 2009-05-16 Richard Earnshaw <rearnsha@arm.com>
2044
2045 PR target/40153
2046 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
2047 implies.
2048
2049 2009-05-16 Richard Earnshaw <rearnsha@arm.com>
2050
2051 * arm.md (movdi2): Copy non-reg values to DImode registers.
2052
2053 2009-05-16 Jakub Jelinek <jakub@redhat.com>
2054
2055 PR target/39942
2056 * final.c (label_to_max_skip): New function.
2057 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
2058 CODE_LABEL_NUMBER <= max_labelno.
2059 * output.h (label_to_max_skip): New prototype.
2060 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
2061 (ix86_avoid_jump_mispredicts): ... this. Don't define if
2062 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
2063 Handle CODE_LABELs with >= 16 byte alignment or with
2064 max_skip == (1 << align) - 1.
2065 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
2066 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
2067
2068 PR target/39942
2069 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
2070 .p2align 3 if MAX_SKIP is smaller than 7.
2071 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
2072
2073 2009-05-15 Ian Lance Taylor <iant@google.com>
2074
2075 * alias.c (struct alias_set_entry_d): Rename from struct
2076 alias_set_entry. Change all uses.
2077 * except.c (struct call_site_record_d): Rename from struct
2078 call_site_record. Change all uses.
2079 * except.h (struct eh_region_d): Rename from struct eh_region.
2080 Change all uses.
2081 * gcse.c (struct hash_table_d): Rename from struct hash_table.
2082 Change all uses.
2083 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
2084 ivtype_map_elt. Change all uses.
2085 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
2086 Change all uses.
2087 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
2088 * graphite.h (struct name_tree_d): Rename from struct name_tree.
2089 Change all uses.
2090 (struct sese_d): Rename from struct sese. Change all uses.
2091 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
2092 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
2093 * optabs.h (struct optab_d): Rename from struct optab. Change all
2094 uses.
2095 (struct convert_optab_d): Rename from struct convert_optab.
2096 Change all uses.
2097 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
2098 ipa_opt_pass. Change all uses.
2099 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
2100 all uses.
2101
2102 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
2103 defined as a typedef.
2104 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
2105 defined as a tag.
2106
2107 2009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
2108
2109 PR 16302
2110 * fold-const.c (make_range,build_range_check,merge_ranges): Move
2111 declaration to...
2112 (merge_ranges): Returns bool.
2113 * tree.h (make_range): .. to here.
2114 (build_range_check): Likewise.
2115 (merge_ranges): Likewise. Renamed from merge_ranges.
2116 * c-typeck.c (parser_build_binary_op): Update calls to
2117 warn_logical_operator.
2118 * c-common.c (warn_logical_operator): Add new warning.
2119 * c-common.h (warn_logical_operator): Update declaration.
2120
2121 2009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
2122
2123 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
2124
2125 2009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2126
2127 * doc/install.texi: Document MPC requirements, flags etc.
2128
2129 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
2130 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
2131 Evaluate constant arguments.
2132 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
2133 (fold_builtin_1): Likewise, also evaluate constant arguments.
2134 Remove superfluous break.
2135 (do_mpc_ckconv): New.
2136 * real.h: Include mpc.h.
2137 * toplev.c (print_version): Output MPC version info if available.
2138
2139 2009-05-15 Sandra Loosemore <sandra@codesourcery.com>
2140
2141 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
2142
2143 2009-05-15 H.J. Lu <hongjiu.lu@intel.com>
2144
2145 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
2146 only once.
2147
2148 2009-05-15 Jan Hubicka <jh@suse.cz>
2149
2150 * doc/invoke.texi (max-early-inliner-iterations): New flag.
2151 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
2152 (try_inline): Fix return value.
2153 (cgraph_decide_inlining_incrementally): Honor new value.
2154 (cgraph_early_inlining): Handle indirect inlining.
2155 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
2156
2157 2009-05-15 Jan Hubicka <jh@suse.cz>
2158
2159 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
2160 * cgraphunit.c (cgraph_finalize_function): Set it.
2161 (cgraph_expand_function): Use it.
2162
2163 2009-05-15 Sandra Loosemore <sandra@codesourcery.com>
2164
2165 * real.c (encode_ieee_half): Define.
2166 (decode_ieee_half): Define.
2167 (ieee_half_format): Define.
2168 (arm_half_format): Define.
2169 * real.h (ieee_half_format): Declare.
2170 (arm_half_format): Declare.
2171
2172 2009-05-15 Sandra Loosemore <sandra@codesourcery.com>
2173
2174 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
2175 swapped, and reversed optabs exist before trying to use them.
2176
2177 2009-05-15 Paul Brook <paul@codesourcery.com>
2178 Sandra Loosemore <sandra@codesourcery.com>
2179
2180 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
2181 loads. Allow PRE_DEC.
2182 (output_move_neon): Handle PRE_DEC.
2183 (arm_print_operand): Add 'A' for neon structure loads.
2184 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
2185 * config/arm/neon.md (neon_mov): Update comment.
2186 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
2187 calls.
2188 (Um): New constraint.
2189
2190 2009-05-15 Jan Hubicka <jh@suse.cz>
2191
2192 Revert the following patch until testsuite fallout is fixed:
2193 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2194 * cgraph.h (struct inline_summary): New filed self_wize,
2195 size_inlining_benefit, self_time and time_inlining_benefit.
2196 (struct cgraph_global_info): Replace insns by time ans size fields.
2197 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2198 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2199 (ipcp_update_callgraph): Do not touch function bodies.
2200 * ipa-inline.c: Include except.h
2201 (MAX_TIME): New constant.
2202 (overall_insns): Remove
2203 (overall_size, max_benefit): New static variables.
2204 (cgraph_estimate_time_after_inlining): New function.
2205 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2206 (cgraph_clone_inlined_nodes): Update size.
2207 (cgraph_mark_inline_edge): Update size.
2208 (cgraph_estimate_growth): Use size info.
2209 (cgraph_check_inline_limits): Check size.
2210 (cgraph_default_inline_p): Likewise.
2211 (cgraph_edge_badness): Compute badness based on benefit and size cost.
2212 (cgraph_decide_recursive_inlining): Check size.
2213 (cgraph_decide_inlining_of_small_function): Update size; dump sizes and
2214 times.
2215 (cgraph_decide_inlining): Likewise.
2216 (cgraph_decide_inlining_incrementally): Likewise; honor
2217 PARAM_EARLY_INLINING_INSNS.
2218 (likely_eliminated_by_inlining_p): New predicate.
2219 (estimate_function_body_sizes): New function.
2220 (compute_inline_parameters): Use it.
2221 * except.c (must_not_throw_labels): New function.
2222 * except.h (must_not_throw_labels): Declare.
2223 * tree-inline.c (init_inline_once): Kill inlining_weigths
2224 * tree-ssa-structalias.c: Avoid uninitialized warning.
2225 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2226 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2227 (PARAM_INLINE_CALL_COST): Remove.
2228 (PARAM_EARLY_INLINING_INSNS): New.
2229
2230 2009-05-15 Richard Guenther <rguenther@suse.de>
2231
2232 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
2233 not TODO_update_ssa.
2234
2235 2009-05-15 Richard Guenther <rguenther@suse.de>
2236
2237 PR tree-optimization/39999
2238 * gimple.h (gimple_expr_type): Use the expression type looking
2239 through useless conversions.
2240 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
2241 (vn_nary_op_insert_stmt): Likewise.
2242 (simplify_binary_expression): Likewise.
2243
2244 2009-05-15 Richard Guenther <rguenther@suse.de>
2245
2246 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
2247 New options, enabled by default.
2248 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
2249 Document.
2250 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
2251 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
2252 * tree-ssa-structalias.c (gate_tree_pta): New function.
2253 (pass_build_alias): Use it.
2254
2255 2009-05-15 Joseph Myers <joseph@codesourcery.com>
2256
2257 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
2258 recurse on an invariant address if a conversion from a pointer
2259 type to a wider integer type is involved.
2260
2261 2009-05-15 Jan Hubicka <jh@suse.cz>
2262
2263 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2264 * cgraph.h (struct inline_summary): New filed self_wize,
2265 size_inlining_benefit, self_time and time_inlining_benefit.
2266 (struct cgraph_global_info): Replace insns by time ans size fields.
2267 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2268 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2269 (ipcp_update_callgraph): Do not touch function bodies.
2270 * ipa-inline.c: Include except.h
2271 (MAX_TIME): New constant.
2272 (overall_insns): Remove
2273 (overall_size, max_benefit): New static variables.
2274 (cgraph_estimate_time_after_inlining): New function.
2275 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2276 (cgraph_clone_inlined_nodes): Update size.
2277 (cgraph_mark_inline_edge): Update size.
2278 (cgraph_estimate_growth): Use size info.
2279 (cgraph_check_inline_limits): Check size.
2280 (cgraph_default_inline_p): Likewise.
2281 (cgraph_edge_badness): Compute badness based on benefit and size cost.
2282 (cgraph_decide_recursive_inlining): Check size.
2283 (cgraph_decide_inlining_of_small_function): Update size; dump sizes and
2284 times.
2285 (cgraph_decide_inlining): Likewise.
2286 (cgraph_decide_inlining_incrementally): Likewise; honor
2287 PARAM_EARLY_INLINING_INSNS.
2288 (likely_eliminated_by_inlining_p): New predicate.
2289 (estimate_function_body_sizes): New function.
2290 (compute_inline_parameters): Use it.
2291 * except.c (must_not_throw_labels): New function.
2292 * except.h (must_not_throw_labels): Declare.
2293 * tree-inline.c (init_inline_once): Kill inlining_weigths
2294 * tree-ssa-structalias.c: Avoid uninitialized warning.
2295 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2296 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2297 (PARAM_INLINE_CALL_COST): Remove.
2298 (PARAM_EARLY_INLINING_INSNS): New.
2299 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
2300 (inline-call-cost): Remove.
2301 (early-inlining-insns): New.
2302
2303 2009-05-15 Eric Botcazou <ebotcazou@adacore.com>
2304
2305 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
2306 for bounds.
2307 (print_int_cst_bounds_in_octal_p): Likewise.
2308 (dbxout_type): Adjust calls to above functions. Be prepared to deal
2309 with subtypes.
2310 * dwarf2out.c (base_type_die): Likewise.
2311 (is_subrange_type): Delete.
2312 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
2313 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
2314 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it if
2315 the destination type is boolean.
2316 (build_range_check): Do not special-case subtypes.
2317 (fold_sign_changed_comparison): Likewise.
2318 (fold_unary): Likewise.
2319 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
2320 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
2321 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
2322 * tree.c (subrange_type_for_debug_p): New predicate based on the former
2323 is_subrange_type.
2324 * tree.h (subrange_type_for_debug_p): Declare.
2325 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
2326 (convert_affine_scev): Remove call to above function.
2327 (chrec_convert_aggressive): Likewise.
2328 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
2329 false for conversions involving subtypes.
2330 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
2331 (vrp_val_min): Likewise.
2332 (needs_overflow_infinity): Likewise.
2333 (extract_range_from_unary_expr): Likewise.
2334
2335 2009-05-15 Paolo Bonzini <bonzini@gnu.org>
2336
2337 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
2338 * config/frv/frv.c: Likewise.
2339 * config/s390/s390.c: Likewise.
2340 * config/sparc/sparc.h: Likewise.
2341 * config/i386/i386.h: Likewise.
2342 * config/i386/i386.c: Likewise.
2343 * config/crx/crx.c: Likewise.
2344 * config/m68hc11/m68hc11.h: Likewise.
2345 * config/iq2000/iq2000.c: Likewise.
2346 * config/mn10300/mn10300.h: Likewise.
2347 * config/mn10300/mn10300.c: Likewise.
2348 * config/m68k/m68k.c: Likewise.
2349 * config/rs6000/rs6000.c: Likewise.
2350 * config/rs6000/xcoff.h: Likewise.
2351 * config/rs6000/linux64.h: Likewise.
2352 * config/rs6000/sysv4.h: Likewise.
2353 * config/score/score3.c: Likewise.
2354 * config/score/score7.c: Likewise.
2355 * config/score/score.c: Likewise.
2356 * config/arm/arm.md: Likewise.
2357 * config/mips/mips.c: Likewise.
2358 * config/mips/mips.md: Likewise.
2359 * config/bfin/bfin.h: Likewise.
2360 * config/pa/pa.c: Likewise.
2361 * config/pa/constraints.md: Likewise.
2362
2363 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
2364 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
2365 * config/pdp11/pdp11.h: Use memory_address_p instead.
2366
2367 2009-05-14 Ian Lance Taylor <iant@google.com>
2368
2369 * passes.c (finish_optimization_passes): Change i to int.
2370 * plugin.c (plugins_active_p): Change event to int.
2371 (dump_active_plugins): Likewise.
2372 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
2373 Add cast.
2374 * tree.c (tree_range_check_failed): Change c to unsigned int.
2375 (omp_clause_range_check_failed): Likewise.
2376 (build_common_builtin_nodes): Change mode to int. Add cast.
2377 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
2378 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
2379
2380 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
2381 ++ or -- with a variable of enum type.
2382
2383 2009-05-14 Steven Bosscher <steven@gcc.gnu.org>
2384
2385 PR driver/40144
2386 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
2387
2388 2009-05-14 Steven Bosscher <steven@gcc.gnu.org>
2389
2390 * store-motion.c: Do not include params.h
2391 * Makefile.in: Fix dependencies for various files.
2392
2393 2009-05-14 Steven Bosscher <steven@gcc.gnu.org>
2394
2395 * auto-inc-dec.c: Fix pass description, remove apparent
2396 accidental duplication.
2397
2398 2009-05-14 H.J. Lu <hongjiu.lu@intel.com>
2399
2400 PR middle-end/40147
2401 * ipa-utils.h (memory_identifier_string): Moved to ...
2402 * tree.h (memory_identifier_string): Here. Add GTY(()).
2403
2404 2009-05-14 Paolo Bonzini <bonzini@gnu.org>
2405
2406 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
2407 in the former documentation of...
2408 (GO_IF_LEGITIMATE_ADDRESS): ... this.
2409 * ira-conflicts.c (get_dup_num): Use address_operand.
2410 * targhooks.c (default_legitimate_address_p): New.
2411 * targhooks.h (default_legitimate_address_p): New.
2412 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
2413 Call hook.
2414 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
2415 * target.h (struct target): Add legitimate_address_p.
2416 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
2417 (TARGET_INITIALIZER): Include it.
2418
2419 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2420 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
2421 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
2422 (TARGET_LEGITIMATE_ADDRESS_P): New.
2423
2424 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2425 (REG_OK_STRICT_P): Delete.
2426 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
2427 (frv_legitimate_address_p_1): ... this.
2428 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
2429 (frv_legitimate_address_p_1): ... the renamed old
2430 frv_legitimate_address_p.
2431 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
2432 (TARGET_LEGITIMATE_ADDRESS_P): New.
2433
2434 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2435 * config/s390/s390-protos.h (legitimate_address_p): Remove.
2436 * config/s390/s390.c (legitimate_address_p): Rename to...
2437 (s390_legitimate_address_p): ... this, make static.
2438 (legitimize_address): Adjust call.
2439 (TARGET_LEGITIMATE_ADDRESS_P): New.
2440 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
2441
2442 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2443 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
2444 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
2445 (TARGET_LEGITIMATE_ADDRESS_P): New.
2446
2447 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2448 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
2449 * config/spu/spu.c (spu_legitimate_address): Rename to...
2450 (spu_legitimate_address_p): ... this, make static.
2451 (TARGET_LEGITIMATE_ADDRESS_P): New.
2452
2453 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2454 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
2455 * config/sparc/sparc.c (legitimate_address_p): Rename to...
2456 (sparc_legitimate_address_p): ... this, make static and return bool.
2457 (legitimize_address): Adjust call.
2458 (TARGET_LEGITIMATE_ADDRESS_P): New.
2459
2460 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2461 * config/i386/i386-protos.h (legitimate_address_p): Remove.
2462 * config/i386/i386.c (legitimate_address_p): Rename to...
2463 (ix86_legitimate_address_p): ... this, make static.
2464 (constant_address_p): Move after it, adjust call.
2465 (TARGET_LEGITIMATE_ADDRESS_P): New.
2466
2467 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2468 * config/avr/avr-protos.h (legitimate_address_p): Remove.
2469 * config/avr/avr.c (legitimate_address_p): Rename to...
2470 (avr_legitimate_address_p): ... this, make static.
2471 (legitimize_address): Adjust call.
2472 (TARGET_LEGITIMATE_ADDRESS_P): New.
2473
2474 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2475 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
2476 * config/crx/crx.c (crx_legitimate_address_p): Make static.
2477 (TARGET_LEGITIMATE_ADDRESS_P): New.
2478
2479 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2480 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
2481 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
2482 (TARGET_LEGITIMATE_ADDRESS_P): New.
2483
2484 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2485 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
2486 Remove.
2487 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
2488 Make static.
2489 (TARGET_LEGITIMATE_ADDRESS_P): New.
2490
2491 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2492 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
2493 Remove.
2494 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
2495 Rename to...
2496 (m68hc11_legitimate_address_p): ... this, make static.
2497 (go_if_legitimate_address_internal): Rename to...
2498 (m68hc11_legitimate_address_p_1): ... this.
2499 (legitimize_address): Adjust call.
2500 (TARGET_LEGITIMATE_ADDRESS_P): New.
2501
2502 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2503 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
2504 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
2505 (TARGET_LEGITIMATE_ADDRESS_P): New.
2506
2507 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2508 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
2509 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
2510 (mn10300_legitimate_address_p): ... this, make static.
2511 (TARGET_LEGITIMATE_ADDRESS_P): New.
2512
2513 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2514 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
2515 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
2516 (TARGET_LEGITIMATE_ADDRESS_P): New.
2517
2518 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2519 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
2520 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
2521 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2522 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
2523 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
2524 (rs6000_legitimate_address_p): ... this, make static.
2525 (TARGET_LEGITIMATE_ADDRESS_P): New.
2526 (REG_MODE_OK_FOR_BASE_P): Delete.
2527 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
2528
2529 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2530 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
2531 Delete.
2532 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
2533 static, adjust types.
2534 (TARGET_LEGITIMATE_ADDRESS_P): New.
2535
2536 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2537 * config/score/score.c (score_address_p): Rename to...
2538 (score_legitimate_address_p): ... this.
2539 (TARGET_LEGITIMATE_ADDRESS_P): New.
2540 * config/score/score3.c (score3_address_p): Rename to...
2541 (score3_legitimate_address_p): ... this.
2542 * config/score/score7.c (score7_address_p): Rename to...
2543 (score7_legitimate_address_p): ... this.
2544
2545 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
2546 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
2547 GO_IF_LEGITIMATE_ADDRESS): Delete.
2548 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
2549 thumb2_legitimate_address_p): Delete.
2550 (arm_legitimate_address_p): Rename to...
2551 (arm_legitimate_address_outer_p): ... this.
2552 * config/arm/constraints.md ("Uq"): Adjust call.
2553 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
2554 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one to...
2555 (arm_legitimate_address_outer_p): ... this.
2556 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make static.
2557 (TARGET_LEGITIMATE_ADDRESS_P): New.
2558
2559 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2560 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
2561 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
2562 (TARGET_LEGITIMATE_ADDRESS_P): New.
2563
2564 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2565 * config/vax/vax-protos.h (legitimate_address_p): Remove.
2566 * config/vax/vax.c (legitimate_address_p): Rename to...
2567 (vax_legitimate_address_p): ... this, make static.
2568 (TARGET_LEGITIMATE_ADDRESS_P): New.
2569
2570 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2571 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
2572 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
2573 (TARGET_LEGITIMATE_ADDRESS_P): New.
2574
2575 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2576 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
2577 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
2578 (mmix_legitimate_address_p): ... this, make static.
2579 (TARGET_LEGITIMATE_ADDRESS_P): New.
2580
2581 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2582 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
2583 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
2584 (TARGET_LEGITIMATE_ADDRESS_P): New.
2585
2586 2009-05-14 Paolo Bonzini <bonzini@gnu.org>
2587
2588 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
2589 of MODE_COMPLEX_INT.
2590
2591 2009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2592
2593 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
2594 LCT_NORMAL in function call.
2595 * mips-tdump.c (print_file_desc): Add cast to enum type.
2596 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
2597 (mark_stabs): Add casts to enum types.
2598 (parse_stabs_common): Add casts to enum types.
2599
2600 2009-05-13 Adam Nemet <anemet@caviumnetworks.com>
2601
2602 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
2603 Check for invalid values of LETTER.
2604
2605 2009-05-13 Taras Glek <tglek@mozilla.com>
2606
2607 * attribs.c (register_attribute): moved out attribute registration into
2608 register_attribute.
2609 * doc/plugins.texi: Documented register_attribute and PLUGIN_ATTRIBUTES.
2610 * gcc-plugin.h: Added forward decl for register_attribute.
2611 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
2612 * plugin.c (register_callback, invoke_plugin_callbacks): Added
2613 PLUGIN_ATTRIBUTES boilerplate.
2614
2615 2009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
2616
2617 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
2618 values even in sentinel and empty entries.
2619 (ms_printf_flag_specs): Likewise.
2620 (ms_scanf_flag_specs): Likewise.
2621 (ms_strftime_flag_specs): Likewise.
2622 (ms_print_char_table): Likewise.
2623 (ms_scan_char_table): Likewise.
2624 (ms_time_char_table): Likewise.
2625
2626 2009-05-13 Doug Kwan <dougkwan@google.com>
2627
2628 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
2629
2630 2009-05-13 Adam Nemet <anemet@caviumnetworks.com>
2631
2632 * config/mips/mips.md (store): Add attributes for QI and HI.
2633 Update comment.
2634 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
2635 (truncdi<mode>2): ... this new pattern.
2636
2637 2009-05-13 Brad Hards <bradh@kde.org>
2638
2639 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
2640
2641 2009-05-14 Jakub Jelinek <jakub@redhat.com>
2642 Ben Elliston <bje@au.ibm.com>
2643
2644 PR middle-end/40035
2645 * dse.c (check_mem_read_rtx): Guard against width == -1.
2646
2647 2009-05-13 Michael Matz <matz@suse.de>
2648
2649 PR middle-end/39976
2650 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
2651 (trivially_conflicts_p): New function.
2652 (insert_backedge_copies): Use it.
2653
2654 2009-05-13 Janis Johnson <janis187@us.ibm.com>
2655
2656 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
2657 (handle_stdc_pragma): Use new enum constant names.
2658 (handle_pragma_float_const_decimal64): Ditto.
2659
2660 2009-05-13 Ian Lance Taylor <iant@google.com>
2661
2662 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
2663 tree.def.
2664
2665 2009-05-13 Nathan Sidwell <nathan@codesourcery.com>
2666
2667 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
2668 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
2669 multilibs.
2670 * config/m68k/m68k.h (FL_UCLINUX): Define.
2671
2672 2009-05-13 Jan Hubicka <jh@suse.cz>
2673
2674 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
2675
2676 2009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
2677
2678 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
2679 unless -fschedule-insns is specified.
2680
2681 2009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
2682
2683 PR target/39561
2684 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
2685 TARGET_EXPAND_CBRANCHDI4.
2686 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
2687 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
2688 (cmpeqdi): Fix comment.
2689
2690 2009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
2691
2692 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
2693 (sh_legitimate_address_p): Likewise.
2694 * config/sh/sh.c (sh_legitimate_index_p): New.
2695 (sh_legitimate_address_p): Likewise.
2696 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
2697 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
2698 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
2699 (MAYBE_BASE_REGISTER_RTX_P): New macro.
2700 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
2701 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
2702 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
2703 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
2704 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
2705
2706 2009-05-12 Jan Hubicka <jh@suse.cz>
2707
2708 * tree-inline.c (estimate_operator_cost): Add operands;
2709 when division happens by constant, it is cheap.
2710 (estimate_num_insns): Loads and stores are not having cost of 0;
2711 EH magic stuff is cheap; when computing runtime cost of switch,
2712 use log2 base of amount of its cases; builtin_expect has cost of 0;
2713 compute cost for moving return value of call.
2714 (init_inline_once): Initialize time_based flags.
2715 * tree-inline.h (eni_weights_d): Add time_based flag.
2716
2717 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
2718
2719 * df-core.c: Update head documentation.
2720
2721 2009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
2722
2723 PR bootstrap/40118
2724 * rs6000.c (rs6000_generate_compare): Use op1b instead of
2725 shadowing exisiting variable op1.
2726
2727 2009-05-12 Uros Bizjak <ubizjak@gmail.com>
2728
2729 PR target/37179
2730 * config/i386/driver-i386.c (processor_signatures): New enum.
2731 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
2732 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
2733 processor signature to detect geode processor.
2734
2735 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
2736
2737 Revert:
2738
2739 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
2740
2741 * optabs.c (prepare_cmp_insn): Temporarily disable test that
2742 causes spurious differences between trunk and cond-optab branch.
2743
2744 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
2745
2746 * dojump.c (compare_from_rtx): Delete.
2747 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
2748 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
2749 if the comparison does not satisfy the predicate; test predicates for
2750 operands 2 and 3 of a cstore pattern. Don't try cstore optab
2751 further if one existing pattern fails.
2752 * expr.h (compare_from_rtx): Delete.
2753 (prepare_operand): Declare it.
2754 * optabs.c: Change "lib call" to "libcall" throughout.
2755 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
2756 HAVE_conditional_trap, emit_cmp_insn): Delete.
2757 (can_compare_p): Delete cmp_optab case.
2758 (prepare_float_lib_cmp): Return an rtx and a machine mode.
2759 Accept other parameters by value.
2760 (prepare_operand): Make non-static.
2761 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
2762 other parameters by value. Try to widen operands here based on
2763 an optab_methods argument and looking at cbranch_optab.
2764 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
2765 loop. Use cbranch_optab directly.
2766 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
2767 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
2768 assertion.
2769 (emit_conditional_move, emit_conditional_add): Inline what's needed
2770 of compare_from_rtx, using new prepare_cmp_insn for the rest.
2771 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
2772 with COMPARE. Move cmov_optab and cstore_optab above
2773 with cbranch_optab, move cmp_optab down with ucmp_optab,
2774 remove tst_otpab. Do not initialize trap_rtx.
2775 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
2776 for trap code. Do not check HAVE_conditional_trap. Use
2777 prepare_cmp_insn. Accept no predicate for operand 3.
2778 * optabs.h (OTI_cmp): Mark as used only for libcalls.
2779 (OTI_ctrap, ctrap_optab): New.
2780 (tst_optab): Delete.
2781 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
2782 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
2783 with lookup of ctrap_optab.
2784 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn,
2785 setcc_gen_code): Delete.
2786 (ctrap_optab): New.
2787
2788 * combine.c (combine_simplify_rtx, simplify_set): Do not
2789 special case comparing against zero for cc0 machines.
2790 * simplify-rtx.c (simplify_binary_operation_1): Never remove
2791 COMPARE on cc0 machines.
2792 (simplify_relational_operation): Return a new expression when
2793 a COMPARE could be removed.
2794 * final.c (final_scan_insn): Compare cc_status values
2795 against LHS of a (compare FOO (const_int 0)) cc0 source.
2796 Also check if cc_status.value is the full compare.
2797
2798 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
2799 (cstoreMM4): Document.
2800 (conditional_trap): Document ctrapMM4 instead.
2801 (sync_compare_and_swapMM): Refer to cbranchcc4.
2802 (Dependent Patterns): Eliminate obsolete information referring to
2803 the old jump optimization phase.
2804 (Canonicalization): Include cbranchcc4 case, omit canonicalization
2805 of compares with 0 on cc0 machines.
2806 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
2807 avoiding references to cc0. Remove text about storing operands
2808 in cmpMM.
2809 * doc/tm.texi (Condition Codes): Include blurb on different
2810 condition code representations, separate into subsections for
2811 CC0, MODE_CC and conditional execution.
2812
2813 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
2814 alpha_emit_setcc): Accept operands and a machine mode.
2815 * config/alpha/alpha.c (alpha_emit_conditional_branch):
2816 Get code/op0/op1 from operands, use machine mode argument
2817 instead of alpha_compare.fp_p. Emit the branch here.
2818 (alpha_emit_setcc): Likewise, and return boolean.
2819 (alpha_emit_conditional_move): Likewise. Assert that
2820 cmp_op_mode == cmp_mode, and simplify accordingly.
2821 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
2822 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
2823 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
2824 Delete.
2825 (stack probe test): Use cbranchdi4.
2826 * config/alpha/predicates.md (alpha_cbranch_operator): New.
2827
2828 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
2829 * config/arc/arc.h (movsicc, movsfcc): Use it.
2830 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
2831 (cbranchsi4, cstoresi4): New.
2832 (cmpsi, bCC and sCC expanders): Remove.
2833
2834 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
2835 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
2836 * config/arm/predicates.md (arm_comparison_operator): Only include
2837 floating-point operators if there is a hardware floating-point unit.
2838 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
2839 deferring to cbranch_cc and cstore_cc respectively.
2840 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
2841 cbranch_cc, cstore_cc): New.
2842 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
2843 arm_compare_op1.
2844 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
2845
2846 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
2847 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
2848 as an argument.
2849 (adjust_insn_length): Adjust calls.
2850 (avr_reorg): Handle (compare (foo) (const_int 0)).
2851 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
2852 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
2853 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
2854 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
2855 (bCC): Remove.
2856 (cbranchqi4, cbranchhi4, cbranchsi4): New.
2857 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
2858
2859 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
2860 (cbranchsi4, cstorebi4, cstoresi4): New.
2861 (movbisi): This insn is duplicate, split it to zero_extend.
2862 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
2863 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
2864 (bfin_optimize_loop): Use cbranch expander.
2865 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
2866 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
2867 (bfin_bimode_comparison_operator): ... this.
2868 (bfin_direct_comparison_operator): New.
2869
2870 * config/cris/cris.c (cris_normal_notice_update_cc): Look
2871 inside (compare FOO (const_int 0)).
2872 (cris_rtx_costs): Handle ZERO_EXTRACT.
2873 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
2874 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
2875 (*tstdi_v32): Delete.
2876 (*cmpdi_non_v32): Add M alternative for operand 1.
2877 (cmpsi, cmp<mode>): Make private.
2878 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
2879 with COMPARE.
2880 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
2881
2882 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
2883 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
2884 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
2885 (cc_reg_operand): New.
2886 (any_cond): Delete.
2887 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
2888 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
2889 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
2890 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
2891 crx_expand_scond): Delete.
2892
2893 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
2894 (cbranchsi4): New.
2895 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
2896 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
2897
2898 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
2899 cstoresi4, cstoresf4, cstoredf4): New.
2900 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
2901 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
2902 Receive the entire operands array.
2903 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
2904 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
2905 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
2906 Get test/op0/op1 from the operands array.
2907 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
2908
2909 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
2910 (h8300_expand_store): New.
2911 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
2912 (const_int 0)).
2913 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
2914 (h8300_expand_store): New.
2915 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
2916 or do not try to produce (set (cc0) REG).
2917 (peepholes): Wrap arguments with COMPARE. Add a peephole to
2918 change a compare into a move to a scratch register. Disable some
2919 peepholes when comparing with zero.
2920 (tstsi, tsthi, tstsi, cmpqi): Make private.
2921 (cmphi): Delete.
2922 (bCC, sCC): Delete.
2923 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
2924 cstoresi4): New.
2925
2926 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
2927 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
2928 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
2929 (ix86_emit_i387_log1p): Use cbranchxf2.
2930 (ix86_expand_setcc): Return void.
2931 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
2932 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
2933 cmp<MODEF>, cmpcc): Remove.
2934 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
2935 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
2936 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
2937 (sCC and bCC expanders): Remove.
2938 (stack_protect_test): Use cbranchcc4.
2939
2940 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
2941 Delete.
2942 (ia64_expand_compare): Accept three rtx by reference and return void.
2943 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
2944 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
2945 from *expr. Update *expr with the BImode comparison to do.
2946 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
2947 cmptf, bCC, sCC, conditional_trap): Delete.
2948 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
2949 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
2950 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
2951 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
2952 * config/ia64/predicates.md (ia64_cbranch_operator): New.
2953
2954 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
2955 type of last argument.
2956 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
2957 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
2958 use machine mode argument instead of branch_type. Remove dead
2959 code for floating-point comparisons.
2960 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
2961 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
2962 Remove.
2963 (cbranchsi4, cstoresi4): New.
2964 * config/iq2000/predicates.md (reg_or_const_operand): New.
2965
2966 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
2967 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
2968 (b<code>_op): Rewrite to...
2969 (bcc_op): ... this, using match_operator.
2970 (s<code>_op): Rewrite to...
2971 (scc_op): ... this, using match_operator.
2972 (s<code>_24_op): Rewrite to...
2973 (scc_op_24): ... this, using match_operator.
2974 (s<code>_<mode>): Rewrite to...
2975 (cstore<mode>4): ... this, using match_operator.
2976 (s<code>_<mode>_24): Rewrite to...
2977 (cstore<mode>4_24): ... this, using match_operator.
2978 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
2979 m32c_unpend_compare, m32c_expand_scc): Delete.
2980 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
2981 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
2982 (m32c_expand_movcc): Change NE to EQ if necessary.
2983 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
2984
2985 * config/m32r/m32r-protos.h (gen_cond_store): New.
2986 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
2987 (gen_cond_store): New, from sCC patterns.
2988 (m32r_expand_block_move): Use cbranchsi4.
2989 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
2990 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
2991 (cbranchsi4, cstoresi4): New.
2992
2993 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
2994 Delete.
2995 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
2996 (m68hc11_notice_update_cc): Look into a compare with 0.
2997 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
2998 Delete.
2999 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
3000 cmphi, cmpqi, bCC): Delete.
3001 (cbranchsi4, cbranchhi4, cbranchqi4): New.
3002 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
3003 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
3004 sets with COMPARE.
3005
3006 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
3007 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
3008 * config/m68k/constraints.md (H): New.
3009 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
3010 the define_insn below.
3011 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
3012 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
3013 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
3014 patterns): Wrap RHS with COMPARE.
3015 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
3016 (*cmpdi_internal): Name this pattern.
3017 (cmpdi): Change to define_insn.
3018 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
3019 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
3020 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
3021 predicate.
3022 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
3023 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
3024 (conditional_trap): Change to...
3025 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
3026 (*conditional_trap): Use the ordered_comparison_operator and
3027 const1_operand predicates.
3028 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
3029 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
3030 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
3031 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
3032
3033 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
3034 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
3035 (mcore_gen_compare): New.
3036 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
3037 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
3038 (mcore_gen_compare): ... this.
3039 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
3040 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
3041 (stack probe pattern): Use cbranchsi4.
3042
3043 * config/mips/predicates.md (mips_cstore_operator): New.
3044 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
3045 * config/mips/mips.md (any_cond): Delete.
3046 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
3047 always succeed.
3048 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
3049 fixuns_truncsfdi2): Use cbranch patterns.
3050 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
3051 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
3052 Adjust call to mips_expand_conditional_branch.
3053 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
3054 cstore<GPR:mode>4.
3055 * config/mips/mips-protos.h (mips_expand_conditional_branch,
3056 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
3057 * config/mips/mips.c (cmp_operands): Delete.
3058 (mips_emit_compare): Get comparison operands from *op0/*op1.
3059 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
3060 that it succeeds. Use op0/op1 instead of cmp_operands.
3061 (mips_expand_conditional_branch, mips_expand_conditional_move,
3062 mips_expand_conditional_trap): Likewise.
3063 (mips_block_move_loop): Use cbranch patterns.
3064 * config/mips/mips.h (cmp_operands): Delete.
3065
3066 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
3067 (mmix_gen_compare_reg): Just return a register in the right CC mode.
3068 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
3069 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
3070 (*cmpcc_folded): Rename to...
3071 (*cmpdi_folded): this.
3072 (*cmpcc): Rename to...
3073 (*cmps): ... this.
3074 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
3075 (bCC): Remove.
3076 (cbranchdi4): New.
3077 (cbranchdf4): New. Handle invalid comparisons here.
3078 * config/mmix/predicates.md (float_comparison_operator): New.
3079
3080 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
3081 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
3082 * config/mn10300/mn10300.md (tst): Delete.
3083 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
3084 Name these patterns and wrap RHS in a compare.
3085 (*cmpsi): Make this pattern private. Include tst.
3086 (*cmpsf): Make this pattern private.
3087 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
3088 (compare with zero peepholes): Likewise.
3089 (bCC): Remove.
3090 (cbranchsi4, cbranchsf4): New.
3091 (casesi): Use cbranchsi4.
3092
3093 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
3094 hppa_branch_type): Delete.
3095 (return_addr_rtx): Use cbranchsi4.
3096 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
3097 Emit CCFPmode comparison here.
3098 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
3099 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
3100 hppa_branch_type): Delete.
3101 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
3102 (movsicc, movdicc): Remove references to hppa_compare_op0,
3103 hppa_compare_op1 and compare_from_rtx.
3104 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
3105 (casesi): Use cbranchsi4.
3106
3107 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
3108 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
3109 * config/pdp11/pdp11.md (register_or_const0_operand): New.
3110 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
3111 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
3112 (bCC): Delete.
3113 (cbranchdf4, cbranchhi4, cbranchqi4): New.
3114 (*branch, *branch_inverted): New.
3115
3116 * config/picochip/picochip.md (cbranchhi4): Use
3117 ordered_comparison_operator.
3118 (cmphi, bCC): Remove.
3119
3120 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
3121 (trap_comparison_operator): Delete.
3122 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
3123 rs6000_emit_cbranch): Accept mode and operands.
3124 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
3125 rs6000_compare_fp_p): Delete.
3126 (rs6000_generate_compare): Accept mode and comparison. Extract code
3127 and op0/op1 from there. Replace references to rs6000_compare_op0
3128 and rs6000_compare_op1.
3129 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
3130 extract result from passed operands.
3131 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
3132 extract loc from passed operands.
3133 (rs6000_emit_cmove): Likewise.
3134 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
3135 rs6000_compare_fp_p): Delete.
3136 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
3137 (cbranch<GPR>4, cbranch<FP>4): New.
3138 (cstore<mode>4): New. Consolidate here all choices about when to use
3139 portable or specialized sCC sequences.
3140 (stack_protect_test): Use cbranchsi4.
3141 (conditional_trap): Replace with ctrap<GPR>4.
3142 (conditional trap insn): Replace trap_comparison_operator with
3143 ordered_comparison_operator.
3144
3145 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
3146 (s390_emit_prologue): Use ctrap.
3147 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
3148 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
3149 New predicates replacing...
3150 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
3151 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
3152 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
3153 (add<mode>cc): Do not use s390_compare_op0/op1.
3154 (s<code>): Change to...
3155 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
3156 (seq): Change to...
3157 (cstorecc4): ... this. Handle EQ or NE equally.
3158 (*sne): Un-privatize for use in cstorecc4.
3159 (b<code>): Change to...
3160 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
3161 (conditional_trap): Replace with...
3162 (ctrap<GPR>4, ctrap<FP>4): ... these.
3163 (stack_protect): Use cbranchcc4.
3164
3165 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
3166 * config/score/score-protos.h (score_gen_cmp): Delete.
3167 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
3168 (score_block_move-loop): Use cbranchsi4.
3169 * config/score/score.md (cbranchsi4): New.
3170 (cmpsi, bCC): Delete.
3171 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
3172 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
3173 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
3174 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
3175 * config/score/score3.h (score3_gen_cmp): Delete.
3176 * config/score/score7.h (score7_gen_cmp): Delete.
3177
3178 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
3179 (sh_emit_scc_to_t): ... this. Return void.
3180 (from_compare): Rename to...
3181 (sh_emit_compare_and_branch): ... this.
3182 (sh_emit_compare_and_set): New.
3183 (sh_expand_t_scc): Accept operands.
3184 * config/sh/predicates.md (sh_float_comparison_operator): New.
3185 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
3186 (prepare_scc_operands): Rename to...
3187 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
3188 arguments.
3189 (sh_emit_cheap_store_flag): New.
3190 (sh_emit_set_t_insn): New.
3191 (from_compare): Rename to...
3192 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
3193 handling of TARGET_SH2E floating point to avoid recursive call.
3194 Generate branch here.
3195 (sh_emit_compare_and_set): New.
3196 (sh_expand_t_scc): Get op0/op1 from arguments.
3197 (sh_emit_cheap_store_flag): New.
3198 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
3199 cases.
3200 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
3201 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
3202 (movsicc, movdicc): Do nothing when it recreated operands from
3203 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
3204 prepare_scc_operands (now sh_emit_scc_to_t).
3205 (udivdi3): Use cstoresi4.
3206 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
3207 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
3208 (cbranchint4_media, cbranchfp4_media): New.
3209 (casesi): Use cbranchdi4.
3210 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
3211 Delete.
3212 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
3213 (movnegt): Remove second operand.
3214 (cbranchsf4, cbranchdf4): New.
3215 (stack_protect): Use cbranchdi4/cbranchsi4.
3216
3217 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
3218 (gen_compare_reg): Accept comparison, extract part of it to...
3219 (gen_compare_reg_1): ... this.
3220 (gen_compare_operator): Delete.
3221 (gen_v9_scc): Accept separate destination, comparison code and arms.
3222 Do not use sparc_compare_op0/sparc_compare_op1.
3223 (emit_scc_insn, emit_conditional_branch_insn): New.
3224 (emit_v9_brxx): Make static. Remove useless assertion.
3225 (sparc_emit_float_lib_cmp): Return RTL instead of calling
3226 emit_cmp_insn.
3227 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
3228 * config/sparc/sparc-protos.h (gen_compare_reg,
3229 sparc_emit_float_lib_cmp): Adjust prototype.
3230 (emit_scc_insn, emit_conditional_branch_insn): New.
3231 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
3232 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
3233 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
3234 iterators to the top.
3235 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
3236 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
3237 snedi_special_trunc): Delete.
3238 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
3239 and snedi_special_trunc.
3240 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
3241 cbranchdi4, cbranch<F:mode>4): New.
3242 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
3243 here. Use gen_compare_reg instead of gen_compare_operator.
3244 (conditional_trap): Replace with...
3245 (ctrapsi4, ctrapdi4): ... this.
3246 (stack_protect_test): Use cbranchcc4.
3247
3248 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
3249 argument to rtx.
3250 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
3251 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
3252 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
3253 from operands[0] or operands[3] depending on is_set.
3254 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
3255 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
3256 cmpdf, bCC), sCC: Remove.
3257 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
3258 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
3259 cstoredf4): New.
3260 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
3261 spu_emit_branch_or_set.
3262
3263 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
3264 Add two arguments.
3265 * config/stormy16/stormy16.h (xstormy16_compare_op0,
3266 xstormy16_compare_op1): Delete.
3267 * config/stormy16/stormy16.c (xstormy16_compare_op0,
3268 xstormy16_compare_op1): Delete.
3269 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
3270 Adjust calls.
3271 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
3272 (cmphi, cmpsi, bCC): Remove.
3273
3274 * config/v850/v850.md (tstsi, cmpsi): Fold into...
3275 (*cmpsi): ... this one.
3276 (cbranchsi4, cstoresi4): New.
3277 (bCC expanders): Delete.
3278 (sCC insns): Fold into...
3279 (*setcc): ... this one.
3280 (casesi): Do not use gen_cmpsi and gen_bgtu.
3281 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
3282 (movsicc): Simplify.
3283 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
3284
3285 * config/vax/vax-protos.h (cond_name): New.
3286 (vax_output_conditional_branch): Remove.
3287 * config/vax/vax.c (cond_name): New.
3288 (vax_output_conditional_branch): Remove.
3289 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
3290 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
3291 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
3292 (bit<VAXint>): Wrap source with (compare).
3293 (b<code> and following unnamed pattern): Rename to *branch and
3294 *branch_reversed. Change macroization to match_operator.
3295 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
3296
3297 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
3298 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
3299 Change last argument to machine_mode.
3300 (xtensa_expand_scc): Add machine_mode argument.
3301 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
3302 (gen_conditional_move, xtensa_expand_conditional_branch,
3303 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
3304 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
3305 Adjust operand numbers.
3306 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
3307 Delete.
3308 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
3309 (cmpsi, cmpsf, b<code>, s<code>): Delete.
3310 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
3311
3312 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
3313
3314 * optabs.c (prepare_cmp_insn): Temporarily disable test that
3315 causes spurious differences between trunk and cond-optab branch.
3316
3317 2009-05-12 Alexandre Oliva <aoliva@redhat.com>
3318
3319 PR target/37137
3320 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
3321
3322 2009-05-12 Alexandre Oliva <aoliva@redhat.com>
3323
3324 * tree.c (iterative_hash_pointer): Delete.
3325 (iterative_hash_expr): Short-circuit handling of NULL pointer.
3326 Hash UIDs and versions of SSA names. Don't special-case built-in
3327 function declarations.
3328
3329 2009-05-11 Ian Lance Taylor <iant@google.com>
3330
3331 PR bootstrap/40103
3332 * graphite.c: Force -Wc++-compat to only be a warning before
3333 #including "cloog/cloog.h".
3334
3335 2009-05-11 Martin Jambor <mjambor@suse.cz>
3336
3337 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
3338
3339 2009-05-11 Jan Hubicka <jh@suse.cz>
3340
3341 * tree-ssa-loop-ivcanon.c: Include target.h
3342 (struct loop_size): new structure.
3343 (constant_after_peeling): New predicate.
3344 (tree_estimate_loop_size): New function.
3345 (estimated_unrolled_size): Rewrite for new estimates.
3346 (try_unroll_loop_completely): Use new estimates.
3347 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
3348
3349 2009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
3350
3351 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
3352 libcpp interface change.
3353 (spu_macro_to_expand): Likewise.
3354
3355 2009-05-11 Paolo Bonzini <bonzini@gnu.org>
3356
3357 PR tree-optimization/40026
3358 * gimplify.c (gimplify_init_constructor): Change initial conditional
3359 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
3360 optimize_compound_literals_in_ctor.
3361
3362 2009-05-11 Nathan Sidwell <nathan@codesourcery.com>
3363
3364 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
3365 New devices.
3366 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
3367
3368 2009-05-11 H.J. Lu <hongjiu.lu@intel.com>
3369
3370 * tree-vect-data-refs.c (vect_analyze_group_access): Use
3371 HOST_WIDE_INT for gap.
3372
3373 2009-05-11 Ira Rosen <irar@il.ibm.com>
3374
3375 PR tree-optimization/40074
3376 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
3377 account in group size and step comparison.
3378
3379 2009-05-11 Richard Guenther <rguenther@suse.de>
3380
3381 * passes.c (init_optimization_passes): Strip now incorrect comment.
3382 (execute_function_todo): Do not set PROP_alias.
3383 * tree-pass.h (PROP_alias): Remove.
3384 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
3385 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
3386 * tree-nrv.c (pass_return_slot): Likewise.
3387 * tree-object-size.c (pass_object_sizes): Likewise.
3388 * tree-ssa-dom.c (pass_dominator): Likewise.
3389 (pass_phi_only_cprop): Likewise.
3390 * tree-ssa-dse.c (pass_dse): Likewise.
3391 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
3392 (pass_cselim): Likewise.
3393 * tree-ssa-pre.c (pass_pre): Likewise.
3394 (pass_fre): Likewise.
3395 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
3396 * tree-ssa-sink.c (pass_sink_code): Likewise.
3397 * tree-stdarg.c (pass_stdarg): Likewise.
3398 * tree-tailcall.c (pass_tail_calls): Likewise.
3399 * tree-vrp.c (pass_vrp): Likewise.
3400
3401 2009-05-10 Ian Lance Taylor <iant@google.com>
3402
3403 * basic-block.h (enum profile_status): Break out of struct
3404 control_flow_graph.
3405 * cgraph.h (struct inline_summary): Break out of struct
3406 cgraph_local_info.
3407 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
3408 of struct cgraph_order_sort.
3409 * combine.c (enum undo_kind): New enum, broken out of struct undo.
3410 * cse.c (struct branch_path): Break out of struct
3411 cse_basic_block_data.
3412 * except.h (enum eh_region_type): Break out of struct eh_region.
3413 * gcc.c (enum add_del): Break out of struct modify_target.
3414 * genrecog.c (enum decision_type): Break out of struct decision_test.
3415 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
3416 ggc_pch_data.
3417 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
3418 * regmove.c (enum match_use): New enum, broken out of struct match.
3419 * sched-int.h (enum post_call_group): New enum, broken out of
3420 struct deps.
3421 (struct deps_reg): Break out of struct deps.
3422 * target.h (struct asm_int_op): Break out of struct gcc_target.
3423 * tree-eh.c (struct goto_queue_node): Break out of struct
3424 leh_tf_state.
3425 * tree-inline.h (enum copy_body_cge_which): Break out of
3426 copy_body_data.
3427 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
3428
3429 * c-decl.c (in_struct, struct_types): New static variables.
3430 (pushtag): Add loc parameter. Change all callers.
3431 (lookup_tag): Add ploc parameter. Change all callers.
3432 (check_compound_literal_type): New function.
3433 (parser_xref_tag): Add loc parameter. Change all callers. If
3434 -Wc++-compat, warn about struct/union/enum types defined within a
3435 struct or union.
3436 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
3437 and loc parameters. Change all callers. Change error calls to
3438 error_at, using loc. For a redefinition, if the location of the
3439 original definition is known, report it. Set in_struct and
3440 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
3441 (finish_struct): Add new parameters enclosing_in_struct and
3442 enclosing_struct_types. Change all callers. Set
3443 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
3444 in the struct. If in a struct, add this struct to struct_types.
3445 (start_enum): Add loc parameter. Change all callers. Use
3446 error_at for errors, using loc. For a redefinition, if the
3447 location of the original definition is known, report it. If in a
3448 struct, add this enum type to struct_types. If -Wc++-compat warn
3449 if in sizeof, typeof, or alignof.
3450 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
3451 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
3452 (c_parser_enum_specifier): Get enum location for start_enum.
3453 (c_parser_struct_or_union_specifier): Get struct location for
3454 start_struct. Save in_struct and struct_types status between
3455 start_struct and finish_struct.
3456 (c_parser_cast_expression): Get location of cast.
3457 (c_parser_alignof_expression): Get location of type.
3458 (c_parser_postfix_expression): Likewise.
3459 (c_parser_postfix_expression_after_paren_type): Add type_loc
3460 parameter. Change all callers. Call check_compound_literal_type.
3461 Use type_loc for error about variable size type.
3462 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
3463 of an enum constant from an enum type defined in a struct or union.
3464 (c_cast_expr): Add loc parameter. Change all callers. If
3465 -Wc++-compat, warn about defining a type in a cast.
3466 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
3467 (start_enum, start_struct, finish_struct): Update declarations.
3468 (parser_xref_tag, c_cast_expr): Update declarations.
3469 (check_compound_literal_type): Declare.
3470
3471 2009-05-11 Ben Elliston <bje@au.ibm.com>
3472
3473 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
3474 for recent libcpp interface change.
3475 (rs6000_macro_to_expand): Likewise.
3476
3477 2009-05-10 Michael Matz <matz@suse.de>
3478
3479 PR target/40031
3480 * config/arm/arm.c (require_pic_register): Emit on entry edge,
3481 not at entry of function.
3482
3483 2009-05-10 Richard Guenther <rguenther@suse.de>
3484
3485 PR tree-optimization/40081
3486 Revert
3487 * tree-sra.c (instantiate_element): Instantiate scalar replacements
3488 using the main variant of the element type. Do not fiddle with
3489 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
3490
3491 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
3492 structs with volatile fields.
3493
3494 2009-05-10 Jan Hubicka <jh@suse.cz>
3495
3496 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
3497 (estimate_move_cost): Assert that it does not get called for
3498 VOID_TYPE_P.
3499 (estimate_num_insns): Skip VOID types in argument handling.
3500 (optimize_inline_calls): Delete unreachable blocks and verify that
3501 callgraph is valid.
3502
3503 2009-05-10 Jan Hubicka <jh@suse.cz>
3504
3505 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
3506 * cgraph.c (cgraph_mark_address_taken_node): New function.
3507 (dump_cgraph_node): Dump new flag.
3508 * cgraph.h (struct cgraph_node): Add address_taken.
3509 (cgraph_mark_address_taken_node): New function.
3510 * ipa.c (cgraph_postorder): Prioritize functions with address taken
3511 since new direct calls can be born.
3512
3513 2009-05-10 Joseph Myers <joseph@codesourcery.com>
3514
3515 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
3516 tok->val.node.node.
3517
3518 2009-05-10 Jan Hubicka <jh@suse.cz>
3519
3520 PR middle-end/40084
3521 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
3522 argument; rewrite.
3523 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
3524 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
3525 * tree-inline.c (copy_bb): Set frequency correctly.
3526 (fold_marked_statements): Update call to
3527 cgraph_update_edges_for_call_stmt.
3528
3529 2009-05-10 Joseph Myers <joseph@codesourcery.com>
3530
3531 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
3532 identifiers in diagnostics.
3533 * config/arm/arm.c (arm_handle_fndecl_attribute,
3534 arm_handle_isr_attribute): Likewise.
3535 * config/avr/avr.c (avr_handle_progmem_attribute,
3536 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
3537 * config/bfin/bfin.c (handle_int_attribute,
3538 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
3539 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
3540 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
3541 Likewise.
3542 * config/darwin.c (darwin_handle_kext_attribute,
3543 darwin_handle_weak_import_attribute): Likewise.
3544 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
3545 h8300_handle_eightbit_data_attribute,
3546 h8300_handle_tiny_data_attribute): Likewise.
3547 * config/i386/i386.c (ix86_handle_cconv_attribute,
3548 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
3549 * config/i386/winnt.c (ix86_handle_shared_attribute,
3550 ix86_handle_selectany_attribute): Likewise.
3551 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
3552 * config/m32c/m32c.c (function_vector_handler): Likewise.
3553 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
3554 m68hc11_handle_fntype_attribute): Likewise.
3555 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
3556 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
3557 * config/mips/mips.c (mips_insert_attributes,
3558 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
3559 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
3560 rs6000_handle_struct_attribute): Likewise.
3561 * config/sh/sh.c (sh_insert_attributes,
3562 sh_handle_resbank_handler_attribute,
3563 sh_handle_interrupt_handler_attribute,
3564 sh2a_handle_function_vector_handler_attribute,
3565 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
3566 Likewise.
3567 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
3568 * config/spu/spu.c (spu_handle_fndecl_attribute,
3569 spu_handle_vector_attribute): Likewise.
3570 * config/stormy16/stormy16.c
3571 (xstormy16_handle_interrupt_attribute): Likewise.
3572 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
3573 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
3574
3575 2009-05-10 Joseph Myers <joseph@codesourcery.com>
3576
3577 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
3578 (pp_translate_identifiers): New.
3579 (pp_identifier): Only conditionally translate identifier to locale
3580 character set.
3581 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
3582 (pp_base_tree_identifier): Only conditionally translate identifier
3583 to locale character set.
3584 * c-pretty-print.c (M_): Define.
3585 (pp_c_type_specifier, pp_c_primary_expression): Mark English
3586 fragments for conditional translation with M_.
3587 * tree-pretty-print.c (maybe_init_pretty_print): Disable
3588 identifier translation.
3589
3590 2009-05-10 Richard Guenther <rguenther@suse.de>
3591
3592 PR tree-optimization/40081
3593 * tree-sra.c (instantiate_element): Instantiate scalar replacements
3594 using the main variant of the element type. Do not fiddle with
3595 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
3596
3597 2009-05-09 Jan Hubicka <jh@suse.cz>
3598
3599 PR middle-end/40080
3600 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
3601 indirect calls; verify cgraph afterwards.
3602
3603 2009-05-09 Jan Hubicka <jh@suse.cz>
3604
3605 PR bootstrap/40082
3606 * ipa.c (update_inlined_to_pointer): New function.
3607 (cgraph_remove_unreachable_nodes): Use it.
3608
3609 2009-05-09 Jan Hubicka <jh@suse.cz>
3610
3611 * tree-eh.c (struct leh_state): Remove prev_try.
3612 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
3613 not track prev_try.
3614 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
3615 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
3616 remove_eh_handler_and_replace, foreach_reachable_handler,
3617 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
3618 * except.h (struct eh_region): Remove eh_region_u_cleanup.
3619 (gen_eh_region_cleanup): Update prototype.
3620
3621 2009-05-09 Jan Hubicka <jh@suse.cz>
3622
3623 PR middle-end/40043
3624 * except.c (copy_eh_region): Always set prev_try.
3625 (redirect_eh_edge_to_label): Find outer try.
3626 (foreach_reachable_handler): When looking for prev try
3627 handle case where previous try is not going to be taken.
3628
3629 2009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
3630
3631 PR tree-optimization/40049
3632 * tree-vect-stmts.c (vectorizable_operation): If the machine has
3633 only vector/vector shifts, convert the type of the constant to the
3634 appropriate type to avoid building incorrect trees, which
3635 eventually have problems with garbage collection.
3636
3637 2009-05-08 Joseph Myers <joseph@codesourcery.com>
3638
3639 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
3640 -1 for complex floating-point types if honoring signed zeros.
3641
3642 2009-05-08 Jan Hubicka <jh@suse.cz>
3643
3644 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
3645 argument; handle correctly when profile is absent.
3646 (build_cgraph_edges): Update.
3647 (rebuild_cgraph_edges): Update.
3648 * cgraph.c: Do not include varray.h.
3649 (cgraph_set_call_stmt_including_clones): New function.
3650 (cgraph_create_edge_including_clones): Likewise
3651 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
3652 (cgraph_update_edges_for_call_stmt): Handle clones.
3653 (cgraph_remove_node): Handle clone tree.
3654 (cgraph_remove_node_and_inline_clones): New function.
3655 (dump_cgraph_node): Dump clone tree.
3656 (cgraph_clone_node): Handle clone tree.
3657 (clone_function_name): Bring here from tree-inline.c.
3658 (cgraph_create_virtual_clone): New function.
3659 * cgraph.h (ipa_replace_map): Move here from ipa.h.
3660 (cgraph_clone_info): New function.
3661 (strut cgraph_node): Add clone_info and new clone tree pointers.
3662 (cgraph_remove_node_and_inline_clones,
3663 cgraph_set_call_stmt_including_clones,
3664 cgraph_create_edge_including_clones,
3665 cgraph_create_virtual_clone): Declare.
3666 (cgraph_function_versioning): Use VEC argument.
3667 (compute_call_stmt_bb_frequency): Update prototype.
3668 (cgraph_materialize_all_clones): New function.
3669 * ipa-cp.c (ipcp_update_cloned_node): Remove.
3670 (ipcp_create_replace_map): Update to VECtors.
3671 (ipcp_update_callgraph): Use virtual clones.
3672 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
3673 (ipcp_update_profiling): Do not update local profiling.
3674 (ipcp_insert_stage): Use VECtors and virtual clones.
3675 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
3676 (clone_of_p): New function.
3677 (cgraph_preserve_function_body_p): Use clone tree.
3678 (cgraph_optimize): Materialize clones.
3679 (cgraph_function_versioning): Update for VECtors.
3680 (save_inline_function_body): Use clone tree.
3681 (cgraph_materialize_clone): New function.
3682 (cgraph_materialize_all_clones): Likewise.
3683 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
3684 * ipa.c: Include gimple.h.
3685 (cgraph_remove_unreachable_nodes): Use clone tree.
3686 * ipa-prop.c (ipa_note_param_call): Update call to
3687 compute_call_stmt_bb_frequencycall.
3688 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
3689 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
3690 (copy_bb): Handle updating of clone tree; add new edge when new call
3691 appears.
3692 (expand_call_inline): Be strict about every call having edge.
3693 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
3694 (delete_unreachable_blocks_update_callgraph): New function.
3695 (tree_function_versioning): Use VECtors; always remove unreachable
3696 blocks and fold conditionals.
3697 * tree-inline.h: Do not include varray.h.
3698 (tree_function_versioning): Remove.
3699 * Makefile.in (GTFILES): Remove tree-inline.c
3700 * passes.c (do_per_function): Do only functions having body.
3701 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
3702 tree.
3703
3704 2009-05-08 H.J. Lu <hongjiu.lu@intel.com>
3705 Andrew Morrow <acm@google.com>
3706
3707 PR c/36892
3708 * c-common.c (c_common_attribute_table): Permit deprecated
3709 attribute to take an optional argument.
3710 (handle_deprecated_attribute): If the optional argument to
3711 __attribute__((deprecated)) is not a string ignore the attribute
3712 and emit a warning.
3713
3714 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
3715 * c-typeck.c (build_component_ref): Likewise.
3716 (build_external_ref): Likewise.
3717
3718 * toplev.c (warn_deprecated_use): Add an attribute argument.
3719 Emit the message associated with __attribute__((deprecated)).
3720
3721 * toplev.h (warn_deprecated_use): Updated.
3722
3723 * doc/extend.texi: Document new optional parameter to
3724 __attribute__((deprecated))
3725
3726 2009-05-08 Michael Eager <eager@eagercon.com>
3727
3728 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
3729 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
3730
3731 2009-05-08 Richard Guenther <rguenther@suse.de>
3732
3733 PR tree-optimization/40062
3734 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
3735 Avoid exponential behavior.
3736
3737 2009-05-08 Paolo Bonzini <bonzini@gnu.org>
3738
3739 PR rtl-optimization/33928
3740 PR 26854
3741 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
3742 process_uses, build_single_def_use_links): New.
3743 (update_df): Update use_def_ref.
3744 (forward_propagate_into): Use get_def_for_use instead of use-def
3745 chains.
3746 (fwprop_init): Call build_single_def_use_links and let it initialize
3747 dataflow.
3748 (fwprop_done): Free use_def_ref.
3749 (fwprop_addr): Eliminate duplicate call to df_set_flags.
3750 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
3751 df_rd_simulate_one_insn): New.
3752 (df_rd_bb_local_compute_process_def): Update head comment.
3753 (df_chain_create_bb): Use the new RD simulation functions.
3754 * df.h (df_rd_simulate_artificial_defs_at_top,
3755 df_rd_simulate_one_insn): New.
3756 * opts.c (decode_options): Enable fwprop at -O1.
3757 * doc/invoke.texi (-fforward-propagate): Document this.
3758
3759 2009-05-08 Joseph Myers <joseph@codesourcery.com>
3760
3761 PR c/24581
3762 * c-typeck.c (build_binary_op): Handle arithmetic between one real
3763 and one complex operand specially.
3764 * tree-complex.c (some_nonzerop): Do not identify a real value as
3765 zero if flag_signed_zeros.
3766
3767 2009-05-08 Paolo Bonzini <bonzini@gnu.org>
3768
3769 PR rtl-optimization/33928
3770 * loop-invariant.c (record_use): Fix && vs. || mishap.
3771
3772 2009-05-08 Paolo Bonzini <bonzini@gnu.org>
3773
3774 PR rtl-optimization/33928
3775 * loop-invariant.c (struct use): Add addr_use_p.
3776 (struct def): Add n_addr_uses.
3777 (struct invariant): Add cheap_address.
3778 (create_new_invariant): Set cheap_address.
3779 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
3780 (record_uses): Pass df_ref to record_use.
3781 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
3782 used only as such.
3783
3784 2009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
3785
3786 * config/sh/sh.c: Do not include c-pragma.h.
3787
3788 2009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
3789
3790 * config/spu/spu.c: Remove include of c-common.h.
3791
3792 2009-05-07 Janis Johnson <janis187@us.ibm.com>
3793
3794 PR c/39037
3795 * c-common.h (mark_valid_location_for_stdc_pragma,
3796 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
3797 clear_float_const_decimal64, float_const_decimal64_p): New.
3798 * c.opt (Wunsuffixed-float-constants): New.
3799 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
3800 unsuffixed float constant, handle new warning.
3801 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
3802 * c-decl.c (c_scope): New flag float_const_decimal64.
3803 (set_float_const_decimal64, clear_float_const_decimal64,
3804 float_const_decimal64_p): New.
3805 (push_scope): Set new flag.
3806 * c-parser.c (c_parser_translation_unit): Mark when it's valid
3807 to use STDC pragmas.
3808 (c_parser_external_declaration): Ditto.
3809 (c_parser_compound_statement_nostart): Ditto.
3810 * c-pragma.c (valid_location_for_stdc_pragma,
3811 mark_valid_location_for_stdc_pragma,
3812 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
3813 handle_pragma_float_const_decimal64): New.
3814 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
3815 * cp/semantics.c (valid_location_for_stdc_pragma_p,
3816 set_float_const_decimal64, clear_float_const_decimal64,
3817 float_const_decimal64_p): New dummy functions.
3818 * doc/extend.texi (Decimal Float): Remove statement that the
3819 pragma, and suffix for double constants, are not supported.
3820 * doc/invoke.texi (Warning Options): List new option.
3821 (-Wunsuffixed-float-constants): New.
3822
3823 2009-05-08 Steven Bosscher <steven@gcc.gnu.org>
3824
3825 * config/i386/i386.c: Do not include c-common.h.
3826
3827 2009-05-07 Mark Heffernan <meheff@google.com>
3828
3829 * doc/invoke.texi (Debugging Options): Document change of debugging
3830 dump location.
3831 * opts.c (decode_options): Make dump_base_name relative to
3832 aux_base_name directory.
3833
3834 2009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
3835
3836 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
3837 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
3838
3839 2009-05-07 Rafael Avila de Espindola <espindola@google.com>
3840
3841 * Makefile.in (install-plugin): Simplify a bit.
3842
3843 2009-05-07 Paolo Bonzini <bonzini@gnu.org>
3844
3845 * Makefile.in (OBJS-common): Add regcprop.o.
3846 (regcprop.o): New.
3847 * timevar.def (TV_CPROP_REGISTERS): New.
3848 * regrename.c (regrename_optimize): Return 0.
3849 (rest_of_handle_regrename): Delete.
3850 (pass_rename_registers): Point to regrename_optimize.
3851 (struct value_data_entry, struct value_data,
3852 kill_value_one_regno, kill_value_regno, kill_value,
3853 set_value_regno, init_value_data, kill_clobbered_value,
3854 kill_set_value, kill_autoinc_value, copy_value,
3855 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
3856 replace_oldest_value_reg, replace_oldest_value_addr,
3857 replace_oldest_value_mem, copyprop_hardreg_forward_1,
3858 debug_value_data, validate_value_data): Move...
3859 * regcprop.c: ... here.
3860 (rest_of_handle_cprop): Delete.
3861 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
3862
3863 2009-05-07 Jakub Jelinek <jakub@redhat.com>
3864
3865 PR middle-end/40057
3866 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
3867 GEN_INT for 1 << bitnum.
3868 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
3869 build_int_cst_type.
3870
3871 2009-05-07 Uros Bizjak <ubizjak@gmail.com>
3872
3873 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
3874 Remove wrong description of "nand" operation.
3875
3876 2009-05-06 Richard Guenther <rguenther@suse.de>
3877 Adam Nemet <anemet@caviumnetworks.com>
3878
3879 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
3880 comment. Add that if LHS is not a gimple register, then RHS1 has
3881 to be a single object (GIMPLE_SINGLE_RHS).
3882
3883 2009-05-06 Adam Nemet <anemet@caviumnetworks.com>
3884
3885 * expr.c (get_def_for_expr): Move it up in the file.
3886 (store_field): When expanding a bit-field store, look at the
3887 defining gimple stmt for the masking conversion.
3888
3889 2009-05-06 Janis Johnson <janis187@us.ibm.com>
3890
3891 PR middle-end/39986
3892 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
3893 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
3894 32-bit memcpy into long.
3895
3896 2009-05-06 Jakub Jelinek <jakub@redhat.com>
3897
3898 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
3899 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
3900 new_reg_loc_descr.
3901 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
3902 instead of appending DW_OP_deref*.
3903
3904 2009-05-06 Michael Matz <matz@suse.de>
3905
3906 PR middle-end/40021
3907 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
3908 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
3909
3910 2009-05-06 Rafael Avila de Espindola <espindola@google.com>
3911
3912 * Makefile.in (install-plugin): Fix srcdir handling.
3913
3914 2009-05-06 Andrey Belevantsev <abel@ispras.ru>
3915
3916 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
3917 when processing for not_regs_needed bitmap.
3918 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
3919 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
3920 handling it for rhs.
3921
3922 2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
3923
3924 * config/i386/i386.md (unnamed inc/dec peephole): Use
3925 optimize_insn_for_size_p instead of optimize_size.
3926 * config/i386/predicates.md (incdec_operand): Likewise.
3927 (aligned_operand): Likewise.
3928 * config/i386/sse.md (divv8sf3): Likewise.
3929 (sqrtv8sf2): Likewise.
3930
3931 2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
3932
3933 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
3934
3935 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
3936
3937 2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
3938
3939 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
3940 ssemodesuffixf2c with avxmodesuffixf2c.
3941
3942 2009-05-06 Joseph Myers <joseph@codesourcery.com>
3943
3944 PR c/40032
3945 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
3946
3947 2009-05-05 Jakub Jelinek <jakub@redhat.com>
3948
3949 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
3950 (struct tree_base): Adjust spacing for 8 bit boundaries.
3951 (struct tree_decl_common): Add decl_by_reference_flag bit.
3952 (DECL_BY_REFERENCE): Adjust.
3953 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
3954 print DECL_BY_REFERENCE bit.
3955 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
3956 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
3957 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
3958 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
3959 unconditionally.
3960
3961 PR middle-end/39666
3962 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
3963 range of the type, but default label is missing, add it with one
3964 of the existing labels instead of adding a new label for it.
3965
3966 2009-05-05 Joseph Myers <joseph@codesourcery.com>
3967
3968 * dwarf.h: Remove.
3969
3970 2009-05-05 Rafael Avila de Espindola <espindola@google.com>
3971
3972 * Makefile.in (enable_plugin, plugin_includedir): New.
3973 (install): Depend on install-plugin.
3974 (PLUGIN_HEADERS): New.
3975 (install-plugin): New.
3976 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
3977
3978 2009-05-05 Richard Guenther <rguenther@suse.de>
3979
3980 PR tree-optimization/40022
3981 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
3982 the only vuse.
3983 (phivn_valid_p): Fix tuplification error, simplify.
3984 (phiprop_insert_phi): Add dumps.
3985 (propagate_with_phi): Simplify.
3986
3987 2009-05-05 Richard Guenther <rguenther@suse.de>
3988
3989 PR middle-end/40023
3990 * builtins.c (gimplify_va_arg_expr): Properly build the address.
3991
3992 2009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
3993
3994 * tree.h (strip_float_extensions): Remove duplicate declaration.
3995 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
3996 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
3997 block_ultimate_origin): Rearrange the declarations line to match the
3998 comment that indicates the .c file which the functions are defined.
3999 (dwarf2out_*, set_decl_rtl): Add comment.
4000 (get_base_address): Adjust comment.
4001 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
4002 declarations line and add comment.
4003 (is_builtin_name): Add blank after function name, for clarity.
4004
4005 2009-05-04 Joseph Myers <joseph@codesourcery.com>
4006
4007 * attribs.c (decl_attributes): Use %qE for identifiers in
4008 diagnostics.
4009 * cgraphunit.c (verify_cgraph_node): Translate function names to
4010 locale character set in diagnostics.
4011 * coverage.c (get_coverage_counts): Use %qE for identifiers in
4012 diagnostics.
4013 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
4014 Document that functions are named in UTF-8.
4015 * expr.c (expand_expr_real_1): Translate function names to locale
4016 character set in diagnostics.
4017 * gimplify.c (omp_notice_variable, omp_is_private,
4018 gimplify_scan_omp_clauses): Use %qE for identifiers in
4019 diagnostics.
4020 * langhooks.c (lhd_print_error_function): Translate function names
4021 to locale character set.
4022 * langhooks.h (decl_printable_name): Document that return value is
4023 in internal character set.
4024 * stmt.c: Include pretty-print.h
4025 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
4026 diagnostics.
4027 (resolve_operand_name_1): Translate named operand name to locale
4028 character set.
4029 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
4030 diagnostics.
4031 * toplev.c (announce_function): Translate function names to locale
4032 character set.
4033 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
4034 (default_tree_printer): Use pp_identifier or translate identifiers
4035 to locale character set. Mark "<anonymous>" for translation.
4036 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
4037 for identifiers in diagnostics.
4038 * tree.c (handle_dll_attribute): Use %qE for identifiers in
4039 diagnostics.
4040 * varasm.c (output_constructor): Use %qE for identifiers in
4041 diagnostics.
4042
4043 2009-05-04 Rafael Avila de Espindola <espindola@google.com>
4044
4045 * configure.ac: use ` ` instead of $()
4046 * configure: Regenerate.
4047
4048 2009-05-05 Ben Elliston <bje@au.ibm.com>
4049
4050 * config/pa/linux-atomic.c: Eliminate conditional include of
4051 errno.h on non-LP64 systems to simplify build requirements.
4052
4053 2009-05-04 Joseph Myers <joseph@codesourcery.com>
4054
4055 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
4056 diagnostics.
4057 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
4058 and pass value to identifier_to_locale.
4059 (warn_variable_length_array): Make name a tree.
4060 (grokdeclarator): Separate diagnostic texts for named and unnamed
4061 declarators. Use %qE for named declarators.
4062 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
4063 diagnostics.
4064 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
4065 identifiers in diagnostics.
4066 * c-typeck.c (push_member_name, start_init): Pass identifiers to
4067 identifier_to_locale. Mark "anonymous" strings for translation.
4068
4069 2009-05-04 Michael Eager <eager@eagercon.com>
4070
4071 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
4072 address for DImode/DFmode only if double-precision FP regs.
4073
4074 2009-05-04 Michael Eager <eager@eagercon.com>
4075
4076 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
4077 TARGET_SINGLE_FLOAT check.
4078
4079 2009-05-04 Michael Eager <eager@eagercon.com>
4080
4081 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
4082
4083 2009-05-04 Michael Eager <eager@eagercon.com>
4084
4085 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
4086 * config/rs6000/t-xilinx: New
4087
4088 2009-05-04 Paolo Bonzini <bonzini@gnu.org>
4089
4090 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
4091 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
4092 * gcc/explow.c (memory_address): Use target hook.
4093 * gcc/targhooks.c (default_legitimize_address): New.
4094 * gcc/targhooks.h (default_legitimize_address): New.
4095 * gcc/target.h (legitimize_address): New.
4096 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
4097 (TARGET_INITIALIZER): Include it.
4098 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
4099
4100 * config/bfin/bfin-protos.h (legitimize_address): Remove.
4101 * config/bfin/bfin.c (legitimize_address): Remove.
4102 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
4103 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
4104 Remove.
4105 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
4106 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
4107
4108 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
4109 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
4110 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
4111 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
4112 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
4113 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
4114 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
4115 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
4116 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
4117 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
4118 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
4119 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
4120 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
4121 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
4122 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
4123 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
4124 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
4125 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
4126 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
4127 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
4128 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
4129 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
4130 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
4131
4132 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
4133 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
4134 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
4135 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
4136 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
4137 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
4138 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
4139 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
4140 (thumb_legitimize_address): Delete.
4141 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
4142 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
4143 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
4144 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
4145 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
4146 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
4147 Delete.
4148 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
4149 Delete.
4150
4151 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
4152 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
4153 * config/m32r/m32r.c (m32r_legitimize_address): New.
4154 * config/m68k/m68k.c (m68k_legitimize_address): New.
4155 * config/score/score.c (score_legitimize_address): Standardize.
4156 * config/score/score3.c (score3_legitimize_address): Standardize.
4157 * config/score/score3.h (score3_legitimize_address): Adjust.
4158 * config/score/score7.c (score7_legitimize_address): Standardize.
4159 * config/score/score7.h (score7_legitimize_address): Adjust.
4160 * config/sh/sh.c (sh_legitimize_address): New.
4161 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
4162
4163 * gcc/config/s390/s390.c (legitimize_address): Rename to...
4164 (s390_legitimize_address): ... this.
4165 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
4166 (sparc_legitimize_address): ... this.
4167 * gcc/config/i386/i386.c (legitimize_address): Rename to...
4168 (ix86_legitimize_address): ... this.
4169 * gcc/config/avr/avr.c (legitimize_address): Rename to...
4170 (avr_legitimize_address): ... this.
4171 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
4172 (mn10300_legitimize_address): ... this.
4173 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
4174 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
4175 (alpha_expand_mov): Adjust call.
4176
4177 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
4178 * config/spu/spu.c (spu_legitimize_address): Likewise.
4179 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
4180 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
4181
4182 2009-05-04 Joseph Myers <joseph@codesourcery.com>
4183
4184 * intl.c (locale_encoding, locale_utf8): New.
4185 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
4186 * intl.h (locale_encoding, locale_utf8): Declare.
4187 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
4188 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
4189 New.
4190 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
4191 argument.
4192 (pp_tree_identifier): Define to call pp_base_tree_identifier.
4193 (pp_base_tree_identifier): Declare as function.
4194 (identifier_to_locale): Declare.
4195 * Makefile.in (pretty-print.o): Update dependencies.
4196 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
4197
4198 2009-05-04 Richard Guenther <rguenther@suse.de>
4199
4200 PR middle-end/40015
4201 * builtins.c (fold_builtin_memory_op): Do not decay to element
4202 type if the size matches the whole array.
4203
4204 2009-05-04 Kazu Hirata <kazu@codesourcery.com>
4205
4206 * expmed.c (synth_mult): When trying out a shift, pass the result
4207 of a signed shift.
4208
4209 2009-05-04 Kazu Hirata <kazu@codesourcery.com>
4210
4211 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
4212 (shiftsub1_cost): New.
4213 (init_expmed): Compute shiftsub1_cost.
4214 (synth_mult): Optimize multiplications by constants of the form
4215 -(2^^m-1) for some constant positive integer m.
4216
4217 2009-05-03 Richard Guenther <rguenther@suse.de>
4218
4219 PR c/39983
4220 * c-typeck.c (array_to_pointer_conversion): Do not built
4221 ADDR_EXPRs of arrays of pointer-to-element type.
4222 * c-gimplify.c (c_gimplify_expr): Revert change fixing
4223 up wrong ADDR_EXPRs after-the-fact.
4224 * c-common.c (strict_aliasing_warning): Strip pointer
4225 conversions for obtaining the original type.
4226 * builtins.c (fold_builtin_memset): Handle array types.
4227 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
4228 and array types
4229
4230 2009-05-03 Richard Guenther <rguenther@suse.de>
4231
4232 PR middle-end/23329
4233 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
4234 Do not lose casts from array types with unknown extent to array
4235 types with known extent.
4236 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
4237 alias set compatibility.
4238
4239 2009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
4240
4241 * flags.h (extra_warnings): Delete.
4242 * toplev.c (process_options): Handle Wuninitialized here.
4243 * opts.c (extra_warnings): Delete.
4244 (set_Wextra): Delete.
4245 (common_handle_option): -Wextra can be handled automatically.
4246 * c-opts.c (c_common_handle_option): Delete obsolete code.
4247 (c_common_post_options): Simplify comment.
4248 * common.opt (W): Add Var.
4249 (Wextra): Add Var.
4250 (Wuninitialized): Initialize to -1.
4251
4252 2009-05-03 Adam Nemet <anemet@caviumnetworks.com>
4253 Richard Guenther <rguenther@suse.de>
4254
4255 * expr.c (get_def_for_expr): New function.
4256 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
4257 SSA rather than trees.
4258 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
4259 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
4260
4261 2009-05-03 Joseph Myers <joseph@codesourcery.com>
4262
4263 * c-common.c (reswords): Add _Imaginary.
4264 * c-common.c (enum rid): Add RID_IMAGINARY.
4265
4266 2009-05-03 Paolo Bonzini <bonzini@gnu.org>
4267
4268 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
4269 Patch by Richard Guenther.
4270
4271 2009-05-03 Anatoly Sokolov <aesok@post.ru>
4272
4273 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
4274 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
4275 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
4276 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
4277 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
4278 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
4279 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
4280 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
4281 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
4282 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
4283 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
4284 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
4285 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
4286 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
4287 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
4288 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
4289 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
4290 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
4291
4292 2009-05-02 Richard Guenther <rguenther@suse.de>
4293
4294 PR tree-optimization/39940
4295 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
4296 doing so.
4297
4298 2009-05-02 Richard Guenther <rguenther@suse.de>
4299
4300 PR middle-end/40001
4301 * tree-ssa.c (execute_update_addresses_taken): Properly check
4302 if we can mark a variable DECL_GIMPLE_REG_P.
4303 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
4304 back to the end of the function.
4305 (is_gimple_reg_type): Remove complex type special casing.
4306 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
4307 if not optimizing.
4308
4309 2009-05-02 Ben Elliston <bje@au.ibm.com>
4310
4311 * doc/collect2.texi (Collect2): Document search path behaviour
4312 when configured with --with-ld.
4313
4314 2009-05-02 Jan Hubicka <jh@suse.cz>
4315
4316 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
4317 parameter; update callers.
4318 (coalesce_cost_edge): EH edges are costier because they needs
4319 splitting even if not critical and even more costier when there are
4320 multiple EH predecestors.
4321
4322 2009-05-02 Jan Hubicka <jh@suse.cz>
4323
4324 * except.c (remove_eh_handler_and_replace): Handle updating after
4325 removing TRY blocks.
4326
4327 2009-05-02 Eric Botcazou <ebotcazou@adacore.com>
4328
4329 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
4330
4331 2009-05-02 Steven Bosscher <steven@gcc.gnu.org>
4332
4333 * varasm.c: Do not include c-pragma.h.
4334 * attribs.c: Do not incude c-common.h.
4335
4336 2009-05-01 Michael Matz <matz@suse.de>
4337
4338 * calls.c (initialize_argument_information): Handle SSA names like
4339 decls with a non MEM_P DECL_RTL.
4340
4341 2009-05-01 Steven Bosscher <steven@gcc.gnu.org>
4342
4343 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
4344 * ipa-utils.c: Likewise.
4345 * ipa-type-escape.c: Likewise.
4346 * cgraphunit.c Do not include c-common.h.
4347 * ipa-pure-const.c: Likewise.
4348 * tree-if-conv.c: Likewise.
4349 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
4350 * ipa-struct-reorg.c: Likewise.
4351 * tree-nomudflap.c: Likewise.
4352 * tree-ssa-structalias.c: Likewise.
4353
4354 2009-05-01 Steven Bosscher <steven@gcc.gnu.org>
4355
4356 * store-motion.c: Many cleanups to make this pass a first-class
4357 citizen instead of an appendix to gcse load motion. Add TODO list
4358 to make this pass faster/cleaner/better.
4359
4360 (struct ls_expr): Post gcse.c-split cleanups.
4361 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
4362 "stores" field to "avail_stores".
4363 (pre_ldst_mems): Rename to store_motion_mems.
4364 (pre_ldst_table): Rename to store_motion_mems_table.
4365 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
4366 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
4367 (ldst_entry): Rename to st_expr_entry, update users.
4368 (free_ldst_entry): Rename to free_st_expr_entry, update users.
4369 (free_ldst_mems): Rename to free_store_motion_mems, update users.
4370 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
4371 update caller.
4372 (first_ls_expr): Rename to first_st_expr, update users.
4373 (next_ls_expr): Rename to next_st_expr, update users.
4374 (print_ldst_list): Rename to print_store_motion_mems. Print names of
4375 fields properly for store motion instead of names inherited from load
4376 motion in gcse.c.
4377 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
4378 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
4379 are done with it.
4380
4381 (ae_kill): Rename to st_kill, update users.
4382 (ae_gen): Rename to st_avloc, update users.
4383 (transp): Rename to st_transp, update users.
4384 (pre_insert_map): Rename to st_insert_map, update users.
4385 (pre_delete_map): Rename to st_delete_map, update users.
4386 (insert_store, build_store_vectors, free_store_memory,
4387 one_store_motion_pass): Update for abovementioned changes.
4388
4389 (gcse_subst_count, gcse_create_count): Remove.
4390 (one_store_motion_pass): New statistics counters "n_stores_deleted"
4391 and "n_stores_created", local variables.
4392
4393 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
4394 use for_each_rtx.
4395
4396 (regvec, compute_store_table_current_insn): Remove.
4397 (reg_set_info, reg_clear_last_set): Remove.
4398 (compute_store_table): Use DF caches instead of local dataflow
4399 solvers.
4400
4401 2009-05-01 Joseph Myers <joseph@codesourcery.com>
4402
4403 * c-objc-common.c (c_tree_printer): Print identifiers with
4404 pp_identifier, not pp_string. Mark "({anonymous})" for
4405 translation.
4406 * c-pretty-print.c (pp_c_ws_string): New.
4407 (pp_c_cv_qualifier, pp_c_type_specifier,
4408 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
4409 pp_c_storage_class_specifier, pp_c_function_specifier,
4410 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
4411 pp_c_primary_expression, pp_c_postfix_expression,
4412 pp_c_unary_expression, pp_c_shift_expression,
4413 pp_c_relational_expression, pp_c_equality_expression,
4414 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
4415 use pp_string and pp_c_ws_string in place of pp_identifier and
4416 pp_c_identifier for non-identifiers. Mark English strings for
4417 translation.
4418 * c-pretty-print.h (pp_c_ws_string): Declare.
4419
4420 2009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
4421 Roland McGrath <roland@redhat.com>
4422
4423 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
4424 (ENABLE_LD_BUILDID): New configuration option.
4425 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
4426 (LINK_BUILDID_SPEC): New macro.
4427 (init_spec): If defined, prepend it between LINK_EH_SPEC and
4428 link_spec.
4429 * doc/install.texi: Document --enable-linker-build-id option.
4430 * configure: Rebuild.
4431 * config.in: Rebuild.
4432
4433 2009-04-30 Adam Nemet <anemet@caviumnetworks.com>
4434
4435 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
4436 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
4437 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
4438 MIPS_GP_SAVE_AREA_SIZE.
4439 * config/mips/mips.c (struct mips_frame_info): Update comment
4440 before arg_pointer_offset and hard_frame_pointer_offset.
4441 (mips_compute_frame_info): Update diagram before function: to
4442 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
4443 indicate the position of frame_pointer_rtx with -fstack-protector and
4444 to show args_size. Don't allocate cprestore area for leaf functions
4445 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
4446 cprestore_size.
4447 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
4448
4449 2009-04-30 Michael Matz <matz@suse.de>
4450
4451 PR tree-optimization/39955
4452 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
4453
4454 2009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
4455
4456 * ira.c (setup_cover_and_important_classes): Use safe macro
4457 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
4458 directly.
4459 * genpreds.c (write_tm_preds_h): Output suitable definition of
4460 REG_CLASS_FOR_CONSTRAINT.
4461
4462 2009-04-30 Rafael Avila de Espindola <espindola@google.com>
4463
4464 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
4465 instead of an int.
4466 * bitmap.c (bitmap_descriptor): Likewise.
4467 * ggc-common.c (loc_descriptor): Likewise.
4468 * varray.c (varray_descriptor): Likewise.
4469 * vec.c (vec_descriptor): Likewise.
4470
4471 2009-04-30 Eric Botcazou <ebotcazou@adacore.com>
4472
4473 * Makefile.in (dce.o): Add $(EXCEPT_H).
4474 * dce.c: Include except.h and delete redundant vector definitions.
4475 (deletable_insn_p): Return false for non-call insns that can throw
4476 if DF is running.
4477
4478 2009-04-30 Steven Bosscher <steven@gcc.gnu.org>
4479
4480 * gcse.c (ae_gen): Remove.
4481 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
4482 and make non-static function to make it available in store-motion.c.
4483 Update call sites with search-and-replace.
4484 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
4485 extract_mentioned_regs, extract_mentioned_regs_helper,
4486 find_moveable_store, compute_store_table, load_kills_store, find_loads,
4487 store_killed_in_insn, store_killed_after, store_killed_before,
4488 build_store_vectors, insert_insn_start_basic_block, insert-store,
4489 remove_reachable_equiv_notes, replace_store_insn, delete_store,
4490 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
4491 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
4492 * store-motion.c: ...new file. Also copy data structures from gcse.c
4493 and clean up to remove parts not used by store motion.
4494 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
4495 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
4496
4497 2009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4498
4499 PR target/38571
4500 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
4501 when optimizing for size.
4502
4503 2009-04-30 Hans-Peter Nilsson <hp@axis.com>
4504
4505 * gcse.c (gcse_constant_p): Fix typo in last change.
4506
4507 2009-04-30 Rafael Avila de Espindola <espindola@google.com>
4508
4509 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
4510
4511 2009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
4512
4513 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
4514
4515 2009-04-29 James E. Wilson <wilson@codesourcery.com>
4516
4517 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
4518 CONST_HIGH_PART result.
4519
4520 2009-04-29 Anatoly Sokolov <aesok@post.ru>
4521
4522 * config/avr/avr.c (initial_elimination_offset): Rename to
4523 avr_initial_elimination_offset.
4524 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
4525 change return type to bool.
4526 (avr_can_eliminate): New function.
4527 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
4528 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
4529 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
4530 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
4531 avr_initial_elimination_offset.
4532 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
4533 (avr_initial_elimination_offset): Define.
4534
4535 2009-04-29 Eric Botcazou <ebotcazou@adacore.com>
4536 Steven Bosscher <steven@gcc.gnu.org>
4537
4538 PR rtl-optimization/39938
4539 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
4540 * cfgrtl.c: Include insn-attr.h.
4541 (rest_of_pass_free_cfg): New function.
4542 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
4543 * resource.c (init_resource_info): Remove call to df_analyze.
4544
4545 2009-04-29 Richard Guenther <rguenther@suse.de>
4546
4547 PR target/39943
4548 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
4549 allow conversion to signed integers.
4550
4551 2009-04-29 Richard Guenther <rguenther@suse.de>
4552
4553 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
4554 shifts of floating point vectors if the shift amount is
4555 a constant multiple of the element size.
4556
4557 2009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
4558 Michael Matz <matz@suse.de>
4559
4560 PR middle-end/39927
4561 PR bootstrap/39929
4562 * tree-outof-ssa.c (emit_partition_copy): New function.
4563 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
4564 insert_part_to_rtx_on_edge): Perform the partition base var
4565 copy using emit_partition_copy.
4566 (insert_value_copy_on_edge): Convert constants to the right mode.
4567 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
4568 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
4569
4570 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
4571
4572 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
4573 scan backwards to try to find a constant to initialize it.
4574
4575 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
4576 insn before the loop_end instruction, don't look past labels.
4577
4578 2009-04-29 Richard Guenther <rguenther@suse.de>
4579
4580 PR middle-end/39937
4581 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
4582 loose type conversions.
4583 (forward_propagate_addr_expr): Fix tuplification bug. Remove
4584 stmts only if there are no uses of its definition.
4585
4586 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
4587
4588 * config/bfin/bfin.h (splitting_loops): Declare.
4589 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
4590 Reorder bit definitions to be ascending.
4591 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
4592 * config/bfin/bfin.c (splitting_loops): New variable.
4593 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
4594 (struct loop_info): Remove members INIT and LOOP_INIT.
4595 (bfin_optimize_loop): Don't set them. Reorder the code that generates
4596 the LSETUP sequence. Allow LC to be loaded from any register, but
4597 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
4598 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
4599 set to 1.
4600 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
4601 of reload_completed.
4602
4603 From Jie Zhang:
4604 * config/bfin/bfin.md (movsi_insn): Refine constraints.
4605
4606 2009-04-29 Rafael Avila de Espindola <espindola@google.com>
4607
4608 * Makefile.in (PLUGIN_VERSION_H): New.
4609 (OBJS-common): Remove plugin-version.o.
4610 (plugin.o): Depend on (PLUGIN_VERSION_H).
4611 (plugin-version.o): Remove.
4612 * configure: Regenerate
4613 * configure.ac: Create plugin-version.h.
4614 * gcc-plugin.h (plugin_gcc_version): Remove.
4615 (plugin_default_version_check): Change signature.
4616 * plugin-version.c: Remove.
4617 * plugin.c: Include plugin-version.h.
4618 (str_plugin_gcc_version_name): Remove.
4619 (try_init_one_plugin): Pass gcc version to plugin_init.
4620 (plugin_default_version_check): Both gcc and plugin versions are now
4621 arguments.
4622
4623 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
4624
4625 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
4626 problematic last insns. Test for TYPE_CALL rather than CALL_P.
4627 Remove special case testing for last insn of inner loops. Don't fail
4628 if the loop ends with a jump, emit an extra nop instead.
4629
4630 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
4631 DREGS rather than comparing directly. Remove code that tries to
4632 account for latencies.
4633
4634 2009-04-29 Richard Guenther <rguenther@suse.de>
4635
4636 PR tree-optimization/39941
4637 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
4638 eliminating an indirect call.
4639
4640 2009-04-29 Richard Guenther <rguenther@suse.de>
4641
4642 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
4643 parameter. Allow invariants as base if !require_lvalue.
4644 (verify_gimple_assign_single): Adjust.
4645
4646 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
4647
4648 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
4649 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
4650 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
4651 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
4652 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
4653 a VEC_SELECT.
4654 * config/bfin/bfin.c (bfin_expand_builtin,
4655 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
4656
4657 2009-04-28 Richard Guenther <rguenther@suse.de>
4658
4659 * tree-vect-loop.c (get_initial_def_for_induction): Use
4660 correct types for pointer increment.
4661
4662 2009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4663
4664 * toplev.c (print_version): Update GMP version string calculation.
4665
4666 2009-04-28 Eric Botcazou <ebotcazou@adacore.com>
4667
4668 PR rtl-optimization/39938
4669 * resource.c (init_resource_info): Add call to df_analyze.
4670
4671 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
4672
4673 * config/alpha/alpha.md (usegp): Cast the result of
4674 alpha_find_lo_sum_using_gp to enum attr_usegp.
4675 * config/alpha/alpha.c (override_options): Remove end-of-structure
4676 marker element from cpu_table. Use array size of cpu_table to handle
4677 -mcpu and -mtune options.
4678 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
4679
4680 2009-04-28 Joseph Myers <joseph@codesourcery.com>
4681
4682 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
4683 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
4684 tune_32 and tune_64.
4685 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
4686 support on PowerPC.
4687 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
4688 * config/rs6000/option-defaults.h: ... here. New file.
4689 (OPT_64, OPT_32): Define.
4690 (MASK_64BIT): Define to 0 if not already defined.
4691 (OPT_ARCH64, OPT_ARCH32): Define.
4692 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
4693 and tune_64.
4694
4695 2009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4696
4697 * config/arm/arm.c (arm_override_options): Emit error on using
4698 fpa with AAPCS.
4699
4700 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
4701
4702 PR rtl-optimization/39914
4703 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
4704 registers for allocnos created from user-defined variables only
4705 when not optimizing.
4706
4707 2009-04-28 Richard Guenther <rguenther@suse.de>
4708
4709 PR middle-end/39937
4710 * fold-const.c (fold_binary): Use distribute_real_division only
4711 on float types.
4712
4713 2009-04-28 Steve Ellcey <sje@cup.hp.com>
4714
4715 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
4716 add hpux-stdint.h to tm_file.
4717 (hppa[12]*-*-hpux11*): Ditto.
4718 (ia64*-*-hpux*): Ditto.
4719 * config/hpux-stdint.h: New.
4720 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
4721 __STDC_EXT__ for all compiles.
4722 * config/pa/pa-hpux.h: Ditto.
4723 * config/pa/pa-hpux10.h: Ditto.
4724 * config/pa/pa-hpux11.h: Ditto.
4725
4726 2009-04-28 Catherine Moore <clm@codesourcery.com>
4727
4728 * debug.h (set_name): Add comment.
4729
4730 2009-04-28 Andrew Pinski <pinskia@gmail.com>
4731
4732 PR target/39929
4733 * config/darwin.c (machopic_gen_offset): Check
4734 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
4735 * config/arm/arm.c (require_pic_register): Likewise.
4736
4737 2009-04-28 Paolo Bonzini <bonzini@gnu.org>
4738
4739 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
4740 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
4741 m32c_promote_prototypes): Delete.
4742
4743 2009-04-28 Michael Matz <matz@suse.de>
4744
4745 PR middle-end/39922
4746 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
4747 constants.
4748
4749 2009-04-28 Richard Guenther <rguenther@suse.de>
4750
4751 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
4752
4753 2009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4754
4755 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
4756 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
4757 * config/arm/arm-tune.md: Regenerate.
4758
4759 2009-04-28 Alexander Monakov <amonakov@ispras.ru>
4760
4761 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
4762 block if there are complex incoming edges.
4763 (sel_merge_blocks): Remove useless assert.
4764 (sel_redirect_edge_and_branch): Check that edge was redirected.
4765 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
4766 (sel_find_rgns): Delete declaration.
4767 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
4768 the region when it is not a preheader.
4769
4770 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
4771
4772 PR c/39323
4773 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
4774
4775 2009-04-28 Richard Guenther <rguenther@suse.de>
4776
4777 * tree.h (SSA_NAME_VALUE): Remove.
4778 (struct tree_ssa_name): Remove value_handle member.
4779 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
4780 array for jump threading.
4781 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
4782 SSA_NAME_VALUEs.
4783 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
4784 * tree-flow.h (threadedge_initialize_values): Declare.
4785 (threadedge_finalize_values): Likewise.
4786 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
4787 (SSA_NAME_VALUE): Define.
4788 (threadedge_initialize_values): New function.
4789 (threadedge_finalize_values): Likewise.
4790 * tree-ssa-dom.c (ssa_name_values): New global variable.
4791 (SSA_NAME_VALUE): Define.
4792 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
4793
4794 2009-04-28 Ira Rosen <irar@il.ibm.com>
4795
4796 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
4797 Use REPORT_VECTORIZED_LOCATIONS instead
4798 REPORT_VECTORIZED_LOOPS.
4799 * tree-vectorizer.c (vect_verbosity_level): Make static.
4800 (vect_loop_location): Rename to vect_location.
4801 (vect_set_verbosity_level): Update comment.
4802 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
4803 and vect_location.
4804 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
4805 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
4806 instead REPORT_UNVECTORIZED_LOOPS.
4807 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
4808 and vect_loop_def to vect_external_def and vect_internal_def.
4809 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
4810 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
4811 REPORT_UNVECTORIZED_LOCATIONS.
4812 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
4813 and vect_used_in_loop and to vect_unused_in_scope and
4814 vect_used_in_scope.
4815 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
4816 (vect_verbosity_level): Remove declaration.
4817 (vect_analyze_operations): Likewise.
4818 (vect_analyze_stmt): Declare.
4819 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
4820 REPORT_UNVECTORIZED_LOCATIONS.
4821 (vect_get_loop_niters): Fix indentation.
4822 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
4823 (vect_analyze_loop_operations): New function.
4824 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
4825 vect_analyze_operations.
4826 (vect_is_simple_reduction): Use new names.
4827 (vectorizable_live_operation, vect_transform_loop): Likewise.
4828 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
4829 to specify whether the data references can be a part of interleaving
4830 chain.
4831 (vect_analyze_data_ref_dependence): Use new names.
4832 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
4833 (vect_create_addr_base_for_vector_ref): Remove redundant code.
4834 * tree-vect-patterns.c (widened_name_p): Use new names.
4835 (vect_recog_dot_prod_pattern): Likewise.
4836 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
4837 (process_use, vect_mark_stmts_to_be_vectorized,
4838 vect_model_simple_cost, vect_model_store_cost,
4839 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
4840 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
4841 vectorizable_operation, vectorizable_type_demotion,
4842 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
4843 vectorizable_condition): Likewise.
4844 (vect_analyze_operations): Split into vect_analyze_loop_operations
4845 and ...
4846 (vect_analyze_stmt): ... new function.
4847 (new_stmt_vec_info): Use new names.
4848 (vect_is_simple_use): Use new names and fix comment.
4849 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
4850 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
4851
4852 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
4853
4854 PR target/39911
4855 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
4856 and integer modes for x87 operands. Do not ICE for unsupported size,
4857 generate error instead. Generate error for unsupported operand types.
4858 ['z']: Do not handle HImode memory operands specially. Warning
4859 for floating-point operands. Fallthru to 'Z' for unsupported operand
4860 types. Do not ICE for unsupported size, generate error instead.
4861 (output_387_binary_op): Use %Z to output operands.
4862 (output_fp_compare): Ditto.
4863 (output_387_reg_move): Ditto.
4864
4865 2009-04-28 Ben Elliston <bje@au.ibm.com>
4866
4867 PR c++/35652
4868 Revert:
4869
4870 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4871
4872 * builtins.c (c_strlen): Do not warn here.
4873 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
4874 * c-common.c (pointer_int_sum): Take an explicit location.
4875 Warn about offsets out of bounds.
4876 * c-common.h (pointer_int_sum): Adjust declaration.
4877
4878 2009-04-27 Ian Lance Taylor <iant@google.com>
4879
4880 * collect2.c (is_ctor_dtor): Change type of ret field in struct
4881 names to symkind.
4882 * dce.c (run_fast_df_dce): Change type of old_flags to int.
4883 * df-core.c (df_set_flags): Change return type to int. Change
4884 type of old_flags to int.
4885 (df_clear_flags): Likewise.
4886 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
4887 (df_get_conditional_uses): Likewise.
4888 * df.h (df_set_flags, df_clear_flags): Update declarations.
4889 * dwarf2out.c (struct indirect_string_node): Change type of form
4890 field to enum dwarf_form.
4891 (AT_string_form): Change return type to enum dwarf_form.
4892 * fixed-value.c (fixed_compare): Add cast to enum type.
4893 * fwprop.c (update_df): Change 0 to VOIDmode.
4894 * gensupport.c: Change 0 to UNKNOWN.
4895 * gimple.h (gimple_cond_code): Add cast to enum type.
4896 * haifa-sched.c (reemit_notes): Add cast to enum type.
4897 * hooks.c (hook_int_void_no_regs): Remove function.
4898 * hooks.h (hook_int_void_no_regs): Remove declaration.
4899 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
4900 * predict.c (combine_predictions_for_insn): Add casts to enum type.
4901 * real.c (real_arithmetic): Add cast to enum type.
4902 (real_compare): Likewise.
4903 * target.h (struct gcc_target): Change return type of
4904 branch_target_register_class to enum reg_class.
4905 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
4906 default_branch_target_register_class.
4907 * targhooks.c (default_branch_target_register_class): New function.
4908 * targhooks.h (default_branch_target_register_class): Declare.
4909 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
4910 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
4911 cast to int.
4912 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
4913 ERROR_MARK.
4914 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
4915 vect_uninitialized_def. Change 0 to ERROR_MARK.
4916 * tree-vect-stmts.c (supportable_widening_operation): Don't
4917 initialize icode1 and icode2.
4918 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
4919 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
4920 and to STD_C89.
4921 (cmn_err_flag_specs): Change 0 to STD_C89.
4922 (cmn_err_char_table): Likewise.
4923 * config/arm/arm.c (get_arm_condition_code): Change type of code
4924 to enum arm_cond_code.
4925 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
4926 (IWMMXT_BUILTIN2): Likewise.
4927 (neon_builtin_type_bits): Don't define typedef.
4928 (neon_builtin_datum): Change type of bits field to int.
4929 (arm_expand_neon_args): Add cast to enum type.
4930 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
4931 TLS_MODEL_NONE.
4932 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
4933 casts to enum type.
4934 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
4935 MIPS_FP_COND_f.
4936 * config/mips/mips.md (jal_macro): Return enum constant.
4937 (single_insn): Likewise.
4938 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
4939 CODE_FOR_nothing.
4940 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4941 casts to enum type.
4942 * config/s390/s390.c (s390_tune_flags): Change type to int.
4943 (s390_arch_flags): Likewise.
4944 (s390_handle_arch_option): Change flags field of struct pta to int.
4945 * config/s390/s390.h (s390_tune_flags): Update declaration.
4946 (s390_arch_flags): Likewise.
4947 * config/sh/sh.c (prepare_move_operands): Compare
4948 tls_symbolic_operand result with enum constant.
4949 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
4950 (sh_expand_prologue): Add cast to enum type.
4951 (sh_expand_epilogue): Likewise.
4952 (tls_symbolic_operand): Change return type to enum tls_model.
4953 (fpscr_set_from_mem): Add cast to enum type.
4954 (legitimize_pic_address): Compare tls_symbolic_operand result with
4955 enum constant.
4956 (sh_target_reg_class): Change return type to enum reg_class.
4957 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
4958 PROCESSOR_xxx.
4959 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
4960 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
4961 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
4962 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
4963 (delayed_branch, tls_call_delay): Likewise.
4964 (eligible_for_sibcall_delay): Likewise.
4965 (eligible_for_return_delay): Likewise.
4966 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
4967 (spu_expand_builtin_1): Likewise.
4968
4969 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
4970 for all types of conversions.
4971 (output_init_element): Issue -Wc++-compat warning if needed when
4972 initializing a bitfield with enum type.
4973 * c-parser.c (c_parser_expression): Set original_type to
4974 original_type of right hand operand of comman operator.
4975
4976 2009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4977
4978 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
4979 grammar nits.
4980 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
4981 * doc/cpp.texi (Standard Predefined Macros)
4982 (Implementation-defined behavior): Likewise.
4983 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
4984 * doc/gimple.texi (GIMPLE Exception Handling)
4985 (@code{GIMPLE_ASSIGN}): Likewise.
4986 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
4987 * doc/invoke.texi (Warning Options, Optimize Options)
4988 (AVR Options, Darwin Options): Likewise.
4989 (Optimize Options): Reformulate -fwhole-program description.
4990 * doc/loop.texi (Lambda): Likewise.
4991 * doc/md.texi (Output Template, Define Constraints)
4992 (Standard Names, Insn Splitting): Likewise.
4993 * doc/options.texi (Option properties): Likewise.
4994 * doc/passes.texi (Tree-SSA passes): Likewise.
4995 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
4996 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
4997 (File Names and DBX): Likewise.
4998 * doc/trouble.texi (Incompatibilities): Likewise.
4999
5000 2009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5001
5002 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
5003 instruction is correct.
5004
5005 2009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5006
5007 Allow non-constant arguments to conversion intrinsics.
5008 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
5009 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
5010 * spu.c (print_operand): Handle 'v' and 'w'.
5011 (exp2_immediate_p, spu_gen_exp2): Define.
5012 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
5013 spu_convtf_1): Update parameter descriptions.
5014 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5015 * constraints.md ('v', 'w'): New.
5016 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
5017 Remove.
5018 (i2f, I2F): New define_mode_attr.
5019 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
5020 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
5021 fixuns_truncv4sfv4si2): Update to use mode attribute.
5022 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
5023 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
5024 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
5025 patterns for combine.
5026
5027 2009-04-27 Steven Bosscher <steven@gcc.gnu.org>
5028
5029 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
5030 (cprop, hoist, pre, store_motion): New debug counters.
5031 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
5032 is not an RTL pass anymore.
5033 (pass_profiling): Remove extern decl for pass removed in 2005.
5034 (pass_gcse, pass_jump_bypass): Remove.
5035 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
5036 to 0 for clean state.
5037 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
5038 * cse.c (gate_handle_cse_after_global_opts,
5039 rest_of_handle_cse_after_global_opts): New functions.
5040 (pass_cse_after_global_opts): New pass, does local CSE.
5041 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
5042 (TV_CPROP): New timevar.
5043 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
5044 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
5045 (gcse_main, recompute_all_luids): Remove.
5046 (compute_hash_table_work): Call max_reg_num instead of reading
5047 max_gcse_regno.
5048 (cprop_jump): Don't set run_jump_opt_after_gcse.
5049 (constprop_register): Always allow to alter jumps.
5050 (cprop_insn): Likewise.
5051 (do_local_cprop): Likewise.
5052 (local_cprop_pass): Likewise. Return non-zero if something changed.
5053 (cprop): Remove function, fold interesting bits into one_cprop_pass.
5054 (find_implicit_sets): Add note about missed optimization opportunity.
5055 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
5056 pass_rtl_cprop execute function.
5057 Don't bother tracking the pass number, each pass gets its own dumpfile
5058 now anyway.
5059 Always allow to alter jumpsand bypass jumps.
5060 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
5061 will just find no suitable set.
5062 (pre_edge_insert): Fix dumping, this function is for PRE only.
5063 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
5064 pass_rtl_pre execute function.
5065 (hoist_code): Return non-zero if something changed. Keep track of
5066 substitutions and insertions for statistics gathering similar to PRE.
5067 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
5068 called from the pass_rtl_hoist execute function. Show pass statistics.
5069 (compute_store_table): Use max_reg_num directly instead of using the
5070 formerly global max_gcse_regno.
5071 (build_store_vectors): Likewise.
5072 (replace_store_insn): Fix dumping.
5073 (store_motion): Rename to ...
5074 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
5075 pass, called from the pass_rtl_store_motion execute function. Keep
5076 track of substitutions and insertions for statistics gathering similar
5077 to PRE.
5078 (bypass_jumps): Remove, fold interesting bits into ...
5079 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
5080 from the pass_rtl_cprop execute function.
5081 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
5082 pass_jump_bypass): Remove.
5083 (gate_handle_gcse, rest_of_handle_gcse): Remove.
5084 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
5085 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
5086 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
5087 (gate_rtl_store_motion, execute_rtl_store_motion,
5088 pass_rtl_store_motion): New.
5089 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
5090 make it clear that -fcse-skip-blocks is a no-op for backward compat.
5091 * passes.c (init_optimization_passes): Remove pass_gcse and
5092 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
5093 and cse_after_global_opts in place of pass_gcse. Schedule cprop
5094 instead of pass_jump_bypass.
5095
5096 2009-04-27 Richard Guenther <rguenther@suse.de>
5097
5098 PR middle-end/39928
5099 * gimplify.c (gimplify_expr): If we are required to create
5100 a temporary make sure it ends up as register.
5101
5102 2009-04-27 H.J. Lu <hongjiu.lu@intel.com>
5103
5104 PR target/39903
5105 * config/i386/i386.c (construct_container): Don't call
5106 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
5107 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
5108
5109 2009-04-27 Michael Matz <matz@suse.de>
5110
5111 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
5112 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
5113 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
5114 (dump_replaceable_exprs): Take a bitmap.
5115 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
5116 array.
5117 (expand_gimple_basic_block): Likewise.
5118 * tree-ssa-ter.c (struct temp_expr_table_d): Make
5119 replaceable_expressions member a bitmap.
5120 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
5121 (mark_replaceable): Likewise.
5122 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
5123 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
5124
5125 2009-04-27 Richard Guenther <rguenther@suse.de>
5126
5127 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
5128 (verify_stmts): Dispatch to gimple/type verification code.
5129 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
5130 issue with call argument types.
5131
5132 2009-04-27 Michael Matz <matz@suse.de>
5133
5134 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
5135 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
5136 to above.
5137
5138 2009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
5139 Eric Botcazou <ebotcazou@adacore.com>
5140
5141 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
5142 a label's basic block.
5143 (mark_target_live_regs): Tidy and rework obsolete comments.
5144 Change back DF problem to LIVE. If a label starts a basic block,
5145 assume that all registers that used to be live then still are.
5146 (init_resource_info): If a label starts a basic block, set its
5147 BLOCK_FOR_INSN accordingly.
5148 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
5149
5150 2009-04-27 Richard Guenther <rguenther@suse.de>
5151
5152 * tree-flow-inline.h (function_ann): Remove.
5153 (get_function_ann): Likewise.
5154 * tree-dfa.c (create_function_ann): Remove.
5155 * tree-flow.h (struct static_var_ann_d): Remove.
5156 (struct function_ann_d): Likewise.
5157 (union tree_ann_d): Remove fdecl member.
5158 (function_ann_t): Remove.
5159 (function_ann, get_function_ann, create_function_ann): Remove
5160 declarations.
5161
5162 2009-04-27 Uros Bizjak <ubizjak@gmail.com>
5163
5164 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
5165
5166 2009-04-27 Jan Hubicka <jh@suse.cz>
5167
5168 * ipa-pure-const.c (struct funct_state_d): New fields
5169 state_previously_known, looping_previously_known; remove
5170 state_set_in_source.
5171 (analyze_function): Use new fields.
5172 (propagate): Avoid assumption that state_set_in_source imply
5173 nonlooping.
5174
5175 * tree-ssa-loop-niter.c (finite_loop_p): New function.
5176 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
5177 * cfgloop.h (finite_loop_p): Declare.
5178
5179 2009-04-26 Michael Matz <matz@suse.de>
5180
5181 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
5182
5183 2009-04-26 Michael Matz <matz@suse.de>
5184
5185 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
5186 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
5187 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
5188 pass_mark_used_blocks): Remove.
5189 * tree-optimize.c (pass_free_datastructures,
5190 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
5191 * passes.c (init_optimization_passes): Don't call
5192 pass_mark_used_blocks, remove dead code.
5193
5194 2009-04-26 H.J. Lu <hongjiu.lu@intel.com>
5195
5196 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
5197 * tree-ssa-live.h (register_ssa_partition): Likewise.
5198
5199 2009-04-26 Michael Matz <matz@suse.de>
5200
5201 Expand from SSA.
5202 * builtins.c (fold_builtin_next_arg): Handle SSA names.
5203 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
5204 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
5205 SSA names.
5206 (compare_pairs): Swap cost comparison.
5207 (coalesce_ssa_name): Don't use change_partition_var.
5208 * tree-nrv.c (struct nrv_data): Add modified member.
5209 (finalize_nrv_r): Set it.
5210 (tree_nrv): Use it to update statements.
5211 (pass_nrv): Require PROP_ssa.
5212 * tree-mudflap.c (mf_decl_cache_locals,
5213 mf_build_check_statement_for): Use make_rename_temp.
5214 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
5215 * alias.c (find_base_decl): Handle SSA names.
5216 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
5217 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
5218 * rtl.h (set_reg_attrs_for_parm): Declare.
5219 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
5220 to "optimized", remove unused locals at finish.
5221 (execute_free_datastructures): Make global, call
5222 delete_tree_cfg_annotations.
5223 (execute_free_cfg_annotations): Don't call
5224 delete_tree_cfg_annotations.
5225
5226 * ssaexpand.h: New file.
5227 * expr.c (toplevel): Include ssaexpand.h.
5228 (expand_assignment): Handle SSA names the same as register variables.
5229 (expand_expr_real_1): Expand SSA names.
5230 * cfgexpand.c (toplevel): Include ssaexpand.h.
5231 (SA): New global variable.
5232 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
5233 (SSAVAR): New macro.
5234 (set_rtl): New helper function.
5235 (add_stack_var): Deal with SSA names, use set_rtl.
5236 (expand_one_stack_var_at): Likewise.
5237 (expand_one_stack_var): Deal with SSA names.
5238 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
5239 before unique numbers.
5240 (expand_stack_vars): Use set_rtl.
5241 (expand_one_var): Accept SSA names, add asserts for them, feed them
5242 to above subroutines.
5243 (expand_used_vars): Expand all partitions (without default defs),
5244 then only the local decls (ignoring those expanded already).
5245 (expand_gimple_cond): Remove edges when jumpif() expands an
5246 unconditional jump.
5247 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
5248 or remove abnormal edges. Ignore insns setting the LHS of a TERed
5249 SSA name.
5250 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
5251 members of SA; deal with PARM_DECL partitions here; expand
5252 all PHI nodes, free tree datastructures and SA. Commit instructions
5253 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
5254 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
5255 info and statements at start, collect garbage at finish.
5256 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
5257 (VAR_ANN_PARTITION) Remove.
5258 (change_partition_var): Don't declare.
5259 (partition_to_var): Always return SSA names.
5260 (var_to_partition): Only accept SSA names.
5261 (register_ssa_partition): Only check argument.
5262 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
5263 member.
5264 (delete_var_map): Don't free it.
5265 (var_union): Only accept SSA names, simplify.
5266 (partition_view_init): Mark only useful SSA names as used.
5267 (partition_view_fini): Only deal with SSA names.
5268 (change_partition_var): Remove.
5269 (dump_var_map): Use ssa_name instead of partition_to_var member.
5270 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
5271 basic blocks.
5272 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
5273 (struct _elim_graph): New member const_dests; nodes member vector of
5274 ints.
5275 (set_location_for_edge): New static helper.
5276 (create_temp): Remove.
5277 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
5278 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
5279 (new_elim_graph): Allocate const_dests member.
5280 (clean_elim_graph): Truncate const_dests member.
5281 (delete_elim_graph): Free const_dests member.
5282 (elim_graph_size): Adapt to new type of nodes member.
5283 (elim_graph_add_node): Likewise.
5284 (eliminate_name): Likewise.
5285 (eliminate_build): Don't take basic block argument, deal only with
5286 partition numbers, not variables.
5287 (get_temp_reg): New static helper.
5288 (elim_create): Use it, deal with RTL temporaries instead of trees.
5289 (eliminate_phi): Adjust all calls to new signature.
5290 (assign_vars, replace_use_variable, replace_def_variable): Remove.
5291 (rewrite_trees): Only do checking.
5292 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
5293 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
5294 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
5295 contains_tree_r, MAX_STMTS_IN_LATCH,
5296 process_single_block_loop_latch, analyze_edges_for_bb,
5297 perform_edge_inserts): Remove.
5298 (expand_phi_nodes): New global function.
5299 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
5300 functions, initialize new parameter, remember partitions having a
5301 default def.
5302 (finish_out_of_ssa): New global function.
5303 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
5304 don't reset in_ssa_p here, don't disable TER when mudflap.
5305 (pass_del_ssa): Remove.
5306 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
5307 partition members.
5308 (execute_free_datastructures): Declare.
5309 * Makefile.in (SSAEXPAND_H): New variable.
5310 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
5311 * basic-block.h (commit_one_edge_insertion): Declare.
5312 * passes.c (init_optimization_passes): Move pass_nrv and
5313 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
5314 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
5315 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
5316 (redirect_branch_edge): Deal with super block when expanding, split
5317 out jump patching itself into ...
5318 (patch_jump_insn): ... here, new static helper.
5319
5320 2009-04-26 Michael Matz <matz@suse.de>
5321
5322 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
5323 beyond num_ssa_names.
5324 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
5325 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
5326
5327 2009-04-26 Jakub Jelinek <jakub@redhat.com>
5328
5329 PR inline-asm/39543
5330 * fwprop.c (forward_propagate_asm): New function.
5331 (forward_propagate_and_simplify): Propagate also into __asm, if it
5332 doesn't increase the number of referenced registers.
5333
5334 PR c/39889
5335 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
5336
5337 2009-04-26 Jakub Jelinek <jakub@redhat.com>
5338
5339 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
5340 note_nonlocal_vla_type for nonlocal VLAs.
5341 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
5342 contains_remapped_vars, remap_vla_decls): New functions.
5343 (convert_nonlocal_reference_stmt): If not optimizing, call
5344 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
5345 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
5346 if it wasn't found in var_map.
5347 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
5348 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
5349 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
5350 declare_vars.
5351 * gimplify.c (nonlocal_vlas): New variable.
5352 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
5353 referenced VLAs.
5354 (gimplify_body): Create and destroy nonlocal_vlas.
5355
5356 * dwarf2out.c (loc_descr_plus_const): New function.
5357 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
5358 mem_loc_descriptor, loc_descriptor_from_tree_1,
5359 descr_info_loc, gen_variable_die): Use it.
5360
5361 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
5362 !TREE_STATIC VAR_DECLs.
5363 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
5364 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
5365 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
5366 DECL_BY_REFERENCE is valid.
5367 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
5368 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
5369 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
5370 Copy DECL_BY_REFERENCE.
5371 (struct nesting_copy_body_data): New type.
5372 (nesting_copy_decl): New function.
5373 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
5374 if they have variable length.
5375
5376 2009-04-26 Michael Matz <matz@suse.de>
5377
5378 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
5379 mark new temporaries for renaming.
5380
5381 2009-04-26 Joseph Myers <joseph@codesourcery.com>
5382
5383 PR c/39581
5384 * c-decl.c (global_bindings_p): Return negative value.
5385 (c_variable_size): New. Based on variable_size from
5386 stor-layout.c.
5387 (grokdeclarator): Call c_variable_size not variable_size.
5388
5389 2009-04-26 Uros Bizjak <ubizjak@gmail.com>
5390
5391 * config/i386/i386.c (print_operand) ['z']: Fix typo.
5392
5393 2009-04-26 Kai Tietz <kai.tietz@onevision.com>
5394
5395 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
5396 Redefine it to just use mingw/include.
5397 (ASM_SPEC): Rules for -m32 and -m64.
5398 (LINK_SPEC): Use Likewise.
5399 (SPEC_32): New define.
5400 (SPEC_64): Likewise.
5401 (SUB_LINK_SPEC): Likewise.
5402 (MULTILIB_DEFAULTS): New define.
5403 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
5404 Add multilib options.
5405 (MULTILIB_DIRNAMES): Likewise.
5406 (MULTILIB_OSDIRNAMES): Likewise.
5407 (LIBGCC): Likewise.
5408 (INSTALL_LIBGCC): Likewise.
5409
5410 2009-04-26 Joseph Myers <joseph@codesourcery.com>
5411
5412 PR c/39556
5413 * c-tree.h (enum c_inline_static_type): New.
5414 (record_inline_static): Declare.
5415 * c-decl.c (struct c_inline_static, c_inline_statics,
5416 record_inline_static, check_inline_statics): New.
5417 (pop_file_scope): Call check_inline_statics.
5418 (start_decl): Call record_inline_static instead of pedwarning
5419 directly for static in inline function.
5420 * c-typeck.c (build_external_ref): Call record_inline_static
5421 instead of pedwarning directly for static referenced in inline
5422 function.
5423
5424 2009-04-26 Steven Bosscher <steven@gcc.gnu.org>
5425
5426 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
5427 not new but only being rescanned.
5428 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
5429 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
5430 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
5431 record_set_info, compute_set, grealloc): Remove.
5432 (recompute_all_luids): New function.
5433 (gcse_main): Don't compute sets, and don't do related memory
5434 allocations/free-ing. If something changed before the end of the
5435 pass, update LUIDs using recompute_all_luids.
5436 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
5437 (free_gcse_mem): Don't free it either.
5438 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
5439 Use the df insn LUIDs.
5440 (load_killed_in_block): Likewise.
5441 (compute_hash_table_work): Don't compute reg_set_in_block.
5442 (compute_transp): Use DF_REG_DEF_CHAINs.
5443 (local_cprop_pass): Don't use compute_sets and related functions.
5444 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
5445 Use get_max_uid() instead of max_cuid.
5446 (insert_insn_end_basic_block, pre_insert_copy_insn,
5447 update_ld_motion_stores): Don't try to
5448 keep reg_set tables up to date.
5449 (pre_insert_copies): Use df insn LUIDs.
5450 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
5451 (reg_set_info): Don't use extra bitmap argument.
5452 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
5453 information to compute regs_set_in_block.
5454 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
5455 (bypass_jumps): Don't use compute_sets and friends.
5456
5457 2009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5458
5459 PR testsuite/39710
5460 * opts.c (undocumented_msg): Do not leave blank even with
5461 ENABLE_CHECKING.
5462
5463 2009-04-25 Joseph Myers <joseph@codesourcery.com>
5464
5465 * c-decl.c (build_enumerator): Allow values folding to integer
5466 constants but not integer constant expressions with a pedwarn if
5467 pedantic.
5468
5469 2009-04-25 Joseph Myers <joseph@codesourcery.com>
5470
5471 PR c/39582
5472 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
5473 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
5474 type is an integer constant.
5475
5476 2009-04-25 Uros Bizjak <ubizjak@gmail.com>
5477
5478 PR target/39897
5479 * config/i386/i386.c (print_operand) ['z']: Revert handling of
5480 HImode operands.
5481
5482 2009-04-25 Joseph Myers <joseph@codesourcery.com>
5483
5484 PR c/39564
5485 * c-decl.c (grokdeclarator): Diagnose declarations of functions
5486 with variably modified return type and no storage class
5487 specifiers, except for the case of nested functions. Distinguish
5488 extern declarations of functions with variably modified return
5489 types from those of objects with variably modified types.
5490
5491 2009-04-25 Jan Hubicka <jh@suse.cz>
5492
5493 * tree.c (list_equal_p): New function.
5494 * tree.h (list_equal_p): Declare.
5495 * coretypes.h (edge_def, edge, const_edge, basic_block_def
5496 basic_block_def, basic_block, const_basic_block): New.
5497 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
5498 (redirect_eh_edge): New function.
5499 (make_eh_edge_update_phi): EH edges are not abnormal.
5500 * except.c: Include tree-flow.h.
5501 (list_match): New function.
5502 (eh_region_replaceable_by_p): New function.
5503 (replace_region): New function.
5504 (hash_type_list): New function.
5505 (hash_eh_region): New function.
5506 (eh_regions_equal_p): New function.
5507 (merge_peers): New function.
5508 (remove_unreachable_regions): Verify EH tree when checking;
5509 merge peers.
5510 (copy_eh_region_1): New function.
5511 (copy_eh_region): New function.
5512 (push_reachable_handler): New function.
5513 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
5514 regions without label but with live RESX.
5515 * except.h (redirect_eh_edge_to_label): New.
5516 * tree-flow.h (redirect_eh_edge): New.
5517 * coretypes.h (edge_def, edge, const_edge, basic_block_def
5518 basic_block_def, basic_block, const_basic_block): Remove.
5519 * Makefile.in (except.o): Add dependency on tree-flow.h
5520 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
5521 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
5522 Remove.
5523
5524 2009-04-25 Eric Botcazou <ebotcazou@adacore.com>
5525
5526 PR bootstrap/39645
5527 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
5528 on the destination of memcpy.
5529
5530 2009-04-25 Paolo Bonzini <bonzini@gnu.org>
5531
5532 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
5533 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
5534 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
5535
5536 2009-04-25 Jan Hubicka <jh@suse.cz>
5537
5538 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
5539 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
5540 to be reached by different label than left.
5541 (update_eh_edges): Update comment; remove edge_to_remove if possible
5542 and return true if suceeded.
5543 (cleanup_empty_eh): Accept sharing map; handle shared regions.
5544 (cleanup_eh): Compute sharing map.
5545 * except.c (remove_eh_handler_and_replace): Add argument if we should
5546 update regions.
5547 (remove_unreachable_regions): Update for label sharing.
5548 (label_to_region_map): Likewise.
5549 (get_next_region_sharing_label): New function.
5550 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
5551 prev_try pointers.
5552 (remove_eh_handler): Update.
5553 (remove_eh_region_and_replace_by_outer_of): New function.
5554 * except.h (struct eh_region): Add next_region_sharing_label.
5555 (remove_eh_region_and_replace_by_outer_of,
5556 get_next_region_sharing_label): Declare.
5557 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
5558
5559 2009-04-25 Jan Hubicka <jh@suse.cz>
5560
5561 * tree-cfg.c (split_critical_edges): Split also edges where we can't
5562 insert code even if they are not critical.
5563
5564 2009-04-25 Jan Hubicka <jh@suse.cz>
5565
5566 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
5567 (gimple_can_remove_branch_p): EH edges won't remove branch by
5568 redirection.
5569 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
5570 updating of non-abnormal EH edges.
5571 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
5572 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
5573 (split_critical_edges): Split also edges where emitting code on them
5574 will lead to splitting later.
5575
5576 2009-04-25 Uros Bizjak <ubizjak@gmail.com>
5577 H.J. Lu <hongjiu.lu@intel.com>
5578
5579 PR target/39590
5580 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
5581 the configured assembler supports fildq and fistpq mnemonics.
5582 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
5583 * configure: Regenerated.
5584 * config.in: Ditto.
5585
5586 * config/i386/i386.c (print_operand): Handle 'Z'.
5587 ['z']: Remove handling of special fild/fist suffixes.
5588 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
5589 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
5590 suffix of fild insn.
5591 (*floatsi<mode>2_vector_mixed): Ditto.
5592 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
5593 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
5594 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
5595 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
5596 * config/i386/gas.h (GAS_MNEMONICS): Remove.
5597
5598 2009-04-25 Ben Elliston <bje@au.ibm.com>
5599
5600 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
5601 the source of a set operation.
5602
5603 2009-04-25 Anatoly Sokolov <aesok@post.ru>
5604
5605 * target.h (struct gcc_target): Add case_values_threshold field.
5606 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
5607 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
5608 * targhooks.c (default_case_values_threshold): New function.
5609 * targhooks.h (default_case_values_threshold): Declare function.
5610 * stmt.c (expand_case): Use case_values_threshold target hook.
5611 * expr.h (case_values_threshold): Remove declartation.
5612 * expr.c (case_values_threshold): Remove function.
5613 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
5614
5615 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
5616 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
5617 (avr_case_values_threshold): Declare as static.
5618 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
5619
5620 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
5621 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
5622 (mn10300_case_values_threshold): New function.
5623
5624 2009-04-24 H.J. Lu <hongjiu.lu@intel.com>
5625
5626 * ira.c (setup_cover_and_important_classes): Add enum cast.
5627
5628 2009-04-24 Vladimir Makarov <vmakarov@redhat.com>
5629
5630 * genpreds.c (write_enum_constraint_num): Output definition of
5631 CONSTRAINT_NUM_DEFINED_P macro.
5632 * ira.c (setup_cover_and_important_classes): Use
5633 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
5634
5635 2009-04-24 DJ Delorie <dj@redhat.com>
5636
5637 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
5638 __SH2A_SINGLE_ONLY__ also.
5639
5640 2009-04-24 Steve Ellcey <sje@cup.hp.com>
5641
5642 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
5643 (movdf_internal): Ditto.
5644 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
5645 SFmode and DFmode constants.
5646 (ia64_print_operand): Add 'G' format for printing
5647 floating point constants.
5648
5649 2009-04-24 Richard Guenther <rguenther@suse.de>
5650
5651 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
5652 from unsigned additions.
5653
5654 2009-04-24 Joseph Myers <joseph@codesourcery.com>
5655
5656 * c-typeck.c (set_init_index): Allow array designators that are
5657 not integer constant expressions with a pedwarn if pedantic.
5658
5659 2009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
5660
5661 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
5662 zero if no overlap in nonzero bits between the operands.
5663
5664 2009-04-24 Ian Lance Taylor <iant@google.com>
5665
5666 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
5667 (record_dead_and_set_regs): Likewise.
5668 * df.h (struct df_mw_hardreg): Change flags field to int.
5669 (struct df_base_ref): Likewise.
5670 (struct df): Change changeable_flags field to int.
5671 * df-scan.c (df_defs_record): Change clobber_flags to int.
5672 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
5673 constants rather than #define macros.
5674 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
5675 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
5676 (enum dwarf_calling_convention): Likewise.
5677 (enum dwarf_line_number_x_ops): Likewise.
5678 (enum dwarf_call_frame_info): Likewise.
5679 (enum dwarf_source_language): Likewise.
5680 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
5681 (add_calling_convention_attribute): Likewise.
5682 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
5683 (combine_comparisons): Change compcode to int. Add cast to enum type.
5684 * genrecog.c (maybe_both_true_2): Change c to int.
5685 (write_switch): Likewise. Add cast to enum type.
5686 * gimplify.c (gimplify_omp_for): Handle return values from
5687 gimplify_expr using MIN rather than bitwise or.
5688 (gimplify_expr): Add cast to enum type.
5689 * ipa-prop.c (update_jump_functions_after_inlining): Change
5690 IPA_BOTTOM to IPA_JF_UNKNOWN.
5691 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
5692 Add casts to enum type.
5693 (setup_cover_and_important_classes): Change cl to int. Add casts
5694 to enum type.
5695 (setup_class_translate): Change cl and mode to int.
5696 (ira_init_once): Change mode to int.
5697 (free_register_move_costs): Likewise.
5698 (setup_prohibited_mode_move_regs): Add casts to enum type.
5699 * langhooks.c (add_builtin_function_common): Rework assertion that
5700 value fits bitfield.
5701 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
5702 * omega.c (omega_do_elimination): Avoid math on enum types.
5703 * optabs.c (expand_vec_shift_expr): Remove casts to int.
5704 * opts.c (set_debug_level): Change 2 to enum constant. Use new
5705 int local to handle integral_argment value.
5706 * regmove.c (try_auto_increment): Change PUT_MODE to
5707 PUT_REG_NOTE_KIND.
5708 * reload.c (push_secondary_reload): Add casts to enum type.
5709 (secondary_reload_class, find_valid_class): Likewise.
5710 * reload1.c (emit_input_reload_insns): Likewise.
5711 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
5712 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
5713 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
5714 constant.
5715 * tree.c (build_common_builtin_nodes): Add casts to enum type.
5716 * tree-complex.c (complex_lattice_t): Typedef to int rather than
5717 enum type.
5718 (expand_complex_libcall): Add casts to enum type.
5719 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
5720 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
5721 with ERROR_MARK, not NUM_TREE_CODES.
5722 (vect_create_epilog_for_reduction): Likewise.
5723 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
5724 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
5725 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
5726 enum machine_mode.
5727 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
5728 vect_unused_in_loop. Change 0 to loop_vect.
5729 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
5730 * var-tracking.c (get_init_value): Change return type to enum
5731 var_init_status.
5732 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
5733 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
5734 arm_fp_model.
5735 (arm_override_options): Add casts to enum type.
5736 (arm_emit_tls_decoration): Likewise.
5737 * config/i386/i386.c (ix86_function_specific_restore): Add casts
5738 to enum type.
5739 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
5740 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
5741 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
5742 enum type.
5743 * config/s390/s390.c (code_for_builtin_64): Change to array of
5744 enum insn_code.
5745 (code_for_builtin_31): Likewise.
5746 (s390_expand_builtin): Change code_for_builtin to enum insn_code
5747 const *.
5748 * config/sparc/sparc.c (sparc_override_options): Change value
5749 field in struct code_model to enum cmodel. In initializer change
5750 0 to NULL and add cast to enum type.
5751
5752 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
5753 Change all callers. Issue a -Wc++-compat warning using
5754 lhs_origtype if necessary.
5755 (convert_for_assignment): Issue -Wc++-compat warnings about
5756 invalid conversions to enum type on assignment.
5757 * c-common.h (build_modify_expr): Update declaration.
5758
5759 2009-04-24 Nick Clifton <nickc@redhat.com>
5760
5761 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
5762 (function_arg_advance): Likewise.
5763 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
5764 5th alternative.
5765
5766 2009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
5767
5768 * config/s390/constraints.md ('I', 'J'): Fix condition.
5769
5770 2009-04-24 Diego Novillo <dnovillo@google.com>
5771
5772 * gengtype-parse.c (parse_error): Add newline after message.
5773
5774 2009-04-24 H.J. Lu <hongjiu.lu@intel.com>
5775
5776 * config/i386/sse.md (avxmodesuffixs): Removed.
5777 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
5778 (*avx_pinsr<ssevecsize>): This.
5779
5780 2009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
5781
5782 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
5783 follow chains of regs with a single definition, and allow expressions
5784 that are function_invariant_p.
5785 (simple_rhs_p): Allow expressions that are function_invariant_p.
5786
5787 2009-04-24 Paolo Bonzini <bonzini@gnu.org>
5788
5789 PR middle-end/39867
5790 * fold-const.c (fold_cond_expr_with_comparison): When folding
5791 > and >= to MAX, make sure the MAX uses the same type as the
5792 comparison's operands.
5793
5794 2009-04-24 Nick Clifton <nickc@redhat.com>
5795
5796 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
5797 addressing for DImode accesses.
5798 (frv_print_operand_address): Handle PLUS case.
5799 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
5800
5801 2009-04-24 Jakub Jelinek <jakub@redhat.com>
5802
5803 PR rtl-optimization/39794
5804 * alias.c (canon_true_dependence): Add x_addr argument.
5805 * rtl.h (canon_true_dependence): Adjust prototype.
5806 * cse.c (check_dependence): Adjust canon_true_dependence callers.
5807 * cselib.c (cselib_invalidate_mem): Likewise.
5808 * gcse.c (compute_transp): Likewise.
5809 * dse.c (scan_reads_nospill): Likewise.
5810 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
5811 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
5812 canon_base_addr of the group, plus optional offset.
5813 (struct group_info): Rename canon_base_mem to
5814 canon_base_addr.
5815 (get_group_info): Set canon_base_addr to canon_rtx of base, not
5816 canon_rtx of base_mem.
5817
5818 2009-04-23 Paolo Bonzini <bonzini@gnu.org>
5819
5820 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
5821 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
5822
5823 2009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5824
5825 * config/spu/spu-builtins.h: Delete file.
5826
5827 * config/spu/spu.h (enum spu_builtin_type): Move here from
5828 spu-builtins.h.
5829 (struct spu_builtin_description): Likewise. Add GTY marker.
5830 Do not use enum spu_function_code or enum insn_code.
5831 (spu_builtins): Add extern declaration.
5832
5833 * config/spu/spu.c: Do not include "spu-builtins.h".
5834 (enum spu_function_code, enum spu_builtin_type_index,
5835 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
5836 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
5837 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
5838 unsigned_V2DI_type_node): Move here from spu-builtins.h.
5839 (spu_builtin_types): Make static. Add GTY marker.
5840 (spu_builtins): Add extern declaration with GTY marker.
5841 Include "gt-spu.h".
5842
5843 * config/spu/spu-c.c: Do not include "spu-builtins.h".
5844 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
5845 Check programmatically whether all parameters are scalar.
5846
5847 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
5848
5849 2009-04-23 Eric Botcazou <ebotcazou@adacore.com>
5850
5851 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
5852 assignment from the constructor either if the target is volatile.
5853
5854 2009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
5855
5856 * config/arm/arm.md (insv): Do not share operands[0].
5857
5858 2009-04-23 Nathan Sidwell <nathan@codesourcery.com>
5859
5860 * config/vxlib-tls.c (active_tls_threads): Delete.
5861 (delete_hook_installed): New.
5862 (tls_delete_hook): Don't delete the delete hook.
5863 (tls_destructor): Delete it here.
5864 (__gthread_set_specific): Adjust installing the delete hook.
5865 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
5866 __gthread_leave_tsd_dtor_context.
5867
5868 2009-04-23 Rafael Avila de Espindola <espindola@google.com>
5869
5870 * c-format.c (gcc_tdiag_char_table): Add support for %E.
5871
5872 2009-04-23 Uros Bizjak <ubizjak@gmail.com>
5873
5874 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
5875 enum type.
5876 (alpha_rtx_costs): Ditto.
5877 (emit_unlikely_jump): Use add_reg_note.
5878 (emit_frame_store_1): Ditto.
5879 (alpha_expand_prologue): Ditto.
5880 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
5881 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
5882
5883 2009-04-23 Nick Clifton <nickc@redhat.com>
5884
5885 * config/v850/v850.md (epilogue): Remove suppressed code.
5886 (return): Rename to return_simple and remove test of frame size.
5887 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
5888 to gen_return_simple.
5889
5890 2009-04-22 Jing Yu <jingyu@google.com>
5891
5892 PR testsuite/39781
5893 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
5894
5895 2009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
5896
5897 PR C/31499
5898 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
5899 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
5900 value is a VECTOR_CST, the element type is the element type of the
5901 vector.
5902
5903 2009-04-22 DJ Delorie <dj@redhat.com>
5904
5905 * config/m32c/m32c.h: Update GTY annotations to new syntax.
5906
5907 2009-04-22 Jakub Jelinek <jakub@redhat.com>
5908
5909 * alias.c (find_base_term): Move around LO_SUM case, so that
5910 CONST falls through into PLUS/MINUS handling.
5911
5912 PR c/39855
5913 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
5914 into 0, use omit_one_operand.
5915
5916 2009-04-23 Ben Elliston <bje@au.ibm.com>
5917
5918 * config/rs6000/linux-unwind.h (get_regs): Remove type
5919 puns. Change the type of `pc' to an array of unsigned ints and
5920 update all users. Constify frame24.
5921
5922 2009-04-22 DJ Delorie <dj@redhat.com>
5923
5924 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
5925 declarations before code.
5926 (current_function_special_page_vector): Likewise.
5927 (m32c_expand_insv): Silence a warning.
5928
5929 2009-04-21 Taras Glek <tglek@mozilla.com>
5930
5931 * alias.c: Update GTY annotations to new syntax.
5932 * basic-block.h: Likewise.
5933 * bitmap.h: Likewise.
5934 * c-common.h: Likewise.
5935 * c-decl.c: Likewise.
5936 * c-parser.c: Likewise.
5937 * c-pragma.c: Likewise.
5938 * c-tree.h: Likewise.
5939 * cfgloop.h: Likewise.
5940 * cgraph.h: Likewise.
5941 * config/alpha/alpha.c: Likewise.
5942 * config/arm/arm.h: Likewise.
5943 * config/avr/avr.h: Likewise.
5944 * config/bfin/bfin.c: Likewise.
5945 * config/cris/cris.c: Likewise.
5946 * config/darwin.c: Likewise.
5947 * config/frv/frv.c: Likewise.
5948 * config/i386/i386.c: Likewise.
5949 * config/i386/i386.h: Likewise.
5950 * config/i386/winnt.c: Likewise.
5951 * config/ia64/ia64.h: Likewise.
5952 * config/iq2000/iq2000.c: Likewise.
5953 * config/mips/mips.c: Likewise.
5954 * config/mmix/mmix.h: Likewise.
5955 * config/pa/pa.c: Likewise.
5956 * config/pa/pa.h: Likewise.
5957 * config/rs6000/rs6000.c: Likewise.
5958 * config/s390/s390.c: Likewise.
5959 * config/sparc/sparc.c: Likewise.
5960 * config/xtensa/xtensa.c: Likewise.
5961 * cselib.h: Likewise.
5962 * dbxout.c: Likewise.
5963 * dwarf2out.c: Likewise.
5964 * except.c: Likewise.
5965 * except.h: Likewise.
5966 * fixed-value.h: Likewise.
5967 * function.c: Likewise.
5968 * function.h: Likewise.
5969 * gimple.h: Likewise.
5970 * integrate.c: Likewise.
5971 * optabs.c: Likewise.
5972 * output.h: Likewise.
5973 * real.h: Likewise.
5974 * rtl.h: Likewise.
5975 * stringpool.c: Likewise.
5976 * tree-data-ref.c: Likewise.
5977 * tree-flow.h: Likewise.
5978 * tree-scalar-evolution.c: Likewise.
5979 * tree-ssa-address.c: Likewise.
5980 * tree-ssa-alias.h: Likewise.
5981 * tree-ssa-operands.h: Likewise.
5982 * tree.c: Likewise.
5983 * tree.h: Likewise.
5984 * varasm.c: Likewise.
5985 * varray.h: Likewise.
5986 * vec.h: Likewise.
5987 * coretypes.h: Do not define GTY macro if it is already defined.
5988 * doc/gty.texi: Update GTY documentation to new syntax.
5989 * gengtype-lex.l: Enforce attribute-like syntax for GTY
5990 annotations on structs.
5991 * gengtype-parse.c: Likewise.
5992
5993 2009-04-22 Mark Heffernan <meheff@google.com>
5994
5995 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
5996
5997 2009-04-22 Kazu Hirata <kazu@codesourcery.com>
5998
5999 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
6000 where appropriate.
6001
6002 2009-04-22 Kazu Hirata <kazu@codesourcery.com>
6003
6004 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
6005 the same as a PLUS without a shift. Increase the cost of a
6006 CONST_INT in MULT.
6007
6008 2009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6009
6010 * Makefile.in: Update dependencies.
6011 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
6012 * errors.h: Remove bogus comment about compatibility.
6013 (warning): Update declaration.
6014 * genautomata.c: Update all calls to warning.
6015 * gimple.c: Do not include errors.h. Include toplev.h.
6016 * tree-ssa-structalias.c: Do not include errors.h.
6017 * omega.c: Likewise.
6018 * tree-ssa-reassoc.c: Likewise.
6019 * config/spu/spu-c.c: Likewise.
6020 * config/spu/t-spu-elf: Update dependencies.
6021
6022 2009-04-22 Richard Guenther <rguenther@suse.de>
6023
6024 PR tree-optimization/39824
6025 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
6026 make sure the types are compatible.
6027
6028 2009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6029
6030 PR c++/14875
6031 * c-common.c (c_parse_error): Take a token_flags parameter.
6032 Use token_type for the token type instead.
6033 Pass token_flags to cpp_type2name.
6034 * c-common.h (c_parse_error): Update declaration.
6035 * c-parser.c (c_parser_error): Pass 0 as token flags.
6036
6037 2009-04-22 Andrey Belevantsev <abel@ispras.ru>
6038
6039 PR rtl-optimization/39580
6040 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
6041
6042 2009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6043
6044 * function.c (expand_function_end): Do not emit a jump to the "naked"
6045 return label for fall-through returns.
6046 * except.c (sjlj_emit_function_exit): Always place the call to the
6047 unregister function at the location installed by expand_function_end.
6048
6049 2009-04-22 Richard Guenther <rguenther@suse.de>
6050
6051 PR tree-optimization/39845
6052 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
6053 (gen_inbound_check): Likewise.
6054
6055 2009-04-22 Nathan Sidwell <nathan@codesourcery.com>
6056
6057 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
6058 padding for PPC.
6059 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
6060 * config/vxlib.c (__gthread_once): Add race guard for PPC.
6061
6062 2009-04-22 Paolo Bonzini <bonzini@gnu.org>
6063
6064 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
6065 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
6066 shift counts to avoid out-of-bounds array accesses.
6067
6068 2009-04-22 Paolo Bonzini <bonzini@gnu.org>
6069
6070 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
6071 (Pmode): Move above.
6072
6073 2009-04-22 Uros Bizjak <ubizjak@gmail.com>
6074
6075 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
6076 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
6077 GET_CODE macro. Use IN_RANGE macro where appropriate.
6078 * config/alpha/alpha.h: Ditto.
6079 * config/alpha/alpha.md: Ditto.
6080 * config/alpha/constraints.md: Ditto.
6081 * config/alpha/predicates.md: Ditto.
6082
6083 2009-04-22 Paolo Bonzini <bonzini@gnu.org>
6084
6085 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
6086 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6087 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6088 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6089 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6090 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6091 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6092 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6093 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6094 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6095 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6096 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6097 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6098 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6099 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6100 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6101 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6102 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6103 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6104 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6105 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6106 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6107 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6108 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6109 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6110 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6111 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6112
6113 2009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
6114
6115 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
6116 references from comments.
6117 * cfgbuild.c: (count_basic_blocks): Delete.
6118 (find_basic_blocks_1): Delete.
6119 (find_basic_blocks): Delete.
6120 * except.c (finish_eh_generation): Make static. Move comment from
6121 except.h here. Remove find_basic_blocks references from comments.
6122 * except.h (finish_eh_generation): Delete.
6123 * basic-block.h (find_basic_blocks): Delete.
6124 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
6125
6126 2009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
6127
6128 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
6129 (sdbout_parms): Likewise.
6130
6131 2009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
6132
6133 * config/sh/sh.c (prepare_cbranch_operands): Use
6134 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
6135 (expand_cbranchdi4): Likewise.
6136 (from_compare): Add cast to enum type.
6137 (expand_cbranchsi4): Use add_reg_note.
6138 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
6139 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
6140 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
6141 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
6142 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
6143 instead of CODE_FOR_nothing.
6144 (cbranchdi4): Likewise. Fix the order of arguments for
6145 gen_rtx_fmt_ee.
6146 (push_fpscr): Use add_reg_note.
6147 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
6148 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
6149
6150 2009-04-21 Joseph Myers <joseph@codesourcery.com>
6151
6152 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
6153 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
6154 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
6155 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
6156 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
6157 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
6158 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
6159 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
6160 config/alpha/x-vms, config/arc/t-arc,
6161 config/arm/README-interworking, config/arm/arm-c.c,
6162 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
6163 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
6164 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
6165 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
6166 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
6167 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
6168 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
6169 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
6170 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
6171 config/cris/t-elfmulti, config/crx/t-crx,
6172 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
6173 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
6174 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
6175 config/h8300/t-h8300, config/i386/athlon.md,
6176 config/i386/darwin-libgcc.10.4.ver,
6177 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
6178 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
6179 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
6180 config/i386/t-linux64, config/i386/t-nwld,
6181 config/i386/t-rtems-i386, config/i386/t-sol2-10,
6182 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
6183 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
6184 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
6185 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
6186 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
6187 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
6188 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
6189 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
6190 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
6191 config/m68k/t-uclinux, config/mcore/t-mcore,
6192 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
6193 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
6194 config/mips/crtn.asm, config/mips/irix-crti.asm,
6195 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
6196 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
6197 config/mips/mips-fixed.md, config/mips/sb1.md,
6198 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
6199 config/mips/t-iris6, config/mips/t-isa3264,
6200 config/mips/t-libgcc-mips16, config/mips/t-linux64,
6201 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
6202 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
6203 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
6204 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
6205 config/mn10300/t-linux, config/mn10300/t-mn10300,
6206 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
6207 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
6208 config/picochip/libgccExtras/clzsi2.asm,
6209 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
6210 config/rs6000/darwin-libgcc.10.4.ver,
6211 config/rs6000/darwin-libgcc.10.5.ver,
6212 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
6213 config/rs6000/t-aix43, config/rs6000/t-aix52,
6214 config/rs6000/t-darwin, config/rs6000/t-fprules,
6215 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
6216 config/rs6000/t-lynx, config/rs6000/t-netbsd,
6217 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
6218 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
6219 config/rs6000/t-rtems, config/rs6000/t-spe,
6220 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
6221 config/score/t-score-elf, config/sh/divcost-analysis,
6222 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
6223 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
6224 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
6225 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
6226 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
6227 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
6228 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
6229 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
6230 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
6231 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
6232 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
6233 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
6234 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
6235 limitx.h, version.c, xcoff.h: Add copyright and license notices.
6236 * config/h8300/genmova.sh: Include copyright and license notices
6237 in generated output.
6238 * config/h8300/mova.md: Regenerate.
6239 * doc/install.texi2html: Include word "Copyright" in copyright
6240 notice and use name "Free Software Foundation, Inc.".
6241 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
6242 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
6243 ChangeLog-2007, ChangeLog-2008: Correct dates.
6244
6245 2009-04-21 Eric Botcazou <ebotcazou@adacore.com>
6246
6247 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
6248 NE_EXPR operations as well.
6249 * c-parser.c (c_parser_condition): Do not set location information on
6250 the condition.
6251 (c_parser_conditional_expression): Likewise.
6252 (c_parser_binary_expression): Set location information on operators.
6253 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
6254 TRUTH_NOT_EXPR has been folded.
6255 * fold-const.c (fold_truth_not_expr): Copy location information from
6256 the incoming expression to the outgoing one.
6257 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
6258 recursive calls on the LHS of the operator but pass that of the
6259 operator to recursive calls on the RHS of the operator. Set it
6260 on the COND_EXPR.
6261 (shortcut_cond_expr): Set the locus of the operator on the second
6262 COND_EXPR and that of the expression on the first in degenerate cases.
6263 Pass the locus of the expression to calls to shortcut_cond_r.
6264 Set the locus of the 'then' block on the associated jump, if any.
6265 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
6266 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
6267 expression to call to gimplify_boolean_expr.
6268
6269 2009-04-21 Kai Tietz <kai.tietz@onevision.com>
6270
6271 * config.gcc: Add additional configuration for
6272 i686-w64-mingw* and x86_64-w64-mingw* triplet.
6273 * config/i386/mingw-w64.h: New mingw-w64 specific header.
6274 (CPP_SPEC): Redefine for allowing -municode option.
6275 (STARTFILE_SPEC): Likewise.
6276 * config/i386/t-mingw-w64: New.
6277 * config/i386/mingw-w64.opt: New.
6278 (municode): Add new target option.
6279 * doc/invoke.texi (municode): Add documentation for new option.
6280
6281 2009-04-21 Ian Lance Taylor <iant@google.com>
6282
6283 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6284 Correct test for number of arguments.
6285 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
6286
6287 2009-04-21 Andreas Schwab <schwab@linux-m68k.org>
6288
6289 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
6290 argument of emit_library_call.
6291
6292 2009-04-21 Richard Guenther <rguenther@suse.de>
6293
6294 PR middle-end/39829
6295 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
6296 inside VIEW_CONVERT_EXPRs.
6297
6298 2009-04-21 Martin Jambor <mjambor@suse.cz>
6299
6300 * tree-switch-conversion.c (build_constructors): Split a long line.
6301 (constructor_contains_same_values_p): New function.
6302 (build_one_array): Create assigns of constants if possible, do not
6303 call mark_sym_for_renaming, call update_stmt.
6304 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
6305 make_rename_temp. Do not call mark_symbols_for_renaming, call
6306 update_stmt.
6307 (gen_def_assigns): Do not call mark_symbols_for_renaming or
6308 find_new_referenced_vars, call update_stmt.
6309 (gen_inbound_check): Use create_tmp_var and create ssa names manually
6310 instead of calling make_rename_temp. Do not call
6311 find_new_referenced_vars or mark_symbols_for_renaming, call
6312 update_stmt.
6313
6314 2009-04-21 Richard Guenther <rguenther@suse.de>
6315
6316 PR tree-optimization/39827
6317 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
6318 (tree_ssa_phiprop): Pass the correct array size.
6319
6320 2009-04-21 Uros Bizjak <ubizjak@gmail.com>
6321
6322 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
6323
6324 2009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
6325
6326 PR 16202
6327 * c-typeck.c (lvalue_p): Move declaration ...
6328 * c-common.h (lvalue_p): ... to here.
6329 * c-common.c (candidate_equal_p): New.
6330 (add_tlist): Use it.
6331 (merge_tlist): Use it.
6332 (warn_for_collisions_1): Likewise.
6333 (warning_candidate_p): Accept more candidates.
6334 (verify_tree): A warning candidate can be an expression. Use
6335 candidate_equal_p.
6336
6337 2009-04-21 Ben Elliston <bje@au.ibm.com>
6338
6339 PR target/5267
6340 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
6341 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
6342 options. Remove -mcall-solaris documentation.
6343
6344 2009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6345
6346 PR c++/13358
6347 * doc/invoke.texi (-Wlong-long): Update description.
6348 * c-lex (interpret_integer): Only warn if there was no previous
6349 overflow and -Wlong-long is enabled.
6350 * c-decl.c (declspecs_add_type): Drop redundant flags.
6351 * c.opt (Wlong-long): Init to -1.
6352 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
6353 and front-end warn_long_long. Wlong-long only depends on other
6354 flags if it is uninitialized.
6355 * c-parser.c (disable_extension_diagnostics): warn_long_long is
6356 the same for CPP and FE.
6357 (restore_extension_diagnostics): Likewise.
6358
6359 2009-04-20 Ian Lance Taylor <iant@google.com>
6360
6361 Fix enum conversions which are invalid in C++:
6362 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
6363 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
6364 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
6365 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
6366 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
6367 (dbxout_parms): Likewise.
6368 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
6369 (df_clear_flags): Likewise.
6370 * df-problems.c (df_rd_bb_local_compute_process_def): Change
6371 top_flag parameter to int.
6372 (df_chain_create_bb_process_use): Likewise.
6373 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
6374 Remove cast.
6375 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
6376 (df_ref_create_structure, df_def_record_1): Likewise.
6377 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
6378 (df_notes_rescan): Change 0 to VOIDmode in function call.
6379 (df_get_call_refs, df_insn_refs_collect): Likewise.
6380 (df_bb_regs_collect): Likewise.
6381 (df_entry_block_defs_collect): Likewise.
6382 (df_exit_block_uses_collect): Likewise.
6383 * df.h: Update declarations.
6384 * double-int.c (double_int_divmod): Add cast to enum type.
6385 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
6386 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
6387 (based_loc_descr): Likewise.
6388 (loc_descriptor_from_tree_1): Change first_op and second_op to
6389 enum dwarf_location_atom. Add cast to enum type.
6390 * expmed.c (init_expmed): Change 0 to SET in function call.
6391 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
6392 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
6393 (do_store_flag): Likewise.
6394 * fixed-value.h (struct fixed_value): Change mode to enum
6395 machine_mode.
6396 * function.c (assign_parms): Change 0 to VOIDmode in function call.
6397 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
6398 function call.
6399 (insert_insn_decl, insert_decl, insert_state): Likewise.
6400 (automata_list_finish): Likewise.
6401 * genrecog.c (process_define_predicate): Add cast to enum type.
6402 * gensupport.c (init_predicate_table): Add cast to enum type.
6403 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
6404 function call.
6405 (gimple_build_call_1, gimple_build_label): Likewise.
6406 (gimple_build_goto, gimple_build_asm_1): Likewise.
6407 (gimple_build_switch_1, gimple_build_cdt): Likewise.
6408 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
6409 (enum fallback): Rename from enum fallback_t.
6410 (fallback_t): Typedef as int.
6411 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
6412 GSI_SAME_STMT in function call.
6413 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
6414 enum type.
6415 (setup_reg_class_relations): Likewise.
6416 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
6417 (setup_prohibited_class_mode_regs): Add cast to enum type.
6418 (setup_prohibited_mode_move_regs): Likewise.
6419 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
6420 (record_address_regs): Change i to enum reg_class.
6421 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
6422 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
6423 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
6424 (GET_MODE_2XWIDER_MODE): Likewise.
6425 (GET_CLASS_NARROWEST_MODE): Likewise.
6426 * omp-low.c (expand_omp_for): Add cast to enum type.
6427 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
6428 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
6429 * postreload.c (reload_cse_simplify_operands): Change rclass local
6430 to enum reg_class.
6431 * predict.c (combine_predictions_for_insn): Change best_predictor
6432 and predictor to enum br_predictor.
6433 (combine_predictions_for_bb): Likewise.
6434 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
6435 use SET_PREDICT_EXPR_OUTCOME.
6436 * real.c (real_arithmetic): Change icode to code in function call.
6437 * reginfo.c (init_move_cost): Add casts to enum type.
6438 (init_reg_sets_1, init_fake_stack_mems): Likewise.
6439 * regmove.c (regclass_compatible_p): Change class0 and class1 to
6440 enum reg_class.
6441 * reload.c (find_valid_class): Add casts to enum type.
6442 (push_reload): Change 0 to NO_REGS in function call.
6443 (find_reloads): Change this_alternative to array of enum
6444 reg_class. Remove some now-unnecessary casts.
6445 (make_memloc): Change 0 to VOIDmode in function call.
6446 * reload1.c (reload): Change 0 to VOIDmode in function call.
6447 (eliminate_regs_1, elimination_effects): Likewise.
6448 (eliminate_regs_in_insn): Likewise.
6449 (emit_input_reload_insns): Add cast to enum type.
6450 (delete_output_reload): Change 0 to VOIDmode in function call.
6451 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
6452 to enum type in function call.
6453 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
6454 (SET_PREDICT_EXPR_OUTCOME): Define.
6455 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
6456 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
6457 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
6458 (dump_function): Likewise.
6459 * tree-dump.h: Update declarations.
6460 * tree-pass.h: Update declarations.
6461 * varasm.c (assemble_integer): Change mclass to enum mode_class.
6462 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
6463 enum type.
6464 (arm_rtx_costs_1): Correct parenthesization.
6465 (arm_rtx_costs): Add casts to enum type.
6466 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
6467 (vfp_emit_fstmd): Use add_rg_note.
6468 (emit_multi_reg_push, emit_sfm): Likewise.
6469 (thumb_set_frame_pointer): Likewise.
6470 (arm_expand_prologue): Likewise.
6471 (arm_regno_class): Change return type to enum reg_class.
6472 (thumb1_expand_prologue): Use add_reg_note.
6473 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
6474 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
6475 in function call.
6476 * config/arm/gentune.sh: Add cast to enum type.
6477 * config/arm/arm-tune.md: Rebuild.
6478 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
6479 (ix86_split_fp_branch, predict_jump): Likewise.
6480 (ix86_expand_multi_arg_builtin): Change sub_code from enum
6481 insn_code to enum rtx_code.
6482 (ix86_builtin_vectorized_function): Add cast to enum type.
6483 * config/i386/i386.md (truncdfsf2): Change slot to enum
6484 ix86_stack_slot.
6485 (truncxf<mode>2, isinf<mode>2): Likewise.
6486 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
6487 enum type.
6488 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
6489 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
6490 (insert_bundle_state): Change 1 to INSERT in function call.
6491 (ia64_add_bundle_selector_before): Likewise.
6492 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
6493 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
6494 (restore_stack_nonlocal): Likewise.
6495 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
6496 function call.
6497 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
6498 function call.
6499 (mips_rtx_costs): Likewise.
6500 (mips_override_options): Add casts to enum type.
6501 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
6502 in function call.
6503 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
6504 (store_reg, set_reg_plus_d): Likewise.
6505 (hppa_expand_prologue, hppa_profile_hook): Likewise.
6506 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
6507 cast to enum type.
6508 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
6509 function call.
6510 (emit_unlikely_jump): Use add_reg_note.
6511 (rs6000_emit_allocate_stack): Likewise.
6512 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
6513 (output_toc): Change 1 to INSERT in function call.
6514 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
6515 (rs6000_initialize_trampoline): Likewise.
6516 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
6517 function call.
6518 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
6519 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
6520 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
6521 (save_gprs): Use add_reg_note.
6522 (s390_emit_prologue): Likewise.
6523 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
6524 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
6525 (sparc_fold_builtin): Add cast to enum type.
6526 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
6527 enum insn_code.
6528 (spu_expand_prologue): Use add_reg_note.
6529 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
6530
6531 2009-04-20 Ian Lance Taylor <iant@google.com>
6532
6533 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
6534 (c_parser_postfix_expression_after_primary): Get VEC for list of
6535 arguments. Get original types of arguments. Call
6536 build_function_call_vec.
6537 (cached_expr_list_1, cached_expr_list_2): New static variables.
6538 (c_parser_expr_list): Change return type to VEC *. Add
6539 p_orig_types parameter. Change all callers.
6540 (c_parser_release_expr): New static function.
6541 (c_parser_vec_to_tree_list): New static function.
6542 * c-typeck.c (build_function_call): Rewrite to build a VEC and
6543 call build_function_call_vec.
6544 (build_function_call_vec): New function, based on old
6545 build_function_call.
6546 (convert_arguments): Remove nargs and argarray parameters. Change
6547 values to a VEC. Add origtypes parameter.
6548 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
6549 (convert_for_assignment): Add origtype parameter. Change all
6550 callers. If warn_cxx_compat, check for conversion to an enum
6551 type when calling a function.
6552 (store_init_value): Add origtype parameter. Change all callers.
6553 (digest_init): Likewise.
6554 (struct init_node): Add origtype field.
6555 (add_pending_init): Add origtype parameter. Change all callers.
6556 (output_init_element): Likewise.
6557 (output_pending_init_elements): Pass origtype from init_node to
6558 output_init_element.
6559 (process_init_element): Pass origtype from c_expr to
6560 output_init_element.
6561 (c_finish_return): Add origtype parameter. Change all callers.
6562 * c-common.c (sync_resolve_size): Change params to VEC *. Change
6563 caller.
6564 (sync_resolve_params): Likewise.
6565 (sync_resolve_return): Change params to first_param. Change caller.
6566 (resolve_overloaded_builtins): Change params to VEC *. Change
6567 callers. Save first parameter around call to build_function_call_vec.
6568 * c-decl.c (finish_decl): Add origtype parameter. Change all
6569 callers. Call build_function_call_vec rather than
6570 build_function_call for cleanup.
6571 * c-tree.h: Update declarations.
6572 * c-common.h: Update declarations.
6573 * stub-objc.c (objc_rewrite_function_call): Change parameter from
6574 params to first_param.
6575 * target.h (struct gcc_target): Change resolve_overloaded_builtin
6576 params parameter from tree to void *.
6577 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6578 Change arglist parameter to have type void *, and to be a pointer
6579 to a VEC.
6580 * config/rs6000/rs6000-protos.h
6581 (altivec_resolve_overloaded_builtin): Update declaration.
6582 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
6583 fnargs parameter to have type void *, and to be a pointer to a
6584 VEC. Call build_function_call_vec instead of
6585 build_function_call.
6586 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
6587
6588 2009-04-20 Joey Ye <joey.ye@intel.com>
6589 Xuepeng Guo <xuepeng.guo@intel.com>
6590 H.J. Lu <hongjiu.lu@intel.com>
6591
6592 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
6593
6594 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
6595 (IX86_LEA_PRIORITY): Likewise.
6596 (distance_non_agu_define): New function.
6597 (distance_agu_use): Likewise.
6598 (ix86_lea_for_add_ok): Likewise.
6599 (ix86_dep_by_shift_count): Likewise.
6600
6601 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
6602 should split for LEA.
6603
6604 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
6605 function.
6606 (ix86_dep_by_shift_count): Likewise.
6607
6608 2009-04-20 Richard Guenther <rguenther@suse.de>
6609
6610 * expr.c (handled_component_p): Move ...
6611 * tree.h (handled_component_p): ... here.
6612 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
6613 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
6614 and REALPART_EXPR to be in one group.
6615
6616 2009-04-20 Richard Guenther <rguenther@suse.de>
6617
6618 * basic-block.h (get_all_dominated_blocks): Declare.
6619 * dominance.c (get_all_dominated_blocks): New function.
6620 * tree-cfg.c (get_all_dominated_blocks): Remove.
6621 (remove_edge_and_dominated_blocks): Adjust.
6622 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
6623 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
6624 instead of recursing.
6625
6626 2009-04-20 Doug Kwan <dougkwan@google.com>
6627
6628 * cgraph.h (cgraph_node_ptr): New type for vector functions.
6629 (struct cgraph_node_set_def): New type.
6630 (cgraph_node_set) New type. Also declare vector functions.
6631 (struct cgraph_node_set_element_def): New type.
6632 (cgraph_node_set_element): Ditto.
6633 (cgraph_node_set_iterator): New iterator type.
6634 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
6635 cgraph_node_set_remove, dump_cgraph_node_set,
6636 debug_cgraph_node_set): New prototypes.
6637 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
6638 cgraph_node_set_size): New inlines.
6639 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
6640 including cgraph.h.
6641 (struct ipa_opt_pass): Add struct cgraph_node_set_def
6642 argument to function 'write_summary'.
6643 * ipa.c: Include ggc.h.
6644 (hash_cgraph_node_set_element,
6645 eq_cgraph_node_set_element, cgraph_node_set_new,
6646 cgraph_node_set_add, cgraph_node_set_remove,
6647 cgraph_node_set_find, dump_cgraph_node_set,
6648 debug_cgraph_node_set): New functions.
6649 * Makefile.in (ipa.o): Add dependency on GGC_H.
6650
6651 2009-04-20 Ira Rosen <irar@il.ibm.com>
6652
6653 PR tree-optimization/39675
6654 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
6655 check of the return code of vect_schedule_slp. Check that
6656 stmt_vec_info still exists for the statement, before checking its
6657 vectorization type.
6658
6659 2009-04-20 Michael Matz <matz@suse.de>
6660
6661 * Makefile.in (generated_files): Take out $(simple_generated_c).
6662
6663 2009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
6664
6665 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
6666 (UINTPTR_TYPE): Likewise.
6667
6668 2009-04-19 Joseph Myers <joseph@codesourcery.com>
6669
6670 PR c/37481
6671 * c-typeck.c (digest_init): Check for initializing an array with a
6672 string literal.
6673
6674 2009-04-19 Joseph Myers <joseph@codesourcery.com>
6675
6676 PR c/19771
6677 * c-semantics.c (pop_stmt_list): Propagate
6678 STATEMENT_LIST_HAS_LABEL to parent statement list.
6679
6680 2009-04-19 Adam Nemet <anemet@caviumnetworks.com>
6681
6682 * config/mips/mips.h (mips_tune_attr): New macro.
6683 * config/mips/mips.md (cpu): Use it.
6684
6685 2009-04-19 Joseph Myers <joseph@codesourcery.com>
6686
6687 PR c/38243
6688 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
6689 declaring a tag.
6690
6691 2009-04-19 Diego Novillo <dnovillo@google.com>
6692
6693 * toplev.c (compile_file): Move call to coverage_finish ...
6694 * cgraphunit.c (ipa_passes): ... here.
6695 Call cgraph_process_new_functions.
6696 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
6697 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
6698
6699 2009-04-19 Jan Hubicka <jh@suse.cz>
6700
6701 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
6702 cfun.
6703 (dump_cgraph_node): Dump can throw external flag.
6704 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
6705
6706 2009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
6707
6708 PR c/32061
6709 PR c++/36954
6710 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
6711 * common.opt (Wlogical-op): Move from here...
6712 * c.opt (Wlogical-op): ... to here.
6713 * c-typeck.c (parser_build_binary_op): Update call to
6714 warn_logical_operator.
6715 * c-opts.c (c_common_post_options): Enable warn_logical_op with
6716 extra_warnings.
6717 * c-common.c (warn_logical_op): Update.
6718 * c-common.h (warn_logical_op): Update declaration.
6719
6720 2009-04-19 Eric Botcazou <ebotcazou@adacore.com>
6721
6722 * tree.c (protected_set_expr_location): Fix formatting.
6723
6724 2009-04-18 Joseph Myers <joseph@codesourcery.com>
6725
6726 PR c/27676
6727 * c-typeck.c (readonly_warning): new.
6728 (build_unary_op, build_modify_expr): Use readonly_warning for
6729 storing into something readonly but not const-qualified.
6730
6731 2009-04-18 Joseph Myers <joseph@codesourcery.com>
6732
6733 PR c/22367
6734 * c-typeck.c (build_unary_op): Check for taking address of
6735 expression of type void.
6736
6737 2009-04-18 Joseph Myers <joseph@codesourcery.com>
6738
6739 PR c/35210
6740 * c-typeck.c (build_function_call): Check for calling a function
6741 with qualified void return types. Call require_complete_type when
6742 generating a trap.
6743
6744 2009-04-18 Jan Hubicka <jh@suse.cz>
6745
6746 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
6747 Set nothrow flag.
6748 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
6749 can_throw_external flag.
6750 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
6751 * ipa-pure-const.c (ignore_edge): New function.
6752 (propagate): Compute order for NOTHROW computation; set NOTHROWs
6753 only over can_throw_external edges.
6754 (local_pure_const): Add nothrow flag.
6755 * ipa-utils.c (searchc): Add ignore_edge callback.
6756 (ipa_utils_reduced_inorder): Add ignore_edge callback.
6757 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
6758 (set_nothrow_function_flags): Update cgraph.
6759 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
6760
6761 2009-04-18 Richard Guenther <rguenther@suse.de>
6762
6763 PR middle-end/39804
6764 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
6765 (fold_stmt): ... this and ...
6766 (fold_stmt_inplace): ... this.
6767 (fold_stmt_1): Fold references in calls and asms.
6768 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
6769
6770 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
6771
6772 * tree-vrp.c (ssa_name_nonzero_p): Remove.
6773 * tree.h: Remove the prototype for ssa_name_nonzero_p.
6774
6775 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
6776
6777 * tree.c (function_args_count): Remove.
6778 * tree.h: Remove the prototype for function_args_count.
6779
6780 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
6781
6782 * tree-iterator.c (expr_only): Remove.
6783 * tree.h: Remove the prototype for expr_only.
6784
6785 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
6786
6787 * reginfo.c (cannot_change_mode_set_regs): Remove.
6788 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
6789
6790 2009-04-08 Anatoly Sokolov <aesok@post.ru>
6791
6792 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
6793 whether operands 0 and 1 overlaps.
6794
6795 2009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
6796
6797 PR middle-end/36902
6798 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
6799 pointer. Use warning_at instead of warning.
6800 (search_for_addr_array): Likewise.
6801 (check_array_bounds): Likewise.
6802 (check_all_array_refs): Check that the incoming edge is not in the
6803 list of edges to be removed.
6804 (check_all_array_refs): Avoid the temporal pointer.
6805 (vrp_visit_cond_stmt): Fix typo.
6806 (simplify_switch_using_ranges): Handle the case where the switch
6807 index is an integer constant.
6808
6809 2009-04-18 Adam Nemet <anemet@caviumnetworks.com>
6810
6811 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
6812
6813 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
6814
6815 * doc/extend.texi, doc/invoke.texi: Fix typos.
6816
6817 2009-04-17 Cary Coutant <ccoutant@google.com>
6818
6819 * tree-flow-inline.h (get_lineno): Fix inverted test.
6820
6821 2009-04-17 Diego Novillo <dnovillo@google.com>
6822
6823 * tree-ssa-pre.c (create_expression_by_pieces): Remove
6824 assertion for AVAIL_OUT.
6825
6826 2009-04-17 Mike Frysinger <vapier@gentoo.org>
6827
6828 PR target/38627
6829 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
6830 * config/sh/linux-atomic.asm: Likewise.
6831
6832 2009-04-17 Diego Novillo <dnovillo@google.com>
6833
6834 * except.c (debug_eh_tree): New.
6835 (struct eh_region, struct eh_status): Move ...
6836 * except.h: ... here.
6837 (add_type_for_runtime): Declare extern.
6838 (lookup_type_for_runtime): Likewise.
6839 (debug_eh_tree): Declare.
6840 * Makefile.in (GTFILES): List except.h before except.c
6841
6842 2009-04-17 Diego Novillo <dnovillo@google.com>
6843
6844 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
6845 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
6846 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
6847 (find_vars_r): ... here.
6848 * tree-flow.h (find_referenced_vars_in): Declare.
6849 * tree-ssa-pre.c (create_expression_by_pieces): Assert
6850 that AVAIL_OUT exists for BLOCK.
6851 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
6852 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
6853 (tree-parloops.o): Likewise.
6854
6855 2009-04-17 Simon Baldwin <simonb@google.com>
6856
6857 * toplev.c (default_tree_printer): Add handling for %E format.
6858
6859 2009-04-17 Diego Novillo <dnovillo@google.com>
6860
6861 * tree-pretty-print.c (dump_generic_node): Add break after
6862 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
6863 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
6864 FUNCTION_TYPE together. Call print_struct_decl when printing
6865 structures and TDF_SLIM is not given.
6866 (print_struct_decl): Fix logic for detecting recursion.
6867
6868 2009-04-17 Rafael Avila de Espindola <espindola@google.com>
6869
6870 PR 31567
6871 * gcc.c (create_at_file): New.
6872 (compile_input_file_p): New.
6873 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
6874 * main.c (main): Update call to toplev_main.
6875 * toplev.c (toplev_main): Change signature. Call expandargv.
6876 * toplev.h (toplev_main): Change signature.
6877
6878 2009-04-17 Eric Botcazou <ebotcazou@adacore.com>
6879
6880 * dwarf2out.c (field_byte_offset): Use the type size as the field size
6881 if the latter is not constant.
6882
6883 2009-04-17 David Edelsohn <edelsohn@gnu.org>
6884
6885 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
6886
6887 2009-04-17 Eric Botcazou <ebotcazou@adacore.com>
6888
6889 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
6890 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
6891
6892 2009-04-17 Richard Guenther <rguenther@suse.de>
6893
6894 * tree-ssa-structalias.c (get_constraint_for_component_ref):
6895 Handle component references view-converting an invariant address.
6896
6897 2009-04-17 Adam Nemet <anemet@caviumnetworks.com>
6898
6899 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
6900 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
6901 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
6902 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
6903 Use @deftypevr rather than @deftypevar.
6904
6905 2009-04-17 Richard Guenther <rguenther@suse.de>
6906
6907 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
6908 (get_prop_source_stmt): Likewise.
6909 (can_propagate_from): Likewise.
6910
6911 2009-04-17 Andrew Stubbs <ams@codesourcery.com>
6912
6913 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
6914 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
6915 (--with-multilib-list): Add default value.
6916 * configure: Regenerate.
6917 * Makefile.in (TM_ENDIAN_CONFIG): Define.
6918 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
6919 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
6920 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
6921 Don't add default cpu to multilib list unnecessarily, but do enable
6922 the relevant compiler option..
6923 Add support for --with-multilib-list=<blank> and
6924 --with-multilib-list=!<somelib> to supress unwanted multilibs.
6925 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
6926 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
6927 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
6928 TM_MULTILIB_CONFIG.
6929 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
6930 (MULTILIB_OSDIRNAMES): New variable.
6931 * config/sh/t-1e: Delete file.
6932 * config/sh/t-mlib-sh1: Delete file.
6933 * config/sh/t-mlib-sh2: Delete file.
6934 * config/sh/t-mlib-sh2a: Delete file.
6935 * config/sh/t-mlib-sh2a-nofpu: Delete file.
6936 * config/sh/t-mlib-sh2a-single: Delete file.
6937 * config/sh/t-mlib-sh2a-single-only: Delete file.
6938 * config/sh/t-mlib-sh2e: Delete file.
6939 * config/sh/t-mlib-sh3e: Delete file.
6940 * config/sh/t-mlib-sh4: Delete file.
6941 * config/sh/t-mlib-sh4-nofpu: Delete file.
6942 * config/sh/t-mlib-sh4-single: Delete file.
6943 * config/sh/t-mlib-sh4-single-only: Delete file.
6944 * config/sh/t-mlib-sh4a: Delete file.
6945 * config/sh/t-mlib-sh4a-nofpu: Delete file.
6946 * config/sh/t-mlib-sh4a-single: Delete file.
6947 * config/sh/t-mlib-sh4a-single-only: Delete file.
6948 * config/sh/t-mlib-sh4al: Delete file.
6949 * config/sh/t-mlib-sh5-32media: Delete file.
6950 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
6951 * config/sh/t-mlib-sh5-64media: Delete file.
6952 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
6953 * config/sh/t-mlib-sh5-compact: Delete file.
6954 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
6955 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
6956 * doc/install.texi (Options specification): Add
6957 --with-multilib-list and --with-endian.
6958
6959 2009-04-17 Rafael Avila de Espindola <espindola@google.com>
6960
6961 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
6962 REVISION_c.
6963 (OBJS-common): Add plugin-version.o.
6964 (plugin-version.o): New.
6965 * gcc-plugin.h (plugin_gcc_version): New.
6966 (plugin_default_version_check): New.
6967 (plugin_init_func, plugin_init): Add version argument.
6968 * plugin-version.c: New.
6969 * plugin.c (str_plugin_gcc_version_name): New.
6970 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
6971 pass it to the init function.
6972 (plugin_default_version_check): New.
6973
6974 2009-04-17 Richard Guenther <rguenther@suse.de>
6975
6976 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
6977 for decl-vs-decl disambiguation.
6978
6979 2009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
6980
6981 * config/s390/s390.h (s390_tune_attr): New macro definition.
6982 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
6983
6984 2009-04-17 Richard Guenther <rguenther@suse.de>
6985
6986 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
6987 (fold_stmt_r): Likewise.
6988 (maybe_fold_reference): New function.
6989 (fold_gimple_assign): Handle cases fold_stmt_r did.
6990 (fold_stmt): Do not use fold_stmt_r.
6991 (fold_stmt_inplace): Likewise.
6992
6993 2009-04-17 Richard Guenther <rguenther@suse.de>
6994
6995 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
6996 (record_equivalences_from_stmt): Remove useless checks and
6997 simplifications.
6998 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
6999 the type is already suitable.
7000
7001 2009-04-17 Paolo Bonzini <bonzini@gnu.org>
7002
7003 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
7004
7005 2009-04-17 Uros Bizjak <ubizjak@gmail.com>
7006
7007 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
7008 (CMPtype): Define as __gcc_CMPtype.
7009
7010 2009-04-17 Aurelien Jarno <aurelien@aurel32.net>
7011
7012 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
7013 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
7014
7015 2009-04-17 Richard Guenther <rguenther@suse.de>
7016
7017 PR tree-optimization/39746
7018 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
7019 special-casing for builtins and static variable use/def.
7020 (call_may_clobber_ref_p_1): Likewise.
7021
7022 2009-04-16 Ian Lance Taylor <iant@google.com>
7023
7024 * df.h: Include "timevar.h".
7025 (struct df_problem): Change tv_id field to timevar_id_t.
7026 * tree-pass.h: Include "timevar.h".
7027 (struct opt_pass): Change tv_id field to timevar_id_t.
7028 * timevar.h (timevar_id_t): Define TV_NONE.
7029 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
7030 TV_NONE rather than tv_id != 0.
7031 (execute_one_pass): Likewise.
7032 * Makefile.in (DF_H): Add $(TIMEVAR_H).
7033 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
7034 dependencies to $(TREE_PASS_H).
7035 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
7036 to TV_NONE.
7037 (pass_branch_target_load_optimize2): Likewise.
7038 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
7039 (pass_outof_cfg_layout_mode): Likewise.
7040 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
7041 (pass_rebuild_cgraph_edges): Likewise.
7042 (pass_remove_cgraph_callee_edges): Likewise.
7043 * df-core.c (pass_df_initialize_opt): Likewise.
7044 (pass_df_initialize_no_opt): Likewise.
7045 (pass_df_finish): Likewise.
7046 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
7047 * except.c (pass_set_nothrow_function_flags): Likewise.
7048 (pass_convert_to_eh_region_ranges): Likewise.
7049 * final.c (pass_compute_alignments): Likewise.
7050 * function.c (pass_instantiate_virtual_regs): Likewise.
7051 (pass_init_function): Likewise.
7052 (pass_leaf_regs): Likewise.
7053 (pass_match_asm_constraints): Likewise.
7054 * gimple-low.c (pass_lower_cf): Likewise.
7055 (pass_mark_used_blocks): Likewise.
7056 * init-regs.c (pass_initialize_regs): Likewise.
7057 * integrate.c (pass_initial_value_sets): Likewise.
7058 * ira.c (pass_ira): Likewise.
7059 * jump.c (pass_cleanup_barriers): Likewise.
7060 * omp-low.c (pass_expand_omp): Likewise.
7061 (pass_lower_omp): Likewise.
7062 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
7063 * recog.c (pass_split_all_insns): Likewise.
7064 (pass_split_after_reload): Likewise.
7065 (pass_split_before_regstack): Likewise.
7066 (pass_split_before_sched2): Likewise.
7067 (pass_split_for_shorten_branches): Likewise.
7068 * reginfo.c (pass_reginfo_init): Likewise.
7069 (pass_subregs_of_mode_init): Likewise.
7070 (pass_subregs_of_mode_finish): Likewise.
7071 * passes.c (pass_postreload): Likewise.
7072 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
7073 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
7074 (pass_warn_function_return): Likewise.
7075 (pass_warn_function_noreturn): Likewise.
7076 * tree-complex.c (pass_lower_complex): Likewise.
7077 (pass_lower_complex_O0): Likewise.
7078 * tree-if-conv.c (pass_if_conversion): Likewise.
7079 * tree-into-ssa.c (pass_build_ssa): Likewise.
7080 * tree-mudflap.c (pass_mudflap_1): Likewise.
7081 (pass_mudflap_2): Likewise.
7082 * tree-nomudflap.c (pass_mudflap_1): Likewise.
7083 (pass_mudflap_2): Likewise.
7084 * tree-nrv.c (pass_return_slot): Likewise.
7085 * tree-object-size.c (pass_object_sizes): Likewise.
7086 * tree-optimize.c (pass_all_optimizations): Likewise.
7087 (pass_early_local_passes): Likewise.
7088 (pass_all_early_optimizations): Likewise.
7089 (pass_cleanup_cfg): Likewise.
7090 (pass_cleanup_cfg_post_optimizing): Likewise.
7091 (pass_free_datastructures): Likewise.
7092 (pass_free_cfg_annotations): Likewise.
7093 (pass_fixup_cfg): Likewise.
7094 (pass_init_datastructures): Likewise.
7095 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
7096 (pass_late_warn_uninitialized): Likewise.
7097 (pass_update_address_taken): Likewise.
7098 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
7099 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
7100 (pass_cse_sincos): Likewise.
7101 (pass_convert_to_rsqrt): Likewise.
7102 * tree-ssa-structalias.c (pass_build_alias): Likewise.
7103 * tree-stdarg.c (pass_stdarg): Likewise.
7104 * tree-tailcall.c (pass_tail_recursion): Likewise.
7105 (pass_tail_calls): Likewise.
7106 * tree-vect-generic.c (pass_lower_vector): Likewise.
7107 (pass_lower_vector_ssa): Likewise.
7108 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
7109
7110 2009-04-16 Joseph Myers <joseph@codesourcery.com>
7111
7112 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
7113 XLR entry.
7114 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
7115 Handle -march=xlr.
7116 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
7117 logical and signext.
7118
7119 2009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
7120
7121 PR target/39767
7122 * config/sh/predicates.md (arith_operand): Check if the operand
7123 of TRUNCATE is a REG.
7124
7125 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
7126
7127 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
7128 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
7129
7130 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
7131
7132 * tree-iterator.c (tsi_split_statement_list_after,
7133 tsi_split_statement_list_before): Remove.
7134 * tree-iterator.h: Remove the prototypes for
7135 tsi_split_statement_list_after and tsi_split_statement_list_before.
7136
7137 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
7138
7139 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
7140 * tree-ssa-propagate.h: Remove the prototype for
7141 stmt_makes_single_load.
7142
7143 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
7144
7145 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
7146 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
7147
7148 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
7149
7150 * tree-iterator.c (EXPR_LAST_BODY): Remove.
7151
7152 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
7153
7154 * except.c (eh_region_outer_p): Remove.
7155 * except.h: Remove the prototype for eh_region_outer_p.
7156
7157 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
7158
7159 * function.c (current_function_assembler_name): Remove.
7160 * function.h: Remove the prototype for
7161 current_function_assembler_name.
7162
7163 2009-04-16 Ian Lance Taylor <iant@google.com>
7164
7165 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
7166 (add_reg_note): Call alloc_reg_note.
7167 * rtl.h (alloc_reg_note): Declare.
7168 * combine.c (try_combine): Use alloc_reg_note.
7169 (recog_for_combine, move_deaths): Likewise.
7170 (distribute_notes): Use alloc_reg_note and add_reg_note.
7171 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
7172 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
7173 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
7174
7175 2009-04-16 Vladimir Makarov <vmakarov@redhat.com>
7176
7177 PR rtl-optimization/39762
7178 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
7179 ira_may_move_out_cost): Add comments about way of their usage.
7180 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
7181
7182 * ira-conflicts.c (process_regs_for_copy): Use function
7183 ira_get_register_move_cost instead of global
7184 ira_register_move_cost.
7185
7186 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
7187 color_pass, move_spill_restore, update_curr_costs): Ditto.
7188
7189 * ira-lives.c (process_single_reg_class_operands): Ditto.
7190
7191 * ira-emit.c (emit_move_list): Ditto.
7192
7193 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
7194 (record_reg_classes): Ditto. Use functions
7195 ira_get_register_move_cost and ira_get_may_move_cost instead of
7196 global vars ira_register_move_cost, ira_may_move_out_cost and
7197 ira_may_move_in_cost.
7198 (record_address_regs): Don't call ira_init_register_move_cost.
7199 Use function ira_get_may_move_cost instead of global
7200 ira_may_move_in_cost.
7201 (process_bb_node_for_hard_reg_moves): Use function
7202 ira_get_register_move_cost instead of global ira_register_move_cost.
7203 (ira_costs): Don't call ira_init_register_move_cost.
7204
7205 2009-04-16 Richard Guenther <rguenther@suse.de>
7206
7207 * tree-cfg.c (verify_gimple_assign_binary):
7208 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
7209 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
7210 (create_general_new_stmt): Note that this function is broken.
7211
7212 2009-04-16 Rafael Avila de Espindola <espindola@google.com>
7213
7214 * common.opt (fhelp): Add Var(help_flag).
7215 * gcc-plugin.h (plugin_info): Add help.
7216 * plugin.c (plugin_name_args): Add help.
7217 (register_plugin_info): Set plugin->help.
7218 (print_help_one_plugin): New.
7219 (print_plugins_help): New.
7220 * plugin.h (print_plugins_help): New.
7221 * toplev.c (toplev_main): Call print_plugins_help if needed.
7222
7223 2009-04-16 Richard Guenther <rguenther@suse.de>
7224
7225 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
7226 (gimple_ior_addresses_taken_1): New function.
7227 (gimple_ior_addresses_taken): Likewise.
7228 * gimple.h (struct gimple_statement_with_ops_base): Remove
7229 addresses_taken member.
7230 (gimple_ior_addresses_taken): Declare.
7231 (gimple_addresses_taken, gimple_addresses_taken_ptr,
7232 gimple_set_addresses_taken): Remove.
7233 * ipa-reference.c (mark_address): New function.
7234 (scan_stmt_for_static_refs): Use it for marking addresses taken.
7235 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
7236 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
7237 (gimple_add_to_addresses_taken): Remove.
7238 (get_tmr_operands): Call mark_address_taken.
7239 (get_asm_expr_operands): Likewise.
7240 (get_expr_operands): Likewise.
7241 (build_ssa_operands): Do not clear the addresses_taken bitmap.
7242 (free_stmt_operands): Do not free it.
7243 * tree-ssa.c (delete_tree_ssa): Likewise.
7244 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
7245
7246 2009-04-16 Richard Guenther <rguenther@suse.de>
7247
7248 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
7249 (walk_stmt_load_store_ops): Likewise.
7250 * gimple.c (get_base_loadstore): New function.
7251 (walk_stmt_load_store_addr_ops): Likewise.
7252 (walk_stmt_load_store_ops): Likewise.
7253 * ipa-pure-const.c (check_op): Simplify.
7254 (check_load, check_store): New functions.
7255 (check_stmt): Use walk_stmt_load_store_ops.
7256 * ipa-reference.c (mark_load): Adjust signature.
7257 (mark_store): Likewise.
7258 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
7259
7260 2009-04-16 Rafael Avila de Espindola <espindola@google.com>
7261
7262 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
7263 (plugin_info): New.
7264 * opts.c (common_handle_option): Don't call print_version.
7265 * plugin.c (plugin_name_args): Add version.
7266 (register_plugin_info): New.
7267 (register_callback): Handle PLUGIN_INFO.
7268 (try_init_one_plugin): New.
7269 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
7270 if failed to init.
7271 (finalize_one_plugin): New.
7272 (finalize_plugins): New.
7273 (print_one_plugin): New.
7274 (print_plugins_versions): New.
7275 * plugin.h (print_plugins_versions): New.
7276 (finalize_plugins): New.
7277 * toplev.c (compile_file): Don't call initialize_plugins.
7278 (print_version): Call print_plugins_versions.
7279 (toplev_main): Call initialize_plugins. Print version if needed.
7280 Call finalize_plugins.
7281
7282 2009-04-16 Rafael Avila de Espindola <espindola@google.com>
7283
7284 * common.opt (fversion): New.
7285 * gcc.c (print_version): New.
7286 (process_command): Don't print the version. Just set print_version.
7287 (main): Print version. Call subprocesses if print_version and
7288 verbose_flag are set.
7289 * opts.c (common_handle_option): Handle OPT_fversion.
7290
7291 2009-04-16 Richard Guenther <rguenther@suse.de>
7292 Ira Rosen <irar@il.ibm.com>
7293
7294 PR tree-optimization/39698
7295 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
7296 type of the reduction variable. Only generate the def if
7297 it is needed.
7298
7299 * omp-low.c (expand_omp_for_generic): When converting to a pointer
7300 make sure to first convert to an integer of the same precision.
7301 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
7302 the type of the evolution correctly in computing the new
7303 induction variable base.
7304
7305 2009-04-16 Richard Guenther <rguenther@suse.de>
7306
7307 PR middle-end/39625
7308 * tree-cfg.c (make_blocks): Split statements with to-be
7309 abnormal SSA names on the lhs.
7310
7311 2009-04-16 Paolo Bonzini <bonzini@gnu.org>
7312
7313 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
7314 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
7315 * c-typeck.c (really_start_incremental_init): Likewise.
7316 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
7317 (TARGET_INITIALIZER): Remove it.
7318 * target.h (struct target): Remove vector_opaque_p.
7319 * tree.c (build_opaque_vector_type): New.
7320 * tree.h (TYPE_VECTOR_OPAQUE): New.
7321 (build_opaque_vector_type): Declare.
7322 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
7323 * config/rs6000/rs6000.c (build_opaque_vector_type,
7324 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
7325 (rs6000_init_builtins): Use build_opaque_vector_type for
7326 opaque_V4SI_type_node.
7327
7328 2009-04-15 Catherine Moore <clm@codesourcery.com>
7329
7330 * debug.h (set_name): Declare.
7331 * dwarf2out.c (dwarf2out_set_name): Declare.
7332 (dwarf2_debug_hooks): Add set_name.
7333 (find_AT_string): New.
7334 (add_AT_string): Call find_AT_string.
7335 (dwarf2out_set_name): New.
7336 * cp/decl.c (grokdeclarator): Call set_name.
7337 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
7338 * debug.c (do_nothing_debug_hooks): Likewise.
7339 * dbxout.c (dbx_debug_hooks): Likewise.
7340 * sdbout.c (sdb_debug_hooks): Likewise.
7341
7342 2009-04-15 Michael Eager <eager@eagercon.com>
7343
7344 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
7345 reg for single-precision FPU.
7346 * config/rs6000/rs6000.md (movsi_internal1): Only for
7347 !TARGET_SINGLE_FPU.
7348 (movsi_internal1_single): New. Add pattern to move SI values to/from
7349 single-precision FP regs.
7350
7351 2009-04-15 Richard Guenther <rguenther@suse.de>
7352
7353 * omp-low.c (lower_rec_input_clauses): Build correct address
7354 expressions.
7355 (expand_omp_for_generic): Fix multiplication type.
7356 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
7357 (generate_memset_zero): Fix types.
7358 * tree-profile.c (prepare_instrumented_value): Correctly
7359 widen a pointer.
7360
7361 2009-04-15 Ian Lance Taylor <iant@google.com>
7362
7363 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
7364 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
7365 for -Wall and for -Wc++-compat.
7366 (c_common_post_options): For C++, set warn_enum_compare if not
7367 already set.
7368 * c-tree.h (struct c_expr): Add field original_type.
7369 (build_external_ref): Update declaration.
7370 * c-parser.c (c_parser_braced_init): Set original_type.
7371 (c_parser_initelt): Likewise.
7372 (c_parser_expr_no_commas): Likewise.
7373 (c_parser_conditional_expression): Likewise.
7374 (c_parser_cast_expression): Likewise.
7375 (c_parser_unary_expression): Likewise. Pull setting of
7376 original_code to top of function.
7377 (c_parser_sizeof_expression): Set original_type.
7378 (c_parser_alignof_expression): Likewise.
7379 (c_parser_postfix_expression): Likewise. Pull setting of
7380 original_code to top of function.
7381 (c_parser_postfix_expression_after_paren_type): Set original_type.
7382 (c_parser_postfix_expression_after_primary): Likewise.
7383 (c_parser_expression): Likewise.
7384 * c-typeck.c (build_external_ref): Add type parameter. Change all
7385 callers.
7386 (c_expr_sizeof_expr): Set original_type field.
7387 (parser_build_unary_op): Likewise.
7388 (parser_build_binary_op): Likewise. Optionally warn about
7389 comparisons of enums of different types.
7390 (digest_init): Set original_type field.
7391 (really_start_incremental_init): Likewise.
7392 (push_init_level, pop_init_level): Likewise.
7393 * doc/invoke.texi (Warning Options): -Wenum-compare now
7394 supported in C.
7395
7396 2009-04-15 Richard Guenther <rguenther@suse.de>
7397
7398 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
7399 out a necessary conversion.
7400 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
7401 names we didn't value number.
7402 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
7403
7404 2009-04-15 Richard Guenther <rguenther@suse.de>
7405
7406 PR tree-optimization/39764
7407 * tree-ssa-ccp.c (get_value): Canonicalize value with
7408 canonicalize_float_value.
7409
7410 2009-04-15 Jan Hubicka <jh@suse.cz>
7411
7412 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
7413 Wrong version of patch.
7414
7415 2009-04-15 Jan Hubicka <jh@suse.cz>
7416
7417 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
7418
7419 2009-04-15 Nathan Sidwell <nathan@codesourcery.com>
7420
7421 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
7422 our distinct integral and vector types.
7423
7424 2009-04-15 Rafael Avila de Espindola <espindola@google.com>
7425
7426 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
7427 * init.c (build_vtbl_address): Remove call to assemble_external.
7428
7429 2009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
7430
7431 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
7432 output for other floating point modes.
7433
7434 2009-04-14 Diego Novillo <dnovillo@google.com>
7435
7436 * diagnostic.c (diagnostic_report_diagnostic): Do not
7437 warn about loaded plugins for DK_ERROR and DK_WARNING.
7438 * c-decl.c (declspecs_add_type): Move call to
7439 invoke_plugin_callbacks ...
7440 * c-parser.c (c_parser_declspecs): ... here.
7441 * plugin.c (dump_active_plugins): Tidy output.
7442
7443 2009-04-14 Diego Novillo <dnovillo@google.com>
7444 Le-Chun Wu <lcwu@google.com>
7445
7446 * configure.ac: Add --enable-plugin support.
7447 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
7448 * Makefile.in (PLUGIN_H): Define.
7449 Export ENABLE_PLUGIN and GMPINC to site.exp.
7450 Add PLUGINLIBS to link command.
7451 Add/modify dependencies for plugin.o and files including plugin.h.
7452 (plugin.o): New.
7453 * config.in: Regenerate.
7454
7455 * opts.c (common_handle_option): Handle OPT_fplugin_ and
7456 OPT_fplugin_arg_.
7457
7458 2009-04-14 Le-Chun Wu <lcwu@google.com>
7459
7460 * tree-pass.h (register_one_dump_file): Add a prototype for
7461 register_one_dump_file.
7462 * toplev.c (compile_file): Call initialize_plugins.
7463 (do_compile): Call invoke_plugin_callbacks.
7464 (toplev_main): Call invoke_plugin_callbacks.
7465 * common.opt: Add -fplugin= and -fplugin-arg-.
7466 * gcc-plugin.h: New public header file for plugins to include.
7467 * plugin.c: New source file.
7468 * plugin.h: New internal header file.
7469 * passes.c (register_one_dump_file): Make it external.
7470
7471 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
7472
7473 2009-04-14 Diego Novillo <dnovillo@google.com>
7474
7475 * doc/plugins.texi: New.
7476 * doc/gccint.texi: Add reference to Plugins chapter.
7477 * doc/invoke.texi: Document -fplugin and -fplugin-arg
7478 * diagnostic.c (diagnostic_report_diagnostic): Warn about
7479 loaded plugins, if any.
7480 * timevar.def (TV_PLUGIN_INIT): Define.
7481 (TV_PLUGIN_RUN): Define.
7482 * plugin.c: Include timevar.h
7483 (plugins_active_p): New.
7484 (dump_active_plugins): New.
7485 (debug_active_plugins): New.
7486
7487 2009-04-14 Joseph Myers <joseph@codesourcery.com>
7488
7489 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
7490 library paths.
7491 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
7492
7493 2009-04-14 Kazu Hirata <kazu@codesourcery.com>
7494
7495 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
7496 the same as a minus without a shift.
7497
7498 2009-04-14 Nick Clifton <nickc@redhat.com>
7499
7500 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
7501 comparisons with small integers will always produce a short
7502 branch.
7503
7504 2009-04-14 Rafael Avila de Espindola <espindola@google.com>
7505
7506 Merge:
7507 2008-12-19 Diego Novillo <dnovillo@google.com>
7508
7509 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
7510
7511 2009-04-14 Richard Guenther <rguenther@suse.de>
7512
7513 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
7514 verification.
7515 (verify_gimple_assign_binary): Likewise. Handle shifts and
7516 rotates correctly.
7517 (verify_gimple_phi): Print the mismatched argument position.
7518 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
7519 Fix types.
7520 (vect_update_init_of_dr): Likewise.
7521 * matrix-reorg.c (transform_access_sites): Do what the
7522 comment suggests.
7523 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
7524
7525 2009-04-13 Michael Eager <eager@eagercon.com>
7526
7527 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
7528 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
7529 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
7530 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
7531 remove duplicate config
7532
7533 2009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
7534
7535 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
7536 file_name:line_number type locator of the call site.
7537
7538 2009-04-13 Vladimir Makarov <vmakarov@redhat.com>
7539
7540 * genautomata.c: Put blank after comma.
7541 (automaton_decls): New.
7542 (struct unit_usage): Add comments to member next.
7543 (store_alt_unit_usage): Keep the list ordered.
7544 (unit_present_on_list_p, equal_alternatives_p): New.
7545 (check_regexp_units_distribution): Check units distribution
7546 correctness correctly.
7547 (main): Don't write automata if error is found. Return correct
7548 exit code.
7549
7550 * config/m68k/cf.md (cfv4_ds): Remove.
7551 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
7552 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
7553
7554 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
7555 power4-load-ext, power4-store, power4-store-update,
7556 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
7557 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
7558 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
7559 power4-sqrt, power4-isync): Modify reservation to make correct
7560 unit distribution to automata.
7561
7562 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
7563 power5-store-update, power5-two, power5-three, power5-lmul,
7564 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
7565
7566 2009-04-13 Adam Nemet <anemet@caviumnetworks.com>
7567
7568 * except.c (pass_set_nothrow_function_flags): Set name and add
7569 TODO_dump_func.
7570 (set_nothrow_function_flags): Mention in the dump file when
7571 changing a function to nothrow.
7572
7573 2009-04-13 Ozkan Sezer <sezeroz@gmail.com>
7574
7575 PR/39066
7576 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
7577 instead of unsigned long.
7578
7579 2009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7580
7581 * config/arm/arm.c (return_used_this_function): Remove.
7582 (arm_output_function_prologue): Remove use of
7583 return_used_this_function.
7584 (output_return_instruction): Replace use of
7585 return_used_this_function
7586 by cfun->machine->return_used_this_function.
7587 (arm_output_epilogue): Likewise.
7588 (arm_output_function_epilogue): Likewise.
7589 (thumb_unexpanded_epilogue): Likewise.
7590 * config/arm/arm.h (struct machine_function):
7591 New member return_used_this_function.
7592
7593 2009-04-12 Mark Mitchell <mark@codesourcery.com>
7594
7595 * doc/install.texi: Correct description of default directory for
7596 --with-gxx-include-dir.
7597
7598 2009-04-12 Eric Botcazou <ebotcazou@adacore.com>
7599
7600 * fold-const.c (build_range_check): Properly deal with enumeral and
7601 boolean base types.
7602
7603 2009-04-12 Steven Bosscher <steven@gcc.gnu.org>
7604
7605 * doc/invoke.texi (max_gcse_passes): Remove documentation.
7606 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
7607 * params.h (MAX_GCSE_PASSES): Remove.
7608 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
7609 in sequence. Remove ability to run multiple passes.
7610 (bypass_jumps): Report run as third CPROP pass.
7611
7612 2009-04-12 Adam Nemet <anemet@caviumnetworks.com>
7613
7614 PR middle-end/39651
7615 * except.c (can_throw_external): Look at each insn in a SEQUENCE
7616 when deciding whether the whole SEQUENCE can throw.
7617
7618 2009-04-12 Uros Bizjak <ubizjak@gmail.com>
7619
7620 PR target/39740
7621 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
7622 offseted label references.
7623
7624 2009-04-11 Jan Hubicka <jh@suse.cz>
7625
7626 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
7627
7628 2009-04-11 Richard Guenther <rguenther@suse.de>
7629
7630 PR middle-end/39732
7631 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
7632 return variables as TREE_ADDRESSABLE.
7633
7634 2009-04-11 Richard Guenther <rguenther@suse.de>
7635
7636 PR tree-optimization/39713
7637 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
7638 reference trees have SSA_NAME operands.
7639
7640 2009-04-11 Richard Guenther <rguenther@suse.de>
7641
7642 PR c/39712
7643 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
7644 address expressions.
7645
7646 2009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
7647
7648 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
7649 match changes in Cygwin 1.7
7650 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
7651 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
7652
7653 2009-04-10 Paolo Bonzini <bonzini@gnu.org>
7654
7655 PR tree-optimization/39701
7656 * doc/invoke.texi (Optimization Options): Document change in
7657 meaning and initialization of -fdelete-null-pointer-checks.
7658
7659 2009-04-10 H.J. Lu <hongjiu.lu@intel.com>
7660
7661 PR middle-end/39701
7662 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
7663
7664 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
7665 here.
7666
7667 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
7668
7669 2009-04-10 Chao-ying Fu <fu@mips.com>
7670
7671 * doc/tm.texi (Instruction Output): Document
7672 TARGET_ASM_FINAL_POSTSCAN_INSN.
7673 * target.h (final_postscan_insn): New field in asm_out.
7674 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
7675 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
7676 * final.c (final_scan_insn): Call
7677 targetm.asm_out.final_postscan_insn after outputting
7678 an asm macro and a normal instruction.
7679
7680 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
7681 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
7682 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
7683 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
7684 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
7685
7686 2009-04-10 Paolo Bonzini <bonzini@gnu.org>
7687
7688 PR middle-end/39701
7689 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
7690 variables as non-NULL even with -fdelete-null-pointer-checks.
7691
7692 2009-04-10 H.J. Lu <hongjiu.lu@intel.com>
7693
7694 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
7695
7696 2009-04-09 H.J. Lu <hongjiu.lu@intel.com>
7697
7698 PR target/39678
7699 * config/i386/i386.c (classify_argument): Handle SCmode with
7700 (bit_offset % 64) != 0.
7701
7702 2009-04-09 Sandra Loosemore <sandra@codesourcery.com>
7703
7704 * doc/invoke.texi (Optimize Options): Add cross-reference to
7705 -Q --help=optimizers examples.
7706
7707 2009-04-10 Ben Elliston <bje@au.ibm.com>
7708
7709 PR target/36800
7710 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
7711 regalign for the reg == fpr and TDmode case.
7712
7713 2009-04-09 David Ayers <ayers@fsfe.org>
7714
7715 PR objc/29200
7716 * objc/objc-act.c (warn_with_method): Remove helper function.
7717 (check_duplicates): Call warning and inform directly.
7718 (really_start_method): Likewise.
7719
7720 2009-04-09 Paolo Bonzini <bonzini@gnu.org>
7721
7722 * expmed.c (expand_divmod): Always use a comparison for a division
7723 by a large unsigned integer.
7724
7725 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
7726 for things others than variables or functions as nonzero.
7727
7728 2009-04-09 Nick Clifton <nickc@redhat.com>
7729
7730 * unwind-compat.c: Change copyright header to refer to version
7731 3 of the GNU General Public License with version 3.1 of the
7732 GCC Runtime Library Exception and to point readers at the
7733 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
7734 * config/alpha/crtfastmath.c: Likewise.
7735 * config/alpha/linux-unwind.h: Likewise.
7736 * config/alpha/qrnnd.asm: Likewise.
7737 * config/alpha/vms-crt0-64.c: Likewise.
7738 * config/alpha/vms-crt0.c: Likewise.
7739 * config/alpha/vms-dwarf2.asm: Likewise.
7740 * config/alpha/vms-dwarf2eh.asm: Likewise.
7741 * config/alpha/vms-psxcrt0-64.c: Likewise.
7742 * config/alpha/vms-psxcrt0.c: Likewise.
7743 * config/alpha/vms_tramp.asm: Likewise.
7744 * config/arc/initfini.c: Likewise.
7745 * config/arc/lib1funcs.asm: Likewise.
7746 * config/arm/bpabi-v6m.S: Likewise.
7747 * config/arm/bpabi.S: Likewise.
7748 * config/arm/bpabi.c: Likewise.
7749 * config/arm/crti.asm: Likewise.
7750 * config/arm/crtn.asm: Likewise.
7751 * config/arm/ieee754-df.S: Likewise.
7752 * config/arm/ieee754-sf.S: Likewise.
7753 * config/arm/lib1funcs.asm: Likewise.
7754 * config/arm/libunwind.S: Likewise.
7755 * config/arm/linux-atomic.c: Likewise.
7756 * config/arm/mmintrin.h: Likewise.
7757 * config/arm/pr-support.c: Likewise.
7758 * config/arm/unaligned-funcs.c: Likewise.
7759 * config/arm/unwind-arm.c: Likewise.
7760 * config/arm/unwind-arm.h: Likewise.
7761 * config/avr/libgcc.S: Likewise.
7762 * config/bfin/crti.s: Likewise.
7763 * config/bfin/crtlibid.s: Likewise.
7764 * config/bfin/crtn.s: Likewise.
7765 * config/bfin/lib1funcs.asm: Likewise.
7766 * config/bfin/linux-unwind.h: Likewise.
7767 * config/cris/arit.c: Likewise.
7768 * config/cris/cris_abi_symbol.c: Likewise.
7769 * config/darwin-64.c: Likewise.
7770 * config/darwin-crt2.c: Likewise.
7771 * config/darwin-crt3.c: Likewise.
7772 * config/darwin.h: Likewise.
7773 * config/dbxelf.h: Likewise.
7774 * config/dfp-bit.c: Likewise.
7775 * config/dfp-bit.h: Likewise.
7776 * config/elfos.h: Likewise.
7777 * config/fixed-bit.c: Likewise.
7778 * config/fixed-bit.h: Likewise.
7779 * config/fp-bit.c: Likewise.
7780 * config/fp-bit.h: Likewise.
7781 * config/fr30/crti.asm: Likewise.
7782 * config/fr30/crtn.asm: Likewise.
7783 * config/fr30/lib1funcs.asm: Likewise.
7784 * config/freebsd-spec.h: Likewise.
7785 * config/frv/cmovd.c: Likewise.
7786 * config/frv/cmovh.c: Likewise.
7787 * config/frv/cmovw.c: Likewise.
7788 * config/frv/frvbegin.c: Likewise.
7789 * config/frv/frvend.c: Likewise.
7790 * config/frv/lib1funcs.asm: Likewise.
7791 * config/glibc-stdint.h: Likewise.
7792 * config/h8300/clzhi2.c: Likewise.
7793 * config/h8300/crti.asm: Likewise.
7794 * config/h8300/crtn.asm: Likewise.
7795 * config/h8300/ctzhi2.c: Likewise.
7796 * config/h8300/fixunssfsi.c: Likewise.
7797 * config/h8300/lib1funcs.asm: Likewise.
7798 * config/h8300/parityhi2.c: Likewise.
7799 * config/h8300/popcounthi2.c: Likewise.
7800 * config/i386/ammintrin.h: Likewise.
7801 * config/i386/att.h: Likewise.
7802 * config/i386/avxintrin.h: Likewise.
7803 * config/i386/biarch64.h: Likewise.
7804 * config/i386/bmmintrin.h: Likewise.
7805 * config/i386/cpuid.h: Likewise.
7806 * config/i386/cross-stdarg.h: Likewise.
7807 * config/i386/crtfastmath.c: Likewise.
7808 * config/i386/crtprec.c: Likewise.
7809 * config/i386/cygming-crtbegin.c: Likewise.
7810 * config/i386/cygming-crtend.c: Likewise.
7811 * config/i386/cygwin.asm: Likewise.
7812 * config/i386/emmintrin.h: Likewise.
7813 * config/i386/gmm_malloc.h: Likewise.
7814 * config/i386/gthr-win32.c: Likewise.
7815 * config/i386/i386.h: Likewise.
7816 * config/i386/immintrin.h: Likewise.
7817 * config/i386/linux-unwind.h: Likewise.
7818 * config/i386/linux64.h: Likewise.
7819 * config/i386/mm3dnow.h: Likewise.
7820 * config/i386/mmintrin-common.h: Likewise.
7821 * config/i386/mmintrin.h: Likewise.
7822 * config/i386/nmmintrin.h: Likewise.
7823 * config/i386/pmm_malloc.h: Likewise.
7824 * config/i386/pmmintrin.h: Likewise.
7825 * config/i386/smmintrin.h: Likewise.
7826 * config/i386/sol2-c1.asm: Likewise.
7827 * config/i386/sol2-ci.asm: Likewise.
7828 * config/i386/sol2-cn.asm: Likewise.
7829 * config/i386/sol2-gc1.asm: Likewise.
7830 * config/i386/tmmintrin.h: Likewise.
7831 * config/i386/unix.h: Likewise.
7832 * config/i386/w32-unwind.h: Likewise.
7833 * config/i386/wmmintrin.h: Likewise.
7834 * config/i386/x86-64.h: Likewise.
7835 * config/i386/x86intrin.h: Likewise.
7836 * config/i386/xmmintrin.h: Likewise.
7837 * config/ia64/crtbegin.asm: Likewise.
7838 * config/ia64/crtend.asm: Likewise.
7839 * config/ia64/crtfastmath.c: Likewise.
7840 * config/ia64/crti.asm: Likewise.
7841 * config/ia64/crtn.asm: Likewise.
7842 * config/ia64/fde-glibc.c: Likewise.
7843 * config/ia64/lib1funcs.asm: Likewise.
7844 * config/ia64/linux-unwind.h: Likewise.
7845 * config/ia64/quadlib.c: Likewise.
7846 * config/ia64/unwind-ia64.c: Likewise.
7847 * config/linux.h: Likewise.
7848 * config/m32c/m32c-lib1.S: Likewise.
7849 * config/m32c/m32c-lib2-trapv.c: Likewise.
7850 * config/m32c/m32c-lib2.c: Likewise.
7851 * config/m32r/initfini.c: Likewise.
7852 * config/m68hc11/larith.asm: Likewise.
7853 * config/m68hc11/m68hc11-crt0.S: Likewise.
7854 * config/m68k/cf.md: Likewise.
7855 * config/m68k/crti.s: Likewise.
7856 * config/m68k/crtn.s: Likewise.
7857 * config/m68k/lb1sf68.asm: Likewise.
7858 * config/m68k/linux-unwind.h: Likewise.
7859 * config/mcore/crti.asm: Likewise.
7860 * config/mcore/crtn.asm: Likewise.
7861 * config/mcore/lib1.asm: Likewise.
7862 * config/mips/linux-unwind.h: Likewise.
7863 * config/mips/loongson.h: Likewise.
7864 * config/mips/mips16.S: Likewise.
7865 * config/mmix/crti.asm: Likewise.
7866 * config/mmix/crtn.asm: Likewise.
7867 * config/pa/fptr.c: Likewise.
7868 * config/pa/hpux-unwind.h: Likewise.
7869 * config/pa/lib2funcs.asm: Likewise.
7870 * config/pa/linux-atomic.c: Likewise.
7871 * config/pa/linux-unwind.h: Likewise.
7872 * config/pa/milli64.S: Likewise.
7873 * config/pa/quadlib.c: Likewise.
7874 * config/pa/stublib.c: Likewise.
7875 * config/picochip/libgccExtras/adddi3.asm: Likewise.
7876 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
7877 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
7878 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
7879 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
7880 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
7881 * config/picochip/libgccExtras/divmod15.asm: Likewise.
7882 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
7883 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
7884 * config/picochip/libgccExtras/longjmp.asm: Likewise.
7885 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
7886 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
7887 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
7888 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
7889 * config/picochip/libgccExtras/setjmp.asm: Likewise.
7890 * config/picochip/libgccExtras/subdi3.asm: Likewise.
7891 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
7892 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
7893 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
7894 * config/rs6000/750cl.h: Likewise.
7895 * config/rs6000/altivec.h: Likewise.
7896 * config/rs6000/biarch64.h: Likewise.
7897 * config/rs6000/crtresfpr.asm: Likewise.
7898 * config/rs6000/crtresgpr.asm: Likewise.
7899 * config/rs6000/crtresxfpr.asm: Likewise.
7900 * config/rs6000/crtresxgpr.asm: Likewise.
7901 * config/rs6000/crtsavfpr.asm: Likewise.
7902 * config/rs6000/crtsavgpr.asm: Likewise.
7903 * config/rs6000/darwin-asm.h: Likewise.
7904 * config/rs6000/darwin-fallback.c: Likewise.
7905 * config/rs6000/darwin-fpsave.asm: Likewise.
7906 * config/rs6000/darwin-ldouble.c: Likewise.
7907 * config/rs6000/darwin-tramp.asm: Likewise.
7908 * config/rs6000/darwin-unwind.h: Likewise.
7909 * config/rs6000/darwin-vecsave.asm: Likewise.
7910 * config/rs6000/darwin-world.asm: Likewise.
7911 * config/rs6000/e500crtres32gpr.asm: Likewise.
7912 * config/rs6000/e500crtres64gpr.asm: Likewise.
7913 * config/rs6000/e500crtres64gprctr.asm: Likewise.
7914 * config/rs6000/e500crtrest32gpr.asm: Likewise.
7915 * config/rs6000/e500crtrest64gpr.asm: Likewise.
7916 * config/rs6000/e500crtresx32gpr.asm: Likewise.
7917 * config/rs6000/e500crtresx64gpr.asm: Likewise.
7918 * config/rs6000/e500crtsav32gpr.asm: Likewise.
7919 * config/rs6000/e500crtsav64gpr.asm: Likewise.
7920 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
7921 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
7922 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
7923 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
7924 * config/rs6000/eabi-ci.asm: Likewise.
7925 * config/rs6000/eabi-cn.asm: Likewise.
7926 * config/rs6000/eabi.asm: Likewise.
7927 * config/rs6000/linux-unwind.h: Likewise.
7928 * config/rs6000/linux64.h: Likewise.
7929 * config/rs6000/paired.h: Likewise.
7930 * config/rs6000/paired.md: Likewise.
7931 * config/rs6000/ppc64-fp.c: Likewise.
7932 * config/rs6000/ppu_intrinsics.h: Likewise.
7933 * config/rs6000/rs6000.h: Likewise.
7934 * config/rs6000/si2vmx.h: Likewise.
7935 * config/rs6000/sol-ci.asm: Likewise.
7936 * config/rs6000/sol-cn.asm: Likewise.
7937 * config/rs6000/spe.h: Likewise.
7938 * config/rs6000/spu2vmx.h: Likewise.
7939 * config/rs6000/sysv4.h: Likewise.
7940 * config/rs6000/tramp.asm: Likewise.
7941 * config/rs6000/vec_types.h: Likewise.
7942 * config/s390/linux-unwind.h: Likewise.
7943 * config/s390/tpf-unwind.h: Likewise.
7944 * config/score/crti.asm: Likewise.
7945 * config/score/crtn.asm: Likewise.
7946 * config/sh/crt1.asm: Likewise.
7947 * config/sh/crti.asm: Likewise.
7948 * config/sh/crtn.asm: Likewise.
7949 * config/sh/divtab-sh4-300.c: Likewise.
7950 * config/sh/divtab-sh4.c: Likewise.
7951 * config/sh/divtab.c: Likewise.
7952 * config/sh/lib1funcs-4-300.asm: Likewise.
7953 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
7954 * config/sh/lib1funcs.asm: Likewise.
7955 * config/sh/lib1funcs.h: Likewise.
7956 * config/sh/linux-atomic.asm: Likewise.
7957 * config/sh/linux-unwind.h: Likewise.
7958 * config/sh/shmedia.h: Likewise.
7959 * config/sh/sshmedia.h: Likewise.
7960 * config/sh/ushmedia.h: Likewise.
7961 * config/sparc/crtfastmath.c: Likewise.
7962 * config/sparc/linux-unwind.h: Likewise.
7963 * config/sparc/sol2-c1.asm: Likewise.
7964 * config/sparc/sol2-ci.asm: Likewise.
7965 * config/sparc/sol2-cn.asm: Likewise.
7966 * config/spu/divmodti4.c: Likewise.
7967 * config/spu/divv2df3.c: Likewise.
7968 * config/spu/float_disf.c: Likewise.
7969 * config/spu/float_unsdidf.c: Likewise.
7970 * config/spu/float_unsdisf.c: Likewise.
7971 * config/spu/float_unssidf.c: Likewise.
7972 * config/spu/mfc_multi_tag_release.c: Likewise.
7973 * config/spu/mfc_multi_tag_reserve.c: Likewise.
7974 * config/spu/mfc_tag_release.c: Likewise.
7975 * config/spu/mfc_tag_reserve.c: Likewise.
7976 * config/spu/mfc_tag_table.c: Likewise.
7977 * config/spu/multi3.c: Likewise.
7978 * config/spu/spu_internals.h: Likewise.
7979 * config/spu/spu_intrinsics.h: Likewise.
7980 * config/spu/spu_mfcio.h: Likewise.
7981 * config/spu/vec_types.h: Likewise.
7982 * config/spu/vmx2spu.h: Likewise.
7983 * config/stormy16/stormy16-lib2.c: Likewise.
7984 * config/svr4.h: Likewise.
7985 * config/sync.c: Likewise.
7986 * config/v850/lib1funcs.asm: Likewise.
7987 * config/vxlib-tls.c: Likewise.
7988 * config/vxlib.c: Likewise.
7989 * config/vxworks-dummy.h: Likewise.
7990 * config/xtensa/crti.asm: Likewise.
7991 * config/xtensa/crtn.asm: Likewise.
7992 * config/xtensa/ieee754-df.S: Likewise.
7993 * config/xtensa/ieee754-sf.S: Likewise.
7994 * config/xtensa/lib1funcs.asm: Likewise.
7995 * config/xtensa/lib2funcs.S: Likewise.
7996 * config/xtensa/linux-unwind.h: Likewise.
7997 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
7998 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
7999 * coretypes.h: Likewise.
8000 * crtstuff.c: Likewise.
8001 * defaults.h: Likewise.
8002 * dwarf2.h: Likewise.
8003 * emutls.c: Likewise.
8004 * gbl-ctors.h: Likewise.
8005 * gcov-io.h: Likewise.
8006 * ginclude/float.h: Likewise.
8007 * ginclude/iso646.h: Likewise.
8008 * ginclude/stdarg.h: Likewise.
8009 * ginclude/stdbool.h: Likewise.
8010 * ginclude/stddef.h: Likewise.
8011 * ginclude/stdfix.h: Likewise.
8012 * ginclude/stdint-gcc.h: Likewise.
8013 * ginclude/tgmath.h: Likewise.
8014 * gthr-aix.h: Likewise.
8015 * gthr-dce.h: Likewise.
8016 * gthr-gnat.c: Likewise.
8017 * gthr-gnat.h: Likewise.
8018 * gthr-lynx.h: Likewise.
8019 * gthr-mipssde.h: Likewise.
8020 * gthr-nks.h: Likewise.
8021 * gthr-posix.c: Likewise.
8022 * gthr-posix.h: Likewise.
8023 * gthr-posix95.h: Likewise.
8024 * gthr-rtems.h: Likewise.
8025 * gthr-single.h: Likewise.
8026 * gthr-solaris.h: Likewise.
8027 * gthr-tpf.h: Likewise.
8028 * gthr-vxworks.h: Likewise.
8029 * gthr-win32.h: Likewise.
8030 * gthr.h: Likewise.
8031 * libgcc2.c: Likewise.
8032 * libgcc2.h: Likewise.
8033 * libgcov.c: Likewise.
8034 * tsystem.h: Likewise.
8035 * typeclass.h: Likewise.
8036 * unwind-c.c: Likewise.
8037 * unwind-compat.h: Likewise.
8038 * unwind-dw2-fde-compat.c: Likewise.
8039 * unwind-dw2-fde-darwin.c: Likewise.
8040 * unwind-dw2-fde-glibc.c: Likewise.
8041 * unwind-dw2-fde.c: Likewise.
8042 * unwind-dw2-fde.h: Likewise.
8043 * unwind-dw2.c: Likewise.
8044 * unwind-dw2.h: Likewise.
8045 * unwind-generic.h: Likewise.
8046 * unwind-pe.h: Likewise.
8047 * unwind-sjlj.c: Likewise.
8048 * unwind.inc: Likewise.
8049 * config/arm/neon-gen.ml: Change generated copyright header to
8050 refer to version 3 of the GNU General Public License with
8051 version 3.1 of the GCC Runtime Library Exception and to point
8052 readers at the COPYING3 and COPYING3.RUNTIME files and the
8053 FSF's license web page.
8054 * config/arm/arm_neon.h: Regenerate.
8055
8056 2009-04-09 Jakub Jelinek <jakub@redhat.com>
8057
8058 * config/cris/cris.md: Change copyright header to refer to version
8059 3 of the GNU General Public License.
8060 * doc/install.texi2html: Change copyright header to refer to version
8061 3 of the GNU General Public License and to point readers at the
8062 COPYING3 file and the FSF's license web page.
8063 * config/vax/linux.h: Likewise.
8064
8065 2009-04-09 Paolo Bonzini <bonzini@gnu.org>
8066
8067 * config/i386/i386.md (cmpcc): New.
8068 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
8069 (sync_compare_and_swap_cc*): Delete.
8070
8071 * config/s390/s390.c (s390_compare_emitted): Remove.
8072 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
8073 s390_compare_emitted used to be handled. Assert that modes match.
8074 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
8075 refer to sync_compare_and_swap_ccsi.
8076 * config/s390/s390.h (s390_compare_emitted): Remove.
8077 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
8078 instead of s390_compare_emitted.
8079 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
8080 instead of s390_compare_emitted.
8081 * config/s390/s390.md (cmpcc): New.
8082 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
8083 CC_REGNUM, do not pretend it's set.
8084 (sync_compare_and_swap_cc*): Delete.
8085 * config/s390/predicates.md (cc_reg_operand): New.
8086
8087 * expr.c (sync_compare_and_swap_cc): Delete.
8088 * optabs.h (sync_compare_and_swap_cc): Delete.
8089 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
8090 is being used with can_compare_p.
8091 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
8092 (find_cc_set): New.
8093 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
8094 look for a MODE_CC set instead. Use emit_store_flag.
8095 (expand_compare_and_swap_loop): Likewise, with some additional
8096 complication to avoid a force_reg when useless. Use
8097 emit_cmp_and_jump_insns.
8098 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
8099 * doc/md.texi (sync_compare_and_swap_cc): Merge with
8100 sync_compare_and_swap documentation.
8101
8102 2009-04-09 Jan Hubicka <jh@suse.cz>
8103
8104 * except.c (find_prev_try): Break out from ....
8105 (duplicate_eh_regions): ... here; properly update prev_try pointers
8106 when duplication part of tree.
8107 (dump_eh_tree): Improve dumping.
8108 (verify_eh_region): New.
8109 (verify_eh_tree): Use it.
8110
8111 2009-04-06 Richard Guenther <rguenther@suse.de>
8112
8113 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
8114 &ARRAY addresses by adjusting their types and prepending
8115 a conversion.
8116 * tree-cfg.c (verify_gimple_assign_single): Verify that
8117 addresses are correct.
8118
8119 2009-04-09 Richard Guenther <rguenther@suse.de>
8120
8121 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
8122 indices into an array reference if possible.
8123 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
8124 Fold POINTER_PLUS_EXPR statements with invariant address.
8125
8126 2009-04-09 Alan Modra <amodra@bigpond.net.au>
8127
8128 PR target/39634
8129 * config.gcc (powerpc64-*-linux*): Always build biarch.
8130
8131 2009-04-09 Joseph Myers <joseph@codesourcery.com>
8132
8133 PR c/39613
8134 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
8135 it and pedwarn if this results in an INTEGER_CST.
8136
8137 2009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8138
8139 * doc/install.texi: Update minimum GMP version. Remove obsolete
8140 text in MPFR section.
8141
8142 2009-04-08 Jakub Jelinek <jakub@redhat.com>
8143
8144 * dwarf2out.c (class_scope_p): New static inline.
8145 (class_or_namespace_scope_p): Use it.
8146 (gen_variable_die): Use DW_TAG_member tag for static data member
8147 declarations instead of DW_TAG_variable.
8148
8149 PR middle-end/39573
8150 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
8151 variables.
8152
8153 2009-04-08 Richard Guenther <rguenther@suse.de>
8154
8155 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
8156 valueize random data.
8157
8158 2009-04-08 David Edelsohn <edelsohn@gnu.org>
8159
8160 * config.gcc (aix tm_file): Add aix-stdint.h.
8161 (aix tm clause use_gcc_stdint): Set to wrap.
8162 * config/rs6000/aix-stdint.h: New file.
8163
8164 2009-04-08 Richard Guenther <rguenther@suse.de>
8165
8166 PR middle-end/36291
8167 * tree-dfa.c (add_referenced_var): Do not recurse into
8168 global initializers.
8169 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
8170 exposed variables.
8171 (fold_const_aggregate_ref): Likewise.
8172
8173 2009-04-08 Paolo Bonzini <bonzini@gnu.org>
8174
8175 * recog.c (ordered_comparison_operator): New.
8176 * gensupport.c (std_preds): Add it.
8177 * doc/md.texi (Machine-Independent Predicates): Document it.
8178
8179 2009-04-08 Jan Hubicka <jh@suse.cz>
8180
8181 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
8182 * function.h (rtl_eh): Remove exception_handler_label_map.
8183 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
8184 remove_exception_handler_label, for_each_eh_label_1): Remove.
8185 (rtl_remove_unreachable_regions): Remove.
8186 (convert_from_eh_region_ranges): Do not remove unreachable regions.
8187 (find_exception_handler_labels): Don't build the hashtable.
8188 (maybe_remove_eh_handler): Remove.
8189 (for_each_eh_label): Rewrite to walk the tree.
8190 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
8191 * except.h (maybe_remove_eh_handler): Remove.
8192 * passes.c (init_optimization_passes): Schedule second EH cleanup
8193 before out-of-ssa.
8194 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
8195 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
8196
8197 2009-04-08 Paolo Bonzini <bonzini@gnu.org>
8198
8199 * genoutput.c (validate_optab_operands): New.
8200 (gen_insn, gen_expand): Call it.
8201
8202 * genflags.c (gen_insn): Detect misused iterators.
8203 (main): Pass line_no to gen_insn, exit with status 1 on error.
8204
8205 * genextract.c (line_no): Make global.
8206 (VEC_safe_set_locstr): Change assertion to error message.
8207 (main): Exit with status 1 on error.
8208
8209 2009-04-08 Joseph Myers <joseph@codesourcery.com>
8210
8211 PR c/39614
8212 PR c/39673
8213 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
8214 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
8215 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
8216 * c-convert.c (convert): Do not call fold on results of conversion
8217 functions when the result is a C_MAYBE_CONST_EXPR.
8218 * c-parser.c (c_parser_postfix_expression): Do not fold condition
8219 of __builtin_choose_expr.
8220 * c-typeck.c (remove_c_maybe_const_expr): New.
8221 (build_unary_op, build_conditional_expr, build_compound_expr,
8222 build_binary_op, c_objc_common_truthvalue_conversion): Call
8223 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
8224 integer operands.
8225
8226 2009-04-08 Bingfeng Mei <bmei@broadcom.com>
8227
8228 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
8229 CODE to produce a new one. Add a prototype to use fold_convert_const
8230
8231 2009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
8232
8233 PR bootstrap/39660
8234 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
8235 mix declarations and code.
8236
8237 2009-04-08 Ben Elliston <bje@au.ibm.com>
8238
8239 * gcc.c: Replace `CC' with `GCC' throughout.
8240
8241 2009-04-07 H.J. Lu <hongjiu.lu@intel.com>
8242
8243 * doc/invoke.texi: Document Atom support.
8244
8245 2009-04-07 Jason Merrill <jason@redhat.com>
8246
8247 PR c++/25185
8248 * c-common.h, c-common.c: Add flag_pretty_templates.
8249 * c-opts.c (c_common_handle_option): Set it.
8250 * c.opt: Add -fno-pretty-templates.
8251 * doc/invoke.texi (C++ Dialect Options): Likewise.
8252
8253 2009-04-07 Uros Bizjak <ubizjak@gmail.com>
8254
8255 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
8256 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
8257 (ia64_expand_builtin): Likewise.
8258
8259 2009-04-07 Martin Jambor <mjambor@suse.cz>
8260
8261 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
8262 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
8263 ADDR_EXPRS are include too.
8264
8265 2009-04-07 Richard Guenther <rguenther@suse.de>
8266
8267 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
8268 decls are only used if passes as parameters or if they are
8269 local statics and the call is not to a builtin.
8270 (call_may_clobber_ref_p_1): Likewise.
8271
8272 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
8273
8274 * expr.c (do_store_flag): Remove last argument. Simplify code
8275 to avoid duplication of tests already done by can_compare_p.
8276 (expand_expr_real_1): Adjust caller.
8277
8278 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
8279
8280 * optabs.c (can_compare_p): Test the predicate of a
8281 cbranch and cstore pattern.
8282
8283 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
8284
8285 * expr.c (convert_move): Use emit_store_flag instead of
8286 "emulating" it.
8287
8288 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
8289
8290 * config/i386/i386.c (ix86_compare_emitted): Remove.
8291 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
8292 ix86_compare_op0 like ix86_compare_emitted used to be handled.
8293 * config/i386/i386.h (ix86_compare_emitted): Remove.
8294 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
8295 instead of ix86_compare_emitted.
8296 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
8297
8298 2009-04-07 Andrew Stubbs <ams@codesourcery.com>
8299
8300 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
8301 Add t-sysroot-suffix to tmake_file.
8302 * config/print-sysroot-suffix.sh: New file.
8303 * config/t-sysroot-suffix: New file.
8304
8305 2009-04-07 Ben Elliston <bje@au.ibm.com>
8306
8307 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
8308 as the latter produces a warning when the target does not support
8309 infinity.
8310
8311 2009-04-07 Ben Elliston <bje@au.ibm.com>
8312
8313 * dfp.c: Replace type punning assignments with memcpy throughout.
8314 * Makefile.in (dfp.o-warn): Remove.
8315
8316 2009-04-07 Alan Modra <amodra@bigpond.net.au>
8317
8318 PR target/39634
8319 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
8320 Include soft-fp/t-softfp after rs6000/t-linux64.
8321
8322 2009-04-06 Eric Botcazou <ebotcazou@adacore.com>
8323
8324 * stor-layout.c (set_sizetype): Use the full precision of their
8325 machine mode for bitsize types.
8326
8327 2009-04-06 H.J. Lu <hongjiu.lu@intel.com>
8328
8329 * config/i386/i386.md: Revert 2 accidental checkins.
8330
8331 2009-04-06 Joey Ye <joey.ye@intel.com>
8332 Xuepeng Guo <xuepeng.guo@intel.com>
8333 H.J. Lu <hongjiu.lu@intel.com>
8334
8335 Atom pipeline model, tuning and insn selection.
8336 * config.gcc (atom): Add atom config options and target.
8337
8338 * config/i386/atom.md: New.
8339
8340 * config/i386/i386.c (atom_cost): New cost.
8341 (m_ATOM): New macro flag.
8342 (initial_ix86_tune_features): Set m_ATOM.
8343 (x86_accumulate_outgoing_args): Likewise.
8344 (x86_arch_always_fancy_math_387): Likewise.
8345 (processor_target): Add Atom cost.
8346 (cpu_names): Add Atom cpu name.
8347 (override_options): Set Atom ISA.
8348 (ix86_issue_rate): New case PROCESSOR_ATOM.
8349 (ix86_adjust_cost): Likewise.
8350
8351 * config/i386/i386.h (TARGET_ATOM): New target macro.
8352 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
8353 (TARGET_OPT_AGU): New target option.
8354 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
8355 (processor_type): Add PROCESSOR_ATOM.
8356
8357 * config/i386/i386.md (cpu): Add new value "atom".
8358 (use_carry, movu): New attr.
8359 (atom.md): Include atom.md.
8360 (adddi3_carry_rex64): Set attr "use_carry".
8361 (addqi3_carry): Likewise.
8362 (addhi3_carry): Likewise.
8363 (addsi3_carry): Likewise.
8364 (*addsi3_carry_zext): Likewise.
8365 (subdi3_carry_rex64): Likewise.
8366 (subqi3_carry): Likewise.
8367 (subhi3_carry): Likewise.
8368 (subsi3_carry): Likewise.
8369 (x86_movdicc_0_m1_rex64): Likewise.
8370 (*x86_movdicc_0_m1_se): Likewise.
8371 (x86_movsicc_0_m1): Likewise.
8372 (*x86_movsicc_0_m1_se): Likewise.
8373 (*adddi_1_rex64): Emit add insn as much as possible.
8374 (*addsi_1): Likewise.
8375 (return_internal): Set atom_unit.
8376 (return_internal_long): Likewise.
8377 (return_pop_internal): Likewise.
8378 (*rcpsf2_sse): Set atom_sse_attr attr.
8379 (*qrt<mode>2_sse): Likewise.
8380 (*prefetch_sse): Likewise.
8381
8382 * config/i386/i386-c.c (ix86_target_macros_internal): New case
8383 PROCESSOR_ATOM.
8384 (ix86_target_macros_internal): Likewise.
8385
8386 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
8387 (*prefetch_sse_rex): Likewise.
8388 (sse_rcpv4sf2): Likewise.
8389 (sse_vmrcpv4sf2): Likewise.
8390 (sse_sqrtv4sf2): Likewise.
8391 (<sse>_vmsqrt<mode>2): Likewise.
8392 (sse_ldmxcsr): Likewise.
8393 (sse_stmxcsr): Likewise.
8394 (*sse_sfence): Likewise.
8395 (sse2_clflush): Likewise.
8396 (*sse2_mfence): Likewise.
8397 (*sse2_lfence): Likewise.
8398 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
8399 (<sse>_movup<ssemodesuffixf2c>): Likewise.
8400 (avx_movdqu<avxmodesuffix>): Likewise.
8401 (avx_lddqu<avxmodesuffix>): Likewise.
8402 (sse2_movntv2di): Change attr "type" to "ssemov".
8403 (sse2_movntsi): Likewise.
8404 (rsqrtv8sf2): Change attr "type" to "sseadd".
8405 (sse3_addsubv2df3): Set attr "atom_unit".
8406 (sse3_h<plusminus_insn>v4sf3): Likewise.
8407 (*sse2_pmaddwd): Likewise.
8408 (*vec_extractv2di_1_rex64): Likewise.
8409 (*vec_extractv2di_1_avx): Likewise.
8410 (sse2_psadbw): Likewise.
8411 (ssse3_phaddwv8hi3): Likewise.
8412 (ssse3_phaddwv4hi3): Likewise.
8413 (ssse3_phadddv4si3): Likewise.
8414 (ssse3_phadddv2si3): Likewise.
8415 (ssse3_phaddswv8hi3): Likewise.
8416 (ssse3_phaddswv4hi3): Likewise.
8417 (ssse3_phsubwv8hi3): Likewise.
8418 (ssse3_phsubwv4hi3): Likewise.
8419 (ssse3_phsubdv4si3): Likewise.
8420 (ssse3_phsubdv2si3): Likewise.
8421 (ssse3_phsubswv8hi3): Likewise.
8422 (ssse3_phsubswv4hi3): Likewise.
8423 (ssse3_pmaddubsw128): Likewise.
8424 (sse3_pmaddubsw: Likewise.
8425 (ssse3_palignrti): Likewise.
8426 (ssse3_palignrdi): Likewise.
8427
8428 2009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
8429
8430 * doc/install.texi (Specific): Fix two cross-references to MinGW.
8431
8432 2009-04-06 Richard Guenther <rguenther@suse.de>
8433
8434 PR tree-optimization/28868
8435 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
8436 of which PHI results we inserted.
8437 (insert_into_preds_of_block): Record inserted PHIs.
8438 (eliminate): Eliminate redundant PHI nodes.
8439 (init_pre): Init inserted_phi_names.
8440
8441 2009-04-06 Richard Guenther <rguenther@suse.de>
8442
8443 PR tree-optimization/39643
8444 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
8445 IMAGPART_EXPRs of complex constants.
8446 (execute_fold_all_builtins): If we folded a call queue
8447 TODO_update_address_taken.
8448
8449 2009-04-06 Jan Hubicka <jh@suse.cz>
8450
8451 PR middle-end/39659
8452 * except.c (remove_unreachable_regions): Propagate may_contain_throw
8453 flag.
8454
8455 2009-04-06 Andrew Stubbs <ams@codesourcery.com>
8456
8457 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
8458 delay slot.
8459 (ic_invalidate_array): Likewise.
8460
8461 2009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
8462
8463 * calls.c (emit_library_call_value_1): Fix a problem with parameter
8464 alignment for library calls.
8465
8466 2009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
8467
8468 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
8469 (mingw32 tm clause use_gcc_stdint): Set to wrap.
8470 * config/i386/mingw-stdint.h: New file.
8471
8472 2009-04-05 Richard Guenther <rguenther@suse.de>
8473
8474 PR tree-optimization/39648
8475 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
8476 our &A vs. &A[0] IL deficiencies.
8477
8478 2009-04-04 Jan Hubicka <jh@suse.cz>
8479
8480 * except.c (sjlj_find_directly_reachable_regions): Be ready for
8481 removed toplevel regions.
8482 (sjlj_mark_call_sites): Likewise.
8483
8484 2009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
8485
8486 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
8487 (cygwin tm clause use_gcc_stdint): Set to wrap.
8488 * config/i386/cygwin-stdint.h: New file.
8489
8490 2009-04-04 Richard Guenther <rguenther@suse.de>
8491
8492 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
8493 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
8494 single-argument PHIs if we are in loop-closed SSA form.
8495 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
8496 for the pre-condition.
8497 (slpeel_tree_peel_loop_to_edge): Likewise.
8498 (vect_build_loop_niters): Take an optional sequence to append stmts.
8499 (vect_generate_tmps_on_preheader): Likewise.
8500 (vect_do_peeling_for_loop_bound): Take extra guards for the
8501 pre-condition.
8502 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
8503 the cost model check.
8504 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
8505 guards if we are going to peel. Do not apply versioning in that case.
8506 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
8507 (vect_do_peeling_for_loop_bound): Likewise.
8508 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
8509 loop bound only record extra pre-conditions, do not apply loop
8510 versioning.
8511
8512 2009-04-04 Richard Guenther <rguenther@suse.de>
8513
8514 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
8515 renaming code.
8516
8517 2009-04-04 Jan Hubicka <jh@suse.cz>
8518
8519 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
8520 last_basic_block for size of bb->index indexed array.
8521 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
8522 compute_out, link_btr_uses, build_btr_def_use_webs,
8523 build_btr_def_use_webs, migrate_btr_defs): Likewise.
8524
8525 2009-04-04 Jan Hubicka <jh@suse.cz>
8526
8527 * except.c (remove_eh_handler_and_replace): Break out from ...
8528 (remove_eh_handler): ... here.
8529 (bring_to_root): New function.
8530 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
8531 handled ones, bring others to root of tree.
8532
8533 2009-04-04 Jan Hubicka <jh@suse.cz>
8534
8535 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
8536 (all_phis_safe_to_merge): New function.
8537 (update_info): New structure.
8538 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
8539 (cleanup_empty_eh): Update SSA if possible.
8540
8541 2009-04-04 Richard Guenther <rguenther@suse.de>
8542
8543 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
8544 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
8545 (append_vuse): Likewise.
8546
8547 2009-04-04 Jakub Jelinek <jakub@redhat.com>
8548
8549 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
8550 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
8551 instead of REG_UNSAVED for DW_CFA_undefined.
8552 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
8553 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
8554 outermost frame.
8555
8556 2009-04-04 Richard Earnshaw <rearnsha@arm.com>
8557
8558 PR target/39501
8559 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
8560 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
8561 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
8562
8563 2009-04-04 Richard Guenther <rguenther@suse.de>
8564
8565 PR tree-optimization/8781
8566 PR tree-optimization/37892
8567 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
8568 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
8569 (valueize_refs): Call it for *& valueizations.
8570 (shared_reference_ops_from_ref): Rename to ...
8571 (valueize_shared_reference_ops_from_ref): ... this and valueize.
8572 (shared_reference_ops_from_call): Rename to ...
8573 (valueize_shared_reference_ops_from_call): ... this and valueize.
8574 (vn_reference_lookup): Update.
8575 (visit_reference_op_call): Likewise.
8576 * tree-ssa-pre.c (phi_translate_1): Fold *&.
8577 (eliminate): Value-replace the call address in call statements.
8578
8579 2009-04-04 Richard Guenther <rguenther@suse.de>
8580
8581 PR tree-optimization/39636
8582 * tree-ssa-forwprop.c
8583 (forward_propagate_addr_into_variable_array_index): Check for
8584 GIMPLE_ASSIGN before accessing the rhs code.
8585
8586 2009-04-03 Jason Merrill <jason@redhat.com>
8587
8588 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
8589
8590 2009-04-03 Steve Ellcey <sje@cup.hp.com>
8591
8592 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
8593 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
8594 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
8595 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
8596 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
8597 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
8598 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
8599 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
8600 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
8601 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
8602 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
8603 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
8604 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
8605 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
8606 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
8607 Use fr_reg_or_fp01_operand instead of fr_register_operand
8608
8609 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
8610 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
8611 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
8612
8613 2009-04-03 Vladimir Makarov <vmakarov@redhat.com>
8614
8615 PR rtl-optimization/39607
8616 PR rtl-optimization/39631
8617
8618 Revert:
8619
8620 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
8621 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
8622 instead of DF_LR_OUT.
8623 * ira-lives.c (process_bb_node_lives): Ditto.
8624 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
8625 instead of DF_LR_{OUT,IN}.
8626 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
8627 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
8628
8629 2009-04-03 Steven Bosscher <steven@gcc.gnu.org>
8630
8631 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
8632 (execute_lower_omp): Always run but take the short way out if -fopenmp
8633 is not given.
8634 (gate_lower_omp): Remove, forcing the pass manager to always run the
8635 pass and always set PROP_gimple_lomp.
8636 (pass_lower_omp): Remove gate function.
8637 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
8638 PROP_trees. Instead, require it.
8639 * ipa-cp.c (pass_ipa_cp): Likewise.
8640 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
8641 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
8642 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
8643 and PROP_gimple_leh.
8644
8645 2009-04-03 Richard Guenther <rguenther@suse.de>
8646
8647 PR middle-end/13146
8648 PR tree-optimization/23940
8649 PR tree-optimization/33237
8650 PR middle-end/33974
8651 PR middle-end/34093
8652 PR tree-optimization/36201
8653 PR tree-optimization/36230
8654 PR tree-optimization/38049
8655 PR tree-optimization/38207
8656 PR tree-optimization/38230
8657 PR tree-optimization/38301
8658 PR tree-optimization/38585
8659 PR middle-end/38895
8660 PR tree-optimization/38985
8661 PR tree-optimization/39299
8662 * tree-ssa-structalias.h: Remove.
8663 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
8664 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
8665 (struct vuse_element_d): Remove.
8666 (struct vuse_vec_d): Likewise.
8667 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
8668 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
8669 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
8670 VUSE_ELEMENT_VAR): Likewise.
8671 (struct voptype_d): Likewise.
8672 (NUM_VOP_FREE_BUCKETS): Likewise.
8673 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
8674 (struct stmt_operands_d): Remove.
8675 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
8676 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
8677 VDEF_NUM, VDEF_VECT): Likewise.
8678 (copy_virtual_operands): Remove.
8679 (operand_build_cmp): Likewise.
8680 (create_ssa_artificial_load_stmt): Likewise.
8681 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
8682 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
8683 vuse_index and mayuse_index members. Pack and move done and iter_type
8684 members to the front.
8685 (SSA_OP_VMAYUSE): Remove.
8686 (SSA_OP_VIRTUAL_USES): Adjust.
8687 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
8688 (unlink_stmt_vdef): Declare.
8689 (add_to_addressable_set): Remove.
8690 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
8691 (vrp_visit_stmt): Likewise.
8692 * doc/tree-ssa.texi (Alias analysis): Update.
8693 * doc/invoke.texi (max-aliased-vops): Remove docs.
8694 (avg-aliased-vops): Likewise.
8695 * tree-into-ssa.c (syms_to_rename): Remove.
8696 (need_to_update_vops_p): Likewise.
8697 (need_to_initialize_update_ssa_p): Rename to ...
8698 (update_ssa_initialized_fn): ... this. Track function we are
8699 initialized for.
8700 (symbol_marked_for_renaming): Simplify.
8701 (add_new_name_mapping): Do not set need_to_update_vops_p.
8702 (dump_currdefs): Use SYMS_TO_RENAME.
8703 (rewrite_update_stmt): Always walk all uses/defs.
8704 (dump_update_ssa): Adjust.
8705 (init_update_ssa): Take function argument. Track what we are
8706 initialized for.
8707 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
8708 (create_new_def_for): Initialize for cfun, assert we are initialized
8709 for cfun.
8710 (mark_sym_for_renaming): Simplify.
8711 (mark_set_for_renaming): Do not initialize update-ssa.
8712 (need_ssa_update_p): Simplify. Take function argument.
8713 (name_mappings_registered_p): Assert we ask for the correct function.
8714 (name_registered_for_update_p): Likewise.
8715 (ssa_names_to_replace): Likewise.
8716 (release_ssa_name_after_update_ssa): Likewise.
8717 (update_ssa): Likewise. Use SYMS_TO_RENAME.
8718 (dump_decl_set): Do not print a newline.
8719 (debug_decl_set): Do it here.
8720 (dump_update_ssa): And here.
8721 * tree-ssa-loop-im.c (move_computations): Adjust.
8722 (movement_possibility): Likewise.
8723 (determine_max_movement): Likewise.
8724 (gather_mem_refs_stmt): Likewise.
8725 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
8726 or NAME_MEMORY_TAG.
8727 * tree-complex.c (update_all_vops): Remove.
8728 (expand_complex_move): Adjust.
8729 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
8730 Simplify test for memory referencing statement. Exclude
8731 non-invariant ADDR_EXPRs.
8732 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
8733 * tree-loop-distribution.c (generate_memset_zero): Adjust.
8734 (rdg_flag_uses): Likewise.
8735 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
8736 related code.
8737 (tree_optimize_tail_calls_1): Also split the
8738 edge from the entry block if we have degenerate PHI nodes in
8739 the first basic block.
8740 * tree.c (init_ttree): Remove memory-tag related code.
8741 (tree_code_size): Likewise.
8742 (tree_node_structure): Likewise.
8743 (build7_stat): Re-write to be build6_stat.
8744 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
8745 (SSA_VAR_P): Adjust.
8746 (struct tree_memory_tag): Remove.
8747 (struct tree_memory_partition_tag): Likewise.
8748 (union tree_node): Adjust.
8749 (build7): Re-write to be build6.
8750 * tree-pass.h (pass_reset_cc_flags): Remove.
8751 (TODO_update_address_taken): New flag.
8752 (pass_simple_dse): Remove.
8753 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
8754 * params.h (MAX_ALIASED_VOPS): Remove.
8755 (AVG_ALIASED_VOPS): Likewise.
8756 * omp-low.c (expand_omp_taskreg): Update SSA form.
8757 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
8758 aliases the lhs in a copy stmt.
8759 * tree-ssa-dse.c (struct address_walk_data): Remove.
8760 (memory_ssa_name_same): Likewise.
8761 (memory_address_same): Likewise.
8762 (get_kill_of_stmt_lhs): Likewise.
8763 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
8764 unused stores. Look through PHI nodes into post-dominated regions.
8765 (dse_optimize_stmt): Simplify. Properly remove stores.
8766 (tree_ssa_dse): Compute dominators.
8767 (execute_simple_dse): Remove.
8768 (pass_simple_dse): Likewise.
8769 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
8770 gimple_loaded_syms and gimple_stored_syms computation.
8771 * toplev.c (dump_memory_report): Dump alias and pta stats.
8772 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
8773 (vn_reference_eq): Likewise.
8774 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
8775 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
8776 valueize_vuses): Remove.
8777 (get_def_ref_stmt_vuses): Simplify. Rename to ...
8778 (get_def_ref_stmt_vuse): ... this.
8779 (vn_reference_lookup_2): New function.
8780 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
8781 walking equivalent vuses. Simplify.
8782 (vn_reference_lookup): Likewise.
8783 (vn_reference_insert): Likewise.
8784 (vn_reference_insert_pieces): Likewise.
8785 (visit_reference_op_call): Simplify.
8786 (visit_reference_op_load): Likewise.
8787 (visit_reference_op_store): Likewise.
8788 (init_scc_vn): Remove shared_lookup_vuses initialization.
8789 (free_scc_vn): Remove shared_lookup_vuses freeing.
8790 (sort_vuses, sort_vuses_heap): Remove.
8791 (get_ref_from_reference_ops): Export.
8792 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
8793 vector with single vuse pointer.
8794 (vn_reference_lookup_pieces, vn_reference_lookup,
8795 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
8796 (shared_vuses_from_stmt): Remove.
8797 (get_ref_from_reference_ops): Declare.
8798 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
8799 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
8800 memory-tag related code.
8801 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
8802 (likely_value): Add comment, skip static-chain of call statements.
8803 (surely_varying_stmt_p): Adjust.
8804 (gimplify_and_update_call_from_tree): Likewise.
8805 (execute_fold_all_builtins): Do not rebuild alias info.
8806 (gimplify_and_update_call_from_tree): Properly update VOPs.
8807 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
8808 (copy_ref_info): Remove memory-tag related code.
8809 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
8810 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
8811 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
8812 computation.
8813 * tree-ssa-dom.c (gimple_p): Remove typedef.
8814 (eliminate_redundant_computations): Adjust.
8815 (record_equivalences_from_stmt): Likewise.
8816 (avail_expr_hash): Likewise.
8817 (avail_expr_eq): Likewise.
8818 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
8819 (stmt_makes_single_load): Likewise.
8820 (stmt_makes_single_store): Likewise.
8821 * tree-ssa-alias.c: Rewrite completely.
8822 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
8823 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
8824 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
8825 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
8826 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
8827 Remove public functions.
8828 (pass_reset_cc_flags): Remove.
8829 (pass_build_alias): Move ...
8830 * tree-ssa-structalias.c (pass_build_alias): ... here.
8831 * tree-ssa-alias.c (may_be_aliased): Move ...
8832 * tree-flow-inline.h (may_be_aliased): ... here.
8833 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
8834 count_uses_and_derefs): Move ...
8835 * gimple.c: ... here.
8836 * gimple.h (count_uses_and_derefs): Declare.
8837 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
8838 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
8839 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
8840 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
8841 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
8842 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
8843 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
8844 New functions.
8845 * tree-dfa.c (refs_may_alias_p): Move ...
8846 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
8847 * tree-ssa-alias.h: New file.
8848 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
8849 (statement_sink_location): Likewise.
8850 * opts.c (decode_options): Do not adjust max-aliased-vops or
8851 avg-aliased-vops values.
8852 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
8853 (TV_CALL_CLOBBER): Likewise.
8854 (TV_FLOW_SENSITIVE): Likewise.
8855 (TV_FLOW_INSENSITIVE): Likewise.
8856 (TV_MEMORY_PARTITIONING): Likewise.
8857 (TV_ALIAS_STMT_WALK): New timevar.
8858 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
8859 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
8860 (get_address_description): Remove memory-tag related code.
8861 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
8862 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
8863 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
8864 and immediate uses in statements. Document.
8865 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
8866 (dump_symbols): Remove.
8867 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
8868 * alias.c (get_deref_alias_set): New function split out from ...
8869 (get_alias_set): ... here.
8870 * alias.h (get_deref_alias_set): Declare.
8871 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
8872 type parameter. Remove restrict pointer handling. Create a
8873 ref-all pointer in case type-based alias sets do not conflict.
8874 (vect_analyze_data_refs): Remove SMT related code.
8875 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
8876 (vectorizable_load): Likewise.
8877 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
8878 (DR_SYMBOL_TAG, DR_VOPS): Remove.
8879 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
8880 Ignore vops and SMTs.
8881 (dr_analyze_alias): Likewise..
8882 (free_data_ref): Likewise.
8883 (create_data_ref): Likewise.
8884 (analyze_all_data_dependences): Likewise.
8885 (get_references_in_stmt): Adjust.
8886 * tree-flow-inline.h (gimple_aliases_computed_p,
8887 gimple_addressable_vars, gimple_call_clobbered_vars,
8888 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
8889 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
8890 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
8891 gimple_mem_ref_stats): Remove.
8892 (gimple_vop): New function.
8893 (op_iter_next_use): Remove vuses and mayuses cases.
8894 (op_iter_next_def): Remove vdefs case.
8895 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
8896 (clear_and_done_ssa_iter): Do not set removed fields.
8897 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
8898 Assert we are not iterating over vuses or vdefs if not also
8899 iterating over uses or defs.
8900 (op_iter_init_use): Likewise.
8901 (op_iter_init_def): Likewise.
8902 (op_iter_next_vdef): Remove.
8903 (op_iter_next_mustdef): Likewise.
8904 (op_iter_init_vdef): Likewise.
8905 (compare_ssa_operands_equal): Likewise.
8906 (link_use_stmts_after): Handle vuse operand.
8907 (is_call_used): Use is_call_clobbered.
8908 (is_call_clobbered): Global variables are always call clobbered,
8909 query the call-clobbers bitmap.
8910 (mark_call_clobbered): Ignore global variables.
8911 (clear_call_clobbered): Likewise.
8912 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
8913 virtual operands sanity check.
8914 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
8915 Remove.
8916 (TARGET_MEM_REF): Remove TMR_TAG operand.
8917 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
8918 Remove call-clobber related code.
8919 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
8920 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
8921 partitions or escape reason.
8922 (get_single_def_stmt, get_single_def_stmt_from_phi,
8923 get_single_def_stmt_with_phi): Remove.
8924 (dump_referenced_vars): Tidy.
8925 (get_ref_base_and_extent): Allow bare decls.
8926 (collect_dfa_stats): Adjust.
8927 * graphite.c (rename_variables_in_stmt): Adjust.
8928 (graphite_copy_stmts_from_block): Likewise.
8929 (translate_clast): Likewise.
8930 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
8931 (EXPR_DIES): New.
8932 (translate_vuse_through_block): Use the oracle.
8933 (phi_translate_1): Adjust.
8934 (value_dies_in_block_x): Use the oracle. Cache the outcome
8935 in EXPR_DIES.
8936 (valid_in_sets): Check if the VUSE for
8937 a REFERENCE is available.
8938 (eliminate): Do not remove stmts during elimination,
8939 instead queue and remove them afterwards.
8940 (do_pre): Do not rebuild alias info.
8941 (pass_pre): Run TODO_rebuild_alias before PRE.
8942 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
8943 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
8944 (mark_all_v_defs_stmt): Remove.
8945 (mark_all_v_defs_seq): Adjust.
8946 (sra_replace): Likewise.
8947 (scalarize_use): Likewise.
8948 (scalarize_copy): Likewise.
8949 (scalarize_init): Likewise.
8950 (scalarize_ldst): Likewise.
8951 (todoflags): Remove.
8952 (tree_sra): Do not rebuild alias info.
8953 (tree_sra_early): Adjust.
8954 (pass_sra): Run TODO_update_address_taken before SRA.
8955 * tree-predcom.c (set_alias_info): Remove.
8956 (prepare_initializers_chain): Do not call it.
8957 (mark_virtual_ops_for_renaming): Adjust.
8958 (mark_virtual_ops_for_renaming_list): Remove.
8959 (initialize_root_vars): Adjust.
8960 (initialize_root_vars_lm): Likewise.
8961 (prepare_initializers_chain): Likewise.
8962 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
8963 (may_propagate_copy_into_stmt): Likewise.
8964 (merge_alias_info): Do nothing for now.
8965 (propagate_tree_value_into_stmt): Adjust.
8966 (stmt_may_generate_copy): Likewise.
8967 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
8968 not mark symbols for renaming.
8969 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
8970 with the same statement, make sure to update the new pointed-to one.
8971 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
8972 call statements, do not mark symbols for renaming.
8973 (mark_operand_necessary): Dump something.
8974 (ref_may_be_aliased): New function.
8975 (mark_aliased_reaching_defs_necessary_1): New helper function.
8976 (mark_aliased_reaching_defs_necessary): Likewise.
8977 (mark_all_reaching_defs_necessary_1): Likewise.
8978 (mark_all_reaching_defs_necessary): Likewise.
8979 (propagate_necessity): Do not process virtual PHIs. For
8980 non-aliased loads mark all reaching definitions as necessary.
8981 For aliased loads and stores mark the immediate dominating
8982 aliased clobbers as necessary.
8983 (visited): New global static.
8984 (perform_tree_ssa_dce): Free visited bitmap after propagating
8985 necessity.
8986 (remove_dead_phis): Perform simple dead virtual PHI removal.
8987 (remove_dead_stmt): Properly unlink virtual operands when
8988 removing stores.
8989 (eliminate_unnecessary_stmts): Schedule PHI removal after
8990 stmt removal.
8991 * tree-ssa-ter.c (is_replaceable_p): Adjust.
8992 (process_replaceable): Likewise.
8993 (find_replaceable_in_bb): Likewise.
8994 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
8995 based on the single gimple vop.
8996 (verify_flow_insensitive_alias_info): Remove.
8997 (verify_flow_sensitive_alias_info): Likewise.
8998 (verify_call_clobbering): Likewise.
8999 (verify_memory_partitions): Likewise.
9000 (verify_alias_info): Likewise.
9001 (verify_ssa): Adjust..
9002 (execute_update_addresses_taken): Export. Update SSA
9003 manually. Optimize only when optimizing. Use a local bitmap.
9004 (pass_update_address_taken): Remove TODO_update_ssa, add
9005 TODO_dump_func.
9006 (pass_update_address_taken): Just use TODO_update_address_taken.
9007 (init_tree_ssa): Do not initialize addressable_vars.
9008 (verify_ssa): Verify new VUSE / VDEF properties.
9009 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
9010 Do not call verify_alias_info.
9011 (delete_tree_ssa): Clear the VUSE, VDEF operands.
9012 Do not free the loaded and stored syms bitmaps. Reset the escaped
9013 and callused solutions. Do not free addressable_vars.
9014 Remove memory-tag related code.
9015 (warn_uninitialized_var): Aliases are always available.
9016 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
9017 * lambda-code.c (can_put_in_inner_loop): Adjust.
9018 (can_put_after_inner_loop): Likewise.
9019 (perfect_nestify): Likewise.
9020 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
9021 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
9022 (vectorizable_conversion): Do not mark symbols for renaming.
9023 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
9024 (expand_call_inline): Unlink the calls virtual operands before
9025 replacing it.
9026 (tree_function_versioning): Do not call update_ssa if we are not
9027 updating clones. Simplify.
9028 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
9029 (propagate_with_phi): Likewise..
9030 * tree-outof-ssa.c (create_temp): Remove memory tag and call
9031 clobber code. Assert we are not aliased or global.
9032 * tree-flow.h: Include tree-ssa-alias.h
9033 (enum escape_type): Remove.
9034 (struct mem_sym_stats_d): Likewise.
9035 (struct mem_ref_stats_d): Likewise.
9036 (struct gimple_df): Add vop member. Remove global_var,
9037 call_clobbered_vars, call_used_vars, addressable_vars,
9038 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
9039 escaped and callused members.
9040 (struct ptr_info_def): Remove all members, add points-to solution
9041 member pt.
9042 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
9043 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
9044 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
9045 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
9046 (tree-ssa-alias.o): Likewise.
9047 (toplev.o): Add tree-ssa-alias.h
9048 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
9049 * gimple.c (gimple_set_bb): Fix off-by-one error.
9050 (is_gimple_reg): Do not handle memory tags.
9051 (gimple_copy): Also copy virtual operands.
9052 Delay updating the statement. Do not reset loaded and stored syms.
9053 (gimple_set_stored_syms): Remove.
9054 (gimple_set_loaded_syms): Likewise.
9055 (gimple_call_copy_skip_args): Copy the virtual operands
9056 and mark the new statement modified.
9057 * tree-ssa-structalias.c (may_alias_p): Remove.
9058 (set_uids_in_ptset): Take the alias set to prune with as
9059 parameter. Fold in the alias test of may_alias_p.
9060 (compute_points_to_sets): Compute whether a ptr is dereferenced
9061 in a local sbitmap.
9062 (process_constraint): Deal with &ANYTHING on the lhs, reject all
9063 other ADDRESSOF constraints on the lhs.
9064 (get_constraint_for_component_ref): Assert that we don't get
9065 ADDRESSOF constraints from the base of the reference.
9066 Properly generate UNKNOWN_OFFSET for DEREF if needed.
9067 (struct variable_info): Remove collapsed_to member.
9068 (get_varinfo_fc): Remove.
9069 (new_var_info): Do not set collapsed_to.
9070 (dump_constraint): Do not follow cycles.
9071 (dump_constraint_graph): Likewise.
9072 (build_pred_graph): Likewise.
9073 (build_succ_graph): Likewise.
9074 (rewrite_constraints): Likewise.
9075 (do_simple_structure_copy): Remove.
9076 (do_rhs_deref_structure_copy): Remove.
9077 (do_lhs_deref_structure_copy): Remove.
9078 (collapse_rest_of_var): Remove.
9079 (do_structure_copy): Re-implement.
9080 (pta_stats): New global variable.
9081 (dump_pta_stats): New function.
9082 (struct constraint_expr): Make offset signed.
9083 (UNKNOWN_OFFSET): Define special value.
9084 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
9085 (solution_set_expand): New helper function split out from ...
9086 (do_sd_constraint): ... here.
9087 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
9088 (do_ds_constraint): Likewise.
9089 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
9090 and CALLUSED = *CALLUSED.
9091 (set_union_with_increment): Make inc argument signed.
9092 (type_safe): Remove.
9093 (get_constraint_for_ptr_offset): Handle unknown and negative
9094 constant offsets.
9095 (first_vi_for_offset): Handle offsets before start. Bail
9096 out early for offsets beyond the variable extent.
9097 (first_or_preceding_vi_for_offset): New function.
9098 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
9099 Together with ESCAPED = *ESCAPED this properly computes reachability.
9100 (find_what_var_points_to): New function.
9101 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
9102 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
9103 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
9104 pt_solutions_intersect): New functions.
9105 (compute_call_used_vars): Remove.
9106 (compute_may_aliases): New main entry into PTA computation.
9107 * gimple.h (gimple_p): New typedef.
9108 (struct gimple_statement_base): Remove references_memory_p.
9109 (struct gimple_statement_with_memory_ops_base): Remove
9110 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
9111 members.
9112 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
9113 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
9114 gimple_set_references_memory): Remove.
9115 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
9116 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
9117 New functions.
9118 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
9119 (verify_expr): Allow RESULT_DECL.
9120 (gimple_duplicate_bb): Do not copy virtual operands.
9121 (gimple_duplicate_sese_region): Adjust.
9122 (gimple_duplicate_sese_tail): Likewise.
9123 (mark_virtual_ops_in_region): Remove.
9124 (move_sese_region_to_fn): Do not call it.
9125 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
9126 and pass_simple_dse.
9127 (execute_function_todo): Handle TODO_update_address_taken,
9128 call execute_update_addresses_taken for TODO_rebuild_alias.
9129 (execute_todo): Adjust.
9130 (execute_one_pass): Init dump files early.
9131 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
9132 call-clobbered.
9133 (create_general_new_stmt): Clear vops.
9134 * tree-ssa-reassoc.c (get_rank): Adjust.
9135 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
9136 symbols for renaming.
9137 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
9138 (PARAM_AVG_ALIASED_VOPS): Likewise.
9139 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
9140 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
9141 * tree-ssa-operands.c: Simplify for new virtual operand representation.
9142 (operand_build_cmp, copy_virtual_operands,
9143 create_ssa_artificial_load_stmt, add_to_addressable_set,
9144 gimple_add_to_addresses_taken): Remove public functions.
9145 (unlink_stmt_vdef): New function.
9146
9147 2009-04-03 Alan Modra <amodra@bigpond.net.au>
9148
9149 * config.gcc (powerpc-*-linux*): Merge variants.
9150
9151 2009-04-02 Chao-ying Fu <fu@mips.com>
9152 James Grosbach <james.grosbach@microchip.com>
9153
9154 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
9155 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
9156 cop0_sp_offset.
9157 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
9158 keep_interrupts_masked_p, use_debug_exception_return_p.
9159 (mips_attribute_table): Add interrupt, use_shadow_register_set,
9160 keep_interrupts_masked, use_debug_exception_return.
9161 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
9162 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
9163 New functions.
9164 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
9165 (mips_print_operand): Process COP0 registers to print $0 .. $31
9166 correctly for GAS to process.
9167 (mips_interrupt_extra_call_saved_reg_p): New function.
9168 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
9169 extra registers.
9170 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
9171 (mips_compute_frame_info): Add supports for interrupt context that
9172 includes doubleword accumulators and COP0 registers.
9173 (mips_for_each_saved_acc): New function.
9174 (mips_for_each_saved_gpr_and_fpr): Change the function name from
9175 mips_for_each_saved_reg.
9176 (mips_save_reg): Save accumulators.
9177 (mips_kernel_reg_p): A new for_each_rtx callback.
9178 (mips_expand_prologue): Support interrupt handlers.
9179 (mips_restore_reg): Restore accumulators.
9180 (mips_expand_epilogue): Support interrupt handlers.
9181 (mips_can_use_return_insn): Return false for interrupt handlers.
9182 (mips_epilogue_uses): New function.
9183 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
9184 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
9185 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
9186 cop0_move): New instructions.
9187 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
9188 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
9189 defines.
9190 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
9191 New defines.
9192 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
9193 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
9194 interrupt handlers, we use K0 as the temporary register.
9195 (EPILOGUE_USES): Change to a function call.
9196 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
9197 handlers, we use K0 as the temporary register.
9198
9199 * doc/extend.texi (Function Attributes): Document interrupt,
9200 use_shadow_register_set, keep_interrupts_masked,
9201 use_debug_exception_return for MIPS attributes.
9202
9203 2009-04-03 Alan Modra <amodra@bigpond.net.au>
9204
9205 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
9206 Remove a number of t-files from tmake_file.
9207 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
9208 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
9209 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
9210 target_prototype, not TARGET_PROTOTYPE.
9211 (LINK_OS_GNU_SPEC): Define.
9212 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
9213 and darwin-ldoubdle.c.
9214
9215 2009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
9216
9217 PR driver/39293
9218 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
9219 (cpp_options): Ditto.
9220 (default_compilers): Ditto.
9221 (display_help): Ditto.
9222 (process_command): Ditto.
9223 (do_spec_1): Ditto.
9224 (set_input): Use lbasename instead of duplicate code.
9225 (save_temps_prefix): New static for -save-temps=obj.
9226 (save_temps_length): Ditto.
9227
9228 * doc/invoke.texi (-save-temps=obj): Document new variant to
9229 -save-temps switch.
9230
9231 2009-04-02 Jeff Law <law@redhat.com>
9232
9233 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
9234 variable.
9235
9236 2009-04-02 H.J. Lu <hongjiu.lu@intel.com>
9237
9238 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
9239 * configure: Regenerated.
9240
9241 2009-04-02 Rafael Avila de Espindola <espindola@google.com>
9242
9243 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
9244 share the argument list.
9245
9246 2009-04-02 Rafael Avila de Espindola <espindola@google.com>
9247
9248 Merge
9249
9250 2009-02-12 Diego Novillo <dnovillo@google.com>
9251
9252 * varpool.c (debug_varpool): New.
9253 * cgraph.h (debug_varpool): Declare.
9254
9255 2009-04-02 Jan Hubicka <jh@suse.cz>
9256
9257 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
9258 pass.
9259
9260 2009-04-02 H.J. Lu <hongjiu.lu@intel.com>
9261
9262 * config/i386/i386.c (ix86_abi): Move initialization to ...
9263 (override_options): Here.
9264
9265 2009-04-02 Christian Bruel <christian.bruel@st.com>
9266
9267 * config/sh/sh.c (sh_dwarf_register_span): New function.
9268 (TARGET_DWARF_REGISTER_SPAN): Define.
9269 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
9270
9271 2009-04-02 Ira Rosen <irar@il.ibm.com>
9272
9273 PR tree-optimization/39595
9274 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
9275 interleaved loads group is not greater than the SLP group size.
9276
9277 2009-04-02 Rafael Avila de Espindola <espindola@google.com>
9278
9279 * builtins.c (is_builtin_name): New.
9280 (called_as_built_in): Use is_builtin_name.
9281 * tree.h (is_builtin_name): New.
9282 * varasm.c (incorporeal_function_p): Use is_builtin_name
9283
9284 2009-04-02 Andrew Stubbs <ams@codesourcery.com>
9285
9286 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
9287
9288 2009-04-02 Dodji Seketeli <dodji@redhat.com>
9289
9290 PR c++/26693
9291 * c-decl.c (clone_underlying_type): Move this ...
9292 * c-common.c (set_underlying_type): ... here.
9293 Also, make sure the function properly sets TYPE_STUB_DECL() on
9294 the newly created typedef variant type.
9295 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
9296 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
9297 points.
9298
9299 2009-04-02 Richard Guenther <rguenther@suse.de>
9300
9301 PR tree-optimization/37221
9302 * tree-flow.h (degenerate_phi_result): Declare.
9303 * tree-ssa-dom.c (degenerate_phi_result): Export.
9304 * tree-scalar-evolution.c (analyze_initial_condition): If
9305 the initial condition is defined by a degenerate PHI node
9306 use the degenerate value.
9307
9308 2009-04-01 Eric Botcazou <ebotcazou@adacore.com>
9309
9310 PR rtl-optimization/39588
9311 * combine.c (merge_outer_ops): Do not set the constant when this
9312 is not necessary.
9313 (simplify_shift_const_1): Do not modify it either in this case.
9314
9315 2009-04-01 Steven Bosscher <steven@gcc.gnu.org>
9316
9317 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
9318 tuning is deprecated if -mtune value is set to an Itanium1 variant.
9319
9320 2009-04-01 Janis Johnson <janis187@us.ibm.com>
9321
9322 PR c/29027
9323 * c-lex.c (interpret_float): Default (no suffix) is double.
9324
9325 2009-04-1 Xinliang David Li <davidxl@google.com>
9326
9327 * config/i386/i386.c (legitimate_constant_p): Recognize
9328 all one vector constant.
9329
9330 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
9331
9332 * config/vax/vax.c: Add #includes to silence warnings.
9333 Change #include order to silence two warnings.
9334
9335 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
9336
9337 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
9338 (ASM_SPEC): Pass -k to the assembler for PIC code.
9339
9340 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
9341
9342 * config.gcc: Add vax-*-linux* to the switch.
9343 * config/vax/linux.h: New file. (TARGET_VERSION,
9344 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
9345
9346 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
9347
9348 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
9349 Use predicate macros instead of GET_CODE() == foo.
9350 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
9351 ashlsi3, rotrsi3, <unnamed>): Likewise.
9352
9353 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
9354
9355 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
9356 jbbccihi, jbbccisi): Remova trailing whitespace.
9357 * config/vax/constraints.md: Likewise.
9358 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
9359 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
9360 * config/vax/predicates.md: Likewise.
9361 * config/vax/vax.c (print_operand_address, vax_output_int_move,
9362 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
9363 * config/vax/vax.h: Likewise.
9364 * config/vax/vax.md (nonlocal_goto): Likewise.
9365
9366 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
9367
9368 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
9369 (indirectable_address_p, adjacent_operands_p): Add spaces around
9370 braces.
9371 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
9372
9373 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
9374
9375 * config/vax/vax.c (legitimate_constant_address_p,
9376 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
9377 index_term_p, reg_plus_index_p, legitimate_address_p,
9378 vax_mode_dependent_address_p): Update comments to match functions
9379 modified by the recent int->bool conversion.
9380
9381 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
9382
9383 * config/vax/builtins.md: Update copyright message.
9384 * config/vax/constraints.md: Likewise.
9385 * config/vax/netbsd-elf.h: Likewise.
9386 * config/vax/predicates.md: Likewise.
9387 * config/vax/vax-protos.h: Likewise.
9388 * config/vax/vax.c: Likewise.
9389 * config/vax/vax.h: Likewise.
9390 * config/vax/vax.md: Likewise.
9391 * config/vax/vax.opt: Likewise.
9392
9393 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
9394
9395 * config/vax/builtins.md (ffssi2, ffssi2_internal,
9396 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
9397 * config/vax/constraints.md (B, R): Likewise.
9398 * config/vax/predicates.md (external_memory_operand,
9399 nonimmediate_addsub_di_operand): Likewise.
9400 * config/vax/vax.c (vax_output_int_add): Likewise.
9401 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
9402 untyped_call): Likewise.
9403
9404 2009-04-01 Matt Thomas <matt@3am-software.com>
9405
9406 * config/vax/predicates.md: New file.
9407 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
9408 external_const_operand, nonsymbolic_operand, external_memory_operand,
9409 indirect_memory_operand, indexed_memory_operand,
9410 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
9411 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
9412 predicate.
9413 * config/vax/constraints.md: New file.
9414 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
9415 New constraint.
9416 * config/vax/builtins.md: New file.
9417 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
9418 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
9419 jbbccisi): Define.
9420 * config/vax/vax.opt (mqmath): Add option.
9421 * config/vax/vax.md (isfx): Extend with DI.
9422 (VAXintQH, VAXintQHSD): Define.
9423 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
9424 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
9425 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
9426 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
9427 (movdi): Update constraints and use vax_output_int_move().
9428 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
9429 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
9430 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
9431 nonlocal_goto): New.
9432 (mov<mode>): Extend accepted operand types.
9433 (subdi3_old): Rename from subdi3, change update constraints and use
9434 a new implementation.
9435 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
9436 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
9437 MOVE_RATIO, CLEAR_RATIO): Define.
9438 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
9439 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
9440 (PRINT_OPERAND): Redefine using a function instead of inlined code.
9441 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
9442 (split_quadword_operands): Make static and really allow variable
9443 splitting.
9444 (print_operand_address): Update for PIC generation.
9445 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
9446 indexable_address_p, fixup_mathdi_operand,
9447 vax_expand_addsub_di_operands, adjacent_operands_p): New.
9448 (vax_float_literal, legitimate_constant_p,
9449 indirectable_constant_address_p, index_term_p,
9450 reg_plus_index_p): Return bool instead of int.
9451 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
9452 where needed.
9453 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
9454 generation.
9455 (vax_output_conditional_branch): Indent.
9456 (legitimate_constant_address_p, indirectable_constant_address_p,
9457 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
9458 vax_mode_dependent_address_p): Return bool instead of int, update for
9459 PIC generation.
9460 * config/vax/vax-protos.h (legitimate_constant_address_p,
9461 legitimate_constant_p, legitimate_address_p,
9462 vax_mode_dependent_address_p): Change declaration to bool.
9463 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
9464 vax_expand_addsub_di_operands, vax_output_int_subtract,
9465 vax_output_movmemsi): Declare.
9466 (split_quadword_operands, vax_float_literal): Delete declaration.
9467 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
9468 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
9469 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
9470 ASM_OUTPUT_DWARF_PCREL): Define.
9471 (ASM_SPEC): Change definition to allow PIC generation.
9472
9473 2009-04-01 Steve Ellcey <sje@cup.hp.com>
9474
9475 * doc/sourcebuild.texi: Update front-end requirements.
9476
9477 2009-04-01 Jakub Jelinek <jakub@redhat.com>
9478
9479 PR target/39226
9480 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
9481 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
9482 (booldi3_internal3): Use boolean_or_operator instead of
9483 boolean_operator.
9484
9485 2009-04-01 Joseph Myers <joseph@codesourcery.com>
9486
9487 PR c/39605
9488 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
9489 declarator whose size is not an integer constant expression but
9490 folds to an integer constant, then treat it as a constant
9491 subsequently.
9492
9493 2009-04-01 Richard Guenther <rguenther@suse.de>
9494
9495 * fold-const.c (fold_plusminus_mult_expr): Do not fold
9496 i * 4 + 2 to (i * 2 + 1) * 2.
9497
9498 2009-04-01 Jakub Jelinek <jakub@redhat.com>
9499
9500 PR c/37772
9501 * c-parser.c (c_parser_asm_statement): Skip until close paren and
9502 return if c_parser_asm_string_literal returned NULL.
9503
9504 2009-04-01 Nick Clifton <nickc@redhat.com>
9505
9506 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
9507 already defined.
9508 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
9509 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
9510 other typedefs to avoid conflicts with libgcc2.c. Define labels
9511 to gain 16-bit bit-manipulation functions from libgcc2.c and then
9512 include it.
9513 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
9514 to gain 16-bit trapping arithmetic functions from libgcc2.c and
9515 then include it.
9516
9517 2009-04-01 Rafael Avila de Espindola <espindola@google.com>
9518
9519 * varasm.c (default_function_rodata_section): Declare DOT as
9520 const char*.
9521
9522 2009-04-01 Kai Tietz <kai.tietz@onevision.com>
9523 Andrey Galkin <agalkin@hypercom.com>
9524
9525 PR/39492
9526 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
9527 Make object_name unique for each process.
9528
9529 2009-04-01 Jakub Jelinek <jakub@redhat.com>
9530
9531 PR other/39591
9532 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
9533 addressable variables in the parallel that could go out of scope while
9534 running queued tasks.
9535
9536 2009-04-01 Anatoly Sokolov <aesok@post.ru>
9537
9538 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
9539 (CASE_VALUES_THRESHOLD): Redefine.
9540 * config/avr/avr.c (avr_override_options): Remove initialization of
9541 avr_case_values_threshold variable.
9542 (avr_case_values_threshold): Remove variable. Add new function.
9543 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
9544 * config/avr/avr.opt (mno-tablejump): Remove option.
9545 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
9546
9547 2009-04-01 DJ Delorie <dj@redhat.com>
9548
9549 * varasm.c (default_function_rodata_section): Don't assume
9550 anything about where the first '.' in the section name is.
9551
9552 2009-04-01 Alan Modra <amodra@bigpond.net.au>
9553
9554 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
9555 rs6000_emit_stack_tie.
9556
9557 2009-03-31 Ian Lance Taylor <iant@google.com>
9558
9559 * tree-eh.c (tree_remove_unreachable_handlers): Compare
9560 gimple_code with GIMPLE_RESX, not RESX.
9561
9562 2009-03-31 Joseph Myers <joseph@codesourcery.com>
9563
9564 * c-common.c (c_get_ident): New.
9565 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
9566
9567 2009-04-01 Ben Elliston <bje@au.ibm.com>
9568
9569 * config/rs6000/sysv4.opt (msdata): Improve option description.
9570
9571 2009-03-31 Steve Ellcey <sje@cup.hp.com>
9572
9573 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
9574 (divdf3_internal_lat): Remove.
9575 (divxf3_internal_lat): Remove.
9576 (divxf3_internal_thr): Remove.
9577 (divxf): Use divxf3_internal.
9578 * config/ia64/div.md (divsf3_internal_lat): New.
9579 (divdf3_internal_lat): New.
9580 (divxf3_internal): New.
9581
9582 2009-03-31 Joseph Myers <joseph@codesourcery.com>
9583
9584 PR c/448
9585 * Makefile.in (USE_GCC_STDINT): Define.
9586 (stmp-int-hdrs): Install stdint.h if applicable.
9587 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
9588 if known.
9589 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
9590 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
9591 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
9592 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
9593 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
9594 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
9595 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
9596 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
9597 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
9598 (c_common_nodes_and_builtins): Initialize
9599 underlying_wchar_type_node. Do not initialize
9600 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
9601 nodes for new types.
9602 (c_stddef_cpp_builtins): Define macros for new types.
9603 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
9604 Remove.
9605 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
9606 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
9607 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
9608 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
9609 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
9610 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
9611 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
9612 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
9613 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
9614 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
9615 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
9616 int16_type_node, int32_type_node, int64_type_node,
9617 uint8_type_node, uint16_type_node, c_uint32_type_node,
9618 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
9619 int_least32_type_node, int_least64_type_node,
9620 uint_least8_type_node, uint_least16_type_node,
9621 uint_least32_type_node, uint_least64_type_node,
9622 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
9623 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
9624 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
9625 uintptr_type_node): Define.
9626 * c-cppbuiltin.c (builtin_define_constants,
9627 builtin_define_type_minmax): New.
9628 (builtin_define_stdint_macros): Define more macros.
9629 (c_cpp_builtins): Define more limit macros.
9630 (type_suffix): New.
9631 (builtin_define_type_max): Define in terms of
9632 builtin_define_type_minmax. Remove is_long parameter. All
9633 callers changed.
9634 * config.gcc (use_gcc_stdint): Define.
9635 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
9636 Add newlib-stdint.h for generic targets.
9637 * config/glibc-stdint.h, config/newlib-stdint.h,
9638 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
9639 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
9640 * config/score/score.h (UINTPTR_TYPE): Define.
9641 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
9642 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
9643 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
9644 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
9645 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
9646 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
9647 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
9648 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
9649 * config/spu/spu.h (STDINT_LONG32): Define.
9650 * configure.ac (use_gcc_stdint): Substitute.
9651 * configure: Regenerate.
9652 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
9653 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
9654 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
9655 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
9656 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
9657 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
9658 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
9659 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
9660 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
9661 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
9662 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
9663 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
9664 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
9665 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
9666 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
9667 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
9668 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
9669 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
9670 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
9671 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
9672 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
9673 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
9674 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
9675 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
9676 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
9677 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
9678 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
9679 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
9680 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
9681
9682 2009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
9683
9684 * loop-iv.c (suitable_set_for_replacement): Renamed from
9685 simplify_using_assignment; changed to return bool and to accept new
9686 args DEST and SRC. Return true iff we find a source/destination pair
9687 that can be used to make a replacement, and fill SRC and DEST if so.
9688 Remove arg ALTERED. Don't deal with altered regs here. All callers
9689 changed.
9690 (simplify_using_initial_values): Deal with altered regs here and track
9691 more precisely the effect they have on the validity of our expression.
9692
9693 * loop-iv.c (simplify_using_condition): A condition of the form
9694 (EQ REG CONST) can be used to simply make a substitution.
9695 (simplify_using_initial_values): Keep track of conditions we have seen
9696 and keep using them to simplify new expressions, while applying the
9697 same substitutions to them as to the expression.
9698
9699 * simplify-rtx.c (simplify_relational_operation_1): Simplify
9700 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
9701 GEU/LTU reversed.
9702
9703 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
9704 changed. Use this when trying to improve the upper bound.
9705 Generate the comparison by using simplify_gen_relational.
9706
9707 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
9708
9709 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
9710 functions.
9711 (simplify_using_assignment, simplify_using_initial_values): Call
9712 replace_in_expr to make replacements. Call replace_single_def_regs
9713 once on the initial version of the expression.
9714
9715 2009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9716
9717 PR target/27237
9718 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
9719
9720 2009-03-31 Richard Guenther <rguenther@suse.de>
9721
9722 PR middle-end/31029
9723 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
9724 equality comparisons. Fold C - X CMP X if C % 2 == 1.
9725
9726 2009-03-31 Richard Guenther <rguenther@suse.de>
9727
9728 * tree.h (div_if_zero_remainder): Declare.
9729 * fold-const.c (div_if_zero_remainder): Export.
9730 * tree-ssa-forwprop.c
9731 (forward_propagate_addr_into_variable_array_index): Handle
9732 constant array index addition outside of the variable index.
9733
9734 2009-03-31 Joseph Myers <joseph@codesourcery.com>
9735
9736 PR target/39592
9737 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
9738 define_splits, floatunssi<mode>2): Require x87 conversions from
9739 DImode to be permitted.
9740
9741 2009-03-31 Joseph Myers <joseph@codesourcery.com>
9742
9743 PR preprocessor/15638
9744 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
9745
9746 2009-03-31 Richard Guenther <rguenther@suse.de>
9747
9748 PR middle-end/23401
9749 PR middle-end/27810
9750 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
9751 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
9752 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
9753 a separate statement.
9754 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
9755 (lookup_tmp_var): Likewise.
9756 (is_gimple_formal_tmp_or_call_rhs): Remove.
9757 (is_gimple_reg_or_call_rhs): Rename to ...
9758 (is_gimple_reg_rhs_or_call): ... this.
9759 (is_gimple_mem_or_call_rhs): Rename to ...
9760 (is_gimple_mem_rhs_or_call): ... this.
9761 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
9762 DECL_GIMPLE_REG_P only if is_formal is true.
9763 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
9764 for non-proper post-modify expression gimplification.
9765 (gimplify_self_mod_expr): For post-modify expressions gimplify
9766 the lvalue to a minimal lvalue.
9767 (rhs_predicate_for): Remove formal temp case.
9768 (gimplify_modify_expr_rhs): Likewise.
9769 (gimplify_addr_expr): Use is_gimple_reg.
9770 (gimplify_expr): Remove formal temp cases.
9771 (gimple_regimplify_operands): Likewise.
9772 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
9773 and FILTER_EXPR like constants.
9774 * gimple.c (walk_gimple_op): Fix val_only initialization, use
9775 is_gimple_reg.
9776 (is_gimple_formal_tmp_rhs): Remove.
9777 (is_gimple_reg_rhs): Remove special casing.
9778 (is_gimple_mem_rhs): Fix.
9779 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
9780 (is_gimple_formal_tmp_var): Remove.
9781 (is_gimple_formal_tmp_reg): Likewise.
9782 (is_gimple_min_lval): Allow invariant component ref parts.
9783 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
9784 is_gimple_formal_tmp_reg): Remove declarations.
9785 * tree-cfg.c (verify_expr): Verify that variables with address
9786 taken do not have DECL_GIMPLE_REG_P set.
9787 * tree-mudflap.c (mf_build_check_statement_for): Use
9788 force_gimple_operand instead of gimplify_expr.
9789
9790 2009-03-31 Ayal Zaks <zaks@il.ibm.com>
9791
9792 * modulo-sched.c (sms_schedule_by_order): Pass the actual
9793 schedulable rows to compute_split_row.
9794
9795 2009-03-31 Ben Elliston <bje@au.ibm.com>
9796
9797 PR target/31635
9798 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
9799 OPT_mvrsave.
9800
9801 2009-03-31 Alan Modra <amodra@bigpond.net.au>
9802
9803 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
9804 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
9805 * configure: Regenerate.
9806 * config.in: Regenerate.
9807 * config/rs6000/rs6000.opt (mtls-markers): Add.
9808 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
9809 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
9810 (tls_ld_aix, tls_ld_sysv): Likewise.
9811 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
9812 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
9813
9814 2009-03-31 Alan Modra <amodra@bigpond.net.au>
9815
9816 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
9817
9818 2009-03-30 Jan Hubicka <jh@suse.cz>
9819
9820 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
9821 out of RESX.
9822 (tree_remove_unreachable_handlers): Cleanup EH predecestor
9823 detection and label handling.
9824
9825 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
9826
9827 * ira-int.h (ira_allocno): Rename left_conflicts_num to
9828 left_conflicts_size.
9829 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
9830 ALLOCNO_LEFT_CONFLICTS_SIZE.
9831
9832 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
9833 remove_allocno_from_bucket_and_push,
9834 allocno_spill_priority_compare, push_allocnos_to_stack,
9835 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
9836 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
9837 (setup_allocno_left_conflicts_num): Ditto. Rename to
9838 setup_allocno_left_conflicts_size.
9839 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
9840 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
9841 setup_allocno_left_conflicts_size instead of
9842 setup_allocno_left_conflicts_num.
9843
9844 * ira-build.c (ira_create_allocno): Use
9845 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
9846 ALLOCNO_LEFT_CONFLICTS_NUM.
9847
9848 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
9849
9850 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
9851 instead of DF_LR_OUT.
9852
9853 * ira-lives.c (process_bb_node_lives): Ditto.
9854
9855 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
9856 instead of DF_LR_{OUT,IN}.
9857
9858 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
9859
9860 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
9861
9862 2009-03-30 Jan Hubicka <jh@suse.cz>
9863
9864 * except.c (label_to_region_map): Fix thinko.
9865
9866 2009-03-30 Steve Ellcey <sje@cup.hp.com>
9867
9868 PR middle-end/38237
9869 * tree.h (tree_find_value): New declaration.
9870 * tree.c (tree_find_value): New function.
9871 * varasm.c (assemble_external): Avoid duplicate entries on lists.
9872
9873 2009-03-30 Jakub Jelinek <jakub@redhat.com>
9874
9875 PR debug/39563
9876 * c-decl.c (struct c_binding): Add locus field.
9877 (bind): Add locus argument, set locus field from it.
9878 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
9879 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
9880 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
9881 implicitly_declare, undeclared_variable, lookup_label,
9882 declare_label, c_make_fname_decl, c_builtin_function,
9883 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
9884 bind callers.
9885
9886 2009-03-30 H.J. Lu <hongjiu.lu@intel.com>
9887
9888 PR target/38781
9889 * config/i386/i386.c (classify_argument): Check total size of
9890 structure.
9891
9892 2009-03-30 Martin Jambor <mjambor@suse.cz>
9893
9894 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
9895 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
9896 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
9897 respectively.
9898
9899 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
9900 seen_variable_array_ref while also traversing a union.
9901
9902 * tree-inline.c (optimize_inline_calls): Do not call
9903 cgraph_node_remove_callees.
9904 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
9905 (pass_remove_cgraph_callee_edges): New variable.
9906 * passes.c (init_optimization_passes): Add
9907 pass_remove_cgraph_callee_edges after early inlining and before all
9908 late intraprocedural passes.
9909
9910 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
9911
9912 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
9913
9914 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
9915 Fix typos in names.
9916
9917 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
9918
9919 * combine.c (simplify_comparison): Use have_insn_for.
9920 * dojump.c (do_jump): Likewise.
9921
9922 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
9923
9924 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
9925 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
9926 sparc_compare_op0 like sparc_compare_emitted used to be handled.
9927 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
9928 instead of sparc_compare_emitted.
9929 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
9930 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
9931 instead of sparc_compare_emitted.
9932
9933 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
9934
9935 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
9936 enter/exit cfglayout mode.
9937 (pass_partition_block): Require it.
9938 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
9939 (combine_instructions): Track basic blocks instead of labels.
9940 (update_cfg_for_uncondjump): New.
9941 (try_combine): Use it. Update jumps after rescanning.
9942 (pass_combine): Require PROP_cfglayout.
9943 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
9944
9945 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
9946
9947 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
9948 Provide/destroy PROP_cfglayout respectively.
9949 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
9950 * tree-pass.h (PROP_cfglayout): New.
9951
9952 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
9953
9954 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
9955 fold_convert_const_fixed_from_fixed,
9956 fold_convert_const_fixed_from_int,
9957 fold_convert_const_fixed_from_real, fold_negate_const): Do not
9958 set TREE_CONSTANT_OVERFLOW.
9959 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
9960 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
9961
9962 2009-03-30 Ira Rosen <irar@il.ibm.com>
9963
9964 * tree-vect-loop-manip.c: New file.
9965 * tree-vectorizer.c: Update documentation and included files.
9966 (vect_loop_location): Make extern.
9967 (rename_use_op): Move to tree-vect-loop-manip.c
9968 (rename_variables_in_bb, rename_variables_in_loop,
9969 slpeel_update_phis_for_duplicate_loop,
9970 slpeel_update_phi_nodes_for_guard1,
9971 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
9972 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
9973 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
9974 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
9975 find_loop_location): Likewise.
9976 (new_stmt_vec_info): Move to tree-vect-stmts.c.
9977 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
9978 get_vectype_for_scalar_type, vect_is_simple_use,
9979 supportable_widening_operation, supportable_narrowing_operation):
9980 Likewise.
9981 (bb_in_loop_p): Move to tree-vect-loop.c.
9982 (new_loop_vec_info, destroy_loop_vec_info,
9983 reduction_code_for_scalar_code, report_vect_op,
9984 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
9985 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
9986 (vect_supportable_dr_alignment): Likewise.
9987 * tree-vectorizer.h (tree-data-ref.h): Include.
9988 (vect_loop_location): Declare.
9989 Reorganize function declarations according to the new file structure.
9990 * tree-vect-loop.c: New file.
9991 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
9992 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
9993 * tree-vect-data-refs.c: New file.
9994 * tree-vect-patterns.c (timevar.h): Don't include.
9995 * tree-vect-stmts.c: New file.
9996 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
9997 tree-vect-slp.c, tree-vect-loop.c.
9998 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
9999 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
10000 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
10001 (tree-vect-analyze.o): Remove.
10002 (tree-vect-transform.o): Likewise.
10003 (tree-vect-data-refs.o): Add rule.
10004 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
10005 tree-vect-slp.o): Likewise.
10006 (tree-vect-patterns.o): Remove redundant dependencies.
10007 (tree-vectorizer.o): Likewise.
10008 * tree-vect-slp.c: New file.
10009
10010 2009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10011
10012 * optc-gen.awk: Warn if an option flag has multiple different
10013 help strings.
10014
10015 2009-03-30 Sebastian Pop <sebastian.pop@amd.com>
10016
10017 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
10018 -floop-block): Document dependences on PPL, CLooG and Graphite.
10019
10020 2009-03-30 Joseph Myers <joseph@codesourcery.com>
10021
10022 PR rtl-optimization/323
10023 * c-common.c (c_fully_fold, convert_and_check,
10024 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
10025 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
10026 * c-common.def (EXCESS_PRECISION_EXPR): New.
10027 * c-cppbuiltin.c (builtin_define_float_constants): Define
10028 constants with enough digits for long double.
10029 * c-lex.c (interpret_float): Interpret constant with excess
10030 precision where appropriate.
10031 * c-opts.c (c_common_post_options): Set
10032 flag_excess_precision_cmdline. Give an error for
10033 -fexcess-precision=standard for C++ for processors where the
10034 option is significant.
10035 * c-parser.c (c_parser_conditional_expression): Handle excess
10036 precision in condition.
10037 * c-typeck.c (convert_arguments): Handle arguments with excess
10038 precision.
10039 (build_unary_op): Move excess precision outside operation.
10040 (build_conditional_expr): Likewise.
10041 (build_compound_expr): Likewise.
10042 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
10043 (build_modify_expr): Handle excess precision in RHS.
10044 (convert_for_assignment): Handle excess precision in converted
10045 value.
10046 (digest_init, output_init_element, process_init_element): Handle
10047 excess precision in initializer.
10048 (c_finish_return): Handle excess precision in return value.
10049 (build_binary_op): Handle excess precision in operands and add
10050 excess precision as needed for operation.
10051 * common.opt (-fexcess-precision=): New option.
10052 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
10053 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
10054 For standard excess precision, output explicit conversion to and
10055 truncation from XFmode.
10056 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
10057 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
10058 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
10059 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
10060 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
10061 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
10062 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
10063 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
10064 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
10065 define_splits, sqrt<mode>2): Disable where appropriate for
10066 standard excess precision.
10067 * convert.c (convert_to_real): Do not shorten arithmetic to type
10068 for which excess precision would be used.
10069 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
10070 * doc/invoke.texi (-fexcess-precision=): Document option.
10071 (-mfpmath=): Correct index entry.
10072 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
10073 flag_excess_precision): New.
10074 * langhooks.c (lhd_post_options): Set
10075 flag_excess_precision_cmdline.
10076 * opts.c (common_handle_option): Handle -fexcess-precision=.
10077 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
10078 init_excess_precision): New.
10079 (lang_dependent_init_target): Call init_excess_precision.
10080 * tree.c (excess_precision_type): New.
10081 * tree.h (excess_precision_type): Declare.
10082
10083 2009-03-30 Joseph Myers <joseph@codesourcery.com>
10084
10085 PR c/35235
10086 * c-typeck.c (build_component_ref): Do not copy qualifiers from
10087 non-lvalue to component.
10088
10089 2009-03-29 Joseph Myers <joseph@codesourcery.com>
10090
10091 PR preprocessor/34695
10092 * Makefile.in (c-opts.o): Depend on c-tree.h.
10093 * c-common.c: Move down include of diagnostic.h.
10094 (done_lexing, c_cpp_error): New.
10095 * c-common.h (done_lexing): Declare.
10096 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
10097 (parse_in).
10098 * c-opts.c: Include c-tree.h.
10099 (c_common_init_options): Set preprocessor error callback.
10100 (c_common_handle_option): Do not set preprocessor
10101 inhibit_warnings, warnings_are_errors, warn_system_headers,
10102 pedantic_errors or inhibit_warnings flags.
10103 (c_common_post_options): Do not check cpp_errors (parse_in).
10104 (c_common_finish): Do not output dependencies if there were
10105 errors. Do not check return value of cpp_finish.
10106 * c-ppoutput.c (pp_file_change): Set input_location.
10107 * c-tree.h (c_cpp_error): Declare.
10108 * diagnostic.c (diagnostic_set_info_translated): Also initialize
10109 override_column.
10110 (diagnostic_build_prefix): Check override_column.
10111 * diagnostic.h (diagnostic_info): Add override_column field.
10112 (diagnostic_override_column): Define.
10113
10114 2009-03-28 Paolo Bonzini <bonzini@gnu.org>
10115
10116 * c-common.c (c_expand_expr, c_staticp): Remove.
10117 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
10118 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
10119 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
10120 * c-gimplify.c (gimplify_compound_literal_expr,
10121 optimize_compound_literals_in_ctor): Remove.
10122 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
10123 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
10124 * c-semantics.c (emit_local_var): Remove.
10125
10126 * langhooks-def.h (lhd_expand_expr): Remove.
10127 * langhooks.c (lhd_expand_expr): Remove.
10128 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
10129
10130 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
10131 handling from c-semantics.c; don't call into langhook.
10132 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
10133 * gimplify.c (gimplify_compound_literal_expr,
10134 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
10135 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
10136 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
10137 as was done in c-gimplify.c.
10138 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
10139 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
10140 Move from c-common.h.
10141 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
10142
10143 * tree.c (staticp): Do not call langhook.
10144 * langhooks.c (lhd_staticp): Delete.
10145 * langhooks-def.h (lhd_staticp): Delete prototype.
10146 (LANG_HOOKS_STATICP): Delete.
10147 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
10148
10149 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
10150 instead of DECL_STMTs.
10151
10152 2009-03-29 Joseph Myers <joseph@codesourcery.com>
10153
10154 PR c/456
10155 PR c/5675
10156 PR c/19976
10157 PR c/29116
10158 PR c/31871
10159 PR c/35198
10160 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
10161 void_type_node.
10162 (fold_call_expr): Return a NOP_EXPR from folding rather than the
10163 contained expression.
10164 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
10165 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
10166 conditional expressions for C.
10167 (decl_constant_value_for_optimization): Move from
10168 decl_constant_value_for_broken_optimization in c-typeck.c. Check
10169 whether optimizing and that the expression is a VAR_DECL not of
10170 array type instead of doing such checks in the caller. Do not
10171 check pedantic. Call gcc_unreachable for C++.
10172 * c-common.def (C_MAYBE_CONST_EXPR): New.
10173 * c-common.h (c_fully_fold, c_save_expr,
10174 decl_constant_value_for_optimization): New prototypes.
10175 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
10176 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
10177 EXPR_INT_CONST_OPERANDS): Define.
10178 * c-convert.c (convert): Strip nops from expression.
10179 * c-decl.c (groktypename): Take extra parameters expr and
10180 expr_const_operands. Update call to grokdeclarator.
10181 (start_decl): Update call to grokdeclarator. Add statement for
10182 expressions used in type of decl.
10183 (grokparm): Update call to grokdeclarator.
10184 (push_parm_decl): Update call to grokdeclarator.
10185 (build_compound_literal): Add parameter non_const and build a
10186 C_MAYBE_COSNT_EXPR if applicable.
10187 (grokdeclarator): Take extra parameters expr and
10188 expr_const_operands. Track expressions used in declaration
10189 specifiers and declarators. Fold array sizes and track whether
10190 they are constant expressions and whether they are integer
10191 constant expressions.
10192 (parser_xref_tag): Set expr and expr_const_operands fields in
10193 return value.
10194 (grokfield): Update call to grokdeclarator.
10195 (start_function): Update call to grokdeclarator.
10196 (build_null_declspecs): Set expr and expr_const_operands fields in
10197 return value.
10198 (declspecs_add_type): Handle expressions in typeof specifiers.
10199 * c-parser.c (c_parser_declspecs): Set expr and
10200 expr_const_operands fields for declaration specifiers.
10201 (c_parser_enum_specifier): Likewise.
10202 (c_parser_struct_or_union_specifier): Likewise.
10203 (c_parser_typeof_specifier): Likewise. Update call to
10204 groktypename. Fold expression as needed. Return expressions with
10205 type instead of adding statements.
10206 (c_parser_attributes): Update calls to c_parser_expr_list.
10207 (c_parser_statement_after_labels): Fold expression before passing
10208 to objc_build_throw_stmt.
10209 (c_parser_condition): Fold expression.
10210 (c_parser_asm_operands): Fold expression.
10211 (c_parser_conditional_expression): Use c_save_expr. Update call
10212 to build_conditional_expr.
10213 (c_parser_alignof_expression): Update call to groktypename.
10214 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
10215 original_code. Fold expression argument of va_arg. Create
10216 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
10217 argument to va_arg. Update calls to groktypename. Fold array
10218 index for offsetof. Verify that first argument to
10219 __builtin_choose_expr has integer type.
10220 (c_parser_postfix_expression_after_paren_type): Update calls to
10221 groktypename and build_compound_literal. Handle expressions with
10222 side effects in type name.
10223 (c_parser_postfix_expression_after_primary): Update call to
10224 c_parser_expr_list. Set original_code for calls to
10225 __builtin_constant_p.
10226 (c_parser_expr_list): Take extra parameter fold_p. Fold
10227 expressions if requested.
10228 (c_parser_objc_type_name): Update call to groktypename.
10229 (c_parser_objc_synchronized_statement): Fold expression.
10230 (c_parser_objc_receiver): Fold expression.
10231 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
10232 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
10233 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
10234 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
10235 (struct c_typespec): Add elements expr and expr_const_operands.
10236 (struct c_declspecs): Add elements expr and expr_const_operands.
10237 (groktypename, build_conditional_expr, build_compound_literal):
10238 Update prototypes.
10239 (in_late_binary_op): Declare.
10240 * c-typeck.c (note_integer_operands): New function.
10241 (in_late_binary_op): New variable.
10242 (decl_constant_value_for_broken_optimization): Move to c-common.c
10243 and rename to decl_constant_value_for_optimization.
10244 (default_function_array_conversion): Do not strip nops.
10245 (default_conversion): Do not call
10246 decl_constant_value_for_broken_optimization.
10247 (build_array_ref): Do not fold result.
10248 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
10249 result when operand is a VLA.
10250 (c_expr_sizeof_type): Update call to groktypename. Handle
10251 expressions included in type name. Use C_MAYBE_CONST_EXPR for
10252 result when operand names a VLA type.
10253 (build_function_call): Update call to build_compound_literal.
10254 Only fold result for calls to __builtin_* functions. Strip
10255 NOP_EXPR from INTEGER_CST returned from such functions. Fold
10256 the function designator.
10257 (convert_arguments): Fold arguments. Update call to
10258 convert_for_assignment.
10259 (build_unary_op): Handle increment and decrement of
10260 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
10261 decrement earlier. Fold operand of increment and decrement.
10262 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
10263 built for integer operand. Wrap returns that are INTEGER_CSTs
10264 without being integer constant expressions or that have integer
10265 constant operands without being INTEGER_CSTs.
10266 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
10267 (build_conditional_expr): Add operand ifexp_bcp. Track whether
10268 result is an integer constant expression or can be used in
10269 unevaluated parts of one and avoid folding and wrap as
10270 appropriate. Fold operands before possibly doing -Wsign-compare
10271 warnings.
10272 (build_compound_expr): Wrap result for C99 if operands can be used
10273 in integer constant expressions.
10274 (build_c_cast): Update call to digest_init. Do not ignore
10275 overflow from casting floating-point constants to integers. Wrap
10276 results that could be confused with integer constant expressions,
10277 null pointer constants or floating-point constants.
10278 (c_cast_expr): Update call to groktypename. Handle expressions
10279 included in type name.
10280 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
10281 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
10282 Update calls to convert_for_assignment.
10283 (convert_for_assignment): Take new parameter
10284 null_pointer_constant. Do not strip nops or call
10285 decl_constant_value_for_broken_optimization. Set
10286 in_late_binary_op for conversions to boolean.
10287 (store_init_value): Update call to digest_init.
10288 (digest_init): Take new parameter null_pointer_constant. Do not
10289 call decl_constant_value_for_broken_optimization. pedwarn for
10290 initializers not constant expressions. Update calls to
10291 convert_for_assignment.
10292 (constructor_nonconst): New.
10293 (struct constructor_stack): Add nonconst element.
10294 (really_start_incremental_init, push_init_level, pop_init_level):
10295 Handle constructor_nonconst and nonconst element.
10296 (set_init_index): Call constant_expression_warning for array
10297 designators.
10298 (output_init_element): Fold value. Set constructor_nonconst as
10299 applicable. pedwarn for initializers not constant expressions.
10300 Update call to digest_init. Call constant_expression_warning
10301 where constant initializers are required.
10302 (process_init_element): Use c_save_expr.
10303 (c_finish_goto_ptr): Fold expression.
10304 (c_finish_return): Fold return value. Update call to
10305 convert_for_assignment.
10306 (c_start_case): Fold switch expression.
10307 (c_process_expr_stmt): Fold expression.
10308 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
10309 ensure statement expression is not evaluated in constant expression.
10310 (build_binary_op): Track whether results are integer constant
10311 expressions or may occur in such, disable folding and wrap results
10312 as applicable. Fold operands for -Wsign-compare warnings unless
10313 in_late_binary_op.
10314 (c_objc_common_truthvalue_conversion): Handle results folded to
10315 integer constants that are not integer constant expressions.
10316 * doc/extend.texi: Document when typeof operands are evaluated,
10317 that condition of __builtin_choose_expr is an integer constant
10318 expression, and more about use of __builtin_constant_p in
10319 initializers.
10320
10321 2009-03-29 Richard Guenther <rguenther@suse.de>
10322
10323 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
10324 propagate addresses of array references.
10325
10326 2009-03-29 Steven Bosscher <steven@gcc.gnu.org>
10327
10328 * regmove.c (perhaps_ends_bb_p): Remove.
10329 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
10330 from INSN and check that the main loop stays within that basic block.
10331 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
10332 (regmove_forward_pass): Split out from regmove_optimize. Use
10333 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
10334 (regmove_backward_pass): Split out from regmove_optimize. Use
10335 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
10336 (regmove_optimize): Simplify.
10337
10338 2009-03-29 H.J. Lu <hongjiu.lu@intel.com>
10339
10340 PR target/39545
10341 * config/i386/i386.c (classify_argument): Ignore flexible array
10342 member in struct and warn ABI change.
10343
10344 2009-03-29 H.J. Lu <hongjiu.lu@intel.com>
10345
10346 * config/i386/i386-protos.h (ix86_agi_dependent): New.
10347
10348 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
10349 (ix86_adjust_cost): Updated.
10350
10351 2009-03-29 Jan Hubicka <jh@suse.cz>
10352
10353 PR middle-end/28850
10354 * tree-pass.h (pass_cleanup_eh): New function.
10355 (remove_unreachable_regions): Break code handling RTL
10356 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
10357 that can not be reached by runtime.
10358 (can_be_reached_by_runtime): New function.
10359 (label_to_region_map): New function.
10360 (num_eh_regions): New function.
10361 (rtl_remove_unreachable_regions): New function.
10362 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
10363 (remove_eh_region): New function.
10364 * except.h: Include sbitmap and vecprim.
10365 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
10366 num_eh_regions): Declare.
10367 * passes.c (init_optimization_passes): Schedule cleanup_eh.
10368 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
10369 * tree-eh.c (tree_remove_unreachable_handlers): New function.
10370 (tree_empty_eh_handler_p): New function.
10371 (cleanup_empty_eh): New function.
10372 (cleanup_eh): New function.
10373 (pass_cleanup_eh): New function.
10374
10375 2009-03-29 Jan Hubicka <jh@suse.cz>
10376
10377 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
10378 for removed regions.
10379
10380 2009-03-29 Jan Hubicka <jh@suse.cz>
10381
10382 * except.c (dump_eh_tree): Dump all datastructures.
10383
10384 2009-03-29 Jan Hubicka <jh@suse.cz>
10385
10386 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
10387 (duplicate_eh_regions_1): Likewise.
10388 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
10389 vector; call EH verification.
10390 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
10391 Be ready for region being removed.
10392
10393 2009-03-29 Jan Hubicka <jh@suse.cz>
10394
10395 * bitmap.c (bitmap_last_set_bit): New function.
10396 * bitmap.h (bitmap_last_set_bit): Declare.
10397
10398 2009-03-29 David Ayers <ayers@fsfe.org>
10399
10400 PR objc/27377
10401 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
10402 by calling objc_compare_types and surpress warnings about
10403 incompatible C pointers that are compatible ObjC pointers.
10404
10405 2009-03-29 Adam Nemet <anemet@caviumnetworks.com>
10406
10407 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
10408 call initialize_inline_failed.
10409 (initialize_inline_failed): Move it from here ...
10410 * cgraph.c (initialize_inline_failed): ... to here.
10411 (cgraph_create_edge): Call initialize_inline_failed rather than
10412 setting inline_failed directly.
10413
10414 2009-03-29 Ben Elliston <bje@au.ibm.com>
10415
10416 PR target/32542
10417 * sysv4.opt (msdata): Improve comment.
10418 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
10419 * sysv4.h (SVR4_ASM_SPEC): Likewise.
10420
10421 2009-03-29 Ben Elliston <bje@au.ibm.com>
10422
10423 PR target/30451
10424 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
10425 load and store attributes.
10426
10427 2009-03-29 Ben Elliston <bje@au.ibm.com>
10428
10429 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
10430 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
10431 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
10432 * doc/extend.texi (X86 Built-in Functions): Add index entries for
10433 __builtin_infq and __builtin_huge_valq.
10434
10435 2009-03-28 Anatoly Sokolov <aesok@post.ru>
10436
10437 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
10438 atmega8m1 devices.
10439 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
10440 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
10441
10442 2009-03-28 Xinliang David Li <davidxl@google.com>
10443
10444 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
10445 (do_dbg_cnt): New function.
10446
10447 2009-03-28 Jan Hubicka <jh@suse.cz>
10448
10449 Merge from pretty-ipa:
10450
10451 2009-03-27 Jan Hubicka <jh@suse.cz>
10452
10453 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
10454 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
10455 * passes.c (function_called_by_processed_nodes_p): New.
10456 * ipa-pure-const.c (check_call): Fix handling of operands.
10457 (analyze_function): Dump debug output for skipped bodies.
10458 (local_pure_const): Use function_called_by_processed_nodes_p.
10459 * dwarf2out.c (reference_to_unused): Use output.
10460 * passes.c (do_per_function_toporder): Likewise.
10461
10462 2008-11-12 Jan Hubicka <jh@suse.cz>
10463
10464 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
10465 * ipa-pure-const.c (funct_state_d): Add can throw field; make
10466 state_set_in_source enum
10467 (check_decl): Ignore memory tags; do not set fake looping flags;
10468 dump diagnostics.
10469 (check_operand, check_tree, check_rhs_var, check_lhs_var,
10470 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
10471 (check_call, analyze_function): Rewrite.
10472 (check_stmt): New.
10473 (add_new_function): Update call of analyze_function.
10474 (generate_summary): Add call of analyze_function.
10475 (propagate): Propagate can_throw; handle state_set_in_source correctly.
10476 (local_pure_const): New function.
10477 (pass_local_pure_const): New pass.
10478 * ipa-inline.c (inline_transform): Set after_inlining.
10479 * tree-eh.c (stmt_can_throw_external): New.
10480 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
10481 work with aliasing built.
10482 * tree-flow.h (stmt_can_throw_external): New.
10483 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
10484 and local pure/const pass in early and late optimization queue.
10485
10486 2009-03-28 Martin Jambor <mjambor@suse.cz>
10487
10488 * fold-const.c (get_pointer_modulus_and_residue): New parameter
10489 allow_func_align.
10490 (fold_binary): Allow function decl aligment consideration is the
10491 second argument is integer constant one.
10492 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
10493 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
10494 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
10495
10496 2009-03-28 Jan Hubicka <jh@suse.cz>
10497
10498 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
10499 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
10500 * function.h (rtl_data): Add nothrow flag.
10501 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
10502 set DECL_NOTHROW for AVAILABLE functions.
10503
10504 2009-03-28 Jakub Jelinek <jakub@redhat.com>
10505
10506 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
10507 following vector keyword has expansion starting with pixel or bool
10508 keyword, expand vector to __vector and pixel or bool to __pixel or
10509 __bool.
10510
10511 PR c++/39554
10512 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
10513 warn_if_disallowed_function_p): Removed.
10514 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
10515 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
10516 warning_if_disallowed_function_p.
10517 * flags.h (warn_if_disallowed_function_p,
10518 warn_disallowed_functions): Removed.
10519 * common.opt (Wdisallowed-function-list=): Removed.
10520 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
10521
10522 2009-03-28 Richard Guenther <rguenther@suse.de>
10523
10524 PR tree-optimization/38723
10525 * tree-ssa-pre.c (compute_avail): Add all default definitions to
10526 the entry block.
10527
10528 2009-03-28 Jan Hubicka <jh@suse.cz>
10529
10530 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
10531 test introduced by my previous patch.
10532
10533 2009-03-28 Richard Guenther <rguenther@suse.de>
10534
10535 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
10536 the PHIs value undefined.
10537
10538 2009-03-28 Jan Hubicka <jh@suse.cz>
10539
10540 * tree-pass.h (pass_fixup_cfg): New pass.
10541 * ipa-inline.c (inline_transform): Set
10542 always_inline_functions_inlined/after_inlining.
10543 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
10544 (pass_fixup_cfg): New pass.
10545 * passes.c (init_optimization_passes): Add fixup_cfg.
10546
10547 2009-03-28 Richard Guenther <rguenther@suse.de>
10548
10549 PR tree-optimization/38458
10550 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
10551 argument use the arguments copy-of value.
10552
10553 2009-03-28 Richard Guenther <rguenther@suse.de>
10554
10555 PR tree-optimization/38180
10556 * tree-ssa-ccp.c (get_default_value): Simplify.
10557 (likely_value): Likewise.
10558 (surely_varying_stmt_p): Properly handle VOP case.
10559 (ccp_initialize): Likewise.
10560 (ccp_fold): Handle propagating through *&.
10561 (fold_const_aggregate_ref): Also handle decls.
10562
10563 2009-03-28 Jan Hubicka <jh@suse.cz>
10564
10565 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
10566 * cgraph.h (cgraph_node): Likewise.
10567 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
10568 (cgraph_reset_node): Use process flag.
10569 (cgraph_mark_functions_to_output): Likewise.
10570 (cgraph_expand_function): Likewise.
10571 (cgraph_expand_all_functions): Likewise.
10572 (cgraph_output_in_order): Likewise.
10573 * dwarf2out.c (reference_to_unused): Likewise.
10574 * passes.c do_per_function_toporder): Likewise.
10575
10576 2009-03-28 Jan Hubicka <jh@suse.cz>
10577
10578 Bring from lto-branch:
10579
10580 2008-09-03 Doug Kwan <dougkwan@google.com>
10581
10582 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
10583 enums instead of reason strings.
10584 * cgraph.c (cgraph_create_edge): Same.
10585 (cgraph_inline_failed_string): New function.
10586 * cgraph.h (cgraph_inline_failed_t): New enum type.
10587 (cgraph_inline_failed_string): New prototype.
10588 (struct cgraph_edge): Change type of INLINED_FAILED from constant
10589 char pointer to cgraph_inline_failed_t.
10590 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
10591 (cgraph_default_inline_p): Ditto.
10592 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
10593 to cgraph_inline_failed_t pointer.
10594 * cif-code.def: New file.
10595 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
10596 reason string.
10597 (cgraph_check_inline_limits): Change type of REASON to pointer to
10598 cgraph_inline_failed_t. Replace reason strings with enums.
10599 (cgraph_default_inline_p): Ditto.
10600 (cgraph_recursive_inlining_p): Ditto.
10601 (update_caller_keys): Change type of FAILED_REASON to
10602 cgraph_inline_failed_t.
10603 (cgraph_set_inline_failed): Change type of REASON to pointer to
10604 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
10605 convert enums to strings for text output.
10606 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
10607 to be of type cgraph_inline_failed_t. Replace reason strings with
10608 enums. Call cgraph_inline_failed_string to covert enums
10609 to strings for text output.
10610 (cgraph_decide_inlining): Replace reason strings with enums.
10611 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
10612 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
10613 for text output.
10614 * tree-inline.c (expand_call_inline): Change type of REASON
10615 to cgraph_inline_failed_t. Replace reason strings with enums.
10616 Call cgraph_inline_failed_string for text output.
10617 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
10618 (cgraph.o): Ditto.
10619
10620 2009-03-28 Jan Hubicka <jh@suse.cz>
10621
10622 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
10623 cgraph_clone_node): Remove master clone handling.
10624 (cgraph_is_master_clone, cgraph_master_clone): Remove.
10625 * cgraph.h (master_clone): Remove.
10626 (cgraph_is_master_clone, cgraph_master_clone): Remove.
10627 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
10628 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
10629
10630 2009-03-28 Jan Hubicka <jh@suse.cz>
10631
10632 * cgraph.c (cgraph_function_body_availability): Functions declared
10633 inline are always safe to assume that it is not going to be replaced.
10634
10635 2009-03-28 Richard Guenther <rguenther@suse.de>
10636
10637 PR tree-optimization/38513
10638 * tree-ssa-pre.c (eliminate): Remove redundant stores.
10639 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
10640 EXC_PTR_EXPR and FILTER_EXPR.
10641 (get_ref_from_reference_ops): Likewise.
10642
10643 2009-03-28 Richard Guenther <rguenther@suse.de>
10644
10645 PR tree-optimization/38968
10646 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
10647 Use FLOOR_MOD_EXPR to compute misalignment.
10648
10649 2009-03-28 Richard Guenther <rguenther@suse.de>
10650
10651 PR tree-optimization/37795
10652 * tree.h (combine_comparisons): Declare.
10653 * fold-const.c (combine_comparisons): Export.
10654 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
10655 comparisons.
10656 (ifcombine_iforif): Use combine_comparisons.
10657
10658 2009-03-28 Jan Hubicka <jh@suse.cz>
10659
10660 * tree-eh.c (inlinable_call_p): New function.
10661 (make_eh_edges): Use it.
10662 (verify_eh_edges): Use it.
10663 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
10664 * except.c (reachable_next_level): Add inlinable_function argument
10665 (sjlj_find_directly_reachable_regions): Update.
10666 (add_reachable_handler): Do not set saw_any_handlers.
10667 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
10668 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
10669 Add new inlinable call parameter.
10670 (can_throw_internal, can_throw_external): Update.
10671 * except.h (can_throw_internal_1, can_throw_external_1,
10672 foreach_reachable_handler): Update declaration.
10673
10674 2009-03-28 Joseph Myers <joseph@codesourcery.com>
10675
10676 * config/arm/t-arm-coff, config/h8300/coff.h,
10677 config/i386/i386-aout.h, config/i386/i386-coff.h,
10678 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
10679 config/pdp11/2bsd.h, config/rs6000/aix41.h,
10680 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
10681 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
10682 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
10683 sys-types.h: Remove.
10684 * Makefile.in: Remove protoize and fixproto support and references
10685 in comments.
10686 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
10687 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
10688 Remove.
10689 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
10690 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
10691 unprotoize$(exeext).
10692 (rest.encap): Don't depend on $(STMP_FIXPROTO)
10693 (.PHONY): Don't depend on proto.
10694 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
10695 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
10696 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
10697 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
10698 build/gen-protos.o, build/scan.o, xsys-protos.h,
10699 build/fix-header$(build_exeext), build/fix-header.o,
10700 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
10701 stmp-install-fixproto): Remove.
10702 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
10703 SYSCALLS.c or fixproto files.
10704 (install-common): Don't install protoize.
10705 (install-headers-tar, install-headers-cpio, install-headers-cp):
10706 Don't depend on $(STMP_FIXPROTO).
10707 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
10708 install fixproto files or write out fixproto settings.
10709 (uninstall): Don't uninstall protoize.
10710 * config.gcc (use_fixproto): Remove.
10711 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
10712 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
10713 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
10714 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
10715 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
10716 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
10717 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
10718 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
10719 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
10720 * config/t-vxworks (STMP_FIXPROTO): Remove.
10721 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
10722 STMP_FIXPROTO): Remove.
10723 * config.in, configure: Regenerate.
10724 * crtstuff.c (gid_t, uid_t): Don't undefine.
10725 * doc/install.texi: Change m68k-coff to m68k-elf in example.
10726 (arm-*-coff, arm-*-aout: Remove target entries.
10727 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
10728 Remove mention of AIX 4.1.
10729 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
10730 * doc/invoke.texi (Running Protoize): Remove.
10731 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
10732 (Protoize Caveats): Remove.
10733 * tsystem.h: Update comments on headers assumed to exist.
10734
10735 2009-03-27 Vladimir Makarov <vmakarov@redhat.com>
10736
10737 * genautomata.c: Add a new year to the copyright. Add a new
10738 reference.
10739 (struct insn_reserv_decl): Add comments for member bypass_list.
10740 (find_bypass): Remove.
10741 (insert_bypass): New.
10742 (process_decls): Use insert_bypass.
10743 (output_internal_insn_latency_func): Output all bypasses with the
10744 same input insn in one switch case.
10745
10746 * rtl.def (define_bypass): Describe bypass choice.
10747 * doc/md.texi (define_bypass): Ditto.
10748
10749 2009-03-27 Richard Guenther <rguenther@suse.de>
10750
10751 * gimplify.c (mark_addressable): Export.
10752 * tree-flow.h (mark_addressable): Declare.
10753 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
10754 * tree-ssa.c (verify_phi_args): Verify that address taken
10755 variables have TREE_ADDRESSABLE set.
10756
10757 2009-03-27 Richard Guenther <rguenther@suse.de>
10758
10759 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
10760 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
10761 Do not mark decls TREE_ADDRESSABLE.
10762 (build_fold_addr_expr): Adjust.
10763 (fold_addr_expr): Remove.
10764 (fold_unary): Use build_fold_addr_expr.
10765 (fold_comparison): Likewise.
10766 (split_address_to_core_and_offset): Likewise.
10767 * coverage.c (tree_coverage_counter_addr): Mark the array decl
10768 TREE_ADDRESSABLE.
10769 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
10770 (gimplify_modify_expr_to_memcpy): Mark source and destination
10771 addressable.
10772 * omp-low.c (create_omp_child_function): Mark the object decl
10773 TREE_ADDRESSABLE.
10774 (lower_rec_input_clauses): Mark the var we take the address of
10775 TREE_ADDRESSABLE.
10776 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
10777
10778 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10779
10780 PR middle-end/39315
10781 * cfgexpand.c (expand_one_stack_var_at): Change alignment
10782 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
10783
10784 2009-03-27 Richard Guenther <rguenther@suse.de>
10785
10786 PR tree-optimization/39120
10787 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
10788 constraints.
10789 (handle_lhs_call): Process return constraints. Add escape
10790 constraints if necessary.
10791 (handle_const_call): Fill out return constraints. Make nested
10792 case more precise. Avoid consttmp if possible.
10793 (handle_pure_call): Fill out return constraints. Avoid
10794 callused if possible.
10795 (find_func_aliases): Simplify call handling.
10796
10797 2009-03-27 Richard Guenther <rguenther@suse.de>
10798
10799 PR tree-optimization/39120
10800 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
10801 as a representative.
10802 (solve_graph): Do propagate CALLUSED.
10803 (handle_pure_call): Use a scalar constraint from CALLUSED for
10804 the return value.
10805 (find_what_p_points_to): CALLUSED shall not appear in poins-to
10806 solutions.
10807
10808 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10809
10810 PR c/39323
10811 * c-common.c (handle_aligned_attribute): Properly check alignment
10812 overflow. Use (1U << i) instead of (1 << i).
10813
10814 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
10815
10816 * expr.h (get_mem_align_offset): Updated.
10817
10818 * tree.h (tree_decl_common): Change align to "unsigned int" and
10819 move it before pointer_alias_set.
10820
10821 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10822 Jakub Jelinek <jakub@redhat.com>
10823
10824 PR target/38034
10825 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
10826 gr_register_operand with gr_reg_or_0_operand.
10827 (cmpxchg_rel_di): Likewise.
10828 (sync_lock_test_and_set<mode>): Likewise.
10829
10830 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10831
10832 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
10833 (true_regnum): Likewise.
10834
10835 * rtlanal.c (subreg_info): Moved to ...
10836 * rtl.h (subreg_info): Here. New.
10837 (subreg_get_info): New.
10838
10839 * rtlanal.c (subreg_get_info): Make it extern.
10840
10841 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10842
10843 PR target/39472
10844 * config/i386/i386.c (ix86_abi): New.
10845 (override_options): Handle -mabi=.
10846 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
10847 (ix86_call_abi_override): Likewise.
10848 (init_cumulative_args): Likewise.
10849 (function_arg_advance): Likewise.
10850 (function_arg_64): Likewise.
10851 (function_arg): Likewise.
10852 (ix86_pass_by_reference): Likewise.
10853 (ix86_function_value_regno_p): Likewise.
10854 (ix86_build_builtin_va_list_abi): Likewise.
10855 (setup_incoming_varargs_64): Likewise.
10856 (is_va_list_char_pointer): Likewise.
10857 (ix86_init_machine_status): Likewise.
10858 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
10859 (ix86_function_type_abi): Return enum calling_abi. Rewrite
10860 for 64bit. Replace DEFAULT_ABI with ix86_abi.
10861 (ix86_function_abi): Make it static and return enum calling_abi.
10862 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
10863 with ix86_abi.
10864 (ix86_fn_abi_va_list): Updated.
10865
10866 * config/i386/i386.h (ix86_abi): New.
10867 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
10868 (CONDITIONAL_REGISTER_USAGE): Likewise.
10869 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
10870 (machine_function): Likewise.
10871
10872 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
10873 with ix86_abi.
10874 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
10875 (STACK_BOUNDARY): Likewise.
10876 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
10877
10878 * config/i386/i386.opt (mabi=): New.
10879
10880 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
10881 return enum calling_abi.
10882 (ix86_function_type_abi): Likewise.
10883 (ix86_function_abi): Removed.
10884
10885 * doc/invoke.texi: Document -mabi= option for x86.
10886
10887 2009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10888
10889 * builtins.c (real_dconstp): Delete.
10890 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
10891
10892 2009-03-27 Dodji Seketeli <dodji@redhat.com>
10893 Jakub Jelinek <jakub@redhat.com>
10894
10895 PR debug/37959
10896 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
10897 (gen_subprogram_die): When a function is explicit, generate the
10898 DW_AT_explicit attribute.
10899 * langhooks.h (struct lang_hooks_for_decls): Add
10900 function_decl_explicit_p langhook.
10901 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
10902 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
10903
10904 2009-03-27 Jakub Jelinek <jakub@redhat.com>
10905
10906 * builtins.c (fold_builtin_memory_op): Optimize memmove
10907 into memcpy if we can prove source and destination don't overlap.
10908
10909 * tree-inline.c: Include gt-tree-inline.h.
10910 (clone_fn_id_num): New variable.
10911 (clone_function_name): New function.
10912 (tree_function_versioning): Use it.
10913 * Makefile.in (GTFILES): Add tree-inline.c.
10914
10915 2009-03-27 Mark Mitchell <mark@codesourcery.com>
10916
10917 * BASE-VER: Change to 4.5.0.
10918
10919 2009-03-27 Xinliang David Li <davidxl@google.com>
10920
10921 PR tree-optimization/39557
10922 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
10923
10924 2009-03-27 Xinliang David Li <davidxl@google.com>
10925
10926 PR tree-optimization/39548
10927 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
10928 candidate check.
10929
10930 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10931
10932 * c-common.c (pointer_int_sum): Use %wd on return from
10933 tree_low_cst.
10934
10935 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10936
10937 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
10938 on return from tree_low_cst.
10939
10940 2009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
10941
10942 PR c++/36799
10943 * ginclude/stdarg.h (va_copy): Define also for
10944 __GXX_EXPERIMENTAL_CXX0X__.
10945
10946 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10947
10948 PR c++/35652
10949 * builtins.h (c_strlen): Do not warn here.
10950 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
10951 * c-common.c (pointer_int_sum): Take an explicit location.
10952 Warn about offsets out of bounds.
10953 * c-common.h (pointer_int_sum): Adjust declaration.
10954
10955 2009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10956
10957 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
10958 markup glitch.
10959
10960 2009-03-26 Jakub Jelinek <jakub@redhat.com>
10961
10962 PR c++/39554
10963 * opts.c (warn_if_disallowed_function_p): Don't assume
10964 get_callee_fndecl must return non-NULL.
10965
10966 2009-03-26 Vladimir Makarov <vmakarov@redhat.com>
10967
10968 PR rtl-optimization/39522
10969 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
10970 when reg_reloaded_valid is set.
10971
10972 2009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10973
10974 * config/spu/divv2df3.c: New file.
10975 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
10976 (DPBIT_FUNCS): Filter out _div_df.
10977
10978 2009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
10979
10980 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
10981 a jump insn, count that jump in the distance to the loop start.
10982
10983 2009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
10984
10985 PR target/39523
10986 * config/sh/sh.c (calc_live_regs): Fix condition for global
10987 registers except PIC_OFFSET_TABLE_REGNUM.
10988
10989 2009-03-25 Kai Tietz <kai.tietz@onevision.com>
10990
10991 PR/39518
10992 * doc/invoke.texi (-mconsole): New.
10993 (-mcygwin): New.
10994 (-mno-cygwin): New.
10995 (-mdll): New.
10996 (-mnop-fun-dllimport): New.
10997 (-mthread): New.
10998 (-mwin32): New.
10999 (-mwindows): New.
11000 (sub section "i386 and x86-64 Windows Options"): New.
11001
11002 2009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
11003
11004 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
11005 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
11006
11007 2009-03-25 Richard Guenther <rguenther@suse.de>
11008
11009 PR middle-end/39497
11010 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
11011 of -Wno-error.
11012
11013 2009-03-25 Andrey Belevantsev <abel@ispras.ru>
11014
11015 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
11016 neither of haifa/selective schedulers are working.
11017
11018 2009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11019
11020 * doc/invoke.texi (Debugging Options): Fix description of
11021 -fno-merge-debug-strings.
11022
11023 2009-03-24 Hans-Peter Nilsson <hp@axis.com>
11024
11025 * config/cris/libgcc.ver: New version-script.
11026 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
11027
11028 * configure.ac <GAS features, nop mnemonic>: Add pattern
11029 crisv32-*-* for "nop".
11030 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
11031 * configure: Regenerate.
11032
11033 2009-03-24 Ira Rosen <irar@il.ibm.com>
11034
11035 PR tree-optimization/39529
11036 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
11037 mark_sym_for_renaming for the tag copied to the new vector
11038 pointer.
11039
11040 2009-03-24 Arthur Loiret <aloiret@debian.org>
11041
11042 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
11043 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
11044 EXTRA_SPEC_FUNCTIONS.
11045 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
11046 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
11047 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
11048 -march and -mtune options.
11049
11050 2009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
11051
11052 * config/m68k/t-rtems: Add m5329 multilib.
11053
11054 2009-03-24 Dodji Seketeli <dodji@redhat.com>
11055 Jakub Jelinek <jakub@redhat.com>
11056
11057 PR debug/39524
11058 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
11059 nodes.
11060
11061 2009-03-23 Jakub Jelinek <jakub@redhat.com>
11062
11063 PR c/39495
11064 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
11065 instead of c_parser_expression_conv, if original_code isn't one of the
11066 4 allowed comparison codes, fail.
11067
11068 2009-03-23 Richard Guenther <rguenther@suse.de>
11069
11070 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
11071 * tree.h (struct tree_type): Likewise.
11072 * reload.h (struct insn_chain): Likewise.
11073 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
11074 * function.h (struct function): Likewise.
11075 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
11076
11077 2009-03-23 Jakub Jelinek <jakub@redhat.com>
11078
11079 PR tree-optimization/39516
11080 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
11081
11082 2009-03-23 Bingfeng Mei <bmei@broadcom.com>
11083
11084 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
11085 should be set true if BITS_PER_WORD of target is bigger than 32
11086
11087 2009-03-22 Hans-Peter Nilsson <hp@axis.com>
11088
11089 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
11090 Translate -B-options to -rpath-link. Correct existing
11091 rpath-link and conditionalize on !nostdlib.
11092
11093 2009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11094
11095 * doc/extend.texi (Function Attributes, Variable Attributes):
11096 Fix typos.
11097 * doc/invoke.texi (Debugging Options, Optimize Options)
11098 (i386 and x86-64 Options, MCore Options): Likewise.
11099
11100 2009-03-20 Jakub Jelinek <jakub@redhat.com>
11101
11102 PR debug/37890
11103 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
11104 it for block local namespace aliases.
11105 (gen_decl_die): Pass context_die to gen_namespace_die.
11106
11107 2009-03-19 Jakub Jelinek <jakub@redhat.com>
11108
11109 PR c/39495
11110 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
11111 minimum or maximum value.
11112
11113 2009-03-19 Alexandre Oliva <aoliva@redhat.com>
11114
11115 * reginfo.c (globalize_reg): Recompute derived reg sets.
11116
11117 2009-03-19 Ozkan Sezer <sezeroz@gmail.com>
11118
11119 PR target/39063
11120 * libgcc2.c (mprotect): Do not use signed arguments for
11121 VirtualProtect, use DWORD arguments. Also fix the 'may
11122 be used uninitialized' warning for the np variable.
11123
11124 2009-03-19 Jakub Jelinek <jakub@redhat.com>
11125
11126 PR target/39496
11127 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
11128 functions using regparm calling conventions when not optimizing.
11129 (ix86_function_sseregparm): Similarly for sseregparm calling
11130 conventions.
11131
11132 2009-03-19 Li Feng <nemokingdom@gmail.com>
11133
11134 PR middle-end/39500
11135 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
11136 dependence if the first conflict is after niter iterations.
11137
11138 2009-03-19 Hans-Peter Nilsson <hp@axis.com>
11139
11140 PR middle-end/38609
11141 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
11142 functions with dynamic stack-pointer adjustments.
11143
11144 2009-03-19 Ben Elliston <bje@au.ibm.com>
11145
11146 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
11147 option; change to -msdata=data.
11148
11149 2009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11150
11151 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
11152 and -fopenmp.
11153
11154 2009-03-18 Eric Botcazou <ebotcazou@adacore.com>
11155
11156 PR target/35180
11157 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
11158
11159 2009-03-18 Sandra Loosemore <sandra@codesourcery.com>
11160
11161 * doc/invoke.texi (Code Gen Options): Expand discussion of
11162 -fno-common.
11163
11164 2009-03-18 Jakub Jelinek <jakub@redhat.com>
11165
11166 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
11167 * matrix-reorg.c (struct matrix_info): Likewise.
11168 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
11169 * rtl.h (struct mem_attrs): Likewise.
11170 * df.h (struct df): Likewise.
11171 * tree-data-ref.h (struct data_dependence_relation): Likewise.
11172 * ira-int.h (struct ira_allocno): Likewise.
11173 * df-scan.c (struct df_collection_rec): Likewise.
11174 * ira.c (struct equivalence): Likewise.
11175 * function.c (struct temp_slot): Likewise.
11176 * cfgloop.h (struct loop): Likewise.
11177
11178 PR debug/39485
11179 * function.c (use_register_for_decl): When not optimizing, disregard
11180 register keyword for variables with types containing methods.
11181
11182 2009-03-18 Sebastian Pop <sebastian.pop@amd.com>
11183
11184 PR middle-end/39447
11185 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
11186 (is_simple_operand): Call contains_component_ref_p before calling data
11187 reference analysis that would fail on COMPONENT_REFs.
11188
11189 * tree-vrp.c (search_for_addr_array): Fix formatting.
11190
11191 2009-03-18 Richard Guenther <rguenther@suse.de>
11192
11193 * tree-vect-transform.c (vect_loop_versioning): Fold the
11194 generated comparisons.
11195 * tree-vectorizer.c (set_prologue_iterations): Likewise.
11196 (slpeel_tree_peel_loop_to_edge): Likewise.
11197
11198 2009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11199
11200 PR middle-end/37805
11201 * opts.c (print_specific_help): In addition to `undocumented',
11202 accept `separate' and `joined' flags if passed alone. Describe
11203 output by the first matched one of those.
11204 (common_handle_option): Skip over empty strings.
11205 * gcc.c (display_help): Fix help string for `--help='.
11206 * doc/invoke.texi (Option Summary, Overall Options): With
11207 `--help=', classes and qualifiers can both be repeated, but
11208 only the latter can be negated. One should not pass only
11209 negated qualifiers. Fix markup and examples.
11210
11211 Revert
11212 2008-10-14 Jakub Jelinek <jakub@redhat.com>
11213 PR middle-end/37805
11214 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
11215 and -fhelp=separate.
11216
11217 2009-03-17 Jing Yu <jingyu@google.com>
11218
11219 PR middle-end/39378
11220 * function.h (struct rtl_data): Move is_thunk from here...
11221 (struct function): ...to here.
11222 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
11223 * varasm.c (assemble_start_function): Change is_thunk from crtl to
11224 cfun.
11225 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
11226 cfun.
11227 (alpha_does_function_need_gp, alpha_start_function): Likewise.
11228 (alpha_output_function_end_prologue): Likewise.
11229 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
11230 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
11231 (rs6000_output_function_epilogue): Likewise.
11232 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
11233
11234 2009-03-17 Uros Bizjak <ubizjak@gmail.com>
11235
11236 PR target/39482
11237 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
11238 from different units in a single alternative.
11239 (*truncdfsf_i387): Ditto.
11240 (*truncxfsf2_mixed): Ditto.
11241 (*truncxfdf2_mixed): Ditto.
11242
11243 2009-03-17 Jakub Jelinek <jakub@redhat.com>
11244
11245 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
11246 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
11247
11248 PR debug/39474
11249 * tree-ssa-live.c (remove_unused_locals): Don't remove local
11250 unused non-artificial variables when not optimizing.
11251
11252 PR debug/39471
11253 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
11254 DW_TAG_imported_module even if decl is IMPORTED_DECL with
11255 NAMESPACE_DECL in its DECL_INITIAL.
11256
11257 PR middle-end/39443
11258 * optabs.c (set_user_assembler_libfunc): New function.
11259 * expr.h (set_user_assembler_libfunc): New prototype.
11260 * c-common.c: Include libfuncs.h.
11261 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
11262 for memcmp, memset, memcpy, memmove and abort.
11263 * Makefile.in (c-common.o): Depend on libfuncs.h.
11264
11265 PR debug/39412
11266 * dwarf2out.c (gen_inlined_enumeration_type_die,
11267 gen_inlined_structure_type_die, gen_inlined_union_type_die,
11268 gen_tagged_type_instantiation_die): Removed.
11269 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
11270 do nothing.
11271
11272 2009-03-17 Janis Johnson <janis187@us.ibm.com>
11273
11274 PR testsuite/38526
11275 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
11276 its use.
11277 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
11278 (check-parallel-%): Ditto.
11279 (check-consistency): Ditto.
11280
11281 2009-03-17 Kai Tietz <kai.tietz@onevision.com>
11282
11283 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
11284 local variable rhs by NULL_TREE.
11285
11286 2009-03-17 H.J. Lu <hongjiu.lu@intel.com>
11287
11288 PR target/39477
11289 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
11290
11291 2009-03-17 H.J. Lu <hongjiu.lu@intel.com>
11292
11293 PR target/39476
11294 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
11295
11296 2009-03-17 H.J. Lu <hongjiu.lu@intel.com>
11297
11298 PR target/39473
11299 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
11300 for ms->sysv ABI calls only in 64bit mode.
11301
11302 * config/i386/i386.md (untyped_call): Support 32bit.
11303
11304 2009-03-16 H.J. Lu <hongjiu.lu@intel.com>
11305
11306 * doc/extend.texi: Replace x86_65 with x86_64.
11307
11308 2009-03-16 Jakub Jelinek <jakub@redhat.com>
11309
11310 PR tree-optimization/39455
11311 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
11312 mismatches for POINTER_TYPE_P (type).
11313 (number_of_iterations_le): Likewise.
11314
11315 2009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
11316
11317 * config/picochip/picochip.c: Removed profiling support.
11318 * config/picochip/picochip.md: Removed profiling instruction.
11319 * config/picochip/picochip.h: Removed profiling builtin.
11320
11321 2009-03-16 Joseph Myers <joseph@codesourcery.com>
11322
11323 * doc/install.texi (--with-host-libstdcxx): Document.
11324
11325 2009-03-14 Anatoly Sokolov <aesok@post.ru>
11326
11327 PR target/34299
11328 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
11329 generate a warning if the function name does not begin with
11330 "__vector" and the function has either the 'signal' or 'interrupt'
11331 attribute, from here to ...
11332 (avr_declare_function_name): ...here. New function.
11333 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
11334 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
11335
11336 2009-03-14 Jakub Jelinek <jakub@redhat.com>
11337
11338 PR bootstrap/39454
11339 * cse.c (fold_rtx): Don't modify original const_arg1 when
11340 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
11341 separate variable instead.
11342 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
11343 from out of range shift counts.
11344 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
11345
11346 2009-03-13 Catherine Moore <clm@codesourcery.com>
11347
11348 * config/i386/x-mingw32 (host-mingw32.o): Replace
11349 diagnostic.h with $(DIAGNOSTIC_H).
11350
11351 2009-03-12 Jakub Jelinek <jakub@redhat.com>
11352
11353 PR target/39431
11354 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
11355 predicate.
11356 * config/i386/sync.md (sync_compare_and_swap<mode>,
11357 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
11358 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
11359 into a register.
11360 (sync_double_compare_and_swapdi_pic,
11361 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
11362 cmpxchg8b_pic_memory_operand instead of just memory_operand.
11363
11364 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
11365
11366 PR target/39445
11367 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
11368
11369 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
11370
11371 PR target/39327
11372 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
11373 (avx_addsubv4df3): Likewise.
11374 (*avx_addsubv4sf3): Likewise.
11375 (sse3_addsubv4sf3): Likewise.
11376
11377 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
11378
11379 PR target/38824
11380 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
11381
11382 2009-03-12 Vladimir Makarov <vmakarov@redhat.com>
11383
11384 PR debug/39432
11385 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
11386 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
11387 registers for allocnos created from user-defined variables.
11388
11389 2009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11390
11391 PR target/39181
11392 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
11393 of non-integer mode as well.
11394
11395 2009-03-11 Adam Nemet <anemet@caviumnetworks.com>
11396
11397 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
11398 for functions for which the parameter types are unknown.
11399
11400 2009-03-11 Jakub Jelinek <jakub@redhat.com>
11401
11402 PR target/39137
11403 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
11404 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
11405 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
11406 * config/i386/i386.c (ix86_local_alignment): For
11407 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
11408 long long variables on the stack to avoid dynamic realignment.
11409 Allow the first argument to be a decl rather than type.
11410 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
11411
11412 2009-03-11 Nick Clifton <nickc@redhat.com>
11413
11414 PR target/5362
11415 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
11416 options.
11417 Add description to mno-lsim option.
11418 * config/mcore/mcore.h: Remove comment about deprecated m4align
11419 option.
11420 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
11421 * doc/invoke.texi: Add description of mno-lsim and
11422 mstack-increment options.
11423
11424 * config/fr30/fr30.opt: Document the -mno-lsim option.
11425 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
11426 and -mno-lsim options.
11427
11428 2009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11429
11430 * fold-const.c (fold_comparison): Only call fold_inf_compare
11431 if the mode supports infinities.
11432
11433 2009-03-11 Jason Merrill <jason@redhat.com>
11434
11435 PR debug/39086
11436 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
11437 end already did. Notice GIMPLE_CALL modifications of the result.
11438 Don't copy debug information from an ignored decl or a decl from
11439 another function.
11440
11441 2009-03-10 Richard Guenther <rguenther@suse.de>
11442 Nathan Froyd <froydnj@codesourcery.com>
11443
11444 PR middle-end/37850
11445 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
11446 (__divMODE3): Likewise.
11447
11448 2009-03-09 Jakub Jelinek <jakub@redhat.com>
11449
11450 PR tree-optimization/39394
11451 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
11452 DECL_SIZE_UNIT of variable length FIELD_DECLs.
11453
11454 2009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11455
11456 * recog.c (verfiy_changes): Disallow renaming of hard regs in
11457 inline asms for register asm ("") declarations.
11458
11459 2009-03-09 Eric Botcazou <ebotcazou@adacore.com>
11460
11461 * fold-const.c (fold_unary): Fix comment.
11462
11463 2009-03-07 Jan Hubicka <jh@suse.cz>
11464
11465 PR target/39361
11466 * tree-inline.c (setup_one_parameter): Do replacement of const
11467 argument by constant in SSA form.
11468
11469 2009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11470
11471 PR middle-end/38028
11472 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
11473 determine alignment passed to assign_stack_local.
11474 (assign_parms_unsplit_complex): Likewise.
11475 * except.c (sjlj_build_landing_pads): Likewise.
11476
11477 2009-03-06 Jakub Jelinek <jakub@redhat.com>
11478
11479 PR middle-end/39360
11480 * tree-flow.h (add_referenced_var): Return bool instead of void.
11481 * tree-dfa.c (add_referenced_var): Return result of
11482 referenced_var_check_and_insert call.
11483 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
11484 of referenced_var_check_and_insert.
11485
11486 PR debug/39372
11487 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
11488 (gen_variable_die): Emit DW_AT_location on abstract static variable's
11489 DIE, don't emit it if abstract origin already has it.
11490 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
11491 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
11492
11493 2009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
11494
11495 * genpreds.c (needs_variable): Fix parentheses at variable name
11496 detection.
11497 (write_tm_constrs_h): Indent generated code.
11498
11499 2009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11500
11501 * doc/extend.texi (Function Attributes): Add documentation
11502 for isr attributes.
11503
11504 2009-03-06 Jakub Jelinek <jakub@redhat.com>
11505
11506 PR debug/39387
11507 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
11508 take locus from its DECL_SOURCE_LOCATION instead of input_location.
11509
11510 2009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
11511
11512 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
11513 the loop as bad.
11514
11515 2009-03-05 Jakub Jelinek <jakub@redhat.com>
11516
11517 PR debug/39379
11518 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
11519 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
11520
11521 2009-03-05 Uros Bizjak <ubizjak@gmail.com>
11522
11523 * config/i386/i386.md (R8_REG, R9_REG): New constants.
11524 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
11525 constants instead of magic numbers.
11526 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
11527 (QI_REG_P): Ditto.
11528 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
11529 (x86_64_ms_abi_int_parameter_registers): Ditto.
11530 (x86_64_int_return_registers): Ditto.
11531 (ix86_maybe_switch_abi): Ditto.
11532 (ix86_expand_call): Ditto for clobbered_registers array.
11533 (ix86_hard_regno_mode_ok): Ditto.
11534 (x86_extended_QIreg_mentioned_p): Ditto.
11535
11536 2009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
11537
11538 PR tree-optimization/39349
11539 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
11540
11541 * combine.c (gen_lowpart_for_combine): Use omode when generating
11542 clobber.
11543
11544 2009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
11545
11546 PR rtl-optimization/39235
11547 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
11548
11549 2009-03-04 Zdenek Dvorak <ook@ucw.cz>
11550
11551 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
11552
11553 2009-03-04 Richard Guenther <rguenther@suse.de>
11554
11555 PR tree-optimization/39362
11556 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
11557 that occur in abnormal PHIs should be varying.
11558
11559 2009-03-04 Zdenek Dvorak <ook@ucw.cz>
11560
11561 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
11562 Extend comments.
11563 (simple_iv): Take loop as an argument instead of statement.
11564 * tree-scalar-evolution.h (simple_iv): Declaration changed.
11565 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
11566 to simple_iv.
11567 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
11568 Ditto.
11569 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
11570 * matrix-reorg.c (analyze_transpose): Ditto.
11571 * tree-data-ref.c (dr_analyze_innermost): Ditto.
11572 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
11573 * tree-predcom.c (ref_at_iteration): Ditto.
11574 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
11575
11576 2009-03-04 Richard Guenther <rguenther@suse.de>
11577
11578 PR tree-optimization/39358
11579 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
11580 escaped_id and callused_id.
11581 (solve_graph): Likewise.
11582
11583 2009-03-04 Richard Guenther <rguenther@suse.de>
11584
11585 PR tree-optimization/39339
11586 * tree-sra.c (try_instantiate_multiple_fields): Make it
11587 no longer ICE on the above.
11588
11589 2009-03-03 Joseph Myers <joseph@codesourcery.com>
11590
11591 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
11592 that fits within Pmode.
11593
11594 2009-03-03 Steve Ellcey <sje@cup.hp.com>
11595
11596 PR middle-end/10109
11597 * tm.texi (LIBCALL_VALUE): Update description.
11598
11599 2009-03-03 Steve Ellcey <sje@cup.hp.com>
11600
11601 PR middle-end/34443
11602 * doc/extend.texi (section): Update description.
11603
11604 2009-03-03 H.J. Lu <hongjiu.lu@intel.com>
11605
11606 PR middle-end/39345
11607 * tree-inline.c (remapped_type): New.
11608 (can_be_nonlocal): Call remapped_type instead of remap_type.
11609
11610 2009-03-03 Jakub Jelinek <jakub@redhat.com>
11611
11612 PR fortran/39354
11613 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
11614 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
11615
11616 2009-03-03 Richard Guenther <rguenther@suse.de>
11617
11618 PR middle-end/39272
11619 * tree.c (tree_nonartificial_location): New function.
11620 * tree.h (tree_nonartificial_location): Declare.
11621 * builtins.c (expand_builtin_memory_chk): Provide location
11622 of the call location for artificial function pieces.
11623 (maybe_emit_chk_warning): Likewise.
11624 (maybe_emit_sprintf_chk_warning): Likewise.
11625 (maybe_emit_free_warning): Likewise.
11626 * expr.c (expand_expr_real_1): Likewise.
11627
11628 2009-03-03 Jakub Jelinek <jakub@redhat.com>
11629
11630 PR tree-optimization/39343
11631 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
11632 COMPONENT_REF t has ARRAY_TYPE.
11633
11634 2009-03-02 Sebastian Pop <sebastian.pop@amd.com>
11635
11636 PR middle-end/39335
11637 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
11638 when the type precision of the induction variable should be
11639 larger than the type precision of nit.
11640 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
11641 * graphite.c (graphite_loop_normal_form): Same.
11642 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
11643
11644 2009-03-02 Uros Bizjak <ubizjak@gmail.com>
11645
11646 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
11647 (*call_1_rex64_ms_sysv): Use named constants instead of magic
11648 numbers to describe clobbered registers.
11649 (*call_value_0_rex64_ms_sysv): Ditto.
11650 * config/i386/mmx.md (mmx_emms): Ditto.
11651 (mmx_femms): Ditto.
11652
11653 2009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
11654
11655 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
11656 of ABI_64.
11657
11658 2009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11659
11660 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
11661 (spu_section_type_flags): New function.
11662
11663 2009-03-02 Uros Bizjak <ubizjak@gmail.com>
11664
11665 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
11666 reg_class_contents of FLOAT_REGS into a temporary.
11667
11668 2009-03-02 Richard Guenther <rguenther@suse.de>
11669 Ira Rosen <irar@il.ibm.com>
11670
11671 PR tree-optimization/39318
11672 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
11673 information to the vectorized statement.
11674
11675 2009-03-01 Uros Bizjak <ubizjak@gmail.com>
11676
11677 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
11678 variable. Use defined names instead of magic constants for REX SSE
11679 registers.
11680
11681 2009-03-01 Richard Guenther <rguenther@suse.de>
11682
11683 PR tree-optimization/39331
11684 * omp-low.c (lower_send_shared_vars): Do not receive new
11685 values for the reference of DECL_BY_REFERENCE parms or results.
11686
11687 2009-03-01 Jan Hubicka <jh@suse.cz>
11688
11689 PR debug/39267
11690 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
11691 BLOCK_NONLOCALIZED_VAR): New macros.
11692 (tree_block): Add nonlocalized_vars.
11693 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
11694 gen_decl_die): Add origin argument. Allow generation of die with
11695 origin at hand only.
11696 (gen_member_die, gen_type_die_with_usage, force_decl_die,
11697 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
11698 of gen_*.
11699 (gen_block_die): Fix checking for unused blocks.
11700 (process_scope_var): Break out from .... ; work with origins only.
11701 (decls_for_scope) ... here; process nonlocalized list.
11702 (dwarf2out_ignore_block): Look for nonlocalized vars.
11703 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
11704 vars.
11705 (dump_scope_block): Dump them.
11706 * tree-inline.c (remap_decls): Handle nonlocalized vars.
11707 (remap_block): Likewise.
11708 (can_be_nonlocal): New predicate.
11709 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
11710
11711 2009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11712
11713 * configure: Regenerate.
11714
11715 2009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11716
11717 * optc-gen.awk: No need to duplicate option flags twice.
11718 Reuse help texts for duplicate options which do not have any.
11719
11720 * gcc.c (display_help): Document --version.
11721
11722 * gcc.c (main): If print_help_list and verbose_flag, ensure
11723 driver output comes before subprocess output.
11724
11725 * optc-gen.awk: Assign all remaining fields to help string,
11726 space-separated, for multi-line help in *.opt.
11727
11728 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
11729 -Wno-pedantic-ms-format is for MinGW targets only.
11730
11731 * doc/options.texi (Option file format): Fix bad indentation,
11732 restoring dropped sentence.
11733
11734 2009-02-28 Jan Hubicka <jh@suse.cz>
11735
11736 * tree-inline.c (tree_function_versioning): Output debug info.
11737
11738 2009-02-28 Jan Hubicka <jh@suse.cz>
11739
11740 PR debug/39267
11741 * tree-inline.c (setup_one_parameter): Do not copy propagate
11742 arguments when not optimizing.
11743
11744 2009-02-28 H.J. Lu <hongjiu.lu@intel.com>
11745
11746 PR target/39327
11747 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
11748 (avx_addsubv4df3): Likewise.
11749 (*avx_addsubv4sf3): Likewise.
11750 (sse3_addsubv4sf3): Likewise.
11751 (*avx_addsubv2df3): Likewise.
11752 (sse3_addsubv2df3): Likewise.
11753 (avx_unpckhps256): Correct item selectors.
11754 (avx_unpcklps256): Likewise.
11755 (avx_unpckhpd256): Likewise.
11756 (avx_unpcklpd256): Likewise.
11757
11758 2009-02-28 Jan Hubicka <jh@suse.cz>
11759
11760 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
11761 static vars.
11762 (copy_arguments_for_versioning): If var is declared don't declare it.
11763 (tree_function_versioning): First setup substitutions and then copy
11764 args.
11765
11766 2009-02-27 Jan Hubicka <jh@suse.cz>
11767
11768 PR debug/39267
11769 * cgraph.h (varpool_output_debug_info): Remove.
11770 * cgraphunit.c (varpool_output_debug_info): Remove.
11771 * dwarf2out.c (deferred_locations_struct): New struct
11772 (deferred_locations): New type.
11773 (deferred_locations_list): New static var.
11774 (deffer_location): New function.
11775 (gen_variable_die): Use it.
11776 (decls_for_scope): Output info on local static vars.
11777 (dwarf2out_finish): Process deferred locations.
11778 * varpool.c (varpool_output_debug_info): Remove.
11779
11780 2009-02-27 Jan Hubicka <jh@suse.cz>
11781
11782 PR debug/39267
11783 * tree.h (TREE_PROTECTED): Fix comment.
11784 (BLOCK_HANDLER_BLOCK): Remove.
11785 (struct tree_block): Remove handler_block add body_block.
11786 (inlined_function_outer_scope_p): New.
11787 (is_body_block): Remove.
11788 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
11789 * dwarf2out.c (is_inlined_entry_point): Remove.
11790 (add_high_low_attributes): Use inlined_function_outer_scope_p.
11791 (gen_block_die): Use is_inlined_entry_point check. Remove body block
11792 code.
11793 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
11794 * gimplify.c (gimplify_expr): Gimplify body blocks.
11795 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
11796 block with multiple subblocks.
11797 (dump_scope_block): Prettier output; dump more flags and info.
11798 (dump_scope_blocks): New.
11799 (remove_unused_locals): Use dump_scope_blocks.
11800 * tree-flow.h (dump_scope_blocks): Declare.
11801 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
11802 * stmt.c (is_body_block): Remove.
11803 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
11804 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
11805
11806 2009-02-27 Sebastian Pop <sebastian.pop@amd.com>
11807
11808 PR middle-end/39308
11809 * graphite.c (graphite_loop_normal_form): Do not call
11810 number_of_iterations_exit from a gcc_assert.
11811
11812 2009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11813
11814 * config/s390/s390.c (s390_swap_cmp): Look for conditional
11815 jumps if COND is NULL.
11816 (find_cond_jump): New function.
11817 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
11818 * config/s390/s390.md: Remove z10_cobra attribute value.
11819
11820 2009-02-26 Uros Bizjak <ubizjak@gmail.com>
11821
11822 * config/alpha/alpha.h (alpha_expand_mov): Return false if
11823 force_const_mem returns NULL_RTX.
11824
11825 2009-02-26 Jan Hubicka <jh@suse.cz>
11826
11827 PR debug/39267
11828 * cgraph.h (varpool_output_debug_info): Remove.
11829 * cgraphunit.c (varpool_output_debug_info): Remove.
11830 * dwarf2out.c (deferred_locations_struct): New struct
11831 (deferred_locations): New type.
11832 (deferred_locations_list): New static var.
11833 (deffer_location): New function.
11834 (gen_variable_die): Use it.
11835 (decls_for_scope): Output info on local static vars.
11836 (dwarf2out_finish): Process deferred locations.
11837 * varpool.c (varpool_output_debug_info): Remove.
11838
11839 2009-02-25 H.J. Lu <hongjiu.lu@intel.com>
11840
11841 PR rtl-optimization/39241
11842 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
11843 to subreg_offset_representable_p.
11844
11845 2009-02-25 Paolo Bonzini <bonzini@gnu.org>
11846
11847 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
11848 execute function prototype. Get f and nregs from max_reg_num
11849 and get_insns. Remove the first backward pass as it's dead,
11850 guard the forward pass by flag_expensive_optimizations.
11851 (rest_of_handle_regmove): Delete.
11852 (pass_regmove): Replace it with regmove_optimize.
11853
11854 2009-02-25 Martin Jambor <mjambor@suse.cz>
11855
11856 PR tree-optimization/39259
11857 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
11858 calls_alloca function flags.
11859 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
11860 calls are detected.
11861
11862 2009-02-25 Paolo Bonzini <bonzini@gnu.org>
11863
11864 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
11865 flags_set_1_rtx, flags_set_1_set): Delete.
11866 (regmove_optimize): Do not call mark_flags_life_zones.
11867
11868 2009-02-24 Julian Brown <julian@codesourcery.com>
11869
11870 PR target/35965
11871 * config/arm/arm.c (require_pic_register): Only set
11872 cfun->machine->pic_reg once per function.
11873
11874 2009-02-24 Sandra Loosemore <sandra@codesourcery.com>
11875
11876 * doc/invoke.texi (Link Options): Document an easier way to pass
11877 options that take arguments to the GNU linker using -Xlinker and -Wl.
11878
11879 2009-02-24 Steve Ellcey <sje@cup.hp.com>
11880
11881 PR target/33785
11882 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
11883
11884 2009-02-24 Richard Guenther <rguenther@suse.de>
11885
11886 PR debug/39285
11887 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
11888
11889 2009-02-24 Richard Guenther <rguenther@suse.de>
11890 Zdenek Dvorak <ook@ucw.cz>
11891
11892 PR tree-optimization/39233
11893 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
11894 from converting them to a generic type.
11895
11896 2009-02-23 Sebastian Pop <sebastian.pop@amd.com>
11897
11898 PR tree-optimization/39260
11899 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
11900 contains a condition with a real type.
11901 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
11902
11903 2009-02-23 Jason Merrill <jason@redhat.com>
11904
11905 PR c++/38880
11906 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
11907 narrowing_initializer_constant_valid_p.
11908 (narrowing_initializer_constant_valid_p): Don't return
11909 null_pointer_node for adding a pointer to itself.
11910
11911 2009-02-23 Jan Hubicka <jh@suse.cz>
11912
11913 PR c/12245
11914 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
11915 resizing.
11916
11917 2009-02-23 Jan Hubicka <jh@suse.cz>
11918
11919 PR tree-optimization/37709
11920 * tree.c (block_ultimate_origin): Move here from dwarf2out.
11921 * tree.h (block_ultimate_origin): Declare.
11922 * dwarf2out.c (block_ultimate_origin): Move to tree.c
11923 * tree-ssa-live.c (remove_unused_scope_block_p):
11924 Eliminate blocks containig no instructions nor live variables nor
11925 nested blocks.
11926 (dump_scope_block): New function.
11927 (remove_unused_locals): Enable removal of dead blocks by default;
11928 enable dumping at TDF_DETAILS.
11929
11930 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
11931
11932 * config/i386/i386.c (classify_argument): Don't allow COImode
11933 and OImode.
11934 (function_arg_advance_32): Don't allow OImode.
11935 (function_arg_32): Likewise.
11936 (function_value_32): Likewise.
11937 (return_in_memory_32): Likewise.
11938 (function_arg_64): Remove OImode comment.
11939
11940 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
11941
11942 PR target/39261
11943 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
11944 ix86_expand_vector_set for V4DImode in 64bit mode only.
11945 (ix86_expand_vector_init_one_var): Likewise.
11946
11947 2009-02-21 Sebastian Pop <sebastian.pop@amd.com>
11948
11949 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
11950
11951 2009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
11952
11953 PR bootstrap/39257
11954 * loop-iv.c: Revert last change.
11955 * emit-rtl.c: Likewise.
11956
11957 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
11958
11959 PR target/39256
11960 * config/i386/i386.c (type_natural_mode): Remove an extra
11961 space in the warning message.
11962 (function_value_32): Handle 32-byte vector modes.
11963 (return_in_memory_32): Likewise.
11964
11965 2009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
11966
11967 * loop-iv.c (truncate_value): New function.
11968 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
11969 of lowpart_subreg.
11970 (lowpart_subreg): Move to...
11971 * emit-rtl.c: ...here.
11972
11973 2009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
11974
11975 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
11976 accidental and undocumented change at revision 140860.
11977
11978 2009-02-21 Joseph Myers <joseph@codesourcery.com>
11979
11980 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
11981 take gimple_seq * arguments.
11982 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
11983 types_compatible_p langhook.
11984
11985 2009-02-20 Mark Mitchell <mark@codesourcery.com>
11986 Joseph Myers <joseph@codesourcery.com>
11987
11988 * config/arm/arm.c (arm_builtin_va_list): New function.
11989 (arm_expand_builtin_va_start): Likewise.
11990 (arm_gimplify_va_arg_expr): Likewise.
11991 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
11992 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
11993 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
11994 (va_list_type): New variable.
11995 (arm_mangle_type): Mangle va_list_type appropriately.
11996
11997 2009-02-20 Jakub Jelinek <jakub@redhat.com>
11998
11999 PR middle-end/39157
12000 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
12001 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
12002 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
12003 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
12004 parameter to 1000 for -O1 by default.
12005 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
12006 parameter.
12007 * loop-invariant.c: Include params.h.
12008 (move_loop_invariants): Don't call move_single_loop_invariants on
12009 very large loops.
12010
12011 2009-02-20 Jaka Mocnik <jaka@xlab.si>
12012
12013 * calls.c (emit_library_call_value_1): Use slot_offset instead of
12014 offset when calculating bounds for indexing stack_usage_map. Fixes
12015 a buffer overflow with certain target setups.
12016
12017 2009-02-20 Jakub Jelinek <jakub@redhat.com>
12018
12019 PR target/39240
12020 * calls.c (expand_call): Clear try_tail_call if caller and callee
12021 disagree in promotion of function return value.
12022
12023 2009-02-19 Jakub Jelinek <jakub@redhat.com>
12024
12025 PR target/39175
12026 * c-common.c (c_determine_visibility): If visibility changed and
12027 DECL_RTL has been already set, call make_decl_rtl to update symbol
12028 flags.
12029
12030 2009-02-19 H.J. Lu <hongjiu.lu@intel.com>
12031
12032 PR c++/39188
12033 * varasm.c (assemble_variable): Don't check DECL_NAME when
12034 globalizing a variable.
12035
12036 2009-02-19 Joseph Myers <joseph@codesourcery.com>
12037
12038 PR c/38483
12039 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
12040 expression before any __builtin_trap call.
12041 * c-typeck.c (build_function_call): Convert and check function
12042 arguments before generating a call to a trap. Evaluate the
12043 function arguments before the trap.
12044
12045 2009-02-19 Uros Bizjak <ubizjak@gmail.com>
12046
12047 PR target/39228
12048 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
12049 (UNSPEC_FXAM_MEM): New unspec.
12050 (fxam<mode>2_i387_with_temp): New insn and split pattern.
12051 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
12052 memory using fxam<mode>2_i387_with_temp to remove excess precision.
12053
12054 2009-02-19 Richard Guenther <rguenther@suse.de>
12055
12056 PR tree-optimization/39207
12057 PR tree-optimization/39074
12058 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
12059 storedanything_tree): New.
12060 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
12061 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
12062 (build_succ_graph): Add edges from STOREDANYTHING to all
12063 non-direct nodes.
12064 (init_base_vars): Initialize STOREDANYTHING.
12065 (compute_points_to_sets): Free substitution info after
12066 building the succ graph.
12067 (ipa_pta_execute): Likewise.
12068
12069 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
12070 field.
12071 (do_ds_constraint): Do not add to special var or non-pointer
12072 field solutions.
12073 (type_could_have_pointers): Split out from ...
12074 (could_have_pointers): ... here. For arrays use the element type.
12075 (create_variable_info_for): Initialize may_have_pointers.
12076 (new_var_info): Likewise.
12077 (handle_lhs_call): Make the HEAP variable unknown-sized.
12078 (intra_create_variable_infos): Use a type with pointers for
12079 PARM_NOALIAS, make it unknown-sized.
12080
12081 2009-02-18 H.J. Lu <hongjiu.lu@intel.com>
12082
12083 PR target/39224
12084 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
12085
12086 2009-02-18 Jason Merrill <jason@redhat.com>
12087
12088 PR target/39179
12089 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
12090 value if DECL_EXTERNAL.
12091 * tree-sra.c (sra_walk_gimple_assign): Likewise.
12092 * target.h (gcc_target::binds_local_p): Clarify "module".
12093 * tree.h (TREE_PUBLIC): Clarify "module".
12094
12095 2009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
12096
12097 PR target/38891
12098 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
12099 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
12100
12101 2009-02-17 H.J. Lu <hongjiu.lu@intel.com>
12102
12103 PR target/39082
12104 * c.opt (Wabi): Support C and ObjC.
12105 (Wpsabi): New.
12106
12107 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
12108
12109 * config/i386/i386.c (classify_argument): Warn once about the ABI
12110 change when passing union with long double.
12111
12112 * doc/invoke.texi: Update -Wabi for warning psABI changes.
12113
12114 2009-02-18 Joseph Myers <joseph@codesourcery.com>
12115
12116 PR c/35447
12117 * c-parser.c (c_parser_compound_statement): Always enter and leave
12118 a scope.
12119
12120 2009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12121
12122 PR target/34587
12123 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
12124
12125 2009-02-18 Jakub Jelinek <jakub@redhat.com>
12126
12127 PR tree-optimization/36922
12128 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
12129 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
12130 Likewise.
12131
12132 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
12133
12134 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
12135 to 0 for EABI64.
12136
12137 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
12138
12139 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
12140
12141 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
12142
12143 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
12144 tree sharing.
12145
12146 2009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
12147 Richard Sandiford <rdsandiford@googlemail.com>
12148
12149 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
12150 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
12151 (loongson_biadd): ...this.
12152
12153 2009-02-17 Richard Guenther <rguenther@suse.de>
12154
12155 PR tree-optimization/39202
12156 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
12157 a var make sure to follow existing collapses.
12158
12159 2009-02-17 Richard Guenther <rguenther@suse.de>
12160
12161 PR middle-end/39214
12162 * langhooks.c (lhd_print_error_function): Check for NULL block.
12163
12164 2009-02-17 Richard Guenther <rguenther@suse.de>
12165
12166 PR tree-optimization/39204
12167 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
12168 of the PHI arg.
12169
12170 2009-02-17 Uros Bizjak <ubizjak@gmail.com>
12171
12172 * config/soft-fp/double.h: Update from glibc CVS.
12173
12174 2009-02-17 Richard Guenther <rguenther@suse.de>
12175
12176 PR tree-optimization/39207
12177 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
12178 strict-aliasing warnings for pointers pointing to NULL.
12179
12180 2009-02-16 Joseph Myers <joseph@codesourcery.com>
12181
12182 PR c/35446
12183 * c-parser.c (c_parser_braced_init): Call pop_init_level when
12184 skipping until next close brace.
12185
12186 2009-02-16 H.J. Lu <hongjiu.lu@intel.com>
12187
12188 PR target/37049
12189 * config/i386/i386.c (ix86_expand_push): Set memory alignment
12190 to function argument boundary.
12191
12192 2009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
12193
12194 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
12195 in the lea_add. Reload eventually constraints it properly.
12196 * config/picochip/constraints.md: Remove the target constraint
12197 "b", since it is not needed anymore.
12198
12199 2009-02-16 Jakub Jelinek <jakub@redhat.com>
12200
12201 * gthr-dce.h: Uglify function parameter and local variable names.
12202 * gthr-gnat.h: Likewise.
12203 * gthr-mipssde.h: Likewise.
12204 * gthr-nks.h: Likewise.
12205 * gthr-posix95.h: Likewise.
12206 * gthr-posix.h: Likewise.
12207 * gthr-rtems.h: Likewise.
12208 * gthr-single.h: Likewise.
12209 * gthr-solaris.h: Likewise.
12210 * gthr-tpf.h: Likewise.
12211 * gthr-vxworks.h: Likewise.
12212 * gthr-win32.h: Likewise.
12213
12214 2009-02-15 H.J. Lu <hongjiu.lu@intel.com>
12215
12216 PR target/39196
12217 * config/i386/i386.md: Restrict the new peephole2 to move
12218 between MMX/SSE registers.
12219
12220 2009-02-15 Richard Guenther <rguenther@suse.de>
12221
12222 Revert
12223 2009-02-13 Richard Guenther <rguenther@suse.de>
12224
12225 * configure.ac: Enable LFS.
12226 * configure: Re-generate.
12227 * config.in: Likewise.
12228
12229 2009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12230
12231 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
12232 spu_srqwbyte, spu_srqwbytebc): Define.
12233 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
12234 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
12235 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
12236 "shrqby_<mode>"): New insn-and-split patterns.
12237 * config/spu/spu.c (expand_builtin_args): Determine and return
12238 number of operands using spu_builtin_description data.
12239 (spu_expand_builtin_1): Use it.
12240
12241 2009-02-13 Steve Ellcey <sje@cup.hp.com>
12242
12243 PR target/38056
12244 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
12245 TARGET_CONST_GP.
12246
12247 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
12248
12249 PR target/39149
12250 * config/i386/i386.c (override_options): Correct warning
12251 messages for -malign-loops, -malign-jumps and -malign-functions.
12252
12253 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
12254
12255 PR target/39152
12256 * config/i386/i386.md: Restrict the new peephole2 to move
12257 between the general purpose registers.
12258
12259 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
12260
12261 PR target/39162
12262 * config/i386/i386.c (type_natural_mode): Add a new argument.
12263 Return the original mode and warn ABI change if vector size is 32byte.
12264 (function_arg_advance): Updated.
12265 (function_arg): Likewise.
12266 (ix86_function_value): Likewise.
12267 (ix86_return_in_memory): Likewise.
12268 (ix86_sol10_return_in_memory): Likewise.
12269 (ix86_gimplify_va_arg): Likewise.
12270 (function_arg_32): Don't warn ABX ABI change here.
12271 (function_arg_64): Likewise.
12272
12273 2009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
12274
12275 * loop-iv.c (implies_p): In the final case, test that operands 0
12276 of the two comparisons match.
12277
12278 * config/bfin/bfin.c (find_prev_insn_start): New function.
12279 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
12280 (find_next_insn_start): Move.
12281
12282 2009-02-13 Richard Guenther <rguenther@suse.de>
12283
12284 * configure.ac: Enable LFS.
12285 * configure: Re-generate.
12286 * config.in: Likewise.
12287
12288 2009-02-13 Joseph Myers <joseph@codesourcery.com>
12289
12290 PR c/35444
12291 * c-parser.c (c_parser_parms_list_declarator): Discard pending
12292 sizes on syntax error after some arguments have been parsed.
12293
12294 2009-02-12 Jakub Jelinek <jakub@redhat.com>
12295
12296 * doc/invoke.texi (-fira): Remove.
12297
12298 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
12299
12300 * caller-save.c: Replace regclass.c with reginfo.c in comments.
12301 * recog.c: Likewise.
12302 * rtl.h: Likewise.
12303
12304 2009-02-12 Uros Bizjak <ubizjak@gmail.com>
12305
12306 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
12307 (umul_ppmm): Likewise.
12308 (count_leading_zeros): Likewise.
12309 (count_trailing_zeros): Likewise.
12310 (UMUL_TIME): Likewise.
12311
12312 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
12313
12314 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
12315 soft-fp/t-softfp to tmake_file.
12316
12317 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
12318 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
12319 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
12320 IA64_BUILTIN_INFQ]: New.
12321 (ia64_init_builtins): Initialize __builtin_infq,
12322 __builtin_fabsq and __builtin_copysignq if not HPUX.
12323 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
12324 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
12325
12326 * config/ia64/lib1funcs.asm (__divtf3): Define only if
12327 SHARED is defined.
12328 (__fixtfti): Likewise.
12329 (__fixunstfti): Likewise.
12330 (__floattitf): Likewise.
12331
12332 * config/ia64/libgcc-glibc.ver: New.
12333 * config/ia64/t-fprules-softfp: Likewise.
12334 * config/ia64/sfp-machine.h: Likewise.
12335
12336 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
12337 (LIBGCC2_TF_CEXT): Likewise.
12338 (TF_SIZE): Likewise.
12339 (TARGET_INIT_LIBFUNCS): Likewise.
12340
12341 * config/ia64/t-glibc (SHLINB_MAPFILES):
12342 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
12343
12344 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
12345
12346 * config/i386/i386.c (construct_container): Rewrite processing
12347 BLKmode with X86_64_SSE_CLASS.
12348
12349 2009-02-12 Paolo Bonzini <bonzini@gnu.org>
12350
12351 PR target/39152
12352 * config/i386/i386.md: Replace simplify_replace_rtx with
12353 replace_rtx in the new peephole2.
12354
12355 2009-02-12 Nathan Sidwell <nathan@codesourcery.com>
12356
12357 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
12358 loop unrolling do not happen at -O2.
12359
12360 2009-02-12 Michael Matz <matz@suse.de>
12361
12362 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
12363
12364 2009-02-12 Jakub Jelinek <jakub@redhat.com>
12365
12366 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
12367 for -g3.
12368
12369 2009-02-12 Ben Elliston <bje@au.ibm.com>
12370
12371 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
12372 patterns when updating the back chain. Missed in the 2009-02-10
12373 change.
12374
12375 2009-02-11 Janis Johnson <janis187@us.ibm.com>
12376
12377 * doc/extend.texi (Decimal Floating Types): Update identifier of
12378 draft TR and list of missing support.
12379
12380 2009-02-11 Jakub Jelinek <jakub@redhat.com>
12381
12382 PR middle-end/39154
12383 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
12384 bit to variable length decl's flags, add it also to its
12385 pointer replacement variable.
12386
12387 2009-02-11 Uros Bizjak <ubizjak@gmail.com>
12388 Jakub Jelinek <jakub@redhat.com>
12389
12390 PR target/39118
12391 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
12392 (memory_blockage): New expander.
12393 (*memory_blockage): New insn pattern.
12394 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
12395 instead of general blockage at the end of function prologue when
12396 frame pointer is used to access red zone area. Do not emit blockage
12397 when profiling, it is emitted in generic code.
12398 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
12399 function epilogue when frame pointer is used to access red zone area.
12400
12401 2009-02-11 Paolo Bonzini <bonzini@gnu.org>
12402
12403 PR target/38824
12404 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
12405 by arithmetic with memory operands.
12406 * config/i386/predicates.md (commutative_operator): New.
12407
12408 2009-02-10 Janis Johnson <janis187@us.ibm.com>
12409
12410 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
12411 bulleted lists.
12412
12413 2009-02-10 Eric Botcazou <ebotcazou@adacore.com>
12414
12415 * alias.h (record_alias_subset): Declare.
12416 * alias.c (record_alias_subset): Make global.
12417
12418 2009-02-10 Nick Clifton <nickc@redhat.com>
12419
12420 * tree-parloops.c: Change license to GPLv3.
12421 * ipa-struct-reorg.c: Change license to GPLv3.
12422 * ipa-struct-reorg.h: Change license to GPLv3.
12423
12424 2009-02-10 Steve Ellcey <sje@cup.hp.com>
12425
12426 PR c/39084
12427 * c-decl.c (start_struct): Return NULL on error.
12428
12429 2009-02-10 Jakub Jelinek <jakub@redhat.com>
12430
12431 PR middle-end/39124
12432 * cfgloopmanip.c (remove_path): Call remove_bbs after
12433 cancel_loop_tree, not before it.
12434
12435 PR target/39139
12436 * function.h (struct function): Add has_local_explicit_reg_vars bit.
12437 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
12438 VAR_DECLs were seen.
12439 * tree-ssa-live.c (remove_unused_locals): Recompute
12440 cfun->has_local_explicit_reg_vars.
12441 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
12442 copies or clearings if cfun->has_local_explicit_reg_vars.
12443
12444 2009-02-10 Uros Bizjak <ubizjak@gmail.com>
12445
12446 PR target/39118
12447 * config/i386/i386.c (expand_prologue): Emit blockage at the end
12448 of function prologue when frame pointer is used to access
12449 red zone area.
12450
12451 2009-02-10 Richard Guenther <rguenther@suse.de>
12452
12453 PR middle-end/39127
12454 * gimplify.c (gimple_regimplify_operands): Always look if
12455 we need to create a temporary.
12456
12457 2009-02-10 Richard Guenther <rguenther@suse.de>
12458
12459 PR tree-optimization/39132
12460 * tree-loop-distribution.c (todo): New global var.
12461 (generate_memset_zero): Trigger TODO_rebuild_alias.
12462 (tree_loop_distribution): Return todo.
12463
12464 2009-02-10 H.J. Lu <hongjiu.lu@intel.com>
12465
12466 PR target/39119
12467 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
12468 (x86_64_reg_class_name): Removed.
12469 (classify_argument): Return 0 if bytes > 32. Return 0 if the
12470 first one isn't X86_64_SSE_CLASS or any other ones aren't
12471 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
12472 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
12473 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
12474 and 3 X86_64_SSEUP_CLASS.
12475 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
12476 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
12477
12478 2009-02-10 Ben Elliston <bje@au.ibm.com>
12479
12480 * config/rs6000/rs6000.md (allocate_stack): Always use an update
12481 form instruction to update the stack back chain word, even if the
12482 user has disabled the generation of update instructions.
12483 (movdi_<mode>_update_stack): New.
12484 (movsi_update_stack): Likewise.
12485 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
12486 always use an update form instruction to update the stack back
12487 chain word.
12488
12489 2009-02-09 Sebastian Pop <sebastian.pop@amd.com>
12490
12491 PR middle-end/38953
12492 * graphite.c (if_region_set_false_region): After moving a region in
12493 the false branch of a condition, remove the empty dummy basic block.
12494 (gloog): Remove wrong fix for PR38953.
12495
12496 2009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12497
12498 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
12499 generation due to implicit sign extension.
12500
12501 2009-02-09 Eric Botcazou <ebotcazou@adacore.com>
12502
12503 PR middle-end/38981
12504 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
12505 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
12506
12507 2009-02-09 Richard Guenther <rguenther@suse.de>
12508
12509 PR middle-end/35202
12510 * convert.c (convert_to_real): Disable (float)fn((double)x)
12511 to fnf(x) conversion if errno differences may occur and
12512 -fmath-errno is set.
12513
12514 2009-02-07 Anatoly Sokolov <aesok@post.ru>
12515
12516 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
12517 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
12518 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
12519
12520 2009-02-06 Joseph Myers <joseph@codesourcery.com>
12521
12522 PR c/35434
12523 * c-common.c (handle_alias_attribute): Disallow attribute for
12524 anything not a FUNCTION_DECL or VAR_DECL.
12525
12526 2009-02-06 Janis Johnson <janis187@us.ibm.com>
12527
12528 PR c/39035
12529 * real.c (do_compare): Special-case compare of zero against
12530 decimal float value.
12531
12532 2009-02-06 Joseph Myers <joseph@codesourcery.com>
12533
12534 PR c/36432
12535 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
12536 as indicating flexible array members unless the field itself is
12537 being declarared as the incomplete array.
12538
12539 2009-02-06 Jan Hubicka <jh@suse.cz>
12540
12541 PR tree-optimization/38844
12542 * ipa-inline.c (try_inline): Stop inlining recursion when edge
12543 is already inlined.
12544
12545 2009-02-06 Richard Guenther <rguenther@suse.de>
12546
12547 PR middle-end/38977
12548 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
12549 fork because we may expand it as __gcov_fork.
12550
12551 2009-02-06 Nick Clifton <nickc@redhat.com>
12552
12553 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
12554
12555 2009-02-06 Paolo Bonzini <bonzini@gnu.org>
12556
12557 PR tree-optimization/35659
12558 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
12559 vn_phi_eq): Shortcut if hashcode does not match.
12560 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
12561 NULL operands.
12562 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
12563 and avoid iterative_hash_expr.
12564 (FOR_EACH_VALUE_ID_IN_SET): New.
12565 (value_id_compare): Remove.
12566 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
12567 sort expressions by value id.
12568
12569 2009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
12570
12571 PR target/38991
12572 * config/sh/predicates.md (general_movsrc_operand): Don't check
12573 the subreg of system registers here.
12574
12575 2009-02-05 Jakub Jelinek <jakub@redhat.com>
12576
12577 PR c++/39106
12578 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
12579 on the copied decl.
12580
12581 2009-02-05 Paolo Bonzini <bonzini@gnu.org>
12582
12583 PR rtl-optimization/39110
12584 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
12585 addresses, not aligned ones.
12586
12587 2009-02-05 Daniel Berlin <dberlin@dberlin.org>
12588 Richard Guenther <rguenther@suse.de>
12589
12590 PR tree-optimization/39100
12591 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
12592 comment says and add edges.
12593
12594 2009-02-05 Joseph Myers <joseph@codesourcery.com>
12595
12596 PR c/35435
12597 * c-common.c (handle_tls_model_attribute): Ignore attribute for
12598 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
12599
12600 2009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
12601
12602 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
12603 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
12604 register_bb_in_sese, new_sese, free_sese): Moved.
12605 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
12606 outermost_loop_in_scop, build_scop_iteration_domain,
12607 expand_scalar_variables_ssa_name, get_vdef_before_scop,
12608 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
12609 Use loop_in_sese_p instead of loop_in_scop_p.
12610 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
12611 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
12612 (scopdet_basic_block_info): Fix bug in scop detection.
12613 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
12614 eq_loop_to_cloog_loop): Remove.
12615 (nb_loops_around_loop_in_scop, nb_loop
12616 ref_nb_loops): Moved here...
12617 * graphite.h (ref_nb_loops): ... from here.
12618 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
12619 (loop_domain_dim, loop_iteration_vector_dim): Remove.
12620 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
12621 * testsuite/gcc.dg/graphite/scop-19.c: New
12622
12623 2009-02-04 Paolo Bonzini <bonzini@gnu.org>
12624 Hans-Peter Nilsson <hp@axis.com>
12625
12626 PR rtl-optimization/37889
12627 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
12628 Move offset handling from PLUS to before the switch. Use new
12629 arguments when considering SYMBOL_REFs too.
12630 (rtx_addr_can_trap_p): Pass dummy offset and size.
12631 (enum may_trap_p_flags): Remove.
12632 (may_trap_p_1): Pass size from MEM_SIZE.
12633
12634 PR rtl-optimization/38921
12635 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
12636 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
12637 * rtlanal.c (may_trap_after_code_motion_p): Delete.
12638 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
12639
12640 2009-02-04 H.J. Lu <hongjiu.lu@intel.com>
12641
12642 AVX Programming Reference (January, 2009)
12643 * config/i386/sse.md (*vpclmulqdq): New.
12644
12645 2009-02-04 Jakub Jelinek <jakub@redhat.com>
12646
12647 PR tree-optimization/38977
12648 PR gcov-profile/38292
12649 * calls.c (special_function_p): Disregard __builtin_ prefix.
12650
12651 2009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
12652
12653 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
12654 non-indexable addresses even before reload.
12655
12656 2009-02-03 Joseph Myers <joseph@codesourcery.com>
12657
12658 PR c/29129
12659 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
12660 as having variable size. Do not give an error for unnamed
12661 parameters with [*] declarators. Give a warning for type names
12662 with [*] declarators and mark them as variable size.
12663 * c-parser.c (c_parser_sizeof_expression): Do not give an error
12664 for sizeof applied to [*] type names.
12665
12666 2009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
12667
12668 PR C++/36607
12669 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
12670
12671 2009-02-03 Jakub Jelinek <jakub@redhat.com>
12672
12673 * gcc.c (process_command): Update copyright notice dates.
12674 * gcov.c (print_version): Likewise.
12675 * gcov-dump.c (print_version): Likewise.
12676 * mips-tfile.c (main): Likewise.
12677 * mips-tdump.c (main): Likewise.
12678
12679 2009-02-03 Joseph Myers <joseph@codesourcery.com>
12680
12681 PR c/35433
12682 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
12683 for composite type involving a zero-length array type.
12684
12685 2009-02-03 Jakub Jelinek <jakub@redhat.com>
12686
12687 PR target/35318
12688 * function.c (match_asm_constraints_1): Skip over
12689 initial optional % in the constraint.
12690
12691 PR inline-asm/39059
12692 * c-parser.c (c_parser_postfix_expression): If fixed point is not
12693 supported, don't accept FIXED_CSTs.
12694 * c-decl.c (finish_declspecs): Error if fixed point is not supported
12695 and _Sat is used without _Fract/_Accum. Set specs->type to
12696 integer_type_node for cts_fract/cts_accum if fixed point is not
12697 supported.
12698
12699 2009-02-02 Catherine Moore <clm@codesourcery.com>
12700
12701 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
12702
12703 2009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
12704
12705 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
12706 (ABI_HAS_64BIT_SYMBOLS): Use it.
12707 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
12708
12709 2009-02-02 Paul Brook <paul@codesourcery.com>
12710
12711 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
12712
12713 2009-02-02 Jakub Jelinek <jakub@redhat.com>
12714
12715 PR inline-asm/39058
12716 * recog.h (asm_operand_ok): Add constraints argument.
12717 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
12718 recurse on matching constraint.
12719 (check_asm_operands): Pass constraints as 3rd argument to
12720 asm_operand_ok. Don't look up matching constraint here.
12721 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
12722 to asm_operand_ok.
12723
12724 2009-02-02 Ben Elliston <bje@au.ibm.com>
12725
12726 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
12727 TARGET_NARROW_VOLATILE_BITFIELD macro names.
12728
12729 2009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12730
12731 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
12732 information. Remove some obsolete information. Reorganize.
12733
12734 * config/pa/fptr.c: Revert license to GPL 2.
12735 * config/pa/milli64.S: Likewise.
12736
12737 2009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
12738
12739 PR target/38904
12740 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
12741 LIBRARY name in, instead of hard-coding it.
12742 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
12743 extra target make frag to tmake_files according to EH model.
12744 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
12745 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
12746 frags that define makefile variable EH_MODEL appropriately.
12747 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
12748 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
12749 to "-sjlj" according to type of EH configured.
12750 (LIBGCC_SONAME): Concatenate it to shared library base name.
12751 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
12752 to "_sjlj" according to type of EH configured.
12753 (LIBGCC_SONAME): Concatenate it to shared library base name.
12754 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
12755 (SHLIB_LINK): Add missing semicolon to if-else construct.
12756 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
12757 string value of "pe_dll" command-line option.
12758 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
12759 (SHLIB_SONAME): Use it when overriding t-cygming default.
12760 (SHLIB_IMPLIB): Override t-cygming default.
12761 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
12762 string value of "pe_dll" command-line option.
12763
12764 2009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
12765
12766 PR target/38952
12767 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
12768 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
12769
12770 2009-01-31 Richard Guenther <rguenther@suse.de>
12771
12772 PR tree-optimization/38937
12773 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
12774 computing the transitive closure.
12775
12776 2009-01-30 Richard Guenther <rguenther@suse.de>
12777
12778 PR tree-optimization/39041
12779 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
12780 Propagate variable indices only if the types match for this stmt.
12781
12782 2009-01-30 Jakub Jelinek <jakub@redhat.com>
12783
12784 PR target/39013
12785 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
12786 inline but never defined.
12787
12788 2009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
12789
12790 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
12791 (*insv_h_di_reg_extimm): New insn.
12792 (*insv_l<mode>_reg_extimm): New insn.
12793
12794 2009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
12795
12796 * config/picochip/picochip.c (flag_conserve_stack): set
12797 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
12798 fconserve-stack. Reduce call-overhead used by inliner.
12799
12800 2009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
12801
12802 PR/38157
12803 * common.opt (flag_conserve_stack): Initialised to zero.
12804
12805 2009-01-30 Kai Tietz <kai.tietz@onevision.com>
12806
12807 PR/39002
12808 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
12809 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
12810 method.
12811
12812 2009-01-29 H.J. Lu <hongjiu.lu@intel.com>
12813
12814 * ira-color.c (allocno_reload_assign): Update comments.
12815 * regmove.c (regmove_optimize): Likewise.
12816
12817 * ra.h: Removed.
12818
12819 2009-01-29 Robert Millan <rmh@aybabtu.com>
12820
12821 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
12822 * config/i386/kopensolaris-gnu.h: New file. Undefine
12823 `MD_UNWIND_SUPPORT'.
12824 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
12825
12826 2009-01-29 Kazu Hirata <kazu@codesourcery.com>
12827
12828 PR tree-optimization/39007
12829 * tree-loop-distribution.c (generate_builtin): Use
12830 recompute_dominator to compute the immediate dominator of the
12831 basic block just after the loop.
12832
12833 2009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
12834
12835 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
12836 (ASM_OUTPUT_DWARF_PCREL): Define.
12837
12838 2009-01-29 Vladimir Makarov <vmakarov@redhat.com>
12839
12840 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
12841 * doc/passes.texi: Remove entries about regclass, local-alloc, and
12842 global. Modify entries about regmove and IRA.
12843
12844 * ra-conflict.c: Remove the file.
12845
12846 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
12847
12848 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
12849 (pass_regclass_init): Rename to pass_reginfo_init.
12850
12851 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
12852
12853 * toplev.h (flag_ira): Remove.
12854
12855 * caller-save.c (setup_save_areas): Remove flag_ira.
12856
12857 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
12858
12859 * global.c: Remove the file.
12860
12861 * opts.c (decode_options): Remove flag_ira.
12862
12863 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
12864
12865 * regmove.c: Modify file description.
12866 (find_use_as_address, try_auto_increment): Define them only if
12867 AUTO_INC_DEC is defined.
12868 (replacement_quality, replace_in_call_usage, fixup_match_1,
12869 stable_and_no_regs_but_for_p): Remove.
12870 (reg_set_in_bb): Make it static.
12871 (regmove_optimize): Remove flag_ira and code which worked for
12872 !flag_ira.
12873
12874 * local-alloc.c: Remove the file.
12875
12876 * common.opt (fira): Remove.
12877
12878 * ira.c: Include except.h.
12879 (eliminable_regset): Move from global.c.
12880 (mark_elimination): Ditto. Remove flag_ira.
12881 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
12882 equiv_mem_modified, validate_equiv_mem_from_store,
12883 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
12884 contains_replace_regs, memref_referenced_p, memref_used_between_p,
12885 no_equiv, recorded_label_ref): Move from local-alloc.c.
12886 (update_equiv_regs): Ditto. Make it static.
12887 (print_insn_chain, print_insn_chains): Move it from global.c.
12888 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
12889 (build_insn_chain): Ditto. Make it static.
12890 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
12891 Rename to init_live_subregs.
12892 (gate_ira): Remove flag_ira.
12893
12894 * regclass.c: Rename reginfo.c. Change file description.
12895 (FORBIDDEN_INC_DEC_CLASSES): Remove.
12896 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
12897 (init_reg_sets_1): Remove code for evaluation of
12898 reg_class_superclasses and losing_caller_save_reg_set.
12899 (init_regs): Remove init_reg_autoinc.
12900 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
12901 ok_for_base_p_nonstrict): Remove.
12902 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
12903 (pass_regclass_init): Rename to pass_reginfo_init. Modify
12904 corresponding entries.
12905 (dump_regclass, record_operand_costs, scan_one_insn,
12906 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
12907 record_address_regs, auto_inc_dec_reg_p): Remove.
12908 (gt-regclass.h): Rename to gt-reginfo.h.
12909
12910 * rtl.h (dump_global_regs, retry_global_alloc,
12911 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
12912
12913 * Makefile.in (RA_H): Remove.
12914 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
12915 Rename regclass.o to reginfo.o.
12916 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
12917 gt-reginfo.h.
12918 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
12919 (GTFILES): Rename regclass.c to reginfo.c.
12920
12921 * passes.c (init_optimization_passes): Remove pass_local_alloc and
12922 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
12923
12924 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
12925 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
12926 Remove flag_ira.
12927 (finish_spills): Ditto. Remove code for !flag_ira.
12928
12929 2009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
12930
12931 PR middle-end/35854
12932 * doc/invoke.texi (rtl debug options): Complete rewrite.
12933 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
12934 to auto_inc_dec".
12935 * mode-switching.c (pass_mode_switching): Rename pass from
12936 "mode-sw" to "mode_sw".
12937 * except.c (pass_convert_to_eh_ranges): Rename pass from
12938 "eh-ranges" to "eh_ranges".
12939 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
12940 to "subreg1".
12941
12942
12943 2009-01-29 Andrey Belevantsev <abel@ispras.ru>
12944 Alexander Monakov <amonakov@ispras.ru>
12945
12946 PR middle-end/38857
12947 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
12948 register.
12949 (move_exprs_to_boundary): Change return type and pass through
12950 should_move from move_op. Relax assert. Update usage ...
12951 (schedule_expr_on_boundary): ... here. Use should_move instead of
12952 cant_move.
12953 (move_op_orig_expr_found): Indicate that insn was disconnected from
12954 stream.
12955 (code_motion_process_successors): Do not call after_merge_succs
12956 callback if original expression was not found when traversing any of
12957 the branches.
12958 (code_motion_path_driver): Change return type. Update prototype.
12959 (move_op): Update comment. Add a new parameter (should_move). Update
12960 prototype. Set *should_move based on indication provided by
12961 move_op_orig_expr_found.
12962
12963 2009-01-28 Pat Haugen <pthaugen@us.ibm.com>
12964
12965 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
12966 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
12967 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
12968 * config/rs6000/rs6000.c (rs6000_override_options): Default
12969 avoid-indexed-addresses on for Power6, off for everything else.
12970 (avoiding_indexed_address_p): New function.
12971 (rs6000_legitimize_address): Use it.
12972 (rs6000_legitimate_address): Likewise.
12973 * config/rs6000/rs6000.md (movXX_updateX): Likewise
12974
12975 2009-01-28 Kazu Hirata <kazu@codesourcery.com>
12976
12977 PR tree-optimization/38997
12978 * tree-loop-distribution.c (generate_memset_zero): Use
12979 POINTER_PLUS_EXPR for a pointer addition.
12980
12981 2009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
12982
12983 * config/s390/s390.md (bswap<mode>2): New pattern added.
12984
12985 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
12986
12987 * config/s390/s390.md (*tls_load_31): Added type attribute.
12988
12989 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
12990
12991 * config/s390/s390.md: Fix a few comments.
12992
12993 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
12994
12995 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
12996 (*tm<mode>_full): Fixed z10prop attribute.
12997 (*tst<mode>_extimm): Fixed z10prop attribute.
12998 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
12999 (*tstqiCCT_cconly): Fixed z10prop attribute.
13000 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
13001 (*movsi_larl): Fixed z10prop attribute.
13002 (*movsi_zarch): Fixed z10prop attribute.
13003 (*movsi_eas): Fixed z10prop attribute.
13004 (*movhi): Fixed z10prop attribute.
13005 (*movqi): Fixed z10prop attribute.
13006 (*movstrictqi): Fixed z10prop attribute.
13007 (*mov<mode>): Fixed z10prop attribute.
13008 (*movcc): Fixed z10prop attribute.
13009 (*sethighpartdi_64): Fixed z10prop attribute.
13010 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
13011 (*negdi2_sign_cc): Fixed z10prop attribute.
13012 (*negdi2_sign): Fixed z10prop attribute.
13013 (*absdi2_sign_cc): Fixed z10prop attribute.
13014 (*absdi2_sign): Fixed z10prop attribute.
13015 (*negabsdi2_sign_cc): Fixed z10prop attribute.
13016 (*negabsdi2_sign): Fixed z10prop attribute.
13017 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
13018 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
13019 (doloop_si64): Fixed z10prop attribute.
13020 (doloop_si31): Fixed z10prop attribute.
13021 (doloop_long): Fixed z10prop attribute.
13022 (indirect_jump): Fixed z10prop attribute.
13023 (nop): Fixed z10prop attribute.
13024 (main_base_64): Fixed z10prop attribute.
13025 (reload_base_64): Fixed z10prop attribute.
13026
13027 2009-01-28 Jakub Jelinek <jakub@redhat.com>
13028
13029 PR rtl-optimization/38740
13030 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
13031 if !optimize.
13032 * config/mips/mips.c (mips_reorg): Likewise.
13033
13034 2009-01-28 Richard Guenther <rguenther@suse.de>
13035
13036 PR tree-optimization/38926
13037 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
13038 with the correct value id to a value.
13039 (do_regular_insertion): Use the value number of edoubleprime
13040 for the value number of the expr.
13041
13042 Revert
13043 2008-08-21 Richard Guenther <rguenther@suse.de>
13044
13045 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
13046 a PHI ask VN if it is already available.
13047 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
13048 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
13049
13050 2009-01-28 Jakub Jelinek <jakub@redhat.com>
13051
13052 PR middle-end/38934
13053 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
13054 set to varying whenever max has TREE_OVERFLOW set, similarly
13055 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
13056
13057 2009-01-28 Richard Guenther <rguenther@suse.de>
13058
13059 PR middle-end/38908
13060 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
13061 uninitialized aggregate uses in call arguments.
13062
13063 2009-01-28 Paolo Bonzini <bonzini@gnu.org>
13064
13065 PR tree-optimization/38984
13066 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
13067 the nothing_id variable if -fno-delete-null-pointer-checks.
13068
13069 2009-01-28 Uros Bizjak <ubizjak@gmail.com>
13070
13071 PR target/38988
13072 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
13073 (set_got_offset_rex64): Ditto.
13074
13075 2009-01-27 H.J. Lu <hongjiu.lu@intel.com>
13076
13077 PR target/38941
13078 * doc/extend.texi: Improve local variable with asm reg.
13079
13080 2009-01-27 Adam Nemet <anemet@caviumnetworks.com>
13081
13082 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
13083 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
13084 was not supplied then set warn_packed_bitfield_compat to the
13085 default value of 1.
13086 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
13087 against 1.
13088
13089 2009-01-27 Richard Guenther <rguenther@suse.de>
13090
13091 PR tree-optimization/38503
13092 * cfgexpand.c (expand_gimple_basic_block): Ignore
13093 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
13094 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
13095 variables that cannot have TBAA applied.
13096 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
13097 statements.
13098
13099 2009-01-27 Uros Bizjak <ubizjak@gmail.com>
13100
13101 PR middle-end/38969
13102 * calls.c (initialize_argument_information): Do not wrap complex
13103 arguments in SAVE_EXPR.
13104
13105 2009-01-26 Andreas Tobler <a.tobler@schweiz.org>
13106
13107 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
13108 (INSTALL_LIBGCC): Revert typo commit.
13109
13110 2009-01-26 Richard Guenther <rguenther@suse.de>
13111
13112 PR tree-optimization/38745
13113 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
13114 from special handling.
13115
13116 2009-01-26 Richard Guenther <rguenther@suse.de>
13117
13118 PR tree-optimization/38745
13119 * tree-ssa.c (execute_update_addresses_taken): Do not include
13120 variables that cannot possibly be a register in not_reg_needs.
13121 Do not clear TREE_ADDRESSABLE on vars that may not become
13122 registers.
13123 * tree-ssa.c (update_alias_info_1): Include those in the set
13124 of addressable vars.
13125
13126 2009-01-26 Richard Guenther <rguenther@suse.de>
13127
13128 PR middle-end/38851
13129 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
13130 * tree-ssa-dse.c: Include langhooks.h
13131 (execute_simple_dse): Remove stores with zero size.
13132
13133 2009-01-24 Jakub Jelinek <jakub@redhat.com>
13134
13135 PR c/38957
13136 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
13137 as PLUS_EXPR.
13138
13139 2009-01-24 Julian Brown <julian@codesourcery.com>
13140
13141 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
13142 config/arm/linux-atomic.c.
13143 * config/arm/linux-atomic.c: New.
13144
13145 2009-01-24 Eric Botcazou <ebotcazou@adacore.com>
13146
13147 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
13148 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
13149 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
13150
13151 2009-01-24 H.J. Lu <hongjiu.lu@intel.com>
13152
13153 PR c/38938
13154 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
13155 properly.
13156
13157 2009-01-24 Sebastian Pop <sebastian.pop@amd.com>
13158
13159 PR tree-optimization/38953
13160 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
13161 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
13162 (gloog): Split the exit of the scop when the scop exit is a loop exit.
13163 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
13164 changed the CFG.
13165
13166 2009-01-24 Paul Brook <paul@codesourcery.com>
13167
13168 * config/arm/neon.md (neon_type): Move to arm.md.
13169 (neon_mov<VSTRUCT>): Add neon_type attribute.
13170 * config/arm/arm.md (neon_type): Move to here.
13171 (conds): Add "unconditioal" and use as default for NEON insns.
13172
13173 2009-01-24 Ben Elliston <bje@au.ibm.com>
13174
13175 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
13176 void *' warning from -Wc++-compat.
13177 * Makefile.in (dominance.o-warn): Remove.
13178
13179 2009-01-23 Paolo Bonzini <bonzini@gnu.org>
13180
13181 PR tree-optimization/38932
13182 * fold-const.c (fold_unary_ignore_overflow): New.
13183 * tree.h (fold_unary_ignore_overflow): Declare.
13184 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
13185 * tree-ssa-sccvn.c (visit_reference_op_load,
13186 simplify_unary_expression): Likewise.
13187
13188 2009-01-22 Adam Nemet <anemet@caviumnetworks.com>
13189
13190 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
13191 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
13192 regardless of their type.
13193 * c-common.c (handle_packed_attribute): Don't ignore packed on
13194 bitfields.
13195 * c.opt (Wpacked-bitfield-compat): New warning option.
13196 * stor-layout.c (place_field): Warn if offset of a field changed.
13197 * doc/extend.texi (packed): Mention the ABI change.
13198 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
13199 (Warning Options): Add it to the list.
13200
13201 2009-01-22 H.J. Lu <hongjiu.lu@intel.com>
13202
13203 * c-opts.c (c_common_post_options): Fix a typo in comments.
13204
13205 2009-01-22 Steve Ellcey <sje@cup.hp.com>
13206
13207 PR middle-end/38615
13208 * gimplify.c (gimplify_init_constructor): Fix promotion of const
13209 variables to static.
13210 * doc/invoke.texi (-fmerge-all-constants): Update description.
13211
13212 2009-01-22 Uros Bizjak <ubizjak@gmail.com>
13213
13214 PR target/38931
13215 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
13216 (*movdi_1_rex64): Use type "mmx" for alternative 5.
13217
13218 2009-01-22 Richard Earnshaw <rearnsha@arm.com>
13219
13220 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
13221 a word boundary.
13222 (LOCAL_ALIGNMENT): Similarly.
13223
13224 2009-01-22 Mark Shinwell <shinwell@codesourcery.com>
13225 Joseph Myers <joseph@codesourcery.com>
13226
13227 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
13228 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
13229 * config/arm/arm-tune.md: Regenerate.
13230 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
13231 -march=iwmmxt2.
13232
13233 2009-01-22 Mark Shinwell <shinwell@codesourcery.com>
13234
13235 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
13236 version number to five.
13237
13238 2009-01-22 Dodji Seketeli <dodji@redhat.com>
13239
13240 PR c++/38930
13241 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
13242 * c-common.c (set_underlying_type): Likewise.
13243 (is_typedef_decl ): Likewise
13244 * tree.h: Likewise
13245 (set_underlying_type): Likewise.
13246 (is_typedef_type): Likewise.
13247
13248 2009-01-21 Vladimir Makarov <vmakarov@redhat.com>
13249
13250 PR middle-end/38587
13251 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
13252 crossing setjmps.
13253
13254 2009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
13255
13256 PR bootstrap/37660
13257 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
13258 (LIBGCC_SPEC): Don't define.
13259 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
13260
13261 2009-01-21 Uros Bizjak <ubizjak@gmail.com>
13262
13263 PR rtl-optimization/38879
13264 * alias.c (base_alias_check): Unaligned access via AND address can
13265 alias all surrounding object types except those with sizes equal
13266 or wider than the size of unaligned access.
13267
13268 2009-01-21 Dodji Seketeli <dodji@redhat.com>
13269
13270 PR c++/26693
13271 * c-decl.c (clone_underlying_type): Move this ...
13272 * c-common.c (set_underlying_type): ... here.
13273 Also, make sure the function properly sets TYPE_STUB_DECL() on
13274 the newly created typedef variant type.
13275 (is_typedef_decl ): New entry point.
13276 * tree.h: Added a new member member_types_needing_access_check to
13277 struct tree_decl_non_common.
13278 (set_underlying_type): New entry point.
13279 (is_typedef_type): Likewise.
13280
13281 2009-01-21 Bingfeng Mei <bmei@broadcom.com>
13282
13283 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
13284 Check whether two instructions have memory references that
13285 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
13286 are helper functions for traversing.
13287 * alias.h (insn_alias_sets_confilict_p): New prototypes.
13288 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
13289 not to draw dependency edge for instructions with non-conflicting
13290 alias sets.
13291
13292 2009-01-20 Joseph Myers <joseph@codesourcery.com>
13293
13294 PR other/38758
13295 * longlong.h: Update copyright years. Use soft-fp license notice.
13296 Sync __clz_tab declaration with glibc.
13297
13298 2009-01-20 Steve Ellcey <sje@cup.hp.com>
13299
13300 PR target/30687
13301 * doc/extend.texi (syscall_linkage): New.
13302 (version_id): Modify.
13303
13304 2009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
13305 Richard Guenther <rguenther@suse.de>
13306
13307 PR tree-optimization/38747
13308 PR tree-optimization/38748
13309 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
13310 conversion if the base address is an indirect reference and the
13311 aliasing sets could cause issues.
13312
13313 2009-01-20 Sebastian Pop <sebastian.pop@amd.com>
13314
13315 * common.opt (fgraphite, fgraphite-identity): Add comment for
13316 explaining why these options are not documented.
13317
13318 2009-01-20 Sebastian Pop <sebastian.pop@amd.com>
13319
13320 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
13321 gimple_call_lhs is NULL.
13322
13323 2009-01-20 Paolo Bonzini <bonzini@gnu.org>
13324
13325 PR target/38868
13326 * emit-rtl.c (adjust_address_1): Make sure memref is never
13327 overwritten.
13328
13329 2009-01-20 Ben Elliston <bje@au.ibm.com>
13330
13331 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
13332 const qualifier from arg parameter. Remove unnecessary cast to char *.
13333 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
13334 const qualifier from arg 2.
13335
13336 2009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
13337
13338 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
13339
13340 2009-01-19 Vladimir Makarov <vmakarov@redhat.com>
13341
13342 PR c/38869
13343 * rtl.h (reinit_regs): New prototype.
13344 * regclass.c: Include ira.h.
13345 (reinit_regs): New.
13346 * Makefile.in (regclass.o): Add ira.h.
13347 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
13348
13349 2009-01-18 H.J. Lu <hongjiu.lu@intel.com>
13350
13351 PR target/38736
13352 * c-common.c (handle_aligned_attribute): Use
13353 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
13354 default alignment value.
13355
13356 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
13357
13358 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
13359 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
13360
13361 * doc/extend.texi: Update __attribute__ ((aligned)). Document
13362 __BIGGEST_ALIGNMENT__.
13363
13364 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
13365
13366 2009-01-18 Richard Guenther <rguenther@suse.de>
13367
13368 PR tree-optimization/38819
13369 * tree-flow.h (operation_could_trap_helper_p): Declare.
13370 * tree-eh.c (operation_could_trap_helper_p): Export.
13371 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
13372 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
13373 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
13374 are about to insert a possibly trapping instruction and fail
13375 in this case.
13376
13377 2009-01-18 Andreas Schwab <schwab@suse.de>
13378
13379 * doc/install.texi (Configuration): Remove obsolete paragraph
13380 about use of --with-gnu-ld with --with-gnu-as.
13381
13382 2009-01-18 Kazu Hirata <kazu@codesourcery.com>
13383
13384 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
13385 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
13386 Follow spelling conventions.
13387
13388 2009-01-18 Ben Elliston <bje@au.ibm.com>
13389
13390 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
13391 C++ warning about implicit conversion from void * to struct
13392 bitmap_head_def *.
13393 (bitmap_obstack_free): Likewise for bitmap_element *.
13394 * Makefile.in (bitmap.o-warn): Remove.
13395
13396 2009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
13397
13398 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
13399
13400 2009-01-17 Sebastian Pop <sebastian.pop@amd.com>
13401 Tobias Grosser <tobi.grosser@amd.com>
13402
13403 * graphite.c (graphite_trans_scop_block): Do not block single
13404 nested loops.
13405
13406 2009-01-16 Alexandre Oliva <aoliva@redhat.com>
13407
13408 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
13409 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
13410 test with assertion.
13411
13412 2009-01-16 Richard Guenther <rguenther@suse.de>
13413
13414 PR tree-optimization/38835
13415 PR middle-end/36227
13416 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
13417 and INT + PTR -> (INT)(PTR p+ INT) folding.
13418 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
13419
13420 2009-01-16 Adam Nemet <anemet@caviumnetworks.com>
13421
13422 PR target/38554
13423 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
13424 the subreg from a lowpart subreg if it is also casting the value.
13425
13426 2009-01-16 Sebastian Pop <sebastian.pop@amd.com>
13427 Tobias Grosser <tobi.grosser@amd.com>
13428
13429 * graphite.c (compare_prefix_loops): New.
13430 (build_scop_canonical_schedules): Rewritten.
13431 (graphite_transform_loops): Move build_scop_canonical_schedules
13432 after build_scop_iteration_domain.
13433
13434 2009-01-16 Sebastian Pop <sebastian.pop@amd.com>
13435 Tobias Grosser <tobi.grosser@amd.com>
13436
13437 * graphite.c (add_conditions_to_domain): Add the loops to
13438 the dimension of the iteration domain. Do copy the domain
13439 only when it exists.
13440 (build_scop_conditions_1): Do not call add_conditions_to_domain.
13441 (add_conditions_to_constraints): New.
13442 (can_generate_code_stmt, can_generate_code): Removed.
13443 (gloog): Do not call can_generate_code.
13444 (graphite_transform_loops): Call add_conditions_to_constraints
13445 after building the iteration domain.
13446
13447 2009-01-16 Jakub Jelinek <jakub@redhat.com>
13448
13449 PR tree-optimization/38789
13450 * tree-ssa-threadedge.c
13451 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
13452 __builtin_constant_p.
13453
13454 2009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
13455
13456 * dce.c (delete_unmarked_insns): Reversed the order that insns are
13457 examined before deleting them.
13458
13459 2009-01-16 Richard Earnshaw <rearnsha@arm.com>
13460
13461 * function.c (aggregate_value_p): Correctly extract the function
13462 type from CALL_EXPR_FN lookup.
13463
13464 2009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
13465
13466 * config/picochip/picochip.c (picochip_override_options): Revert
13467 CFI asm flag disable commited previously.
13468
13469 2009-01-15 Sebastian Pop <sebastian.pop@amd.com>
13470 Tobias Grosser <tobi.grosser@amd.com>
13471 Jan Sjodin <jan.sjodin@amd.com>
13472
13473 * graphite.c (scan_tree_for_params): On substractions negate
13474 all the coefficients of the term.
13475 (clast_to_gcc_expression_red): New. Handle reduction expressions
13476 of more than two operands.
13477 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
13478 (get_vdef_before_scop): Handle also the case of default definitions.
13479
13480 2009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
13481
13482 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
13483 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
13484 Also use them when walking CALL_INSN_FUNCTION_USAGE.
13485
13486 2009-01-15 H.J. Lu <hongjiu.lu@intel.com>
13487 Joey Ye <joey.ye@intel.com>
13488
13489 PR middle-end/37843
13490 * cfgexpand.c (expand_stack_alignment): Don't update stack
13491 boundary nor check incoming stack boundary here.
13492 (gimple_expand_cfg): Update stack boundary and check incoming
13493 stack boundary here.
13494
13495 2009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
13496
13497 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
13498
13499 2009-01-14 Jakub Jelinek <jakub@redhat.com>
13500
13501 PR rtl-optimization/38245
13502 * calls.c (expand_call): Add stack arguments to
13503 CALL_INSN_FUNCTION_USAGE even for pure calls (when
13504 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
13505 in regs and partially in memory or BLKmode arguments.
13506 (emit_library_call_value_1): Add stack arguments to
13507 CALL_INSN_FUNCTION_USAGE even for pure calls (when
13508 ACCUMULATE_OUTGOING_ARGS).
13509 * dce.c: Include tm_p.h.
13510 (find_call_stack_args): New function.
13511 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
13512 argument.
13513 (mark_insn): Call find_call_stack_args for CALL_Ps.
13514 (prescan_insns_for_dce): Walk insns backwards in bb rather than
13515 forwards. Allocate and free arg_stores bitmap if needed, pass it
13516 down to deletable_insn_p, don't mark stores set in arg_stores
13517 bitmap, clear the bitmap at the beginning of each bb.
13518 * Makefile.in (dce.o): Depend on $(TM_P_H).
13519
13520 2009-01-14 Michael Meissner <gnu@the-meissners.org>
13521
13522 PR target/22599
13523 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
13524 to make sure the insn is a conditional test (bug 22599). Reformat a
13525 few long lines.
13526
13527 2009-01-14 Sebastian Pop <sebastian.pop@amd.com>
13528
13529 PR middle-end/38431
13530 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
13531 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
13532 (gloog): Do not call cleanup_tree_cfg.
13533 (graphite_transform_loops): Call cleanup_tree_cfg after all
13534 scops have been code generated.
13535
13536 2009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
13537 * doc/gty.texi (Invoking the garbage collector): Added new node
13538 and section documenting ggc_collect.
13539
13540 2009-01-14 Richard Guenther <rguenther@suse.de>
13541
13542 PR tree-optimization/38826
13543 PR middle-end/38477
13544 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
13545 initialization notes only if we actually emitted a warning.
13546 (intra_create_variable_infos): Add constraints for a result decl
13547 that is passed by hidden reference.
13548 (build_pred_graph): Mark all related variables non-direct on
13549 address-taking.
13550
13551 2009-01-14 Nick Clifton <nickc@redhat.com>
13552
13553 * ira-conflicts.c: Include addresses.h for the definition of
13554 base_reg_class.
13555 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
13556 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
13557
13558 2009-01-13 Vladimir Makarov <vmakarov@redhat.com>
13559
13560 PR target/38811
13561 * Makefile.in (ira-lives.o): Add except.h.
13562
13563 * ira-lives.c: Include except.h.
13564 (process_bb_node_lives): Process can_throw_internal.
13565
13566 2009-01-13 Jakub Jelinek <jakub@redhat.com>
13567
13568 PR rtl-optimization/38774
13569 * combine.c (simplify_set): When undoing cc_use change, don't do
13570 PUT_CODE on the newly created comparison, but instead put back the
13571 old comparison.
13572
13573 2009-01-13 Joseph Myers <joseph@codesourcery.com>
13574
13575 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
13576 values. Remove duplicate arm8 entry.
13577
13578 2009-01-13 Sebastian Pop <sebastian.pop@amd.com>
13579
13580 PR tree-optimization/38786
13581 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
13582 the SSA_NAME case of expand_scalar_variables_expr.
13583 Set the type of an expression to the type of its assign statement.
13584 (expand_scalar_variables_expr): Also gather the scalar computation
13585 used to index the memory access. Do not pass loop_p.
13586 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
13587 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
13588 the gimple_stmt_iterator where it inserts new code.
13589 Do not pass loop_p.
13590 (copy_bb_and_scalar_dependences): Do not pass loop_p.
13591 (translate_clast): Update call to copy_bb_and_scalar_dependences.
13592
13593 2009-01-13 Sebastian Pop <sebastian.pop@amd.com>
13594
13595 * graphite.h (debug_value): Removed.
13596 * graphite.c (debug_value): Removed.
13597
13598 2009-01-13 Richard Earnshaw <rearnsha@arm.com>
13599
13600 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
13601 ldrd/strd with two 32-bit instructions.
13602
13603 2009-01-13 Richard Earnshaw <rearnsha@arm.com>
13604
13605 * config/arm/arm.c (struct processors): Pass for speed down into
13606 cost helper functions.
13607 (const_ok_for_op): Handle COMPARE and inequality nodes.
13608 (arm_rtx_costs_1): Rewrite.
13609 (arm_size_rtx_costs): Update prototype.
13610 (arm_rtx_costs): Pass speed down to helper functions.
13611 (arm_slowmul_rtx_costs): Rework cost calculations.
13612 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
13613 (arm_9e_rtx_costs): Likewise.
13614
13615 2009-01-13 Uros Bizjak <ubizjak@gmail.com>
13616
13617 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
13618 relocations of local symbols wider than UNITS_PER_WORD are not valid.
13619 (alpha_legitimize_address): Do not split local symbols wider than
13620 UNITS_PER_WORD into HIGH/LO_SUM parts.
13621
13622 2009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
13623
13624 PR bootstrap/38580
13625 * gcc.c (process_command): Replace call to execvp with calls
13626 to pex_one and exit.
13627
13628 2009-01-03 Anatoly Sokolov <aesok@post.ru>
13629
13630 PR target/29141
13631 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
13632 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
13633 variant for devices with 3-byte PC.
13634 (__tablejump_elpm__): New.
13635
13636 2009-01-12 Jakub Jelinek <jakub@redhat.com>
13637
13638 PR c/32041
13639 * c-parser.c (c_parser_postfix_expression): Allow `->' in
13640 offsetof member-designator, handle it as `[0].'.
13641
13642 2009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13643
13644 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
13645 function when not using named sections on targets with named sections
13646 if branch distance is less than 262132.
13647
13648 2009-01-12 Richard Earnshaw <rearnsha@arm.com>
13649
13650 * combine.c (combine_instructions): Recompute
13651 optimize_this_for_speed_p for each BB in the main combine loop.
13652
13653 2009-01-12 Tomas Bily <tbily@suse.cz>
13654
13655 PR middlend/38385
13656 * tree-loop-distribution.c (prop_phis): New function.
13657 (generate_builtin): Call prop_phis.
13658 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
13659
13660 2009-01-12 Jakub Jelinek <jakub@redhat.com>
13661
13662 PR tree-optimization/38807
13663 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
13664 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
13665
13666 2009-01-11 Adam Nemet <anemet@caviumnetworks.com>
13667
13668 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
13669 subreg of op0 to the original op0.
13670
13671 2009-01-11 Laurent GUERBY <laurent@guerby.net>
13672
13673 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
13674
13675 2009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
13676
13677 PR debug/7055
13678 * mips-tfile.c (parse_def): Fix parsing of def strings
13679 starting with digits.
13680
13681 2009-01-10 Jakub Jelinek <jakub@redhat.com>
13682
13683 PR target/38695
13684 * config/arm/arm.c (arm_is_long_call_p): Don't call
13685 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
13686
13687 2009-01-09 Steven Bosscher <steven@gcc.gnu.org>
13688
13689 * regrename.c (regrename_optimize): Fix dumping.
13690 (find_oldest_value_reg): Preserve REG_POINTER.
13691 (copy_hardreg_forward_1): Likewise.
13692
13693 2009-01-09 Diego Novillo <dnovillo@google.com>
13694
13695 * gimple.h (struct gimple_statement_base) <uid>: Document
13696 the restrictions on its use.
13697 (gimple_uid): Tidy.
13698 (gimple_set_uid): Tidy.
13699
13700 2009-01-09 Jakub Jelinek <jakub@redhat.com>
13701
13702 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
13703 zero guard even if align_bytes != 0 and count is smaller than
13704 size_needed.
13705
13706 2009-01-09 Vladimir Makarov <vmakarov@redhat.com>
13707
13708 PR rtl-optimization/38495
13709 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
13710 (add_range_and_copies_from_move_list): Print all added ranges.
13711 Add ranges to memory optimized destination.
13712
13713 2009-01-09 Jakub Jelinek <jakub@redhat.com>
13714
13715 PR target/38686
13716 PR target/38708
13717 * config/i386/i386.c (override_options): Reject
13718 -mstringop-strategy=rep_8byte with -m32.
13719 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
13720 to 1. Do count comparison against epilogue_size_needed at compile
13721 time even when count_exp was constant forced into register. For
13722 size_needed don't jump to epilogue, instead just avoid aligning
13723 and invoke the body algorithm. If need_zero_guard, add zero guard
13724 even if count is non-zero, but smaller than size_needed + number of
13725 bytes that could be stored for alignment.
13726 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
13727 to 1. If need_zero_guard, add zero guard even if count is non-zero,
13728 but smaller than size_needed + number of bytes that could be stored
13729 for alignment. Compare size_needed with epilogue_size_needed instead
13730 of desired_align - align, don't adjust size_needed, pass
13731 epilogue_size_needed to the epilogue expanders.
13732
13733 PR c/35742
13734 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
13735
13736 2009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13737
13738 * pa.c (last_address): Change to unsigned.
13739 (update_total_code_bytes): Change argument to unsigned. Don't
13740 check if insn addresses are set.
13741 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
13742 addresses are not set.
13743 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
13744
13745 2009-01-09 Nick Clifton <nickc@redhat.com>
13746
13747 * config/sh/symbian.c: Replace uses of DECL_INLINE with
13748 DECL_DECLARED_INLINE_P.
13749
13750 2009-01-09 Jakub Jelinek <jakub@redhat.com>
13751
13752 PR middle-end/38347
13753 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
13754 GET_MODE (op0) in operand_subword_force calls.
13755
13756 PR middle-end/38771
13757 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
13758 fold_convert arg0 operands to TREE_TYPE (op0) first.
13759
13760 2009-01-08 Vladimir Makarov <vmakarov@redhat.com>
13761
13762 * params.def (ira-max-conflict-table-size): Decrease default value
13763 to 1000.
13764
13765 2009-01-08 Jakub Jelinek <jakub@redhat.com>
13766
13767 PR tree-optimization/37031
13768 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
13769 on parameter_set.
13770 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
13771 allocate it using gc instead of heap, use VEC_quick_push instead of
13772 VEC_safe_push.
13773 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
13774 instead of heap, use VEC_quick_push instead of VEC_safe_push.
13775 * tree-data-ref.h (struct access_matrix): Change matrix to gc
13776 allocated vector from heap allocated.
13777 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
13778 * tree-loop-linear.c (linear_transform_loops): Allocate nest
13779 vector only after perfect_loop_nest_depth call.
13780
13781 2009-01-08 Sebastian Pop <sebastian.pop@amd.com>
13782 Jan Sjodin <jan.sjodin@amd.com>
13783
13784 PR tree-optimization/38559
13785 * graphite.c (debug_value, copy_constraint,
13786 swap_constraint_variables, scale_constraint_variable, ): New.
13787 (get_lower_bound, get_upper_bound): Removed.
13788 (graphite_trans_bb_strip_mine): Clean up this code that works
13789 only for constant number of iterations. Fully copy upper and
13790 lower bound constraints, not only the constant part of them.
13791 * graphite.h (debug_value): Declared.
13792
13793 2009-01-08 Ira Rosen <irar@il.ibm.com>
13794
13795 PR tree-optimization/37194
13796 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
13797 Don't add the cost of cost model guard in prologue to scalar
13798 outside cost in case of known number of iterations.
13799
13800 2009-01-07 Nathan Froyd <froydnj@codesourcery.com>
13801 Alan Modra <amodra@bigpond.net.au>
13802
13803 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
13804 non-word-aligned REG+CONST addressing.
13805
13806 2009-01-07 Uros Bizjak <ubizjak@gmail.com>
13807
13808 PR target/38706
13809 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
13810 free_after_compilation when outputting a thunk.
13811 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
13812 Do not call free_after_compilation here.
13813
13814 2009-01-07 Uros Bizjak <ubizjak@gmail.com>
13815
13816 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
13817 (ix86_valid_target_attribute_inner_p): Ditto.
13818
13819 2009-01-07 Jan Sjodin <jan.sjodin@amd.com>
13820
13821 PR tree-optimization/38492
13822 PR tree-optimization/38498
13823 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
13824 * tree-chrec.h (scev_is_linear_expression): Declared.
13825 * graphite.c (graphite_cannot_represent_loop_niter): New.
13826 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
13827 (graphite_loop_normal_form): Use gcc_assert.
13828 (scan_tree_for_params): Use CASE_CONVERT.
13829 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
13830 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
13831 Use gcc_assert. Discard scops that contain unhandled cases.
13832 (build_scop_conditions): Return a boolean status for unhandled cases.
13833 (strip_mine_profitable_p): Print the loop number, not its depth.
13834 (is_interchange_valid): Pass the depth of the loop nest, don't
13835 recompute it wrongly.
13836 (graphite_trans_bb_block): Same.
13837 (graphite_trans_bb_block): Print tentative of loop blocking.
13838 (graphite_trans_scop_block): Do not print that the loop has been
13839 blocked.
13840 (graphite_transform_loops): Do not handle scops that contain condition
13841 scalar phi nodes.
13842
13843 2009-01-07 H.J. Lu <hongjiu.lu@intel.com>
13844
13845 AVX Programming Reference (December, 2008)
13846 * config/i386/avxintrin.h (_mm256_stream_si256): New.
13847 (_mm256_stream_pd): Likewise.
13848 (_mm256_stream_ps): Likewise.
13849
13850 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
13851 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
13852 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
13853 (bdesc_special_args): Add __builtin_ia32_movntdq256,
13854 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
13855 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
13856 (ix86_expand_special_args_builtin): Likewise.
13857
13858 * config/i386/sse.md (AVXMODEDI): New.
13859 (avx_movnt<mode>): Likewise.
13860 (avx_movnt<mode>): Likewise.
13861 (<sse>_movnt<mode>): Remove AVX support.
13862 (sse2_movntv2di): Likewise.
13863
13864 2009-01-07 Richard Guenther <rguenther@suse.de>
13865
13866 PR middle-end/38751
13867 * fold-const.c (extract_muldiv): Remove obsolete comment.
13868 (fold_plusminus_mult_expr): Undo MINUS_EXPR
13869 to PLUS_EXPR canonicalization for the canonicalization.
13870
13871 2009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
13872
13873 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
13874 hosted cross-compilers generating less efficient code.
13875
13876 2009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
13877
13878 * function.h (rtl_data): Add a dbr_scheduled_p field.
13879 * reorg.c (dbr_schedule): Set it.
13880 (gate_handle_delay_slots): Check it.
13881 * config/mips/mips.c (mips_base_delayed_branch): Delete.
13882 (mips_reorg): Check flag_delayed_branch instead of
13883 mips_base_delayed_branch.
13884 (mips_override_options): Don't set mips_base_delayed_branch
13885 or flag_delayed_branch.
13886
13887 2009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
13888
13889 PR rtl-optimization/38426.
13890 * ira.c (ira): Set current_function_is_leaf earlier.
13891
13892 2009-01-06 Jakub Jelinek <jakub@redhat.com>
13893
13894 PR rtl-optimization/38722
13895 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
13896 too early, only set a flag and modify after last possible
13897 undo_all point.
13898
13899 2009-01-06 Janis Johnson <janis187@us.ibm.com>
13900
13901 PR c/34252
13902 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
13903 * real.c (decimal_single_format): Correct values of emin and emax.
13904 (decimal_double_format): Ditto.
13905 (decimal_quad_format): Ditto.
13906 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
13907 computation of DECnn_MIN and DECnn_MAX for corrected values of
13908 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
13909 __DECnn_MIN__, and adjust its computation for the corrected value
13910 of emin.
13911
13912 2009-01-06 Jan Hubicka <jh@suse.cz>
13913
13914 PR target/38744
13915 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
13916
13917 2009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
13918
13919 * doc/contrib.texi (Contributors): Slightly adjust the end note.
13920 Add Robert Clark to the list of testers.
13921
13922 2009-01-06 Jan Hubicka <jh@suse.cz>
13923 Kai Tietz <kai.tietz@onevision.com>
13924
13925 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
13926 * config/i386/i386.c (ix86_expand_call): Add clobbers.
13927
13928 2009-01-06 Jan Hubicka <jh@suse.cz>
13929 Kai Tietz <kai.tietz@onevision.com>
13930
13931 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
13932 for w64 ABI.
13933 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
13934 (ix86_nsaved_regs): Count only general purpose regs.
13935 (ix86_nsaved_sseregs): New.
13936 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
13937 to 16 for w64; compute padding and size of sse reg save area.
13938 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
13939 general purpose regs.
13940 (ix86_emit_save_sse_regs_using_mov): New.
13941 (ix86_expand_prologue): Save SSE regs if needed.
13942 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
13943 (ix86_emit_restore_sse_regs_using_mov): New.
13944 (ix86_expand_epilogue): Save SSE regs if needed.
13945
13946 2009-01-06 Jan Hubicka <jh@suse.cz>
13947 Kai Tietz <kai.tietz@onevision.com>
13948
13949 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
13950 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
13951 functions when accumulate outgoing args is off.
13952
13953 2009-01-06 H.J. Lu <hongjiu.lu@intel.com>
13954
13955 PR bootstrap/38742
13956 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
13957 before using pseudos_have_intersected_live_ranges_p.
13958
13959 * ira-int.h (ira_assert): Always define.
13960
13961 2009-01-06 H.J. Lu <hongjiu.lu@intel.com>
13962
13963 AVX Programming Reference (December, 2008)
13964 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
13965 (_mm256_permute2_pd): Likewise.
13966 (_mm_permute2_ps): Likewise.
13967 (_mm256_permute2_ps): Likewise.
13968 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
13969 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
13970
13971 * config/i386/i386.c (ix86_builtins): Remove
13972 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
13973 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
13974 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
13975 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
13976 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
13977 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
13978 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
13979 __builtin_ia32_vpermil2ps256.
13980 (ix86_init_mmx_sse_builtins): Updated.
13981 (ix86_expand_args_builtin): Likewise.
13982
13983 2009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13984
13985 * pa.c (output_call): Relocate non-jump insns in the delay slot of
13986 long absolute calls when generating PA 2.0 code.
13987
13988 2009-01-05 Vladimir Makarov <vmakarov@redhat.com>
13989
13990 PR rtl-optimization/38583
13991 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
13992
13993 * params.def (ira-max-conflict-table-size): New.
13994
13995 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
13996
13997 * ira.h (ira_conflicts_p): New external definition.
13998
13999 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
14000 table. Report this. Return result of building.
14001 (ira_build_conflicts): Use ira_conflicts_p. Check result of
14002 building conflict table.
14003
14004 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
14005 (ira_color): Use ira_conflicts_p.
14006
14007 * global.c: Include ira.h.
14008 (pseudo_for_reload_consideration_p, build_insn_chain): Use
14009 ira_conflicts_p.
14010
14011 * Makefile.in (global.o): Add ira.h.
14012
14013 * ira-build.c (mark_all_loops_for_removal,
14014 propagate_some_info_from_allocno): New.
14015 (remove_unnecessary_allocnos): Call
14016 propagate_some_info_from_allocno.
14017 (remove_low_level_allocnos): New.
14018 (remove_unnecessary_regions): Add parameter. Call
14019 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
14020 parameter to remove_unnecessary_regions.
14021 (ira_build): Remove all regions but root if the conflict table was
14022 not built. Update conflict hard regs for allocnos crossing calls.
14023
14024 * ira.c (ira_conflicts_p): New global.
14025 (ira): Define and use ira_conflicts_p.
14026
14027 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
14028 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
14029 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
14030
14031 2009-01-06 Ben Elliston <bje@au.ibm.com>
14032
14033 * gengtype-lex.l (YY_NO_INPUT): Define.
14034
14035 2009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
14036
14037 PR c/34911
14038 * c-common.c (handle_vector_size_attribute): Also reject
14039 BOOLEAN_TYPE types.
14040
14041 2009-01-05 Sebastian Pop <sebastian.pop@amd.com>
14042
14043 PR tree-optimization/38492
14044 * graphite.c (rename_map_elt, debug_rename_elt,
14045 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
14046 rename_map_elt_info, eq_rename_map_elts,
14047 get_new_name_from_old_name, bb_in_sese_p): Moved around.
14048 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
14049 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
14050 (sese_build_livein_liveouts): New.
14051 (new_sese, free_sese): New.
14052 (new_scop): Call new_sese.
14053 (free_scop): Call free_sese.
14054 (rename_variables_from_edge, rename_phis_end_scop): Removed.
14055 (register_old_new_names): Renamed register_old_and_new_names.
14056 (register_scop_liveout_renames, add_loop_exit_phis,
14057 insert_loop_close_phis, struct igp,
14058 default_liveout_before_guard, add_guard_exit_phis,
14059 insert_guard_phis, copy_renames): New.
14060 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
14061 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
14062 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
14063 (scop_adjust_phis_for_liveouts): New.
14064 (gloog): Call scop_adjust_phis_for_liveouts.
14065
14066 * graphite.h (struct sese): Documented. Added fields liveout,
14067 num_ver and livein.
14068 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
14069 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
14070 (struct scop): Added field liveout_renames.
14071 (SCOP_LIVEOUT_RENAMES): New.
14072
14073 2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
14074
14075 PR tree-optimization/38510
14076 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
14077 (translate_clast): Call recompute_all_dominators before
14078 graphite_verify.
14079 (gloog): Call recompute_all_dominators before graphite_verify.
14080
14081 2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
14082 Jan Sjodin <jan.sjodin@amd.com>
14083
14084 PR tree-optimization/38500
14085 * graphite.c (create_sese_edges): Call fix_loop_structure after
14086 splitting blocks.
14087
14088 2009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
14089
14090 * config.gcc: Add m32r*-*-rtems*.
14091 * config/m32r/rtems.h: New file.
14092
14093 2009-01-05 Ben Elliston <bje@au.ibm.com>
14094
14095 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
14096 (.po.pox): Likewise.
14097 (po/gcc.pot): Likewise.
14098
14099 2009-01-04 David S. Miller <davem@davemloft.net>
14100
14101 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
14102 (STARTING_FRAME_OFFSET): Always set to zero.
14103
14104 2009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
14105
14106 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
14107 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
14108 fixed-point types, and vectors of the same.
14109
14110 2009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
14111
14112 * config/mips/sync.md (*mb_barrier): Rename to...
14113 (*memory_barrier): ...this.
14114
14115 2009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
14116
14117 * doc/extend.texi (Function Attributes): Move @cindex after @item
14118 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
14119 and put in alphabetical order. Fix 'target' name and put in order.
14120 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
14121 typos.
14122
14123 2009-01-04 Uros Bizjak <ubizjak@gmail.com>
14124
14125 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
14126 (memory_barrier): Expand as unspec instead of unspec_volatile.
14127 Remove mem:BLK from insn operands. Use Pmode scratch register.
14128 (*memory_barrier): Define as unspec instead of unspec_volatile.
14129 Use (match_dup 0) as input operand.
14130
14131 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
14132 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
14133 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
14134 scratch register. Remove operand 1.
14135 (*stbar): Define as unspec instead of unspec_volatile.
14136 Use (match_dup 0) as input operand, remove (const_int 8).
14137 (*membar): Define as unspec instead of unspec_volatile.
14138 Use (match_dup 0) as input operand, remove input operand 2.
14139
14140 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
14141 (memory_barrier): Expand as unspec instead of unspec_volatile.
14142 Remove mem:BLK from insn operands. Use Pmode scratch register.
14143 (*memory_barrier): Define as unspec instead of unspec_volatile.
14144 Use (match_dup 0) as input operand.
14145
14146 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
14147 Remove mem:BLK from insn operands. Use Pmode scratch register.
14148 Set volatile flag on operand 0.
14149 (*memory_barrier): New insn pattern.
14150
14151 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
14152 insn operands.
14153 (*memory_barrier): Use (match_dup 0) as input operand.
14154
14155 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
14156 Remove mem:BLK from insn operands. Use Pmode scratch register.
14157 Set volatile flag on operand 0.
14158 (*mb_internal): New insn pattern.
14159
14160 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
14161
14162 2009-01-04 Steven Bosscher <steven@gcc.gnu.org>
14163
14164 PR middle-end/38586
14165 * function.c (struct temp_slot): Move to the section of the file
14166 that deals with temp slots. Remove field 'address'.
14167 (temp_slot_address_table): New hash table of address -> temp slot.
14168 (struct temp_slot_address_entry): New struct, items for the table.
14169 (temp_slot_address_compute_hash, temp_slot_address_hash,
14170 temp_slot_address_eq, insert_temp_slot_address): Support functions
14171 for the new table.
14172 (find_temp_slot_from_address): Rewrite to use the new hash table.
14173 (remove_unused_temp_slot_addresses): Remove addresses of temp
14174 slots that have been made available.
14175 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
14176 worker function for remove_unused_temp_slot_addresses.
14177 (assign_stack_temp_for_type): Don't clear the temp slot address list.
14178 Add the temp slot address to the address -> temp slot map.
14179 (update_temp_slot_address): Update via insert_temp_slot_address.
14180 (free_temp_slots): Call remove_unused_temp_slot_addresses.
14181 (pop_temp_slots): Likewise.
14182 (init_temp_slots): Allocate the address -> temp slot map, or empty
14183 the map if it is already allocated.
14184 (prepare_function_start): Initialize temp slot processing.
14185
14186 2009-01-04 Steven Bosscher <steven@gcc.gnu.org>
14187
14188 PR middle-end/38584
14189 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
14190 Calculate the size of all stack vars assuming no packing of stack
14191 vars will happen, replacing a quadratic algorithm with a linear one.
14192
14193 2009-01-03 Jakub Jelinek <jakub@redhat.com>
14194
14195 PR target/38707
14196 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
14197 can't be used.
14198
14199 2009-01-03 Diego Novillo <dnovillo@google.com>
14200
14201 * doc/contrib.texi: Update contributions.
14202
14203 2009-01-03 Jakub Jelinek <jakub@redhat.com>
14204
14205 PR c++/38705
14206 * builtins.c (fold_builtin_memory_op): Give up if either operand
14207 is volatile. Set srctype or desttype to non-qualified version
14208 of the other type.
14209
14210 PR c/38700
14211 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
14212 and FUNCTION_DECLs.
14213
14214 2009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
14215
14216 PR rtl-optimization/35805
14217 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
14218 problem if fast dce is able to remove any instructions.
14219 * dce.c (dce_process_block): Fix dump message.
14220
14221 2009-01-02 Mark Mitchell <mark@codesourcery.com>
14222
14223 PR 33649
14224 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
14225
14226 2009-01-02 Jakub Jelinek <jakub@redhat.com>
14227
14228 PR middle-end/38690
14229 * tree-flow.h (op_code_prio, op_prio): New prototypes.
14230 * tree-pretty-print.c (op_code_prio): New function.
14231 (op_prio): No longer static. Use op_code_prio.
14232 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
14233 Use op_prio and op_code_prio to determine if () should be
14234 printed around operand(s) or not.
14235
14236 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
14237 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
14238 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
14239 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
14240 pp_character instead of pp_string for single letter printing.
14241
14242 2009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
14243
14244 * doc/extend.texi: Fix '#pragma GCC option' typo.
14245
14246 2009-01-02 Richard Guenther <rguenther@suse.de>
14247
14248 * doc/install.texi (--enable-checking): Mention different
14249 default for stage1.
14250 (--enable-stage1-checking): Document.
14251
14252 2009-01-01 Andrew Pinski <pinskia@gmail.com>
14253
14254 PR middle-end/30142
14255 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
14256 case to be an error.
14257
14258 2009-01-02 Ben Elliston <bje@au.ibm.com>
14259
14260 * config/fp-bit.h (pack_d): Constify argument.
14261 * config/fp-bit.c (makenan): Constify return type. Remove casts.
14262 (isnan): Constify argument.
14263 (isinf): Likewise.
14264 (iszero): Likewise.
14265 (pack_d): Likewise.
14266 (_fpadd_parts): Constify return type.
14267 (_fpmul_parts): Likewise.
14268 (_fpdiv_parts): Likewise.
14269
14270 2009-01-01 Jakub Jelinek <jakub@redhat.com>
14271
14272 PR c/36489
14273 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
14274 warn about overwriting initializer with side-effects or
14275 -Woverride-init if !IMPLICIT.
14276 (output_init_element): Likewise. Pass IMPLICIT down to
14277 add_pending_init.
14278 (process_init_element): Add IMPLICIT argument. Pass it down
14279 to output_init_element.
14280 (push_init_element, pop_init_level, set_designator): Adjust
14281 process_init_element callers.
14282 (set_nonincremental_init, set_nonincremental_init_from_string):
14283 Adjust add_pending_init callers.
14284 (output_pending_init_elements): Adjust output_init_element callers.
14285 * c-tree.h (process_init_element): Adjust prototype.
14286 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
14287 process_init_element callers.
14288
14289 \f
14290 Copyright (C) 2009 Free Software Foundation, Inc.
14291
14292 Copying and distribution of this file, with or without modification,
14293 are permitted in any medium without royalty provided the copyright
14294 notice and this notice are preserved.