]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
decl.c (gnat_to_gnu_entity): When adjusting the discriminant nodes in an extension...
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
2f2c62a0
RG
12009-06-03 Richard Guenther <rguenther@suse.de>
2
3 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
4 consistently.
5
d6ced3b7
SZ
62009-06-03 Shujing Zhao <pearly.zhao@oracle.com>
7
8 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
9 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
10 JUMP_TABLE_DATA_P where applicable.
11 * config/sh/sh.c: Ditto.
12 * config/sh/sh.h: Ditto.
13 * config/sh/sh.md: Ditto.
14 * config/sh/symbian.c: Ditto.
15
f3afc8a7
UB
162009-06-03 Uros Bizjak <ubizjak@gmail.com>
17
18 * config/i386/driver-i386.c (describe_cache): Optimize
19 concatenation of strings. Use snprintf instead of sprintf.
20 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native
21 target when not compiling with GCC.
22
1964788a
KK
232009-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
24
25 * config/sh/sh.c: Revert last change.
26 (sh_expand_epilogue): Emit a blockage insn before the frame
27 pointer adjustment unconditionally.
28
8633c315
RS
292009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
30
31 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
32 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
33 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
34 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
35 to COLLECT_GCC_OPTIONS.
36
781a1758
RS
372009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
38
39 * collect2.c (target_system_root): New variable.
40 (main): Handle --sysroot=.
41 (ignore_library): Strip the sysroot from the library path.
42
dfb636dc
RS
432009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
44
45 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
46 (collect2.o): Depend on collect2-aix.h.
47 (collect2-aix.o): New rule.
48 * collect2-aix.h: New file.
49 * collect2-aix.c: Likewise.
50 * collect2.c: Include collect2-aix.h. Don't undefine
51 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
52 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
53 Use TARGET_AIX_VERSION instead of _AIX51.
54 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
55 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
56 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
57 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
58 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
59
51136ae8
RS
602009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
61
62 * collect2.c (ignore_library): Avoid premature post-increment
63 and null deference.
64
7f142d33
RS
652009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
66
67 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
68 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
69 !CROSS_DIRECTORY_STRUCTURE alternative and use it for
70 CROSS_DIRECTORY_STRUCTURE too.
71 (LINK_LIBG_SPEC): Likewise.
72 (LIB_SPEC): Add %R to sysroot paths.
73 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
74 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
75 * config/rs6000/aix51.h: As for aix43.h.
76 * config/rs6000/aix52.h: Likewise.
77 * config/rs6000/aix53.h: Likewise.
78 * config/rs6000/aix61.h: Likewise.
79 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
80 to the beginning of sysroot paths.
81
9e74b7d2
AO
822009-06-02 Alexandre Oliva <aoliva@redhat.com>
83
84 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
85 INSN_LISTs that are out of the REG_NOTE range.
86
a9f6ecee
AO
872009-06-02 Alexandre Oliva <aoliva@redhat.com>
88
89 * loop-unroll.c (struct iv_to_split): Add pointer to next.
90 (struct var_to_expand): Likewise.
91 (struct opt_info): Add head and tail for linked lists of the above.
92 (analyze_insn_to_expand_var): Initialize next.
93 (analyze_iv_to_split_insn): Likewise.
94 (analyze_insns_in_loop): Create linked lists.
95 (allocate_basic_variable): Simplify for use without hash table.
96 (insert_var_expansion_initialization): Likewise, make it type-safer.
97 (combine_var_copies_in_loop_exit): Likewise.
98 (apply_opt_in_copies): Walk lists rather than hash tables.
99 (release_var_copies): Simplified and inlined by hand into...
100 (free_opt_info): ... this function.
101
69596c69
RG
1022009-06-02 Richard Guenther <rguenther@suse.de>
103
104 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
105 for field decls.
106
fe8a7779
AO
1072009-06-02 Alexandre Oliva <aoliva@redhat.com>
108
109 * cfgexpand.c (gimple_expand_cfg): Discard the source location
110 only for builtins that are not overridden.
111
1bcca2c5
AO
1122009-06-02 Alexandre Oliva <aoliva@redhat.com>
113
114 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
115 label string.
116
8588f797
AO
1172009-06-02 Alexandre Oliva <aoliva@redhat.com>
118
119 * df-core.c (df_ref_debug): Honor -fdump-noaddr.
120
45f39d78
AO
1212009-06-02 Alexandre Oliva <aoliva@redhat.com>
122
123 * combine.c (move_deaths): Compare LUIDs within the same BB only.
124
2aa7c49b
AO
1252009-06-02 Alexandre Oliva <aoliva@redhat.com>
126
127 * common.opt (fdump-unnumbered-links): New.
128 * doc/invoke.texi (-fdump-unnumbered-links): Document it.
129 * print-rtl.c (flag_dump_unnumbered_links): New.
130 (print_rtx): Test it.
131
55b2829b
RE
1322009-06-02 Richard Earnshaw <rearnsha@arm.com>
133
134 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
135 push/pop multiple to 8-byte alignment.
136
6c0d7021
JJ
1372009-06-01 Jakub Jelinek <jakub@redhat.com>
138
0aa34d44
JJ
139 * config/i386/i386.c (queued_cfa_restores): New static variable.
140 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
141 functions.
142 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
143 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
144 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
145 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
146 note unconditionally.
147 (ix86_emit_restore_regs_using_mov): Likewise.
148 (ix86_emit_restore_sse_regs_using_mov): Likewise.
149 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
150 it through to ix86_emit_restore_reg_using_pop.
151 (ix86_emit_leave): Add RED_OFFSET argument. Call
152 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note
153 instead of adding REG_CFA_OFFSET note unconditionally.
154 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
155 the above functions. Call ix86_add_queued_cfa_restore_notes when
156 needed.
157
158 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
159 force output of the label even for dwarf2out_do_cfi_asm.
160 (add_fde_cfi): If -g2 and above and cfi might change CFA,
161 force creation of CFI label and chain DW_CFA_set_loc jumping to it
162 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
163 caller.
164 (dwarf2out_stack_adjust, dwarf2out_frame_debug,
165 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
166 dwarf2out_cfi_label callers.
167 * tree.h (dwarf2out_cfi_label): Adjust prototype.
168 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
169 Adjust dwarf2out_cfi_label callers.
170 * config/vax/vax.c (vax_output_function_prologue): Likewise.
171
604a6be9
JJ
172 * config/i386/i386.h (struct machine_cfa_state,
173 struct machine_function): Guard with ifndef USED_FOR_TARGET
174 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
175
df0026a7
JJ
176 PR other/40024
177 * emutls.c (__emutls_get_address): Change arr->size to mean number
178 of allocated arr->data entries instead of # of slots + 1.
179
6c0d7021
JJ
180 PR middle-end/40316
181 * recog.c (peep2_reinit_state): New function.
182 (peephole2_init_state): Use it at the end of a basic block and also
183 when seeing a RTX_FRAME_RELATED_P insn.
184
49df2fb8
SE
1852009-06-01 Steve Ellcey <sje@cup.hp.com>
186
187 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
188 fixuns_truncrfdi2): New.
189 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
190 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
191 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
192 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
193 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
194 *recip_approx): Remove.
195 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
196 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
197 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
198 move to div.md.
199 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
200 setf_exp_rf): New.
201
67165eb3
ILT
2022009-06-01 Ian Lance Taylor <iant@google.com>
203
204 * attribs.c (register_attribute): Use CONST_CAST.
205 * collect2.c (main): Use CONST_CAST2.
206 (scan_prog_file): Likewise.
207 * gcc.c (process_command, main): Likewise.
208 * toplev.c (toplev_main): Likewise.
209
210 * c-typeck.c (handle_warn_cast_qual): New static function,
211 partially broken out of build_c_cast.
212 (build_c_cast): Call handle_warn_cast_qual.
213 * doc/invoke.texi (Warning Options): Document new effect of
214 -Wcast-qual.
215
e74fe492
AH
2162009-06-01 Aldy Hernandez <aldyh@redhat.com>
217
218 * diagnostic.c (diagnostic_build_prefix): Always print columns.
219 (diagnostic_report_current_module): Print columns.
220 * common.opt (flag_show_column): Enable by default.
221
7eba2d1f
LM
2222009-06-01 Luis Machado <luisgpm@br.ibm.com>
223
224 * alias.c (find_base_term): Check for NULL term before returning.
225
ee88d9aa
MK
2262009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
227
228 Revert due to PR40320:
ee88d9aa
MK
229 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
230 * calls.c (emit_library_call_value_1): Don't force_operand for move
231 and push insns.
232
324c9b02 2332009-06-01 Olivier Hainque <hainque@adacore.com>
40d0d9e4 234 Eric Botcazou <ebotcazou@adacore.com>
324c9b02
OH
235
236 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
237 to be processed as a bitfield for constructor output purposes.
238 * output.h (initializer_constant_valid_for_bitfield_p): Declare
239 new function.
240 * varasm.c (oc_local_state): New type, output_constructor
241 local state to support communication with helpers.
242 (oc_outer_state): New type, output_constructor outer state of
243 relevance in recursive calls.
244 (output_constructor_array_range): New output_constructor helper,
245 extracted code for an array range element.
246 (output_constructor_regular_field): New output_constructor helper,
247 extracted code for an element that is not a bitfield.
248 (output_constructor_bitfield): New output_constructor helper,
249 extracted code for a bitfield element. Accept an OUTER state
250 argument for recursive processing. Recurse on record or array
251 CONSTRUCTOR values, possibly past noop conversions.
62295314 252 (initializer_constant_valid_for_bitfield_p): New predicate. Whether
324c9b02
OH
253 VALUE is a valid constant-valued expression for use in a static
254 bit-field initializer.
62295314
OH
255 (output_constructor): Rework to use helpers. Accept and honor an
256 OUTER state argument for recursive calls. Return total size. Be
324c9b02
OH
257 prepared for nested constructors initializing bitfields.
258 (output_constant): Feed OUTER in calls to output_constructor.
259
0980d7fe
MK
2602009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
261
262 * calls.c (emit_library_call_value_1): Don't force_operand for move
263 and push insns.
264
29661412
NC
2652009-06-01 Nick Clifton <nickc@redhat.com>
266
267 * doc/invoke.texi (IA-64 Options): Fix typo.
268
e9dbe7bb
IR
2692009-06-01 Ira Rosen <irar@il.ibm.com>
270
271 PR tree-optimization/39129
272 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
273 printed message.
274 (vect_do_peeling_for_loop_bound): Use
275 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
276 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
277 (vect_loop_versioning): Likewise.
278 (vect_create_cond_for_alias_checks): Fix indentation.
279 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
280 macros.
281 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
282 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
283 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
284 "control flow in loop".
285 (vect_estimate_min_profitable_iters): Use
286 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
287 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
288 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
289 (vect_create_data_ref_ptr): Don't mention array dimension in printing.
290 * tree-vect-stmts.c (vectorizable_store): Replace the check that the
291 statement belongs to a group of strided accesses with the exact code
292 check.
293 (vectorizable_load): Likewise.
294 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
295 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
296
5ac69a80
GP
2972009-06-01 Gerald Pfeifer <gerald@pfeifer.com>
298
299 * config/freebsd-stdint.h: New file.
300 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
301 Add freebsd-stdint.h to tm_file.
302
54b2b460
RE
3032009-06-01 Richard Earnshaw <rearnsha@arm.com>
304
305 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
306 (thumb2_extendhidi2): Likewise.
307
a7ca77cf
ILT
3082009-05-31 Ian Lance Taylor <iant@google.com>
309
f3afc8a7 310 * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
c50d84e3
ILT
311
3122009-05-31 Ian Lance Taylor <iant@google.com>
313
f3afc8a7 314 * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
a7ca77cf
ILT
315 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
316 (ipa-reference.o): Depend upon gt-ipa-reference.h.
317
1aec401e
JM
3182009-05-31 Jason Merrill <jason@redhat.com>
319
320 * tree-pretty-print.c (print_call_name): Take the callee, not the
f3afc8a7 321 call itself. Make non-static. Use dump_function_name for functions.
1aec401e
JM
322 (dump_generic_node): Adjust.
323 * diagnostic.h: Declare print_call_name.
324 * gimple-pretty-print.c (dump_gimple_call): Use it.
325
ed7910bb
KK
3262009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
327
328 * config/sh/sh.md (ashldi3_std): New define_expand.
329 (ashldi3): Use it.
330
47ea8d4e
KK
3312009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
332
333 PR target/40313
334 * config/sh/sh.c: Include debug.h.
335 (sh_expand_epilogue): Emit a blockage insn before the frame
336 pointer adjustment also when dwarf2out_do_frame returns true.
337
405e8b49
RE
3382009-05-31 Richard Earnshaw <rearnsha@arm.com>
339
340 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
341 (thumb2_extendqidi2): New pattern.
342
71ece343
IR
3432009-05-31 Ira Rosen <irar@il.ibm.com>
344
345 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
346 mark phis for renaming.
347 * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
348 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
349 Call mark_sym_for_renaming.
350 * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
f3afc8a7
UB
351 * tree-vect-loop.c (vect_transform_loop): Remove
352 vect_memsyms_to_rename initialization and a call to
353 mark_set_for_renaming.
71ece343 354
b3041944
JJ
3552009-05-31 Jakub Jelinek <jakub@redhat.com>
356
357 PR middle-end/40304
358 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
359 frame related even if !set_cfa && style < 0.
360
a1bda0d7
KT
3612009-05-30 Kai Tietz <kai.tietz@onevision.com>
362
363 * config/i386/mingw-tls.c: New file.
f3afc8a7
UB
364 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
365 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
366 defining _WIN32 but not __CYGWIN__.
a1bda0d7 367
acd26225
KG
3682009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
369
370 * configure.ac: Add MPC support.
371
372 * config.in, configure: Regenerate.
373
cd9c1ca8
RH
3742009-05-29 Richard Henderson <rth@redhat.com>
375
376 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
377 NOTE_INSN_BASIC_BLOCK.
378 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
379 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
380 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
381 to be deleted.
382 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
383 add in_use field.
384 (add_cfi): Disable check redefining cfa away from drap.
385 (lookup_cfa_1): Add remember argument; handle remember/restore.
386 (lookup_cfa): Pass remember argument.
387 (cfa_remember): New.
388 (compute_barrier_args_size_1): Remove sibcall check.
389 (dwarf2out_frame_debug_def_cfa): New.
390 (dwarf2out_frame_debug_adjust_cfa): New.
391 (dwarf2out_frame_debug_cfa_offset): New.
392 (dwarf2out_frame_debug_cfa_register): New.
393 (dwarf2out_frame_debug_cfa_restore): New.
394 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
395 (dwarf2out_begin_epilogue): New.
396 (dwarf2out_frame_debug_restore_state): New.
397 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
398 DW_CFA_restore_state.
399 (output_cfi_directive): Likewise.
400 (convert_cfa_to_fb_loc_list): Likewise.
401 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
402 * dwarf2out.h: Update.
403 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
404 (copy_insn_1): Early out for null.
405 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
406 and dwarf2out_frame_debug_restore_state.
407 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
408 (prologue_insn_hash, epilogue_insn_hash): New.
409 (free_after_compilation): Adjust freeing accordingly.
410 (record_insns): Create hash table if needed; push insns into
411 hash instead of array.
412 (maybe_copy_epilogue_insn): New.
413 (contains): Search hash table instead of array.
414 (sibcall_epilogue_contains): Remove.
415 (thread_prologue_and_epilogue_insns): Split eh_return insns
416 and mark them as epilogues.
417 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
418 scanning in terms of basic blocks.
419 * insn-notes.def (CFA_RESTORE_STATE): New.
420 * jump.c (returnjump_p_1): Accept EH_RETURN.
421 (eh_returnjump_p_1, eh_returnjump_p): New.
422 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
423 CFA_REGISTER, CFA_RESTORE): New.
424 * rtl.def (EH_RETURN): New.
425 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
426
427 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
428 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
429
430 * config/i386/i386.c (gen_push): Update cfa state.
431 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
432 add a CFA_ADJUST_CFA note.
433 (ix86_dwarf_handle_frame_unspec): Remove.
434 (ix86_expand_prologue): Update cfa state.
435 (ix86_emit_restore_reg_using_pop): New.
436 (ix86_emit_restore_regs_using_pop): New.
437 (ix86_emit_leave): New.
438 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
439 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
440 * config/i386/i386.h (struct machine_cfa_state): New.
441 (ix86_cfa_state): New.
442 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
443 (eh_return_internal): Merge from eh_return_<mode>,
444 use eh_return rtx, split w/ epilogue.
445
72b5577d
ILT
4462009-05-29 Ian Lance Taylor <iant@google.com>
447
448 * builtins.c (validate_gimple_arglist): Don't use va_arg with
449 enum type.
450 * calls.c (emit_library_call_value_1): Likewise.
451
452 * c-typeck.c (c_build_va_arg): New function.
453 * c-tree.h (c_build_va_arg): Declare.
454 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
455 instead of build_va_arg.
456
7a2faca1
EB
4572009-05-29 Eric Botcazou <ebotcazou@adacore.com>
458
459 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
460 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
461 (ptr_difference_cost): Use affine combinations to compute it.
462 (difference_cost): Likewise.
463 (get_computation_cost_at): Compute more accurate cost for addresses
464 if the ratio is a multiplier allowed in addresses.
465 For non-addresses, consider that an additional offset or symbol is
466 added only once.
467
725fd454
JJ
4682009-05-29 Jakub Jelinek <jakub@redhat.com>
469
a0987204
JJ
470 * config/i386/i386.c (ix86_decompose_address): Avoid useless
471 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
472
725fd454
JJ
473 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
474 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
475 (prefix_rex): For UNIT_MMX don't imply the prefix by default
476 if MODE_DI.
477 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
478 to 1 for TYPE_SSE{IADD1,CVT1}.
479 (prefix_vex_imm8): Removed.
480 (length_vex): Only pass 1 as second argument to
481 ix86_attr_length_vex_default if prefix_extra is 0.
482 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
483 (length): For prefix vex computation use length_immediate
484 attribute instead of prefix_vex_imm8.
485 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
486 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
487 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
488 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
489 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
490 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
491 a space in between the operands.
492 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
493 if one operand is 0xff and the other one si, di, bp or sp.
494 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
495 other one si, di, bp or sp.
496 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
497 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
498 type and mode attributes.
499 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
500 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
501 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
502 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
503 prefix_data16 attribute iff MODE_DF.
504 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
505 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
506 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
507 constm128_operand in length_immediate computation.
508 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
509 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
510 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
511 length_immediate attribute to 1.
512 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
513 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
514 for certain alternatives.
515 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
516 prefix_data16 attribute if MODE_V1DF.
517 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
518 length_immediate to 1.
519 (set_got_rex64, set_rip_rex64): Remove length attribute, set
520 length_address to 4, set mode attribute to MODE_DI.
521 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
522 (fxam<mode>2_i387): Set length attribute to 4.
523 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
524 *prefetch_3dnow_rex): Override length_address attribute.
525 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
526 attributes.
527 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
528 (constm128_operand): Removed.
529 * config/i386/i386.c (memory_address_length): For
530 disp && !index && !base in 64-bit mode account for SIB byte if
531 print_operand_address can't optimize disp32 into disp32(%rip)
532 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
533 for fs: or gs: segment.
534 (ix86_attr_length_immediate_default): When checking if shortform
535 is possible, truncate immediate to the length of the non-shortened
536 immediate.
537 (ix86_attr_length_address_default): Ignore MEM_P operands
538 with X constraint.
539 (ix86_attr_length_vex_default): Only check for DImode on
540 GENERAL_REG_P operands.
541 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
542 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
543 (sse_cvttps2pi): Clear prefix_rep attribute.
544 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
545 attribute.
546 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
547 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
548 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
549 iff operand 2 is const_int_operand.
550 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
551 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
552 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
553 instead of vex.
554 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
555 prefix_data16.
556 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
557 prefix_data16 attribute for movlpd and movhpd instructions.
558 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
559 length_immediate for shufpd instruction.
560 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
561 (avx_cmpp<avxmodesuffixf2c><mode>3,
562 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
563 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
564 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
f3afc8a7 565 *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
725fd454
JJ
566 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
567 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
568 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
569 prefix_data16 attribute for the first alternative to 1.
570 (*avx_loadlps): Override length_immediate for the first alternative.
571 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
572 attributes for second alternative.
573 (*vec_concatv2sf_sse4_1): Override length_immediate and
574 prefix_data16 attributes for second alternative.
575 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
576 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
577 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
578 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
579 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
580 prefix_data16 and length_immediate to 1.
581 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
582 to 1.
583 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
f3afc8a7 584 prefix_extra attribute for variants that don't have 0f prefix alone.
725fd454
JJ
585 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
586 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
587 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
588 *sse4_1_pextrd): Set length_immediate to 1.
589 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
590 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
591 to 1.
592 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
593 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
594 length_immediate to 1 for second alternative.
595 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
596 prefix_extra and length_immediate attributes for the first
597 alternative.
598 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
599 first alternative.
600 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
601 to 1 for the first and third alternative.
602 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
603 alternative.
604 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
605 attribute.
606 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
607 attribute to 0.
608 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
609 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
610 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
611 *avx_psign<mode>3): Set prefix_extra attribute to 1.
612 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
613 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
614 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
615 ssse3_psign<mode>3): Override prefix_rex attribute.
f3afc8a7 616 (*avx_palignrti): Override prefix_extra and length_immediate to 1.
725fd454
JJ
617 (ssse3_palignrti): Override length_immediate to 1.
618 (ssse3_palignrdi): Override length_immediate to 1, override
619 prefix_rex attribute.
f3afc8a7 620 (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
725fd454
JJ
621 (sse4a_extrqi): Override length_immediate to 2.
622 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
623 (sse4a_insertq): Override prefix_data16 to 0.
624 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
625 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
626 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
627 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
628 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
629 and length_immediate to 1.
630 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
631 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
632 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
633 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
634 and length_immediate to 1.
635 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
636 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
637 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
638 avx_ptest256): Override prefix_extra to 1.
639 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
640 Override prefix_data16 and length_immediate to 1.
641 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
642 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
643 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
644 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
645 prefix_data16 to 0 and prefix_extra to 2.
646 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
647 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
648 attribute.
649 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
650 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
651 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
652 and prefix_extra to 2.
653 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
654 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
655 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
656 avx_vpermilvar<mode>3,
657 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
658 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
659 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
660 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
661 Override prefix_extra to 1.
662 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
663 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
664 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
665 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
666 prefix_extra and length_immediate to 1.
667 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
668 modrm to 0.
669 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
670 to 1 for the first alternative.
671 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
672 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
673 cases.
674 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
675 *movv2sf_internal_avx, *movv2sf_internal): Override
676 prefix_rep attribute for certain alternatives.
677 (*mov<mode>_internal): Override prefix_rep or prefix_data16
678 attributes for certain alternatives.
679 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
680 attributes for certain alternatives.
681 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
682 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
683 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
684 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
685 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
686 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
687 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
688 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
689 length_immediate to 1 if operand 2 is const_int_operand.
690 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
f3afc8a7 691 *vec_extractv2si_1): Set length_immediate attribute to 1.
725fd454
JJ
692 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
693 using old 3DNOW insn rather than SSE/3DNOW_A.
694 (mmx_emms, mmx_femms): Clear modrm attribute.
695
0674b9d0
MJ
6962009-05-29 Martin Jambor <mjambor@suse.cz>
697
698 * tree-sra.c: New implementation of SRA.
699
700 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
701 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
702 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
703 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
704 (SRA_MAX_STRUCTURE_COUNT): Removed.
705 (SRA_FIELD_STRUCTURE_RATIO): Removed.
706 * doc/invoke.texi (sra-max-structure-size): Removed.
707 (sra-field-structure-ratio): Removed.
708
616f21df
JJ
7092009-05-29 Jakub Jelinek <jakub@redhat.com>
710
711 PR middle-end/40291
712 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
713 before expansion.
714
da7ba240
AB
7152009-05-29 Andrey Belevantsev <abel@ispras.ru>
716
717 PR rtl-optimization/40101
718 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
719 seqno. Adjust comment.
720 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
721 inserting bookkeeping before a jump, the jump is not scheduled.
722 When no positive seqno found, provide a value. Add comment.
723
71dcd609
RG
7242009-05-29 Richard Guenther <rguenther@suse.de>
725
726 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
727 short-cutting on the first component.
728
a900ae6b
JJ
7292009-05-29 Jakub Jelinek <jakub@redhat.com>
730
731 PR middle-end/39958
732 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
733 for trees other than decls/types.
734
821bb7f8
RG
7352009-05-29 Richard Guenther <rguenther@suse.de>
736
737 * tree-ssa-operands.c (get_expr_operands): Do not handle
738 INDIRECT_REFs in the handled-component case. Remove
739 unused get_ref_base_and_extent case.
740 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
741 tree_low_cst and host_integerp where possible.
742 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
743 codes for equivalence.
744 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
745
e997fb9c
DB
7462009-05-29 David Billinghurst <billingd@gcc.gnu.org>
747
748 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
749 to tmake_file for i[34567]86-*-cygwin*.
750
58195b74
JJ
7512009-05-29 Jakub Jelinek <jakub@redhat.com>
752
753 PR target/40017
754 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
755 (altivec_categorize_keyword, init_vector_keywords,
756 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
757 similar to bool.
758
055df276
KT
7592009-05-29 Kai Tietz <kai.tietz@onevision.com>
760
761 * tree.c (handle_dll_attribute): Check if node is
762 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
763
f5939ef3
RE
7642009-05-29 Richard Earnshaw <rearnsha@arm.com>
765
766 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
767 component.
768 (thumb2_zero_extendqidi2): Likewise.
769
c185de40
KK
7702009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
771
772 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
773 instead of gen_movrt.
774 * config/sh/sh.md (movrt): Remove.
775
bf3c6caf
SE
7762009-05-28 Steve Ellcey <sje@cup.hp.com>
777
f3afc8a7 778 * doc/invoke.texi (IA-64 Options):
bf3c6caf
SE
779 Add -msdata, -mfused-madd, -mno-inline-float-divide,
780 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
781 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
782 -msched-prefer-non-control-spec-insns,
783 -msched-stop-bits-after-every-cycle,
784 -msched-count-spec-in-critical-path,
785 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
f3afc8a7 786 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
bf3c6caf
SE
787 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
788 and -msched-spec-verbose.
789
8a66e987
JM
7902009-05-28 Joseph Myers <joseph@codesourcery.com>
791
f3afc8a7 792 * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
8a66e987
JM
793 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
794 error if used.
795 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
796
b45d2719
RG
7972009-05-28 Richard Guenther <rguenther@suse.de>
798
799 * tree-ssa-alias.c (ao_ref_init): New function.
800 (ao_ref_base): Likewise.
801 (ao_ref_base_alias_set): Likewise.
802 (ao_ref_alias_set): Likewise.
803 (refs_may_alias_p_1): Change signature.
804 (refs_may_alias_p): Adjust.
805 (refs_anti_dependent_p): Likewise.
806 (refs_output_dependent_p): Likewise.
807 (call_may_clobber_ref_p_1): Change signature.
808 (call_may_clobber_ref_p): Adjust.
809 (stmt_may_clobber_ref_p_1): New function split out from ...
810 (stmt_may_clobber_ref_p): ... here.
811 (maybe_skip_until): Adjust signature.
812 (get_continuation_for_phi): Likewise.
813 (walk_non_aliased_vuses): Likewise.
814 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
815 (ao_ref_init): Declare.
816 (ao_ref_base): Likewise.
817 (ao_ref_alias_set): Likewise.
818 (stmt_may_clobber_ref_p_1): Likewise.
819 (walk_non_aliased_vuses): Adjust.
820 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
821 (get_ref_from_reference_ops): remove.
822 (vn_reference_lookup_2): Adjust signature.
823 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
f3afc8a7 824 (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
b45d2719
RG
825 (vn_reference_lookup): Adjust.
826 (vn_reference_insert): Likewise.
827 (vn_reference_insert_pieces): Adjust signature.
828 (visit_reference_op_call): Adjust.
829 * tree-ssa-pre.c (get_expr_type): Simplify.
830 (phi_translate_1): Adjust.
831 (compute_avail): Likewise.
832 (translate_vuse_through_block): Do not re-build trees.
833 (value_dies_in_block_x): Likewise.
834 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
835 fields.
836 (vn_reference_lookup_pieces): Adjust declaration.
837 (vn_reference_insert_pieces): Likewise.
838
554223b6
BK
8392009-05-28 Benjamin Kosnik <bkoz@redhat.com>
840
841 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
842 with checking disabled.
843
233215fe
DK
8442009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
845
846 PR target/37216
847
848 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
849 macro definition for support of three-operand format aligned
850 .comm directive in assembler on cygwin/pe/mingw target OS.
851 * configure: Regenerate.
852 * config.h: Regenerate.
853
854 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
855 aligned form of .comm directive if -mpe-aligned-commons is in effect.
856 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
857
858 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
859 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
860
24adb18f
IR
8612009-05-28 Ira Rosen <irar@il.ibm.com>
862
863 PR tree-optimization/40254
864 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
865 in analysis of basic blocks.
866
2c5bfdf7
AN
8672009-05-28 Adam Nemet <anemet@caviumnetworks.com>
868
869 PR middle-end/33699
f3afc8a7 870 * target.h (struct gcc_target): Fix indentation. Add const_anchor.
2c5bfdf7
AN
871 * target-def.h (TARGET_CONST_ANCHOR): New macro.
872 (TARGET_INITIALIZER): Use it.
873 * cse.c (CHEAPER): Move it up to the other macros.
874 (insert): Rename this ...
875 (insert_with_costs): ... to this. Add cost parameters. Update
876 function comment.
877 (insert): New function. Call insert_with_costs.
878 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
879 find_reg_offset_for_const, try_const_anchors): New functions.
880 (cse_insn): Call try_const_anchors. Adjust cost of src_related
881 when using a const-anchor. Call insert_const_anchors.
f3afc8a7 882 * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
2c5bfdf7
AN
883 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
884
9e6aced0
AO
8852009-05-28 Alexandre Oliva <aoliva@redhat.com>
886
887 * tree-inline.c (remap_decls): Enable nonlocalized variables
888 when not optimizing.
889
89fbbe4e
AO
8902009-05-28 Alexandre Oliva <aoliva@redhat.com>
891
892 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
893 Simplify other tests involving optimize.
894
e455776a
TT
8952009-05-27 Tom Tromey <tromey@redhat.com>
896
897 * unwind-dw2.c (_Unwind_DebugHook): New function.
898 (uw_install_context): Call _Unwind_DebugHook.
899
cea32bca
TT
9002009-05-27 Tom Tromey <tromey@redhat.com>
901
902 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
903
c607156f
ILT
9042009-05-27 Ian Lance Taylor <iant@google.com>
905
906 * Makefile.in (LINKER, LINKER_FLAGS): Define.
907 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
908 (ALL_LINKERFLAGS): Define.
909 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
910 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
911 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
912 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
913 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
914 $(LINKER_FOR_BUILD).
915 (build/gcov-iov$(build_exeext)): Likewise.
916
ec0a1343
JB
9172009-05-27 Julian Brown <julian@codesourcery.com>
918
919 * gcse.c (target.h): Include.
920 (can_assign_to_reg_without_clobbers_p): Check that the target allows
921 copy of argument to a pseudo register.
922
ac80ba07
DN
9232009-05-27 Diego Novillo <dnovillo@google.com>
924
925 * tree-ssa-live.c (dump_scope_block): Document arguments.
926 (dump_scope_blocks): Document.
927 (debug_scope_blocks): New.
928 * tree-flow.h (debug_scope_blocks): Declare.
929
d1803a17
DC
9302009-05-21 Denis Chertykov <denisc@overta.ru>
931
f3afc8a7 932 * doc/contrib.texi (Contributors): Add myself to the list.
d1803a17 933
51fb7760 9342009-05-27 Olivier Hainque <hainque@adacore.com>
ceadb728
OH
935
936 * expr.c (target_align): New function. Alignment the TARGET of an
937 assignment may be assume to have.
938 (highest_pow2_factor_for_target): Use it instead of relying on
939 immediate tree attributes of TARGET, not necessarily honored when
940 intermediate bitfields are involved.
941
634fa334
L
9422009-05-27 H.J. Lu <hongjiu.lu@intel.com>
943
944 PR target/40266
945 * config/i386/driver-i386.c (host_detect_local_cpu): Support
946 AVX, SSE4, AES, PCLMUL and POPCNT.
947
65332587
DN
9482009-05-27 Diego Novillo <dnovillo@google.com>
949
950 * tree-pretty-print.c (dump_location): New.
951 (dump_generic_node): Call it.
952 Factor code to handle BLOCK nodes ...
953 (dump_block_node): ... here.
954
3e17e31d
RAE
9552009-05-27 Rafael Avila de Espindola <espindola@google.com>
956
f3afc8a7
UB
957 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
958 with it.
3e17e31d
RAE
959 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
960 included.
961 * gcc-plugin.h: Include config.h and system.h.
962 (IN_GCC): Define if not defined.
963
5e370570
HPN
9642009-05-27 Hans-Peter Nilsson <hp@axis.com>
965
966 PR middle-end/40249
967 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
968 with -fno-inline.
969
d000f0d9
SZ
9702009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
971
972 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
973 applicable.
974 * config/m32r/m32r.h: Ditto.
975 * config/m32r/m32r.md: Ditto.
976 * config/m32r/predicates.md: Ditto.
977
82f331ff
AO
9782009-05-27 Alexandre Oliva <aoliva@redhat.com>
979
980 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
981
ae2392a9
BS
9822009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
983
984 * doc/plugins.texi
985 (Loading plugins): typo.
986 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
987 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
988 (Interacting with the GCC Garbage Collector): Added new section.
989 (Giving information about a plugin): Added new section for
990 PLUGIN_INFO.
ae2392a9
BS
991 * ggc.h (ggc_register_root_tab): Added declaration.
992 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
993 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
994 (register_callback): Improved comment in declaration.
f3afc8a7
UB
995 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
996 (extra_root_vec) Added static variable for dynamic roots registration.
ae2392a9
BS
997 (ggc_register_root_tab) Added new routine.
998 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
999 PLUGIN_GGC_MARKING event.
1000 * ggc-zone.c: Include plugin.h.
1001 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
1002 * ggc-page.c: Include plugin.h.
1003 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
1004 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
1005 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
1006 (register_callback): check lack of callbacks for
1007 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
1008 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
1009 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
1010 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
1011 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
1012 dependency on plugin.h.
1013 (plugin.o): Added dependency on ggc.h...
1014
f0cfd3a8
RG
10152009-05-26 Richard Guenther <rguenther@suse.de>
1016
1017 PR middle-end/40248
1018 Revert
1019 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
1020 with mismatched comparison modes.
1021
1022 * expr.c (expand_expr_real_1): Expand the operand of a
1023 VIEW_CONVERT_EXPR in its natural mode.
1024
7980bfb8
ILT
10252009-05-26 Ian Lance Taylor <iant@google.com>
1026
1027 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
1028 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
1029 (ALL_COMPILERFLAGS): Define.
1030 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
1031 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
1032 (collect2$(exeext), collect2.o): Likewise.
1033 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
1034 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
1035 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
1036 (libbackend.o, intl.o, cppdefault.o): Likewise.
1037 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
1038 (build/%.o): Use $(COMPILER_FOR_BUILD).
1039 (build/gen%$(build_exeext)): Likewise.
1040 (build/gcov-iov$(build_exeext)): LIkewise.
1041 * config/t-darwin (darwin.o): Use $(COMPILER).
1042 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
1043 * config/t-sol2 (sol2-c.o): Likewise.
1044 (sol2.o): Likewise.
1045 * config/t-vxworks (vxworks.o): Likewise.
1046 * config/x-darwin (host-darwin.o): Likewise.
1047 * config/x-hpux (host-hpux.o): Likewise.
1048 * config/x-linux (host-linux.o): Likewise.
1049 * config/x-solaris (host-solaris.o): Likewise.
1050 * config/alpha/x-alpha (driver-alpha.o): Likewise.
1051 * config/arm/t-arm (arm-c.o): Likewise.
1052 * config/arm/t-pe (pe.o): Likewise.
1053 * config/arm/t-wince-pe (pe.o): Likewise.
1054 * config/i386/t-cygming (winnt.o): Likewise.
1055 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
1056 * config/i386/t-cygwin (cygwin1.o): Likewise.
1057 (cygwin2.o): Likewise.
1058 * config/i386/t-i386 (i386-c.o): Likewise.
1059 * config/i386/t-interix (winnt.o): Likewise.
1060 * config/i386/t-netware (netware.o): Likewise.
1061 * config/i386/t-nwld (nwld.o): Likewise.
1062 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
1063 * config/i386/x-i386 (driver-i386.o): Likewise.
1064 * config/i386/x-cygwin (host-cygwin.o): Likewise.
1065 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
1066 * config/ia64/t-ia64 (ia64-c.o): Likewise.
1067 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
1068 * config/mips/x-native (driver-native.o): Likewise.
1069 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
1070 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
1071 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
1072 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
1073 * config/score/t-score-elf (score7.o): Likewise.
1074 (score3.o): Likewise.
1075 * config/sh/t-sh (sh-c.o): Likewise.
1076 * config/sh/t-symbian (sh-c.o): Likewise.
1077 (symbian.o): Likewise.
1078 * config/spu/t-spu-elf (spu-c.o): Likewise.
1079 * config/v850/t-v850 (v850-c.o): Likewise.
1080 * config/v850/t-v850e (v850-c.o): Likewise.
1081
23977d3c
RG
10822009-05-26 Richard Guenther <rguenther@suse.de>
1083
1084 PR tree-optimization/40122
1085 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
1086 VECTOR_CSTs if possible.
1087 (fold_gimple_assign): Likewise.
1088
3d62b895
RG
10892009-05-26 Richard Guenther <rguenther@suse.de>
1090
1091 PR middle-end/40252
1092 * fold-const.c (fold_binary): Use the correct types for building
1093 rotates.
1094
12346147
RG
10952009-05-26 Richard Guenther <rguenther@suse.de>
1096
1097 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
1098 redundant calls to merge_alias_info.
1099 (bump_vector_ptr): Likewise.
1100 * tree-ssa-copy.c (merge_alias_info): Remove.
1101 (replace_exp_1): Remove call to merge_alias_info.
1102 (propagate_tree_value): Likewise.
1103 (fini_copy_prop): Propagate points-to info.
1104 * tree-flow.h (merge_alias_info): Remove.
1105
807d5e6f
HS
11062009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
1107
1108 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
1109
85057983
JH
11102009-05-25 Jan Hubicka <jh@suse.cz>
1111
1112 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
1113 * cgraph.h (struct inline_summary): New filed self_wize,
1114 size_inlining_benefit, self_time and time_inlining_benefit.
1115 (struct cgraph_global_info): Replace insns by time ans size fields.
1116 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
1117 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
1118 (ipcp_update_callgraph): Do not touch function bodies.
1119 * ipa-inline.c: Include except.h
1120 (MAX_TIME): New constant.
1121 (overall_insns): Remove.
1122 (leaf_node_p): New.
1123 (overall_size, max_benefit): New static variables.
1124 (cgraph_estimate_time_after_inlining): New function.
1125 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
1126 (cgraph_clone_inlined_nodes): Update size.
1127 (cgraph_mark_inline_edge): Update size.
1128 (cgraph_estimate_growth): Use size info.
1129 (cgraph_check_inline_limits): Check size.
1130 (cgraph_default_inline_p): Likewise.
1131 (cgraph_edge_badness): Compute badness based on benefit and size cost.
1132 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
1133 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
1134 and times.
85057983
JH
1135 (cgraph_decide_inlining): Likewise.
1136 (cgraph_decide_inlining_incrementally): Likewise; honor
1137 PARAM_EARLY_INLINING_INSNS.
1138 (likely_eliminated_by_inlining_p): New predicate.
1139 (estimate_function_body_sizes): New function.
1140 (compute_inline_parameters): Use it.
1141 * except.c (must_not_throw_labels): New function.
1142 * except.h (must_not_throw_labels): Declare.
1143 * tree-inline.c (init_inline_once): Kill inlining_weigths
1144 * tree-ssa-structalias.c: Avoid uninitialized warning.
1145 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
1146 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
1147 (PARAM_INLINE_CALL_COST): Remove.
1148 (PARAM_EARLY_INLINING_INSNS): New.
1149
01df5c8a
RG
11502009-05-25 Richard Guenther <rguenther@suse.de>
1151
1152 PR tree-optimization/36327
1153 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
f3afc8a7 1154 callback for reference translation or lookup at the point of may-defs.
01df5c8a
RG
1155 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
1156 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
1157 for union COMPONENT_REFs.
1158 (vn_reference_lookup_3): New callback. Lookup from memset
1159 and CONSTRUCTOR assignment, translate through struct copies.
1160 (vn_reference_lookup_pieces): Make sure to not free the
1161 passed operands array. Adjust walk_non_aliased_vuses call.
1162 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
1163 make sure we do not leak memory.
1164
6b8ed145
RG
11652009-05-25 Richard Guenther <rguenther@suse.de>
1166
1167 * tree-ssa-alias.h (dump_points_to_solution): Declare.
1168 * tree-inline.c (expand_call_inline): Reset the escaped and
1169 callused solutions.
1170 * tree-ssa-structalias.c (pass_build_ealias): New.
1171 * tree-pass.h (pass_build_ealias): Declare.
1172 * passes.c (init_optimization_passes): Add PTA during
1173 early optimizations.
1174 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
1175 and CALLUSED solutions.
1176 (dump_points_to_solution): New function, split out from ...
1177 (dump_points_to_info_for): ... here.
1178 * tree-parloops.c (parallelize_loops): Reset the escaped and
1179 callused solutions.
1180
0adcf178
RO
11812009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1182
1183 PR bootstrap/40027
1184 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
1185 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
1186
12aaf609
IR
11872009-05-25 Ira Rosen <irar@il.ibm.com>
1188
1189 PR tree-optimization/40238
1190 * tree-vect-stmts.c (vect_init_vector): Insert initialization
1191 statements after basic block's labels.
1192 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
1193 to free the allocated memory.
1194
7f9a14e3
KK
11952009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
1196
1197 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
1198 return address with a USE.
1199
b842d478
RG
12002009-05-24 Richard Guenther <rguenther@suse.de>
1201
1202 PR middle-end/40233
1203 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
1204 array type from the main variant of the inner type.
1205
8db7b33f
JBG
12062009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1207
1208 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
1209 definition to bool (from int) to un-break build.
1210 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
1211
cff4e50d
PB
12122009-05-24 Paolo Bonzini <bonzini@gnu.org>
1213
1214 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
1215 discard_stmt_changes): Delete.
1216 * tree-ssa-operands.c (scb_stack): Delete.
1217 (init_ssa_operands): Do not initialize it.
1218 (fini_ssa_operands): Do not free it.
1219 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
1220
1221 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
1222 update_stmt, remove the others. Fix comments.
1223 * tree-dfa.c (optimize_stack_restore): Likewise.
1224 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
1225 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
1226 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
1227 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
1228 Likewise.
1229 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
1230 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
f3afc8a7
UB
1231 (dom_opt_finalize_block): Likewise, adjusting access to
1232 stmts_to_rescan.
cff4e50d
PB
1233 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
1234 (stmts_to_rescan): Change item type to gimple.
1235 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
1236
a70d6342
IR
12372009-05-24 Ira Rosen <irar@il.ibm.com>
1238
1239 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
1240 * tree-pass.h (pass_slp_vectorize): New pass.
1241 * params.h (SLP_MAX_INSNS_IN_BB): Define.
1242 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
1243 * tree-vectorizer.c (timevar.h): Include.
1244 (user_vect_verbosity_level): Declare.
1245 (vect_location): Fix comment.
1246 (vect_set_verbosity_level): Update user_vect_verbosity_level
1247 instead of vect_verbosity_level.
1248 (vect_set_dump_settings): Add an argument. Ignore user defined
1249 verbosity if dump flags require higher level of verbosity. Print to
1250 stderr only for loop vectorization.
1251 (vectorize_loops): Update call to vect_set_dump_settings.
1252 (execute_vect_slp): New function.
1253 (gate_vect_slp): Likewise.
1254 (struct gimple_opt_pass pass_slp_vectorize): New.
1255 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
1256 access its members.
1257 (vec_info_for_bb): New function.
1258 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
1259 (VECTORIZATION_ENABLED): New macro.
1260 (SLP_ENABLED, SLP_DISABLED): Likewise.
1261 (vect_is_simple_use): Add bb_vec_info argument.
1262 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
1263 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
1264 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
1265 vect_schedule_slp, vect_analyze_slp): Likewise.
1266 (vect_analyze_stmt): Add slp_tree argument.
1267 (find_bb_location): Declare.
1268 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
1269 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
1270 (vect_analyze_loop_operations, vect_analyze_loop,
1271 get_initial_def_for_induction, vect_create_epilog_for_reduction,
1272 vect_finalize_reduction, vectorizable_reduction,
1273 vectorizable_live_operation, vect_transform_loop): Likewise.
1274 * tree-data-ref.c (dr_analyze_innermost): Update comment,
1275 skip evolution analysis if analyzing a basic block.
1276 (dr_analyze_indices): Likewise.
1277 (initialize_data_dependence_relation): Skip the test whether the
1278 object is invariant for basic blocks.
1279 (compute_all_dependences): Skip dependence analysis for data
1280 references in basic blocks.
1281 (find_data_references_in_stmt): Don't fail in case of invariant
1282 access in basic block.
1283 (find_data_references_in_bb): New function.
1284 (find_data_references_in_loop): Move code to
782dc37a 1285 find_data_references_in_bb and add a call to it.
a70d6342
IR
1286 (compute_data_dependences_for_bb): New function.
1287 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
1288 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
1289 that STEP is 0.
1290 (vect_analyze_data_ref_dependence): Check for interleaving in case of
1291 unknown dependence in basic block and fail in case of dependence in
1292 basic block.
1293 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
1294 dependence instances from either loop or basic block vectorization
1295 info.
1296 (vect_compute_data_ref_alignment): Check if it is loop vectorization
1297 before calling nested_in_vect_loop_p.
1298 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
1299 dependence instances from either loop or basic block vectorization
1300 info.
1301 (vect_verify_datarefs_alignment): Likewise.
1302 (vect_enhance_data_refs_alignment): Adjust function calls.
1303 (vect_analyze_data_refs_alignment): Likewise.
1304 (vect_analyze_group_access): Fix printing. Skip different checks if
1305 DR_STEP is 0. Keep strided stores either in loop or basic block
1306 vectorization data structure. Fix indentation.
1307 (vect_analyze_data_ref_access): Fix comments, allow zero step in
1308 basic blocks.
1309 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
1310 dependence instances from either loop or basic block vectorization
1311 info.
1312 (vect_analyze_data_refs): Update comment. Call
1313 compute_data_dependences_for_bb to analyze basic blocks.
1314 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
1315 case of loop vectorization. In case of basic block vectorization use
782dc37a 1316 data-ref itself as a base.
a70d6342
IR
1317 (vect_create_data_ref_ptr): In case of basic block vectorization:
1318 don't advance the pointer, add new statements before the current
1319 statement. Adjust function calls.
1320 (vect_supportable_dr_alignment): Support only aligned accesses in
1321 basic block vectorization.
1322 * common.opt (ftree-slp-vectorize): New flag.
1323 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
1324 (vect_pattern_recog_1): Likewise.
1325 * tree-vect-stmts.c (process_use): Likewise.
1326 (vect_init_vector): Add new statements in the beginning of the basic
1327 block in case of basic block SLP.
1328 (vect_get_vec_def_for_operand): Adjust function calls.
1329 (vect_finish_stmt_generation): Likewise.
1330 (vectorizable_call): Add assert that it is loop vectorization, adjust
1331 function calls.
1332 (vectorizable_conversion, vectorizable_assignment): Likewise.
1333 (vectorizable_operation): In case of basic block SLP, take
1334 vectorization factor from statement's type and skip the relevance
1335 check. Adjust function calls.
1336 (vectorizable_type_demotion): Add assert that it is loop
1337 vectorization, adjust function calls.
1338 (vectorizable_type_promotion): Likewise.
1339 (vectorizable_store): Check for outer loop only in case of loop
1340 vectorization. Adjust function calls. For basic blocks, skip the
1341 relevance check and don't advance pointers.
1342 (vectorizable_load): Likewise.
1343 (vectorizable_condition): Add assert that it is loop vectorization,
1344 adjust function calls.
1345 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
1346 that it is not reduction, get vector type, call only supported
782dc37a 1347 functions, skip loop specific parts.
a70d6342
IR
1348 (vect_transform_stmt): Check for outer loop only in case of loop
1349 vectorization.
1350 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
1351 (vect_is_simple_use): Fix comment, add new argument, fix conditions
1352 for external definition.
1353 * passes.c (pass_slp_vectorize): New pass.
1354 * tree-vect-slp.c (find_bb_location): New function.
1355 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
1356 check for patterns only in loops.
1357 (vect_build_slp_tree): Add argument, adjust function calls, fail in
1358 case of multiple types in basic block SLP.
1359 (vect_mark_slp_stmts_relevant): New function.
1360 (vect_supported_load_permutation_p): Fix comment.
1361 (vect_analyze_slp_instance): Add argument. In case of basic block
1362 SLP, take vectorization factor from statement's type, check that
1363 unrolling factor is 1. Adjust function call. Save SLP instance in
1364 either loop or basic block vectorization structure. Return FALSE,
1365 if SLP failed.
1366 (vect_analyze_slp): Add argument. Get strided stores groups from
1367 either loop or basic block vectorization structure. Return FALSE
1368 if basic block SLP failed.
1369 (new_bb_vec_info): New function.
1370 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
1371 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
1372 (vect_schedule_slp): Add argument. Get SLP instances from either
1373 loop or basic block vectorization structure. Set vectorization factor
1374 to be 1 for basic block SLP.
1375 (vect_slp_transform_bb): New function.
1376 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
1377
0676c393
MM
13782009-05-23 Mark Mitchell <mark@codesourcery.com>
1379
1380 * final.c (shorten_branches): Do not align labels for jump tables.
1381 (final_scan_insn): Use JUMP_TABLE_DATA_P.
1382
94324dae
EB
13832009-05-23 Eric Botcazou <ebotcazou@adacore.com>
1384
1385 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
1386 Remove outdated reference to flow.c and fix nits.
1387 * doc/gccint.texi: Tweak RTL description.
1388 * doc/rtl.texi: Likewise.
1389
92bffc14
DC
13902009-05-23 Denis Chertykov <chertykov@gmail.com>
1391
1392 * config/avr/avr.c: Change my email address.
1393 * config/avr/avr.h: Likewise.
1394 * config/avr/avr.md: Likewise.
1395 * config/avr/avr-protos.h: Likewise.
1396 * config/avr/libgcc.S: Likewise.
1397
eec9405e
TS
13982009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
1399
1400 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
1401 (spu_split_load, spu_split_store): Change return type to int.
1402 (spu_split_convert): Declare.
1403 * config/spu/predicates.md (spu_mem_operand): Remove.
1404 (spu_mov_operand): Update.
1405 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
1406 * config/spu/spu.c (regno_aligned_for_load): Remove.
1407 (reg_aligned_for_addr, spu_expand_load): Define.
1408 (spu_expand_extv): Reimplement and handle MEM.
1409 (spu_expand_insv): Handle MEM.
1410 (spu_sched_reorder): Handle insn's with length 0.
1411 (spu_legitimate_address_p): Reimplement.
1412 (store_with_one_insn_p): Return TRUE for any mode with size
1413 larger than 16 bytes.
1414 (address_needs_split): Define.
1415 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
1416 operands.
1417 (spu_convert_move): Define.
782dc37a 1418 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
eec9405e
TS
1419 (spu_split_store): Change all MEM's to TImode.
1420 (spu_init_expanders): Preallocate registers that correspond to
1421 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
1422 mark_reg_pointer.
1423 (spu_split_convert): Define.
1424 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
1425 (_move<mode>, _movdi, _movti): Update predicate and condition.
1426 (load, store): Change to define_split.
1427 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
1428 extend<mode>ti2.
1429 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
1430 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
1431 define_insn_and_split of lshr<mode>3.
1432 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
1433 (<v>ashr<mode>3_imm): Define.
1434 (extv, extzv, insv): Allow MEM operands.
1435 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
1436 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
1437 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
1438 (_spu_convert2): Change to define_insn_and_split and remove the
1439 corresponding define_peephole2.
1440 (stack_protect_set, stack_protect_test, stack_protect_test_si):
1441 Change predicates to memory_operand.
1442
7d31a807
MM
14432009-05-22 Mark Mitchell <mark@codesourcery.com>
1444
1445 * config/arm/thumb2.md: Add 16-bit multiply instructions.
7d31a807 1446
d021d274
MM
14472009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
1448
1449 PR tree-optimization/40219
1450 * tree.c (iterative_hash_expr): Make sure the builtin function is
1451 a normal builtin function and not a front end or back end builtin
1452 before indexing into the built_in_decls array.
1453
4d7a65ea
RG
14542009-05-22 Richard Guenther <rguenther@suse.de>
1455
1456 PR middle-end/38964
1457 * alias.c (write_dependence_p): Do not use TBAA for answering
1458 anti-dependence or output-dependence.
782dc37a 1459 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
4d7a65ea
RG
1460 (emit_pointer_definition): Remove.
1461 (emit_alias_warning): Likewise.
1462 (find_what_var_points_to): Remove TBAA pruning code.
1463 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
1464 violations.
1465 (compute_points_to_sets): Remove code computing the set of
1466 dereferenced pointers.
1467 * tree-data-ref.c (dr_may_alias_p): Properly use the split
1468 oracle for querying anti and output dependencies.
1469 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
1470 if TBAA may be applied.
1471 (refs_anti_dependent_p): New function.
1472 (refs_output_dependent_p): Likewise.
1473 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
1474 (refs_output_dependent_p): Likewise.
1475 * doc/tree-ssa.texi (Memory model): New section.
1476 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
1477 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
1478 * cfgexpand.c (expand_gimple_basic_block): Do not handle
1479 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
1480 * expr.c (expand_expr_real_1): Likewise.
1481 * gimple-low.c (lower_stmt): Likewise.
1482 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
1483 (dump_gimple_cdt): Remove.
1484 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
1485 (gimple_size): Likewise.
1486 (walk_gimple_op): Likewise.
1487 (is_gimple_stmt): Likewise.
1488 (walk_stmt_load_store_addr_ops): Likewise.
1489 (gimple_build_cdt): Remove.
1490 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
1491 * gimple.h (gimple_cdt_new_type): Remove.
1492 (gimple_cdt_new_type_ptr): Likewise.
1493 (gimple_cdt_set_new_type): Likewise.
1494 (gimple_cdt_location): Likewise.
1495 (gimple_cdt_location_ptr): Likewise.
1496 (gimple_cdt_set_location): Likewise.
1497 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
1498 * tree-cfg.c (remove_useless_stmts_1): Do not handle
1499 GIMPLE_CHANGE_DYNAMIC_TYPE.
1500 (verify_types_in_gimple_stmt): Likewise.
1501 * tree-inline.c (estimate_num_insns): Likewise.
1502 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
1503 (copy_decl_to_var): Likewise.
1504 (copy_result_decl_to_var): Likewise.
1505 * tree-pretty-print.c (dump_generic_node): Do not handle
1506 CHANGE_DYNAMIC_TYPE_EXPR.
1507 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
1508 * tree-ssa-operands.c (get_expr_operands): Likewise.
1509 * tree-ssa-structalias.c (struct variable_info): Remove
1510 no_tbaa_pruning member.
1511 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
1512 (unify_nodes): Do not copy it.
1513 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
1514 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
1515 (set_uids_in_ptset): Do not check it.
1516 (find_what_var_points_to): Likewise.
1517 (compute_tbaa_pruning): Remove.
1518 (compute_points_to_sets): Do not call it.
1519 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
1520 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
1521 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
1522 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
1523 (DECL_NO_TBAA_P): Likewise.
1524 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
1525 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
1526 (expand_omp_atomic_pipeline): Do not set it.
1527 * print-tree.c (print_node): Do not dump it.
1528 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
1529 redundant check.
1530
83a6ac60
VM
15312009-05-22 Vladimir Makarov <vmakarov@redhat.com>
1532
1533 PR target/39856
1534 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
1535 for clobber.
1536
fe2978fb
MM
15372009-05-22 Mark Mitchell <mark@codesourcery.com>
1538
1539 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
1540 non-external.
1541
134ef638
BE
15422009-05-22 Ben Elliston <bje@au.ibm.com>
1543
1544 * Makefile.in (bversion.h, s-bversion): New targets.
1545 (TOPLEV_H): Add bversion.h.
1546 * toplev.h: Include "bversion.h".
1547 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
1548 the __format__ attribute only if compiling with the same version
1549 of GCC as the sources (the "build version").
1550
52fc669d
BE
15512009-05-22 Ben Elliston <bje@au.ibm.com>
1552
1553 * c-format.c (handle_format_attribute): Fix comment typo.
1554
583ca921
SE
15552009-05-21 Steve Ellcey <sje@cup.hp.com>
1556
1557 PR target/37846
1558 * config/ia64/ia64.opt (mfused-madd): New.
1559 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
1560 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
1561 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
1562 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
1563 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
1564 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
1565 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
1566 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
1567 instruction if !TARGET_FUSED_MADD.
1568 (fpma, fpms): Remove colon from name.
1569
150e3929
RG
15702009-05-22 Richard Guenther <rguenther@suse.de>
1571
1572 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
1573 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
1574 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
1575 TARGET_MEM_REF.
1576 (create_expression_by_pieces): Only convert if necessary.
1577 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
1578 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
1579
9a2b090c
AN
15802009-05-21 Adam Nemet <anemet@caviumnetworks.com>
1581
1582 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
1583 regular pattern from a template and rename it ...
1584 (*extzv_truncsi_exts): ... to this.
1585
33b92c9d
RG
15862009-05-21 Richard Guenther <rguenther@suse.de>
1587
1588 * cgraph.h (struct cgraph_node): Remove inline_decl member.
1589 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
1590 (cgraph_default_inline_p): Likewise.
1591 (cgraph_decide_inlining_incrementally): Likewise.
1592
cabf85c3
L
15932009-05-21 H.J. Lu <hongjiu.lu@intel.com>
1594 Uros Bizjak <ubizjak@gmail.com>
1595
1596 * config/i386/cpuid.h (bit_MOVBE): New.
1597
1598 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
1599
1600 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
1601 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
1602 (ix86_handle_option): Handle OPT_mmovbe.
1603 (ix86_target_string): Add -mmovbe.
1604 (pta_flags): Add PTA_MOVBE.
1605 (processor_alias_table): Add PTA_MOVBE to "atom".
1606 (override_options): Handle PTA_MOVBE.
1607
1608 * config/i386/i386.h (TARGET_MOVBE): New.
1609
1610 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
1611 (*bswapsi_movbe): New.
1612 (*bswapdi_movbe): Likewise.
1613 (bswapdi2): Renamed to ...
1614 (*bswapdi_1): This.
1615 (bswapdi2): New expander.
1616
1617 * config/i386/i386.opt (mmovbe): New.
1618
1619 * doc/invoke.texi: Document -mmovbe.
1620
9fefa0aa
TG
16212009-05-21 Taras Glek <tglek@mozilla.com>
1622
1623 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
1624 * gcc-plugin.h (plugin_init): Updated signature.
1625 * gcc-plugin.h (plugin_name_args): Moved to this header.
cabf85c3
L
1626 * doc/plugins.texi (plugin_init): Updated documention to reflect
1627 API change.
9fefa0aa
TG
1628 * doc/plugins.texi (plugin_name_args): Added to documention.
1629
1ea9fe56
MM
16302009-05-21 Mark Mitchell <mark@codesourcery.com>
1631
1632 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
1633 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
1634
52f84254
SZ
16352009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
1636
1637 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
1638 JUMP_TABLE_DATA_P predicates where applicable.
1639 * config/i386/predicates.md: Ditto.
1640 * config/i386/sse.md: Ditto.
1641
a952487c
JJ
16422009-05-21 Jakub Jelinek <jakub@redhat.com>
1643
93cac287
JJ
1644 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
1645 operand2 -128 override length_immediate attribute to 1.
1646 * config/i386/predicates.md (constm128_operand): New predicate.
1647
a952487c
JJ
1648 * config/i386/i386.c (memory_address_length): Handle %r12
1649 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
1650 also check REGNO.
1651 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
1652 mode look through optional ZERO_EXTEND and SUBREG.
1653 * config/i386/i386.md (R12_REG): New define_constant.
1654 (prefix_data16): For sse unit set also for MODE_TI insns.
1655 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
1656 insns set if operand 1 is ext_QIreg_operand.
1657 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
1658 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
1659 immediate.
1660 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
1661 mode from MODE_DI to MODE_SI.
1662 (movdi_1_rex64): Override modrm and length_immediate attributes
1663 only for movabs (TYPE_IMOV, alternative 2).
1664 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
1665 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
1666 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
1667 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
1668 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
1669 prefix_rex attribute if DImode.
1670 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
1671 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
1672 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
1673 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
1674 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
1675 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
1676 Likewise. For TYPE_IMOV clear length_immediate attribute.
1677 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
1678 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
1679 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
1680 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
1681 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
1682 or one operand TYPE_ISHIFT.
1683 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
1684 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
1685 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
1686 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
1687 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
1688 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
1689 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
1690 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
1691 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
1692 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
1693 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
1694 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
1695 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
1696 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
1697 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
1698 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
1699 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
1700 set mode attribute, don't override length attribute.
1701 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
1702 to 1.
1703 (return_internal_long): Set length attribute to 2 instead of 1.
1704 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
1705 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
1706 prefix_rex attribute.
782dc37a
UB
1707 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
1708 New predicates.
1709 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
a952487c 1710
64af62c2
RR
17112009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1712
1713 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
1714
c166b898
ILT
17152009-05-20 Ian Lance Taylor <iant@google.com>
1716
1717 * tree.c (build_tree_list_vec_stat): New function.
1718 (ctor_to_vec): New function.
1719 (build_nt_call_vec): New function.
1720 (build_call_array): Change args to be a const pointer.
1721 (build_call_vec): New function.
1722 * tree.h (build_nt_call_vec): Declare.
1723 (build_tree_list_vec_stat): Declare.
1724 (build_tree_list_vec): Define.
1725 (build_call_array): Update declaration.
1726 (build_call_vec): Declare.
1727 (ctor_to_vec): Declare.
1728 * c-common.c (tree_vector_cache): New static variable.
1729 (make_tree_vector): New function.
1730 (release_tree_vector): New function.
1731 (make_tree_vector_single): New function.
1732 (make_tree_vector_copy): New function.
1733 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
1734 (make_tree_vector_single, make_tree_vector_copy): Declare.
1735 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
1736 (c_parser_expr_list): Don't manage cache here, instead call
1737 make_tree_vector.
1738 (c_parser_release_expr_list): Remove static function.
1739 (c_parser_vec_to_tree_list): Remove static function.
1740 (c_parser_attributes): Call build_tree_list_vec instead of
1741 c_parser_vec_to_tree_list. Call release_tree_vector instead of
1742 c_parser_release_expr_list.
1743 (c_parser_postfix_expression_after_primary): Likewise.
1744 (c_parser_objc_keywordexpr): Likewise.
1745
40449a90
SL
17462009-05-20 Sandra Loosemore <sandra@codesourcery.com>
1747
1748 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
1749 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
1750 TARGET_CONVERT_TO_TYPE.
1751 * hooks.c (hook_tree_const_tree_null): Define.
1752 * hooks.h (hook_tree_const_tree_null): Declare.
1753 * target.h (struct gcc_target): Add invalid_parameter_type,
1754 invalid_return_type, promoted_type, and convert_to_type fields.
1755 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
1756 (TARGET_INVALID_RETURN_TYPE): Define.
1757 (TARGET_PROMOTED_TYPE): Define.
1758 (TARGET_CONVERT_TO_TYPE): Define.
1759 (TARGET_INITIALIZER): Update for new fields.
1760 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
1761 (grokparms): Check targetm.invalid_parameter_type.
1762 * c-typeck.c (default_conversion): Check targetm.promoted_type.
1763 * c-convert.c (convert): Check targetm.convert_to_type.
1764
642d97ff
AN
17652009-05-20 Adam Nemet <anemet@caviumnetworks.com>
1766
1767 * config/mips/mips.md (*extenddi_truncate<mode>,
1768 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
1769 defintions.
1770 (*extendhi_truncateqi): New define_insn_and_sptit.
1771
776248b8
JJ
17722009-05-20 Jakub Jelinek <jakub@redhat.com>
1773
1774 PR middle-end/40204
1775 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
782dc37a 1776 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
776248b8 1777
d98e8686
EB
17782009-05-20 Eric Botcazou <ebotcazou@adacore.com>
1779
1780 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
1781 the operand of VIEW_CONVERT_EXPR.
1782
37c50435
L
17832009-05-20 H.J. Lu <hongjiu.lu@intel.com>
1784
1785 * config/i386/driver-i386.c (host_detect_local_cpu): Check
f3afc8a7 1786 extended family and model for Intel processors. Support Intel Atom.
37c50435 1787
dbb6088f
OH
17882009-05-20 Olivier Hainque <hainque@adacore.com>
1789
1790 * gstab.h (stab_code_type): Define, to be used instead of the
1791 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
1792 notice.
1793 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
1794 occurrences by stab_code_type.
1795 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
1796
7ec49257
MJ
17972009-05-20 Martin Jambor <mjambor@suse.cz>
1798
1799 * tree-flow.h (insert_edge_copies_seq): Undeclare.
1800 (sra_insert_before): Likewise.
1801 (sra_insert_after): Likewise.
1802 (sra_init_cache): Likewise.
1803 (sra_type_can_be_decomposed_p): Likewise.
1804 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
1805 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
1806 (sra_insert_before): Likewise.
1807 (sra_insert_after): Likewise.
1808 (sra_init_cache): Likewise.
1809 (insert_edge_copies_seq): Made static and moved upwards.
1810
1811 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
1812 case.
1813
1814 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
1815
1816 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
1817 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
1818 simple copies.
1819
0328ae4d
RG
18202009-05-20 Richard Guenther <rguenther@suse.de>
1821
1822 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
1823 with mismatched comparison modes.
1824
a7994a57 18252009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
782dc37a 1826
a7994a57 1827 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
782dc37a
UB
1828 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
1829 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
1830 with shifts for Thumb2.
1831 (orsi_notsi): New for orn.
1832 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
1833 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
1834 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
1835 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
1836 Don't invert remainder for IOR.
a7994a57 1837
e36dc339
ZD
18382009-05-19 Zdenek Dvorak <ook@ucw.cz>
1839
1840 PR tree-optimization/40087
1841 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
1842 number_of_iterations_ne): Rename never_infinite argument.
1843 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
1844 number_of_iterations_le): Handle pointer-type ivs when
1845 exit_must_be_taken is false.
1846 (number_of_iterations_cond): Do not always assume that
1847 exit_must_be_taken if the control variable is a pointer.
1848
5cfd5d9b
AP
18492009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
1850
1851 * c-typeck.c (build_binary_op): Allow % on integal vectors.
1852 * doc/extend.texi (Vector Extension): Document that % is allowed too.
1853
2f1c7156
L
18542009-05-19 H.J. Lu <hongjiu.lu@intel.com>
1855
1856 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
1857 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
1858
7bb27074
MLI
18592009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
1860
1861 PR c/40172
1862 * c.opt (Wlogical-op): Disabled by default.
1863 * c-opt (c_common_post_options): Do not enable Wlogical-op with
1864 Wextra.
1865 * doc/invoke.texi (Wlogical-op): Likewise.
1866
5aefc6a0
EB
18672009-05-19 Eric Botcazou <ebotcazou@adacore.com>
1868
1869 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
1870 into CASE_CONVERT.
1871 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
1872 Propagate the type of the first operand.
1873 <ASSERT_EXPR>: Simplify.
1874 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
1875 Rewrite using the RHS code as discriminant.
1876 <NOP_EXPR>: Turn into CASE_CONVERT.
1877 <PLUS_EXPR>: Propagate the type of the first operand.
1878
f3a83111
SE
18792009-05-19 Steve Ellcey <sje@cup.hp.com>
1880
1881 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
1882 (ia64_dconst_0_375): New.
1883 * config/ia64/ia64.c (ia64_override_options): Remove
1884 -minline-sqrt-min-latency warning.
1885 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
1886 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
1887 * config/ia64/ia64.md (*sqrt_approx): Remove.
1888 (sqrtsf2): Remove #if 0.
1889 (sqrtsf2_internal_thr): Rewrite and move to div.md.
1890 (sqrtdf): Remove assert.
1891 (sqrtdf2_internal_thr): Rewrite and move to div.md.
1892 (sqrtxf2): Remove #if 0.
1893 (sqrtxf2_internal_thr): Rewrite and move to div.md.
1894 * div.md (sqrt_approx_rf): New.
1895 (sqrtsf2_internal_thr): New implementation.
1896 (sqrtsf2_internal_lat): New.
1897 (sqrtdf2_internal_thr: New implementation.
1898 (sqrtxf2_internal): New implementation.
1899
1ffc7157
FXC
19002009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
1901 Hans-Peter Nilsson <hp@axis.com>
1902
1903 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
1904 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
1905 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
1906 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
1907 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
1908 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
1909 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
1910 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
1911 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
1912 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
1913 * c-common.c: ...from here.
1914
db91d9ef
MLI
19152009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
1916
f3afc8a7 1917 * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
db91d9ef 1918
bbb9d91f
KG
19192009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1920
1921 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
1922
ce883f54
BE
19232009-05-19 Ben Elliston <bje@au.ibm.com>
1924
1925 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
1926 assignments with memcpy calls.
1927 (add_fdes): Likewise.
1928 (binary_search_unencoded_fdes): Likewise.
1929 (linear_search_fdes): Eliminate type puns.
1930
377f099a
RG
19312009-05-19 Richard Guenther <rguenther@suse.de>
1932
1933 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
1934 not falsely claim to have propagated into all uses.
1935
848bc769
BE
19362009-05-19 Ben Elliston <bje@au.ibm.com>
1937
1938 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
1939 version to v3.0.
1940
1bb99877
KK
19412009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
1942
1943 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
1944 * config/sh/sh.c (sh_legitimate_address_p): Make static.
1945 (TARGET_LEGITIMATE_ADDRESS_P): New.
1946 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1947 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
1948
82725547
DS
19492009-05-18 Dodji Seketeli <dodji@redhat.com>
1950
1951 PR debug/40109
1952 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
1953 child of the containing namespace's DIE.
1954
f6a1e430
AN
19552009-05-18 Adam Nemet <anemet@caviumnetworks.com>
1956
1957 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
1958 *zero_extendhi_truncqi): Move after the zero_extend patterns.
1959 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
1960 extend patterns.
1961
6a90d232
L
19622009-05-18 H.J. Lu <hongjiu.lu@intel.com>
1963
1964 PR target/39942
1965 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
1966 gen_align with gen_pad.
1967 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
1968 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
1969
1970 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
1971 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
1972
1973 * config/i386/i386.md (align): Renamed to ...
1974 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
1975 ASM_OUTPUT_MAX_SKIP_PAD.
1976
c4406f74
AS
19772009-05-18 Andreas Schwab <schwab@linux-m68k.org>
1978
06555043
AS
1979 * config.gcc: Fix variable syntax.
1980
c4406f74
AS
1981 PR target/39531
1982 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
1983 before calling exact_log2.
1984 (output_iorsi3): Likewise.
1985 (output_xorsi3): Likewise.
1986
99052692
KK
19872009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
1988
1989 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
1990 for the none zero constant operand except for EQ and NE
1991 comprisons even when the first operand is R0.
1992
f4aa3848
AK
19932009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
1994
1995 * config/s390/2064.md: Remove trailing whitespaces.
1996 * config/s390/2084.md: Likewise.
1997 * config/s390/constraints.md: Likewise.
1998 * config/s390/fixdfdi.h: Likewise.
1999 * config/s390/libgcc-glibc.ver: Likewise.
2000 * config/s390/s390-modes.def: Likewise.
2001 * config/s390/s390-protos.h: Likewise.
2002 * config/s390/s390.c: Likewise.
2003 * config/s390/s390.h: Likewise.
2004 * config/s390/s390.md: Likewise.
2005 * config/s390/tpf-unwind.h: Likewise.
2006
ab7256e4
MK
20072009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
2008
2009 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
2010
75df395f
MK
20112009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
2012
2013 M68K TLS support.
2014 * configure.ac (m68k-*-*): Check if binutils support TLS.
2015 * configure: Regenerate.
2016 * config/m68k/predicates.md (symbolic_operand): Extend comment.
2017 * config/m68k/constraints.md (Cu): New constraint.
2018 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
2019 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
2020 (movsi): Handle TLS symbols.
2021 (addsi3_5200): Handle XTLS symbols, indent.
2022 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
2023 (m68k_tls_reference_p): Declare.
2024 (m68k_legitimize_address): Declare.
2025 (m68k_unwrap_symbol): Declare.
2026 * config/m68k/m68k.opt (mxtls): New option.
2027 * config/m68k/m68k.c (ggc.h): Include.
2028 (m68k_output_dwarf_dtprel): Implement hook.
2029 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
2030 (m68k_expand_prologue): Load GOT pointer when function needs it.
2031 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
2032 (m68k_legitimate_constant_address_p): Same.
2033 (m68k_decompose_address): Handle TLS references.
2034 (m68k_get_gp): New static function.
2035 (enum m68k_reloc): New contants.
2036 (TLS_RELOC_P): New macro.
2037 (m68k_wrap_symbol): New static function.
2038 (m68k_unwrap_symbol): New function.
2039 (m68k_final_prescan_insn_1): New static function.
2040 (m68k_final_prescan_insn): New function.
2041 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
2042 functions.
2043 (legitimize_pic_address): Handle TLS references..
2044 (m68k_tls_get_addr, m68k_get_tls_get_addr)
2045 (m68k_libcall_value_in_a0_p)
2046 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
2047 (m68k_call_m68k_read_tp): Helper variables and functions for ...
2048 (m68k_legitimize_tls_address): Handle TLS references.
2049 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
2050 New functions.
2051 (m68k_legitimize_address): Handle TLS symbols.
2052 (m68k_get_reloc_decoration): New static function.
2053 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
2054 UNSPEC_RELOC32.
2055 (m68k_output_dwarf_dtprel): Implement hook.
2056 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
2057 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
2058 m68k_call_* routines.
2059 (sched_attr_op_type): Handle TLS symbols.
2060 (gt-m68k.h): Include.
2061 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
2062 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
2063
8b75fc9b
MJ
20642009-05-18 Martin Jambor <mjambor@suse.cz>
2065
2066 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
2067 (visit_store_addr_for_mod_analysis): New function.
2068 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
2069 (determine_cst_member_ptr): Use gimple_assign_single_p.
2070 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
2071 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
2072 operands. Don't check number of operands of a NOP_EXPR.
2073
f133d4a2
EF
20742009-05-18 Eric Fisher <joefoxreal@gmail.com>
2075
2076 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
2077
ae8af500
L
20782009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
2079
2080 PR c/40172
2081 * c-common.c (warn_logical_operator): Don't warn if one of
2082 expression isn't always true or false.
2083
25e8fde8
KT
20842009-05-17 Kai Tietz <kai.tietz@onevision.com>
2085
ae8af500
L
2086 * config/i386/biarch32.h: New file.
2087 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
25e8fde8 2088
ef67af22
AN
20892009-05-17 Adam Nemet <anemet@caviumnetworks.com>
2090
2091 * config/mips/mips.md (*zero_extend<mode>_trunchi,
2092 *zero_extend<mode>_truncqi): Merge these into ...
2093 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
2094 Name the pattern following this as *zero_extendhi_truncqi.
2095
e2d87023
BL
20962009-05-16 Brad Lucier <lucier@math.purdue.edu>
2097
2098 PR middle-end/39301
2099 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
2100 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
2101 (output_info): Make field HOST_WIDEST_INT.
2102 (print_statistics): Use HOST_WIDEST_INT_PRINT.
2103 (dump_bitmat_statistics): Same.
2104
428ddbf0
FXC
21052009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
2106
2107 * config.gcc (use_gcc_stdint): Set to wrap.
2108 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
2109 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
2110 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
2111 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
2112 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
2113 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
2114 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
2115 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
2116
1ab8a8c2
JM
21172009-05-16 Joseph Myers <joseph@codesourcery.com>
2118
2119 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
2120 tune_64.
2121 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
2122 Move definitions earlier.
2123 (OPT_ARCH64, OPT_ARCH32): Define.
2124 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
2125 and tune_64.
2126
70544f44
RE
21272009-05-16 Richard Earnshaw <rearnsha@arm.com>
2128
2129 PR target/40153
2130 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
2131 implies.
2132
6241ded1
RE
21332009-05-16 Richard Earnshaw <rearnsha@arm.com>
2134
2135 * arm.md (movdi2): Copy non-reg values to DImode registers.
2136
a99c6711
JJ
21372009-05-16 Jakub Jelinek <jakub@redhat.com>
2138
40a8f07a
JJ
2139 PR target/39942
2140 * final.c (label_to_max_skip): New function.
2141 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
2142 CODE_LABEL_NUMBER <= max_labelno.
2143 * output.h (label_to_max_skip): New prototype.
2144 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
2145 (ix86_avoid_jump_mispredicts): ... this. Don't define if
2146 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
2147 Handle CODE_LABELs with >= 16 byte alignment or with
2148 max_skip == (1 << align) - 1.
2149 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
2150 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
2151
a99c6711
JJ
2152 PR target/39942
2153 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
2154 .p2align 3 if MAX_SKIP is smaller than 7.
2155 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
2156
7e5487a2
ILT
21572009-05-15 Ian Lance Taylor <iant@google.com>
2158
2159 * alias.c (struct alias_set_entry_d): Rename from struct
2160 alias_set_entry. Change all uses.
2161 * except.c (struct call_site_record_d): Rename from struct
2162 call_site_record. Change all uses.
2163 * except.h (struct eh_region_d): Rename from struct eh_region.
2164 Change all uses.
2165 * gcse.c (struct hash_table_d): Rename from struct hash_table.
2166 Change all uses.
2167 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
2168 ivtype_map_elt. Change all uses.
2169 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
2170 Change all uses.
2171 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
2172 * graphite.h (struct name_tree_d): Rename from struct name_tree.
2173 Change all uses.
2174 (struct sese_d): Rename from struct sese. Change all uses.
782dc37a
UB
2175 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
2176 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
7e5487a2
ILT
2177 * optabs.h (struct optab_d): Rename from struct optab. Change all
2178 uses.
2179 (struct convert_optab_d): Rename from struct convert_optab.
2180 Change all uses.
2181 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
2182 ipa_opt_pass. Change all uses.
2183 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
2184 all uses.
2185
2186 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
2187 defined as a typedef.
2188 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
2189 defined as a tag.
2190
a243fb4a
MLI
21912009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
2192
2193 PR 16302
2194 * fold-const.c (make_range,build_range_check,merge_ranges): Move
2195 declaration to...
2196 (merge_ranges): Returns bool.
2197 * tree.h (make_range): .. to here.
2198 (build_range_check): Likewise.
2199 (merge_ranges): Likewise. Renamed from merge_ranges.
2200 * c-typeck.c (parser_build_binary_op): Update calls to
2201 warn_logical_operator.
2202 * c-common.c (warn_logical_operator): Add new warning.
2203 * c-common.h (warn_logical_operator): Update declaration.
2204
1b53c5f3
MLI
22052009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
2206
782dc37a 2207 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
1b53c5f3 2208
c128599a
KG
22092009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2210
f9bab007
KG
2211 * doc/install.texi: Document MPC requirements, flags etc.
2212
c128599a
KG
2213 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
2214 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
2215 Evaluate constant arguments.
2216 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
2217 (fold_builtin_1): Likewise, also evaluate constant arguments.
2218 Remove superfluous break.
2219 (do_mpc_ckconv): New.
2220 * real.h: Include mpc.h.
2221 * toplev.c (print_version): Output MPC version info if available.
2222
d33e4b70
SL
22232009-05-15 Sandra Loosemore <sandra@codesourcery.com>
2224
782dc37a 2225 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
d33e4b70 2226
a02ab464
L
22272009-05-15 H.J. Lu <hongjiu.lu@intel.com>
2228
2229 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
2230 only once.
2231
796bda22
JH
22322009-05-15 Jan Hubicka <jh@suse.cz>
2233
2234 * doc/invoke.texi (max-early-inliner-iterations): New flag.
2235 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
2236 (try_inline): Fix return value.
2237 (cgraph_decide_inlining_incrementally): Honor new value.
2238 (cgraph_early_inlining): Handle indirect inlining.
2239 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
2240
d88e5c37
JH
22412009-05-15 Jan Hubicka <jh@suse.cz>
2242
2243 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
2244 * cgraphunit.c (cgraph_finalize_function): Set it.
2245 (cgraph_expand_function): Use it.
2246
ae63687c
SL
22472009-05-15 Sandra Loosemore <sandra@codesourcery.com>
2248
2249 * real.c (encode_ieee_half): Define.
2250 (decode_ieee_half): Define.
2251 (ieee_half_format): Define.
2252 (arm_half_format): Define.
2253 * real.h (ieee_half_format): Declare.
2254 (arm_half_format): Declare.
2255
1bd74ad9
SL
22562009-05-15 Sandra Loosemore <sandra@codesourcery.com>
2257
2258 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
2259 swapped, and reversed optabs exist before trying to use them.
2260
dc34db56
PB
22612009-05-15 Paul Brook <paul@codesourcery.com>
2262 Sandra Loosemore <sandra@codesourcery.com>
2263
dc34db56
PB
2264 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
2265 loads. Allow PRE_DEC.
2266 (output_move_neon): Handle PRE_DEC.
2267 (arm_print_operand): Add 'A' for neon structure loads.
2268 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
2269 * config/arm/neon.md (neon_mov): Update comment.
2270 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
2271 calls.
2272 (Um): New constraint.
2273
1d405d7b
JH
22742009-05-15 Jan Hubicka <jh@suse.cz>
2275
2276 Revert the following patch until testsuite fallout is fixed:
2277 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2278 * cgraph.h (struct inline_summary): New filed self_wize,
2279 size_inlining_benefit, self_time and time_inlining_benefit.
2280 (struct cgraph_global_info): Replace insns by time ans size fields.
2281 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2282 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2283 (ipcp_update_callgraph): Do not touch function bodies.
2284 * ipa-inline.c: Include except.h
782dc37a 2285 (MAX_TIME): New constant.
1d405d7b
JH
2286 (overall_insns): Remove
2287 (overall_size, max_benefit): New static variables.
2288 (cgraph_estimate_time_after_inlining): New function.
2289 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2290 (cgraph_clone_inlined_nodes): Update size.
2291 (cgraph_mark_inline_edge): Update size.
2292 (cgraph_estimate_growth): Use size info.
2293 (cgraph_check_inline_limits): Check size.
2294 (cgraph_default_inline_p): Likewise.
2295 (cgraph_edge_badness): Compute badness based on benefit and size cost.
2296 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
2297 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
2298 and times.
1d405d7b 2299 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
2300 (cgraph_decide_inlining_incrementally): Likewise; honor
2301 PARAM_EARLY_INLINING_INSNS.
1d405d7b
JH
2302 (likely_eliminated_by_inlining_p): New predicate.
2303 (estimate_function_body_sizes): New function.
2304 (compute_inline_parameters): Use it.
2305 * except.c (must_not_throw_labels): New function.
2306 * except.h (must_not_throw_labels): Declare.
2307 * tree-inline.c (init_inline_once): Kill inlining_weigths
2308 * tree-ssa-structalias.c: Avoid uninitialized warning.
2309 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2310 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2311 (PARAM_INLINE_CALL_COST): Remove.
2312 (PARAM_EARLY_INLINING_INSNS): New.
2313
7ffa47ca
RG
23142009-05-15 Richard Guenther <rguenther@suse.de>
2315
2316 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
2317 not TODO_update_ssa.
2318
828552ed
RG
23192009-05-15 Richard Guenther <rguenther@suse.de>
2320
2321 PR tree-optimization/39999
2322 * gimple.h (gimple_expr_type): Use the expression type looking
2323 through useless conversions.
2324 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
2325 (vn_nary_op_insert_stmt): Likewise.
2326 (simplify_binary_expression): Likewise.
2327
248fc9f3
RG
23282009-05-15 Richard Guenther <rguenther@suse.de>
2329
2330 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
2331 New options, enabled by default.
2332 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
2333 Document.
2334 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
2335 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
2336 * tree-ssa-structalias.c (gate_tree_pta): New function.
2337 (pass_build_alias): Use it.
2338
16b29cc4
JM
23392009-05-15 Joseph Myers <joseph@codesourcery.com>
2340
2341 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
2342 recurse on an invariant address if a conversion from a pointer
2343 type to a wider integer type is involved.
2344
125cae84
JH
23452009-05-15 Jan Hubicka <jh@suse.cz>
2346
2347 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2348 * cgraph.h (struct inline_summary): New filed self_wize,
2349 size_inlining_benefit, self_time and time_inlining_benefit.
2350 (struct cgraph_global_info): Replace insns by time ans size fields.
2351 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2352 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2353 (ipcp_update_callgraph): Do not touch function bodies.
2354 * ipa-inline.c: Include except.h
782dc37a 2355 (MAX_TIME): New constant.
125cae84
JH
2356 (overall_insns): Remove
2357 (overall_size, max_benefit): New static variables.
2358 (cgraph_estimate_time_after_inlining): New function.
2359 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2360 (cgraph_clone_inlined_nodes): Update size.
2361 (cgraph_mark_inline_edge): Update size.
2362 (cgraph_estimate_growth): Use size info.
2363 (cgraph_check_inline_limits): Check size.
2364 (cgraph_default_inline_p): Likewise.
2365 (cgraph_edge_badness): Compute badness based on benefit and size cost.
2366 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
2367 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
2368 and times.
125cae84 2369 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
2370 (cgraph_decide_inlining_incrementally): Likewise; honor
2371 PARAM_EARLY_INLINING_INSNS.
125cae84
JH
2372 (likely_eliminated_by_inlining_p): New predicate.
2373 (estimate_function_body_sizes): New function.
2374 (compute_inline_parameters): Use it.
2375 * except.c (must_not_throw_labels): New function.
2376 * except.h (must_not_throw_labels): Declare.
2377 * tree-inline.c (init_inline_once): Kill inlining_weigths
2378 * tree-ssa-structalias.c: Avoid uninitialized warning.
2379 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2380 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2381 (PARAM_INLINE_CALL_COST): Remove.
2382 (PARAM_EARLY_INLINING_INSNS): New.
2383 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
2384 (inline-call-cost): Remove.
2385 (early-inlining-insns): New.
2386
84fb43a1
EB
23872009-05-15 Eric Botcazou <ebotcazou@adacore.com>
2388
2389 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
2390 for bounds.
2391 (print_int_cst_bounds_in_octal_p): Likewise.
2392 (dbxout_type): Adjust calls to above functions. Be prepared to deal
2393 with subtypes.
2394 * dwarf2out.c (base_type_die): Likewise.
2395 (is_subrange_type): Delete.
2396 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
2397 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
f3afc8a7
UB
2398 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
2399 if the destination type is boolean.
84fb43a1
EB
2400 (build_range_check): Do not special-case subtypes.
2401 (fold_sign_changed_comparison): Likewise.
2402 (fold_unary): Likewise.
2403 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
2404 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
2405 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
f3afc8a7
UB
2406 * tree.c (subrange_type_for_debug_p): New predicate based on the
2407 former is_subrange_type.
84fb43a1
EB
2408 * tree.h (subrange_type_for_debug_p): Declare.
2409 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
2410 (convert_affine_scev): Remove call to above function.
2411 (chrec_convert_aggressive): Likewise.
2412 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
2413 false for conversions involving subtypes.
2414 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
2415 (vrp_val_min): Likewise.
2416 (needs_overflow_infinity): Likewise.
2417 (extract_range_from_unary_expr): Likewise.
2418
331d9186
PB
24192009-05-15 Paolo Bonzini <bonzini@gnu.org>
2420
e9351712
L
2421 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
2422 * config/frv/frv.c: Likewise.
2423 * config/s390/s390.c: Likewise.
2424 * config/sparc/sparc.h: Likewise.
2425 * config/i386/i386.h: Likewise.
2426 * config/i386/i386.c: Likewise.
2427 * config/crx/crx.c: Likewise.
2428 * config/m68hc11/m68hc11.h: Likewise.
2429 * config/iq2000/iq2000.c: Likewise.
2430 * config/mn10300/mn10300.h: Likewise.
2431 * config/mn10300/mn10300.c: Likewise.
2432 * config/m68k/m68k.c: Likewise.
2433 * config/rs6000/rs6000.c: Likewise.
2434 * config/rs6000/xcoff.h: Likewise.
2435 * config/rs6000/linux64.h: Likewise.
2436 * config/rs6000/sysv4.h: Likewise.
2437 * config/score/score3.c: Likewise.
2438 * config/score/score7.c: Likewise.
2439 * config/score/score.c: Likewise.
2440 * config/arm/arm.md: Likewise.
2441 * config/mips/mips.c: Likewise.
2442 * config/mips/mips.md: Likewise.
2443 * config/bfin/bfin.h: Likewise.
2444 * config/pa/pa.c: Likewise.
2445 * config/pa/constraints.md: Likewise.
2446
2447 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
2448 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
2449 * config/pdp11/pdp11.h: Use memory_address_p instead.
331d9186 2450
09639a83
ILT
24512009-05-14 Ian Lance Taylor <iant@google.com>
2452
2453 * passes.c (finish_optimization_passes): Change i to int.
2454 * plugin.c (plugins_active_p): Change event to int.
2455 (dump_active_plugins): Likewise.
2456 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
2457 Add cast.
2458 * tree.c (tree_range_check_failed): Change c to unsigned int.
2459 (omp_clause_range_check_failed): Likewise.
2460 (build_common_builtin_nodes): Change mode to int. Add cast.
2461 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
2462 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
2463
2464 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
2465 ++ or -- with a variable of enum type.
2466
c04a56bf
SB
24672009-05-14 Steven Bosscher <steven@gcc.gnu.org>
2468
2469 PR driver/40144
2470 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
2471
237ee620
SB
24722009-05-14 Steven Bosscher <steven@gcc.gnu.org>
2473
2474 * store-motion.c: Do not include params.h
2475 * Makefile.in: Fix dependencies for various files.
2476
1154c4fa
SB
24772009-05-14 Steven Bosscher <steven@gcc.gnu.org>
2478
2479 * auto-inc-dec.c: Fix pass description, remove apparent
2480 accidental duplication.
2481
61c27353
L
24822009-05-14 H.J. Lu <hongjiu.lu@intel.com>
2483
2484 PR middle-end/40147
2485 * ipa-utils.h (memory_identifier_string): Moved to ...
2486 * tree.h (memory_identifier_string): Here. Add GTY(()).
2487
c6c3dba9
PB
24882009-05-14 Paolo Bonzini <bonzini@gnu.org>
2489
2490 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
2491 in the former documentation of...
2492 (GO_IF_LEGITIMATE_ADDRESS): ... this.
2493 * ira-conflicts.c (get_dup_num): Use address_operand.
2494 * targhooks.c (default_legitimate_address_p): New.
2495 * targhooks.h (default_legitimate_address_p): New.
2496 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
2497 Call hook.
2498 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
2499 * target.h (struct target): Add legitimate_address_p.
2500 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
2501 (TARGET_INITIALIZER): Include it.
2502
2503 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2504 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
2505 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
2506 (TARGET_LEGITIMATE_ADDRESS_P): New.
2507
2508 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2509 (REG_OK_STRICT_P): Delete.
2510 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
2511 (frv_legitimate_address_p_1): ... this.
2512 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
2513 (frv_legitimate_address_p_1): ... the renamed old
2514 frv_legitimate_address_p.
2515 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
2516 (TARGET_LEGITIMATE_ADDRESS_P): New.
2517
2518 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2519 * config/s390/s390-protos.h (legitimate_address_p): Remove.
2520 * config/s390/s390.c (legitimate_address_p): Rename to...
2521 (s390_legitimate_address_p): ... this, make static.
2522 (legitimize_address): Adjust call.
2523 (TARGET_LEGITIMATE_ADDRESS_P): New.
2524 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
2525
2526 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2527 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
2528 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
2529 (TARGET_LEGITIMATE_ADDRESS_P): New.
2530
2531 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2532 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
2533 * config/spu/spu.c (spu_legitimate_address): Rename to...
2534 (spu_legitimate_address_p): ... this, make static.
2535 (TARGET_LEGITIMATE_ADDRESS_P): New.
2536
2537 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2538 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
2539 * config/sparc/sparc.c (legitimate_address_p): Rename to...
2540 (sparc_legitimate_address_p): ... this, make static and return bool.
2541 (legitimize_address): Adjust call.
2542 (TARGET_LEGITIMATE_ADDRESS_P): New.
2543
2544 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2545 * config/i386/i386-protos.h (legitimate_address_p): Remove.
2546 * config/i386/i386.c (legitimate_address_p): Rename to...
2547 (ix86_legitimate_address_p): ... this, make static.
2548 (constant_address_p): Move after it, adjust call.
2549 (TARGET_LEGITIMATE_ADDRESS_P): New.
2550
2551 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2552 * config/avr/avr-protos.h (legitimate_address_p): Remove.
2553 * config/avr/avr.c (legitimate_address_p): Rename to...
2554 (avr_legitimate_address_p): ... this, make static.
2555 (legitimize_address): Adjust call.
2556 (TARGET_LEGITIMATE_ADDRESS_P): New.
2557
2558 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2559 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
2560 * config/crx/crx.c (crx_legitimate_address_p): Make static.
2561 (TARGET_LEGITIMATE_ADDRESS_P): New.
2562
2563 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2564 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
2565 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
2566 (TARGET_LEGITIMATE_ADDRESS_P): New.
2567
2568 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2569 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
2570 Remove.
2571 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
2572 Make static.
2573 (TARGET_LEGITIMATE_ADDRESS_P): New.
2574
2575 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2576 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
2577 Remove.
2578 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
2579 Rename to...
2580 (m68hc11_legitimate_address_p): ... this, make static.
2581 (go_if_legitimate_address_internal): Rename to...
2582 (m68hc11_legitimate_address_p_1): ... this.
2583 (legitimize_address): Adjust call.
2584 (TARGET_LEGITIMATE_ADDRESS_P): New.
2585
2586 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
782dc37a
UB
2587 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
2588 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
c6c3dba9
PB
2589 (TARGET_LEGITIMATE_ADDRESS_P): New.
2590
2591 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2592 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
2593 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
2594 (mn10300_legitimate_address_p): ... this, make static.
2595 (TARGET_LEGITIMATE_ADDRESS_P): New.
2596
2597 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2598 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
2599 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
2600 (TARGET_LEGITIMATE_ADDRESS_P): New.
2601
2602 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2603 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
2604 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
2605 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2606 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
2607 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
2608 (rs6000_legitimate_address_p): ... this, make static.
2609 (TARGET_LEGITIMATE_ADDRESS_P): New.
2610 (REG_MODE_OK_FOR_BASE_P): Delete.
2611 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
2612
2613 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2614 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
2615 Delete.
2616 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
2617 static, adjust types.
2618 (TARGET_LEGITIMATE_ADDRESS_P): New.
2619
2620 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2621 * config/score/score.c (score_address_p): Rename to...
2622 (score_legitimate_address_p): ... this.
2623 (TARGET_LEGITIMATE_ADDRESS_P): New.
2624 * config/score/score3.c (score3_address_p): Rename to...
2625 (score3_legitimate_address_p): ... this.
2626 * config/score/score7.c (score7_address_p): Rename to...
2627 (score7_legitimate_address_p): ... this.
2628
2629 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
2630 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
2631 GO_IF_LEGITIMATE_ADDRESS): Delete.
2632 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
2633 thumb2_legitimate_address_p): Delete.
2634 (arm_legitimate_address_p): Rename to...
2635 (arm_legitimate_address_outer_p): ... this.
2636 * config/arm/constraints.md ("Uq"): Adjust call.
2637 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
f3afc8a7
UB
2638 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
2639 to...
c6c3dba9 2640 (arm_legitimate_address_outer_p): ... this.
f3afc8a7
UB
2641 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
2642 static.
c6c3dba9
PB
2643 (TARGET_LEGITIMATE_ADDRESS_P): New.
2644
2645 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2646 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
2647 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
2648 (TARGET_LEGITIMATE_ADDRESS_P): New.
2649
2650 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2651 * config/vax/vax-protos.h (legitimate_address_p): Remove.
2652 * config/vax/vax.c (legitimate_address_p): Rename to...
2653 (vax_legitimate_address_p): ... this, make static.
2654 (TARGET_LEGITIMATE_ADDRESS_P): New.
2655
2656 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2657 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
2658 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
2659 (TARGET_LEGITIMATE_ADDRESS_P): New.
2660
2661 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2662 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
2663 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
2664 (mmix_legitimate_address_p): ... this, make static.
2665 (TARGET_LEGITIMATE_ADDRESS_P): New.
2666
2667 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2668 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
2669 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
2670 (TARGET_LEGITIMATE_ADDRESS_P): New.
2671
3bd0d9c8
PB
26722009-05-14 Paolo Bonzini <bonzini@gnu.org>
2673
2674 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
2675 of MODE_COMPLEX_INT.
2676
fe049033
RO
26772009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2678
2679 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
2680 LCT_NORMAL in function call.
2681 * mips-tdump.c (print_file_desc): Add cast to enum type.
2682 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
2683 (mark_stabs): Add casts to enum types.
2684 (parse_stabs_common): Add casts to enum types.
16f7ad42 2685
b0907a6c
AN
26862009-05-13 Adam Nemet <anemet@caviumnetworks.com>
2687
2688 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
2689 Check for invalid values of LETTER.
2690
d1c8e08a
TG
26912009-05-13 Taras Glek <tglek@mozilla.com>
2692
f3afc8a7
UB
2693 * attribs.c (register_attribute): moved out attribute registration
2694 into register_attribute.
2695 * doc/plugins.texi: Documented register_attribute and
2696 PLUGIN_ATTRIBUTES.
16f7ad42
TG
2697 * gcc-plugin.h: Added forward decl for register_attribute.
2698 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
2699 * plugin.c (register_callback, invoke_plugin_callbacks): Added
2700 PLUGIN_ATTRIBUTES boilerplate.
d1c8e08a 2701
4ed7f970
DK
27022009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
2703
2704 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
2705 values even in sentinel and empty entries.
2706 (ms_printf_flag_specs): Likewise.
2707 (ms_scanf_flag_specs): Likewise.
2708 (ms_strftime_flag_specs): Likewise.
2709 (ms_print_char_table): Likewise.
2710 (ms_scan_char_table): Likewise.
2711 (ms_time_char_table): Likewise.
2712
3d8fa148
DK
27132009-05-13 Doug Kwan <dougkwan@google.com>
2714
2715 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
2716
f06257d3
AN
27172009-05-13 Adam Nemet <anemet@caviumnetworks.com>
2718
2719 * config/mips/mips.md (store): Add attributes for QI and HI.
2720 Update comment.
2721 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
2722 (truncdi<mode>2): ... this new pattern.
2723
fb201767
BH
27242009-05-13 Brad Hards <bradh@kde.org>
2725
2726 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
2727
c7bda60e 27282009-05-14 Jakub Jelinek <jakub@redhat.com>
efc3527a
BE
2729 Ben Elliston <bje@au.ibm.com>
2730
2731 PR middle-end/40035
2732 * dse.c (check_mem_read_rtx): Guard against width == -1.
2733
ce985b43
MM
27342009-05-13 Michael Matz <matz@suse.de>
2735
2736 PR middle-end/39976
2737 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
2738 (trivially_conflicts_p): New function.
2739 (insert_backedge_copies): Use it.
2740
7de1d221
JJ
27412009-05-13 Janis Johnson <janis187@us.ibm.com>
2742
2743 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
2744 (handle_stdc_pragma): Use new enum constant names.
2745 (handle_pragma_float_const_decimal64): Ditto.
2746
bfefafc6
ILT
27472009-05-13 Ian Lance Taylor <iant@google.com>
2748
2749 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
2750 tree.def.
2751
286c4fcb
NS
27522009-05-13 Nathan Sidwell <nathan@codesourcery.com>
2753
2754 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
2755 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
2756 multilibs.
2757 * config/m68k/m68k.h (FL_UCLINUX): Define.
2758
ebaa6ea7
JH
27592009-05-13 Jan Hubicka <jh@suse.cz>
2760
2761 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
2762
2b703e1a
KK
27632009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
2764
2765 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
2766 unless -fschedule-insns is specified.
2767
c3537723
KK
27682009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
2769
2770 PR target/39561
2771 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
2772 TARGET_EXPAND_CBRANCHDI4.
2773 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
2774 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
2775 (cmpeqdi): Fix comment.
2776
cdeed45a
KK
27772009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
2778
2779 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
2780 (sh_legitimate_address_p): Likewise.
2781 * config/sh/sh.c (sh_legitimate_index_p): New.
2782 (sh_legitimate_address_p): Likewise.
2783 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
2784 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
2785 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
2786 (MAYBE_BASE_REGISTER_RTX_P): New macro.
2787 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
2788 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
2789 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
2790 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
2791 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
2792
02f0b13a
JH
27932009-05-12 Jan Hubicka <jh@suse.cz>
2794
2795 * tree-inline.c (estimate_operator_cost): Add operands;
2796 when division happens by constant, it is cheap.
2797 (estimate_num_insns): Loads and stores are not having cost of 0;
2798 EH magic stuff is cheap; when computing runtime cost of switch,
2799 use log2 base of amount of its cases; builtin_expect has cost of 0;
2800 compute cost for moving return value of call.
2801 (init_inline_once): Initialize time_based flags.
2802 * tree-inline.h (eni_weights_d): Add time_based flag.
2803
ecb7f6de
PB
28042009-05-12 Paolo Bonzini <bonzini@gnu.org>
2805
2806 * df-core.c: Update head documentation.
2807
c24151ce
MM
28082009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
2809
2810 PR bootstrap/40118
2811 * rs6000.c (rs6000_generate_compare): Use op1b instead of
2812 shadowing exisiting variable op1.
2813
fbdf817d
UB
28142009-05-12 Uros Bizjak <ubizjak@gmail.com>
2815
704bf7c8 2816 PR target/37179
fbdf817d
UB
2817 * config/i386/driver-i386.c (processor_signatures): New enum.
2818 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
2819 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
2820 processor signature to detect geode processor.
2821
5e8d1826
PB
28222009-05-12 Paolo Bonzini <bonzini@gnu.org>
2823
2824 Revert:
2825
2826 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
2827
2828 * optabs.c (prepare_cmp_insn): Temporarily disable test that
2829 causes spurious differences between trunk and cond-optab branch.
2830
f90b7a5a
PB
28312009-05-12 Paolo Bonzini <bonzini@gnu.org>
2832
fbdf817d
UB
2833 * dojump.c (compare_from_rtx): Delete.
2834 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
2835 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
f90b7a5a
PB
2836 if the comparison does not satisfy the predicate; test predicates for
2837 operands 2 and 3 of a cstore pattern. Don't try cstore optab
2838 further if one existing pattern fails.
fbdf817d 2839 * expr.h (compare_from_rtx): Delete.
f90b7a5a 2840 (prepare_operand): Declare it.
fbdf817d 2841 * optabs.c: Change "lib call" to "libcall" throughout.
f90b7a5a 2842 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
fbdf817d
UB
2843 HAVE_conditional_trap, emit_cmp_insn): Delete.
2844 (can_compare_p): Delete cmp_optab case.
f90b7a5a 2845 (prepare_float_lib_cmp): Return an rtx and a machine mode.
fbdf817d
UB
2846 Accept other parameters by value.
2847 (prepare_operand): Make non-static.
2848 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
2849 other parameters by value. Try to widen operands here based on
2850 an optab_methods argument and looking at cbranch_optab.
2851 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
2852 loop. Use cbranch_optab directly.
2853 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
2854 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
2855 assertion.
2856 (emit_conditional_move, emit_conditional_add): Inline what's needed
2857 of compare_from_rtx, using new prepare_cmp_insn for the rest.
2858 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
2859 with COMPARE. Move cmov_optab and cstore_optab above
2860 with cbranch_optab, move cmp_optab down with ucmp_optab,
2861 remove tst_otpab. Do not initialize trap_rtx.
2862 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
f90b7a5a
PB
2863 for trap code. Do not check HAVE_conditional_trap. Use
2864 prepare_cmp_insn. Accept no predicate for operand 3.
fbdf817d
UB
2865 * optabs.h (OTI_cmp): Mark as used only for libcalls.
2866 (OTI_ctrap, ctrap_optab): New.
2867 (tst_optab): Delete.
2868 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
2869 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
2870 with lookup of ctrap_optab.
f3afc8a7
UB
2871 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
2872 Delete.
fbdf817d
UB
2873 (ctrap_optab): New.
2874
2875 * combine.c (combine_simplify_rtx, simplify_set): Do not
2876 special case comparing against zero for cc0 machines.
f90b7a5a
PB
2877 * simplify-rtx.c (simplify_binary_operation_1): Never remove
2878 COMPARE on cc0 machines.
2879 (simplify_relational_operation): Return a new expression when
2880 a COMPARE could be removed.
fbdf817d
UB
2881 * final.c (final_scan_insn): Compare cc_status values
2882 against LHS of a (compare FOO (const_int 0)) cc0 source.
2883 Also check if cc_status.value is the full compare.
f90b7a5a 2884
fbdf817d
UB
2885 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
2886 (cstoreMM4): Document.
f90b7a5a 2887 (conditional_trap): Document ctrapMM4 instead.
fbdf817d 2888 (sync_compare_and_swapMM): Refer to cbranchcc4.
f90b7a5a
PB
2889 (Dependent Patterns): Eliminate obsolete information referring to
2890 the old jump optimization phase.
fbdf817d 2891 (Canonicalization): Include cbranchcc4 case, omit canonicalization
f90b7a5a
PB
2892 of compares with 0 on cc0 machines.
2893 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
2894 avoiding references to cc0. Remove text about storing operands
2895 in cmpMM.
2896 * doc/tm.texi (Condition Codes): Include blurb on different
2897 condition code representations, separate into subsections for
2898 CC0, MODE_CC and conditional execution.
2899
fbdf817d
UB
2900 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
2901 alpha_emit_setcc): Accept operands and a machine mode.
2902 * config/alpha/alpha.c (alpha_emit_conditional_branch):
2903 Get code/op0/op1 from operands, use machine mode argument
2904 instead of alpha_compare.fp_p. Emit the branch here.
2905 (alpha_emit_setcc): Likewise, and return boolean.
2906 (alpha_emit_conditional_move): Likewise. Assert that
2907 cmp_op_mode == cmp_mode, and simplify accordingly.
2908 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
2909 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
2910 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
2911 Delete.
2912 (stack probe test): Use cbranchdi4.
2913 * config/alpha/predicates.md (alpha_cbranch_operator): New.
2914
2915 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
2916 * config/arc/arc.h (movsicc, movsfcc): Use it.
2917 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
2918 (cbranchsi4, cstoresi4): New.
2919 (cmpsi, bCC and sCC expanders): Remove.
2920
2921 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
2922 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
2923 * config/arm/predicates.md (arm_comparison_operator): Only include
2924 floating-point operators if there is a hardware floating-point unit.
2925 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
2926 deferring to cbranch_cc and cstore_cc respectively.
2927 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
2928 cbranch_cc, cstore_cc): New.
2929 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
f90b7a5a 2930 arm_compare_op1.
fbdf817d
UB
2931 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
2932
2933 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
2934 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
2935 as an argument.
2936 (adjust_insn_length): Adjust calls.
2937 (avr_reorg): Handle (compare (foo) (const_int 0)).
2938 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
2939 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
2940 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
2941 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
2942 (bCC): Remove.
2943 (cbranchqi4, cbranchhi4, cbranchsi4): New.
f90b7a5a
PB
2944 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
2945
fbdf817d
UB
2946 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
2947 (cbranchsi4, cstorebi4, cstoresi4): New.
f90b7a5a 2948 (movbisi): This insn is duplicate, split it to zero_extend.
fbdf817d
UB
2949 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
2950 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
2951 (bfin_optimize_loop): Use cbranch expander.
2952 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
2953 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
2954 (bfin_bimode_comparison_operator): ... this.
2955 (bfin_direct_comparison_operator): New.
f90b7a5a 2956
fbdf817d
UB
2957 * config/cris/cris.c (cris_normal_notice_update_cc): Look
2958 inside (compare FOO (const_int 0)).
2959 (cris_rtx_costs): Handle ZERO_EXTRACT.
2960 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
2961 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
2962 (*tstdi_v32): Delete.
2963 (*cmpdi_non_v32): Add M alternative for operand 1.
2964 (cmpsi, cmp<mode>): Make private.
2965 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
2966 with COMPARE.
2967 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
2968
2969 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
2970 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
2971 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
f90b7a5a
PB
2972 (cc_reg_operand): New.
2973 (any_cond): Delete.
fbdf817d
UB
2974 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
2975 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
2976 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
2977 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
2978 crx_expand_scond): Delete.
2979
2980 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
2981 (cbranchsi4): New.
2982 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
2983 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
2984
2985 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
2986 cstoresi4, cstoresf4, cstoredf4): New.
2987 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
2988 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
2989 Receive the entire operands array.
2990 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
2991 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
2992 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
2993 Get test/op0/op1 from the operands array.
2994 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
2995
2996 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
2997 (h8300_expand_store): New.
2998 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
2999 (const_int 0)).
3000 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
3001 (h8300_expand_store): New.
3002 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
3003 or do not try to produce (set (cc0) REG).
3004 (peepholes): Wrap arguments with COMPARE. Add a peephole to
3005 change a compare into a move to a scratch register. Disable some
3006 peepholes when comparing with zero.
3007 (tstsi, tsthi, tstsi, cmpqi): Make private.
3008 (cmphi): Delete.
3009 (bCC, sCC): Delete.
3010 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
3011 cstoresi4): New.
f90b7a5a
PB
3012
3013 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
3014 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
3015 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
3016 (ix86_emit_i387_log1p): Use cbranchxf2.
3017 (ix86_expand_setcc): Return void.
3018 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
3019 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
3020 cmp<MODEF>, cmpcc): Remove.
fbdf817d
UB
3021 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
3022 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
3023 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
f90b7a5a
PB
3024 (sCC and bCC expanders): Remove.
3025 (stack_protect_test): Use cbranchcc4.
3026
fbdf817d
UB
3027 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
3028 Delete.
3029 (ia64_expand_compare): Accept three rtx by reference and return void.
3030 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
3031 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
3032 from *expr. Update *expr with the BImode comparison to do.
3033 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
3034 cmptf, bCC, sCC, conditional_trap): Delete.
3035 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
3036 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
3037 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
3038 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
3039 * config/ia64/predicates.md (ia64_cbranch_operator): New.
3040
3041 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
3042 type of last argument.
3043 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
3044 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
3045 use machine mode argument instead of branch_type. Remove dead
3046 code for floating-point comparisons.
3047 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
3048 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
3049 Remove.
3050 (cbranchsi4, cstoresi4): New.
3051 * config/iq2000/predicates.md (reg_or_const_operand): New.
3052
3053 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
3054 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
3055 (b<code>_op): Rewrite to...
3056 (bcc_op): ... this, using match_operator.
3057 (s<code>_op): Rewrite to...
3058 (scc_op): ... this, using match_operator.
3059 (s<code>_24_op): Rewrite to...
3060 (scc_op_24): ... this, using match_operator.
3061 (s<code>_<mode>): Rewrite to...
3062 (cstore<mode>4): ... this, using match_operator.
3063 (s<code>_<mode>_24): Rewrite to...
3064 (cstore<mode>4_24): ... this, using match_operator.
3065 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
3066 m32c_unpend_compare, m32c_expand_scc): Delete.
3067 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
3068 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
3069 (m32c_expand_movcc): Change NE to EQ if necessary.
3070 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
3071
3072 * config/m32r/m32r-protos.h (gen_cond_store): New.
3073 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
3074 (gen_cond_store): New, from sCC patterns.
3075 (m32r_expand_block_move): Use cbranchsi4.
3076 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
3077 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
3078 (cbranchsi4, cstoresi4): New.
3079
3080 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
3081 Delete.
3082 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
f90b7a5a 3083 (m68hc11_notice_update_cc): Look into a compare with 0.
fbdf817d
UB
3084 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
3085 Delete.
3086 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
3087 cmphi, cmpqi, bCC): Delete.
3088 (cbranchsi4, cbranchhi4, cbranchqi4): New.
3089 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
3090 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
3091 sets with COMPARE.
3092
3093 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
3094 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
3095 * config/m68k/constraints.md (H): New.
3096 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
3097 the define_insn below.
3098 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
3099 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
3100 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
3101 patterns): Wrap RHS with COMPARE.
3102 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
3103 (*cmpdi_internal): Name this pattern.
3104 (cmpdi): Change to define_insn.
3105 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
3106 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
3107 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
3108 predicate.
3109 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
3110 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
3111 (conditional_trap): Change to...
3112 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
3113 (*conditional_trap): Use the ordered_comparison_operator and
3114 const1_operand predicates.
3115 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
3116 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
3117 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
3118 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
3119
3120 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
3121 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
3122 (mcore_gen_compare): New.
3123 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
3124 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
3125 (mcore_gen_compare): ... this.
3126 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
3127 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
3128 (stack probe pattern): Use cbranchsi4.
3129
3130 * config/mips/predicates.md (mips_cstore_operator): New.
3131 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
3132 * config/mips/mips.md (any_cond): Delete.
3133 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
3134 always succeed.
3135 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
3136 fixuns_truncsfdi2): Use cbranch patterns.
3137 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
3138 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
3139 Adjust call to mips_expand_conditional_branch.
3140 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
3141 cstore<GPR:mode>4.
3142 * config/mips/mips-protos.h (mips_expand_conditional_branch,
3143 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
3144 * config/mips/mips.c (cmp_operands): Delete.
3145 (mips_emit_compare): Get comparison operands from *op0/*op1.
3146 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
3147 that it succeeds. Use op0/op1 instead of cmp_operands.
3148 (mips_expand_conditional_branch, mips_expand_conditional_move,
3149 mips_expand_conditional_trap): Likewise.
3150 (mips_block_move_loop): Use cbranch patterns.
3151 * config/mips/mips.h (cmp_operands): Delete.
3152
3153 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
3154 (mmix_gen_compare_reg): Just return a register in the right CC mode.
3155 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
3156 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
3157 (*cmpcc_folded): Rename to...
3158 (*cmpdi_folded): this.
3159 (*cmpcc): Rename to...
3160 (*cmps): ... this.
3161 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
3162 (bCC): Remove.
3163 (cbranchdi4): New.
3164 (cbranchdf4): New. Handle invalid comparisons here.
3165 * config/mmix/predicates.md (float_comparison_operator): New.
3166
3167 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
3168 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
3169 * config/mn10300/mn10300.md (tst): Delete.
3170 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
3171 Name these patterns and wrap RHS in a compare.
3172 (*cmpsi): Make this pattern private. Include tst.
3173 (*cmpsf): Make this pattern private.
3174 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
3175 (compare with zero peepholes): Likewise.
3176 (bCC): Remove.
3177 (cbranchsi4, cbranchsf4): New.
3178 (casesi): Use cbranchsi4.
3179
3180 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
3181 hppa_branch_type): Delete.
3182 (return_addr_rtx): Use cbranchsi4.
3183 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
3184 Emit CCFPmode comparison here.
3185 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
3186 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
3187 hppa_branch_type): Delete.
3188 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
3189 (movsicc, movdicc): Remove references to hppa_compare_op0,
3190 hppa_compare_op1 and compare_from_rtx.
3191 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
3192 (casesi): Use cbranchsi4.
3193
3194 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
3195 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
3196 * config/pdp11/pdp11.md (register_or_const0_operand): New.
3197 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
3198 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
3199 (bCC): Delete.
3200 (cbranchdf4, cbranchhi4, cbranchqi4): New.
3201 (*branch, *branch_inverted): New.
3202
3203 * config/picochip/picochip.md (cbranchhi4): Use
3204 ordered_comparison_operator.
3205 (cmphi, bCC): Remove.
3206
3207 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
3208 (trap_comparison_operator): Delete.
3209 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
3210 rs6000_emit_cbranch): Accept mode and operands.
3211 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
3212 rs6000_compare_fp_p): Delete.
3213 (rs6000_generate_compare): Accept mode and comparison. Extract code
3214 and op0/op1 from there. Replace references to rs6000_compare_op0
3215 and rs6000_compare_op1.
3216 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
3217 extract result from passed operands.
3218 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
3219 extract loc from passed operands.
3220 (rs6000_emit_cmove): Likewise.
3221 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
3222 rs6000_compare_fp_p): Delete.
3223 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
3224 (cbranch<GPR>4, cbranch<FP>4): New.
3225 (cstore<mode>4): New. Consolidate here all choices about when to use
3226 portable or specialized sCC sequences.
3227 (stack_protect_test): Use cbranchsi4.
3228 (conditional_trap): Replace with ctrap<GPR>4.
3229 (conditional trap insn): Replace trap_comparison_operator with
3230 ordered_comparison_operator.
3231
3232 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
3233 (s390_emit_prologue): Use ctrap.
3234 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
3235 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
3236 New predicates replacing...
3237 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
3238 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
3239 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
3240 (add<mode>cc): Do not use s390_compare_op0/op1.
3241 (s<code>): Change to...
3242 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
3243 (seq): Change to...
3244 (cstorecc4): ... this. Handle EQ or NE equally.
3245 (*sne): Un-privatize for use in cstorecc4.
3246 (b<code>): Change to...
3247 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
3248 (conditional_trap): Replace with...
3249 (ctrap<GPR>4, ctrap<FP>4): ... these.
3250 (stack_protect): Use cbranchcc4.
3251
3252 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
3253 * config/score/score-protos.h (score_gen_cmp): Delete.
3254 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
3255 (score_block_move-loop): Use cbranchsi4.
3256 * config/score/score.md (cbranchsi4): New.
3257 (cmpsi, bCC): Delete.
3258 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
3259 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
3260 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
3261 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
3262 * config/score/score3.h (score3_gen_cmp): Delete.
3263 * config/score/score7.h (score7_gen_cmp): Delete.
3264
3265 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
3266 (sh_emit_scc_to_t): ... this. Return void.
3267 (from_compare): Rename to...
3268 (sh_emit_compare_and_branch): ... this.
3269 (sh_emit_compare_and_set): New.
3270 (sh_expand_t_scc): Accept operands.
3271 * config/sh/predicates.md (sh_float_comparison_operator): New.
3272 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
3273 (prepare_scc_operands): Rename to...
3274 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
3275 arguments.
3276 (sh_emit_cheap_store_flag): New.
f90b7a5a 3277 (sh_emit_set_t_insn): New.
fbdf817d
UB
3278 (from_compare): Rename to...
3279 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
3280 handling of TARGET_SH2E floating point to avoid recursive call.
3281 Generate branch here.
3282 (sh_emit_compare_and_set): New.
3283 (sh_expand_t_scc): Get op0/op1 from arguments.
3284 (sh_emit_cheap_store_flag): New.
3285 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
3286 cases.
f90b7a5a 3287 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
fbdf817d
UB
3288 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
3289 (movsicc, movdicc): Do nothing when it recreated operands from
3290 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
3291 prepare_scc_operands (now sh_emit_scc_to_t).
3292 (udivdi3): Use cstoresi4.
3293 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
3294 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
3295 (cbranchint4_media, cbranchfp4_media): New.
3296 (casesi): Use cbranchdi4.
3297 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
3298 Delete.
3299 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
3300 (movnegt): Remove second operand.
3301 (cbranchsf4, cbranchdf4): New.
3302 (stack_protect): Use cbranchdi4/cbranchsi4.
3303
3304 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
3305 (gen_compare_reg): Accept comparison, extract part of it to...
3306 (gen_compare_reg_1): ... this.
3307 (gen_compare_operator): Delete.
3308 (gen_v9_scc): Accept separate destination, comparison code and arms.
3309 Do not use sparc_compare_op0/sparc_compare_op1.
3310 (emit_scc_insn, emit_conditional_branch_insn): New.
3311 (emit_v9_brxx): Make static. Remove useless assertion.
3312 (sparc_emit_float_lib_cmp): Return RTL instead of calling
3313 emit_cmp_insn.
3314 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
3315 * config/sparc/sparc-protos.h (gen_compare_reg,
f90b7a5a
PB
3316 sparc_emit_float_lib_cmp): Adjust prototype.
3317 (emit_scc_insn, emit_conditional_branch_insn): New.
3318 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
fbdf817d
UB
3319 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
3320 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
3321 iterators to the top.
3322 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
3323 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
f90b7a5a 3324 snedi_special_trunc): Delete.
fbdf817d 3325 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
f90b7a5a 3326 and snedi_special_trunc.
fbdf817d
UB
3327 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
3328 cbranchdi4, cbranch<F:mode>4): New.
3329 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
3330 here. Use gen_compare_reg instead of gen_compare_operator.
3331 (conditional_trap): Replace with...
3332 (ctrapsi4, ctrapdi4): ... this.
3333 (stack_protect_test): Use cbranchcc4.
3334
3335 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
3336 argument to rtx.
3337 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
3338 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
3339 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
3340 from operands[0] or operands[3] depending on is_set.
3341 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
3342 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
3343 cmpdf, bCC), sCC: Remove.
3344 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
3345 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
3346 cstoredf4): New.
3347 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
3348 spu_emit_branch_or_set.
3349
3350 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
3351 Add two arguments.
3352 * config/stormy16/stormy16.h (xstormy16_compare_op0,
3353 xstormy16_compare_op1): Delete.
3354 * config/stormy16/stormy16.c (xstormy16_compare_op0,
3355 xstormy16_compare_op1): Delete.
3356 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
3357 Adjust calls.
3358 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
3359 (cmphi, cmpsi, bCC): Remove.
3360
3361 * config/v850/v850.md (tstsi, cmpsi): Fold into...
3362 (*cmpsi): ... this one.
3363 (cbranchsi4, cstoresi4): New.
3364 (bCC expanders): Delete.
3365 (sCC insns): Fold into...
3366 (*setcc): ... this one.
3367 (casesi): Do not use gen_cmpsi and gen_bgtu.
f90b7a5a
PB
3368 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
3369 (movsicc): Simplify.
3370 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
3371
fbdf817d
UB
3372 * config/vax/vax-protos.h (cond_name): New.
3373 (vax_output_conditional_branch): Remove.
3374 * config/vax/vax.c (cond_name): New.
3375 (vax_output_conditional_branch): Remove.
3376 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
3377 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
3378 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
3379 (bit<VAXint>): Wrap source with (compare).
3380 (b<code> and following unnamed pattern): Rename to *branch and
3381 *branch_reversed. Change macroization to match_operator.
3382 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
3383
3384 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
3385 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
3386 Change last argument to machine_mode.
3387 (xtensa_expand_scc): Add machine_mode argument.
3388 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
3389 (gen_conditional_move, xtensa_expand_conditional_branch,
3390 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
3391 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
3392 Adjust operand numbers.
3393 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
3394 Delete.
3395 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
3396 (cmpsi, cmpsf, b<code>, s<code>): Delete.
3397 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
f90b7a5a 3398
16670495
PB
33992009-05-12 Paolo Bonzini <bonzini@gnu.org>
3400
3401 * optabs.c (prepare_cmp_insn): Temporarily disable test that
3402 causes spurious differences between trunk and cond-optab branch.
3403
4a4a4e99
AO
34042009-05-12 Alexandre Oliva <aoliva@redhat.com>
3405
3406 PR target/37137
3407 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
3408
72b9acff
AO
34092009-05-12 Alexandre Oliva <aoliva@redhat.com>
3410
3411 * tree.c (iterative_hash_pointer): Delete.
3412 (iterative_hash_expr): Short-circuit handling of NULL pointer.
3413 Hash UIDs and versions of SSA names. Don't special-case built-in
3414 function declarations.
3415
b7dd69ac
ILT
34162009-05-11 Ian Lance Taylor <iant@google.com>
3417
3418 PR bootstrap/40103
3419 * graphite.c: Force -Wc++-compat to only be a warning before
3420 #including "cloog/cloog.h".
3421
ed102b70
MJ
34222009-05-11 Martin Jambor <mjambor@suse.cz>
3423
3424 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
3425
08f1af2e
JH
34262009-05-11 Jan Hubicka <jh@suse.cz>
3427
3428 * tree-ssa-loop-ivcanon.c: Include target.h
3429 (struct loop_size): new structure.
3430 (constant_after_peeling): New predicate.
3431 (tree_estimate_loop_size): New function.
3432 (estimated_unrolled_size): Rewrite for new estimates.
3433 (try_unroll_loop_completely): Use new estimates.
3434 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
3435
a7d39bd3
AP
34362009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
3437
3438 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
3439 libcpp interface change.
3440 (spu_macro_to_expand): Likewise.
3441
f5a1f0d0
PB
34422009-05-11 Paolo Bonzini <bonzini@gnu.org>
3443
3444 PR tree-optimization/40026
3445 * gimplify.c (gimplify_init_constructor): Change initial conditional
3446 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
3447 optimize_compound_literals_in_ctor.
3448
c260f01f
NS
34492009-05-11 Nathan Sidwell <nathan@codesourcery.com>
3450
3451 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
3452 New devices.
3453 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
3454
df398a37
L
34552009-05-11 H.J. Lu <hongjiu.lu@intel.com>
3456
3457 * tree-vect-data-refs.c (vect_analyze_group_access): Use
3458 HOST_WIDE_INT for gap.
3459
4da39468
IR
34602009-05-11 Ira Rosen <irar@il.ibm.com>
3461
3462 PR tree-optimization/40074
3463 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
3464 account in group size and step comparison.
3465
4effdf02
RG
34662009-05-11 Richard Guenther <rguenther@suse.de>
3467
3468 * passes.c (init_optimization_passes): Strip now incorrect comment.
3469 (execute_function_todo): Do not set PROP_alias.
3470 * tree-pass.h (PROP_alias): Remove.
3471 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
3472 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
3473 * tree-nrv.c (pass_return_slot): Likewise.
3474 * tree-object-size.c (pass_object_sizes): Likewise.
3475 * tree-ssa-dom.c (pass_dominator): Likewise.
3476 (pass_phi_only_cprop): Likewise.
3477 * tree-ssa-dse.c (pass_dse): Likewise.
3478 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
3479 (pass_cselim): Likewise.
3480 * tree-ssa-pre.c (pass_pre): Likewise.
3481 (pass_fre): Likewise.
3482 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
3483 * tree-ssa-sink.c (pass_sink_code): Likewise.
3484 * tree-stdarg.c (pass_stdarg): Likewise.
3485 * tree-tailcall.c (pass_tail_calls): Likewise.
3486 * tree-vrp.c (pass_vrp): Likewise.
3487
24b97832
ILT
34882009-05-10 Ian Lance Taylor <iant@google.com>
3489
3490 * basic-block.h (enum profile_status): Break out of struct
3491 control_flow_graph.
3492 * cgraph.h (struct inline_summary): Break out of struct
3493 cgraph_local_info.
3494 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
3495 of struct cgraph_order_sort.
fbdf817d 3496 * combine.c (enum undo_kind): New enum, broken out of struct undo.
24b97832
ILT
3497 * cse.c (struct branch_path): Break out of struct
3498 cse_basic_block_data.
3499 * except.h (enum eh_region_type): Break out of struct eh_region.
3500 * gcc.c (enum add_del): Break out of struct modify_target.
fbdf817d 3501 * genrecog.c (enum decision_type): Break out of struct decision_test.
24b97832
ILT
3502 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
3503 ggc_pch_data.
fbdf817d
UB
3504 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
3505 * regmove.c (enum match_use): New enum, broken out of struct match.
24b97832
ILT
3506 * sched-int.h (enum post_call_group): New enum, broken out of
3507 struct deps.
3508 (struct deps_reg): Break out of struct deps.
3509 * target.h (struct asm_int_op): Break out of struct gcc_target.
3510 * tree-eh.c (struct goto_queue_node): Break out of struct
3511 leh_tf_state.
3512 * tree-inline.h (enum copy_body_cge_which): Break out of
3513 copy_body_data.
3514 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
3515
3516 * c-decl.c (in_struct, struct_types): New static variables.
3517 (pushtag): Add loc parameter. Change all callers.
3518 (lookup_tag): Add ploc parameter. Change all callers.
3519 (check_compound_literal_type): New function.
3520 (parser_xref_tag): Add loc parameter. Change all callers. If
3521 -Wc++-compat, warn about struct/union/enum types defined within a
3522 struct or union.
3523 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
3524 and loc parameters. Change all callers. Change error calls to
3525 error_at, using loc. For a redefinition, if the location of the
3526 original definition is known, report it. Set in_struct and
fbdf817d 3527 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
24b97832
ILT
3528 (finish_struct): Add new parameters enclosing_in_struct and
3529 enclosing_struct_types. Change all callers. Set
3530 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
3531 in the struct. If in a struct, add this struct to struct_types.
3532 (start_enum): Add loc parameter. Change all callers. Use
3533 error_at for errors, using loc. For a redefinition, if the
3534 location of the original definition is known, report it. If in a
3535 struct, add this enum type to struct_types. If -Wc++-compat warn
3536 if in sizeof, typeof, or alignof.
fbdf817d
UB
3537 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
3538 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
24b97832
ILT
3539 (c_parser_enum_specifier): Get enum location for start_enum.
3540 (c_parser_struct_or_union_specifier): Get struct location for
3541 start_struct. Save in_struct and struct_types status between
3542 start_struct and finish_struct.
3543 (c_parser_cast_expression): Get location of cast.
3544 (c_parser_alignof_expression): Get location of type.
3545 (c_parser_postfix_expression): Likewise.
3546 (c_parser_postfix_expression_after_paren_type): Add type_loc
fbdf817d
UB
3547 parameter. Change all callers. Call check_compound_literal_type.
3548 Use type_loc for error about variable size type.
3549 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
3550 of an enum constant from an enum type defined in a struct or union.
24b97832
ILT
3551 (c_cast_expr): Add loc parameter. Change all callers. If
3552 -Wc++-compat, warn about defining a type in a cast.
3553 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
3554 (start_enum, start_struct, finish_struct): Update declarations.
3555 (parser_xref_tag, c_cast_expr): Update declarations.
3556 (check_compound_literal_type): Declare.
3557
7a2738fa
BE
35582009-05-11 Ben Elliston <bje@au.ibm.com>
3559
3560 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
3561 for recent libcpp interface change.
3562 (rs6000_macro_to_expand): Likewise.
3563
af618949
MM
35642009-05-10 Michael Matz <matz@suse.de>
3565
3566 PR target/40031
3567 * config/arm/arm.c (require_pic_register): Emit on entry edge,
3568 not at entry of function.
3569
b7d7a473
RG
35702009-05-10 Richard Guenther <rguenther@suse.de>
3571
3572 PR tree-optimization/40081
3573 Revert
3574 * tree-sra.c (instantiate_element): Instantiate scalar replacements
3575 using the main variant of the element type. Do not fiddle with
3576 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
3577
3578 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
3579 structs with volatile fields.
3580
078c3644
JH
35812009-05-10 Jan Hubicka <jh@suse.cz>
3582
3583 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
fbdf817d
UB
3584 (estimate_move_cost): Assert that it does not get called for
3585 VOID_TYPE_P.
078c3644
JH
3586 (estimate_num_insns): Skip VOID types in argument handling.
3587 (optimize_inline_calls): Delete unreachable blocks and verify that
3588 callgraph is valid.
3589
39ff5a96
JH
35902009-05-10 Jan Hubicka <jh@suse.cz>
3591
3592 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
3593 * cgraph.c (cgraph_mark_address_taken_node): New function.
3594 (dump_cgraph_node): Dump new flag.
3595 * cgraph.h (struct cgraph_node): Add address_taken.
3596 (cgraph_mark_address_taken_node): New function.
39ff5a96
JH
3597 * ipa.c (cgraph_postorder): Prioritize functions with address taken
3598 since new direct calls can be born.
3599
9a0c6187
JM
36002009-05-10 Joseph Myers <joseph@codesourcery.com>
3601
3602 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
3603 tok->val.node.node.
3604
4b685e14
JH
36052009-05-10 Jan Hubicka <jh@suse.cz>
3606
3607 PR middle-end/40084
fb0be169
EB
3608 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
3609 argument; rewrite.
4b685e14
JH
3610 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
3611 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
3612 * tree-inline.c (copy_bb): Set frequency correctly.
fb0be169
EB
3613 (fold_marked_statements): Update call to
3614 cgraph_update_edges_for_call_stmt.
4b685e14 3615
29d08eba
JM
36162009-05-10 Joseph Myers <joseph@codesourcery.com>
3617
3618 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
3619 identifiers in diagnostics.
3620 * config/arm/arm.c (arm_handle_fndecl_attribute,
3621 arm_handle_isr_attribute): Likewise.
3622 * config/avr/avr.c (avr_handle_progmem_attribute,
782dc37a 3623 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
29d08eba
JM
3624 * config/bfin/bfin.c (handle_int_attribute,
3625 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
3626 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
3627 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
3628 Likewise.
3629 * config/darwin.c (darwin_handle_kext_attribute,
3630 darwin_handle_weak_import_attribute): Likewise.
3631 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
3632 h8300_handle_eightbit_data_attribute,
3633 h8300_handle_tiny_data_attribute): Likewise.
3634 * config/i386/i386.c (ix86_handle_cconv_attribute,
782dc37a 3635 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
29d08eba
JM
3636 * config/i386/winnt.c (ix86_handle_shared_attribute,
3637 ix86_handle_selectany_attribute): Likewise.
3638 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
3639 * config/m32c/m32c.c (function_vector_handler): Likewise.
3640 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
3641 m68hc11_handle_fntype_attribute): Likewise.
3642 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
3643 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
3644 * config/mips/mips.c (mips_insert_attributes,
3645 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
3646 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
3647 rs6000_handle_struct_attribute): Likewise.
3648 * config/sh/sh.c (sh_insert_attributes,
3649 sh_handle_resbank_handler_attribute,
3650 sh_handle_interrupt_handler_attribute,
3651 sh2a_handle_function_vector_handler_attribute,
3652 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
3653 Likewise.
3654 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
3655 * config/spu/spu.c (spu_handle_fndecl_attribute,
3656 spu_handle_vector_attribute): Likewise.
3657 * config/stormy16/stormy16.c
3658 (xstormy16_handle_interrupt_attribute): Likewise.
3659 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
3660 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
3661
f41c4af3
JM
36622009-05-10 Joseph Myers <joseph@codesourcery.com>
3663
782dc37a 3664 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
f41c4af3
JM
3665 (pp_translate_identifiers): New.
3666 (pp_identifier): Only conditionally translate identifier to locale
3667 character set.
3668 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
3669 (pp_base_tree_identifier): Only conditionally translate identifier
3670 to locale character set.
3671 * c-pretty-print.c (M_): Define.
3672 (pp_c_type_specifier, pp_c_primary_expression): Mark English
3673 fragments for conditional translation with M_.
3674 * tree-pretty-print.c (maybe_init_pretty_print): Disable
3675 identifier translation.
3676
896d7dbd
RG
36772009-05-10 Richard Guenther <rguenther@suse.de>
3678
3679 PR tree-optimization/40081
3680 * tree-sra.c (instantiate_element): Instantiate scalar replacements
3681 using the main variant of the element type. Do not fiddle with
3682 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
3683
9a23acef
JH
36842009-05-09 Jan Hubicka <jh@suse.cz>
3685
3686 PR middle-end/40080
3687 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
3688 indirect calls; verify cgraph afterwards.
3689
d563610d
JH
36902009-05-09 Jan Hubicka <jh@suse.cz>
3691
3692 PR bootstrap/40082
3693 * ipa.c (update_inlined_to_pointer): New function.
3694 (cgraph_remove_unreachable_nodes): Use it.
3695
f08a18d0
JH
36962009-05-09 Jan Hubicka <jh@suse.cz>
3697
3698 * tree-eh.c (struct leh_state): Remove prev_try.
3699 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
3700 not track prev_try.
3701 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
3702 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
3703 remove_eh_handler_and_replace, foreach_reachable_handler,
3704 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
3705 * except.h (struct eh_region): Remove eh_region_u_cleanup.
3706 (gen_eh_region_cleanup): Update prototype.
3707
0afd7219
JH
37082009-05-09 Jan Hubicka <jh@suse.cz>
3709
3710 PR middle-end/40043
3711 * except.c (copy_eh_region): Always set prev_try.
3712 (redirect_eh_edge_to_label): Find outer try.
3713 (foreach_reachable_handler): When looking for prev try
3714 handle case where previous try is not going to be taken.
3715
ad6c0864
MM
37162009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
3717
3718 PR tree-optimization/40049
3719 * tree-vect-stmts.c (vectorizable_operation): If the machine has
3720 only vector/vector shifts, convert the type of the constant to the
3721 appropriate type to avoid building incorrect trees, which
3722 eventually have problems with garbage collection.
3723
c94f9067
JM
37242009-05-08 Joseph Myers <joseph@codesourcery.com>
3725
3726 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
3727 -1 for complex floating-point types if honoring signed zeros.
3728
9187e02d
JH
37292009-05-08 Jan Hubicka <jh@suse.cz>
3730
20acb8a2
EB
3731 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
3732 argument; handle correctly when profile is absent.
9187e02d
JH
3733 (build_cgraph_edges): Update.
3734 (rebuild_cgraph_edges): Update.
20acb8a2
EB
3735 * cgraph.c: Do not include varray.h.
3736 (cgraph_set_call_stmt_including_clones): New function.
3737 (cgraph_create_edge_including_clones): Likewise
3738 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
9187e02d
JH
3739 (cgraph_update_edges_for_call_stmt): Handle clones.
3740 (cgraph_remove_node): Handle clone tree.
3741 (cgraph_remove_node_and_inline_clones): New function.
3742 (dump_cgraph_node): Dump clone tree.
3743 (cgraph_clone_node): Handle clone tree.
20acb8a2 3744 (clone_function_name): Bring here from tree-inline.c.
9187e02d 3745 (cgraph_create_virtual_clone): New function.
20acb8a2
EB
3746 * cgraph.h (ipa_replace_map): Move here from ipa.h.
3747 (cgraph_clone_info): New function.
9187e02d 3748 (strut cgraph_node): Add clone_info and new clone tree pointers.
20acb8a2
EB
3749 (cgraph_remove_node_and_inline_clones,
3750 cgraph_set_call_stmt_including_clones,
3751 cgraph_create_edge_including_clones,
3752 cgraph_create_virtual_clone): Declare.
9187e02d
JH
3753 (cgraph_function_versioning): Use VEC argument.
3754 (compute_call_stmt_bb_frequency): Update prototype.
3755 (cgraph_materialize_all_clones): New function.
3756 * ipa-cp.c (ipcp_update_cloned_node): Remove.
3757 (ipcp_create_replace_map): Update to VECtors.
3758 (ipcp_update_callgraph): Use virtual clones.
3759 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
3760 (ipcp_update_profiling): Do not update local profiling.
3761 (ipcp_insert_stage): Use VECtors and virtual clones.
3762 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
3763 (clone_of_p): New function.
3764 (cgraph_preserve_function_body_p): Use clone tree.
3765 (cgraph_optimize): Materialize clones.
3766 (cgraph_function_versioning): Update for VECtors.
3767 (save_inline_function_body): Use clone tree.
20acb8a2
EB
3768 (cgraph_materialize_clone): New function.
3769 (cgraph_materialize_all_clones): Likewise.
9187e02d
JH
3770 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
3771 * ipa.c: Include gimple.h.
3772 (cgraph_remove_unreachable_nodes): Use clone tree.
20acb8a2
EB
3773 * ipa-prop.c (ipa_note_param_call): Update call to
3774 compute_call_stmt_bb_frequencycall.
9187e02d 3775 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
20acb8a2 3776 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
9187e02d
JH
3777 (copy_bb): Handle updating of clone tree; add new edge when new call
3778 appears.
3779 (expand_call_inline): Be strict about every call having edge.
3780 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
3781 (delete_unreachable_blocks_update_callgraph): New function.
20acb8a2
EB
3782 (tree_function_versioning): Use VECtors; always remove unreachable
3783 blocks and fold conditionals.
3784 * tree-inline.h: Do not include varray.h.
9187e02d
JH
3785 (tree_function_versioning): Remove.
3786 * Makefile.in (GTFILES): Remove tree-inline.c
3787 * passes.c (do_per_function): Do only functions having body.
20acb8a2
EB
3788 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
3789 tree.
9187e02d 3790
9b86d6bb
L
37912009-05-08 H.J. Lu <hongjiu.lu@intel.com>
3792 Andrew Morrow <acm@google.com>
3793
3794 PR c/36892
3795 * c-common.c (c_common_attribute_table): Permit deprecated
3796 attribute to take an optional argument.
3797 (handle_deprecated_attribute): If the optional argument to
3798 __attribute__((deprecated)) is not a string ignore the attribute
3799 and emit a warning.
3800
3801 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
3802 * c-typeck.c (build_component_ref): Likewise.
3803 (build_external_ref): Likewise.
3804
3805 * toplev.c (warn_deprecated_use): Add an attribute argument.
3806 Emit the message associated with __attribute__((deprecated)).
3807
3808 * toplev.h (warn_deprecated_use): Updated.
3809
3810 * doc/extend.texi: Document new optional parameter to
3811 __attribute__((deprecated))
3812
82ad047f
ME
38132009-05-08 Michael Eager <eager@eagercon.com>
3814
3815 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
3816 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
3817
788d3075
RG
38182009-05-08 Richard Guenther <rguenther@suse.de>
3819
3820 PR tree-optimization/40062
3821 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
3822 Avoid exponential behavior.
3823
00952e97
PB
38242009-05-08 Paolo Bonzini <bonzini@gnu.org>
3825
3826 PR rtl-optimization/33928
3827 PR 26854
3828 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
3829 process_uses, build_single_def_use_links): New.
3830 (update_df): Update use_def_ref.
3831 (forward_propagate_into): Use get_def_for_use instead of use-def
3832 chains.
3833 (fwprop_init): Call build_single_def_use_links and let it initialize
3834 dataflow.
3835 (fwprop_done): Free use_def_ref.
3836 (fwprop_addr): Eliminate duplicate call to df_set_flags.
3837 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
3838 df_rd_simulate_one_insn): New.
3839 (df_rd_bb_local_compute_process_def): Update head comment.
3840 (df_chain_create_bb): Use the new RD simulation functions.
3841 * df.h (df_rd_simulate_artificial_defs_at_top,
3842 df_rd_simulate_one_insn): New.
3843 * opts.c (decode_options): Enable fwprop at -O1.
3844 * doc/invoke.texi (-fforward-propagate): Document this.
3845
2ca862e9
JM
38462009-05-08 Joseph Myers <joseph@codesourcery.com>
3847
3848 PR c/24581
3849 * c-typeck.c (build_binary_op): Handle arithmetic between one real
3850 and one complex operand specially.
3851 * tree-complex.c (some_nonzerop): Do not identify a real value as
3852 zero if flag_signed_zeros.
3853
3e807ffc
PB
38542009-05-08 Paolo Bonzini <bonzini@gnu.org>
3855
3856 PR rtl-optimization/33928
7925c06c 3857 * loop-invariant.c (record_use): Fix && vs. || mishap.
3e807ffc 3858
1bfdbb29
PB
38592009-05-08 Paolo Bonzini <bonzini@gnu.org>
3860
3861 PR rtl-optimization/33928
e913423f
EB
3862 * loop-invariant.c (struct use): Add addr_use_p.
3863 (struct def): Add n_addr_uses.
3864 (struct invariant): Add cheap_address.
3865 (create_new_invariant): Set cheap_address.
3866 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
3867 (record_uses): Pass df_ref to record_use.
3868 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
3869 used only as such.
1bfdbb29 3870
702cb2a0
KK
38712009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
3872
3873 * config/sh/sh.c: Do not include c-pragma.h.
3874
5e8df753
AP
38752009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
3876
3877 * config/spu/spu.c: Remove include of c-common.h.
3878
6ec637a4
JJ
38792009-05-07 Janis Johnson <janis187@us.ibm.com>
3880
3881 PR c/39037
3882 * c-common.h (mark_valid_location_for_stdc_pragma,
3883 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
3884 clear_float_const_decimal64, float_const_decimal64_p): New.
3885 * c.opt (Wunsuffixed-float-constants): New.
3886 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
3887 unsuffixed float constant, handle new warning.
3888 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
3889 * c-decl.c (c_scope): New flag float_const_decimal64.
3890 (set_float_const_decimal64, clear_float_const_decimal64,
3891 float_const_decimal64_p): New.
3892 (push_scope): Set new flag.
3893 * c-parser.c (c_parser_translation_unit): Mark when it's valid
3894 to use STDC pragmas.
3895 (c_parser_external_declaration): Ditto.
3896 (c_parser_compound_statement_nostart): Ditto.
3897 * c-pragma.c (valid_location_for_stdc_pragma,
3898 mark_valid_location_for_stdc_pragma,
3899 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
3900 handle_pragma_float_const_decimal64): New.
3901 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
3902 * cp/semantics.c (valid_location_for_stdc_pragma_p,
3903 set_float_const_decimal64, clear_float_const_decimal64,
3904 float_const_decimal64_p): New dummy functions.
3905 * doc/extend.texi (Decimal Float): Remove statement that the
3906 pragma, and suffix for double constants, are not supported.
3907 * doc/invoke.texi (Warning Options): List new option.
3908 (-Wunsuffixed-float-constants): New.
3909
45b9b2e9
SB
39102009-05-08 Steven Bosscher <steven@gcc.gnu.org>
3911
3912 * config/i386/i386.c: Do not include c-common.h.
3913
e71da632
MH
39142009-05-07 Mark Heffernan <meheff@google.com>
3915
3916 * doc/invoke.texi (Debugging Options): Document change of debugging
3917 dump location.
e913423f 3918 * opts.c (decode_options): Make dump_base_name relative to
e71da632
MH
3919 aux_base_name directory.
3920
fe4c7bc6
HS
39212009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
3922
3923 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
3924 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
3925
3b3e44eb
RAE
39262009-05-07 Rafael Avila de Espindola <espindola@google.com>
3927
3928 * Makefile.in (install-plugin): Simplify a bit.
3929
fac41238
PB
39302009-05-07 Paolo Bonzini <bonzini@gnu.org>
3931
3932 * Makefile.in (OBJS-common): Add regcprop.o.
3933 (regcprop.o): New.
3934 * timevar.def (TV_CPROP_REGISTERS): New.
3935 * regrename.c (regrename_optimize): Return 0.
3936 (rest_of_handle_regrename): Delete.
3937 (pass_rename_registers): Point to regrename_optimize.
3938 (struct value_data_entry, struct value_data,
3939 kill_value_one_regno, kill_value_regno, kill_value,
3940 set_value_regno, init_value_data, kill_clobbered_value,
3941 kill_set_value, kill_autoinc_value, copy_value,
3942 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
3943 replace_oldest_value_reg, replace_oldest_value_addr,
3944 replace_oldest_value_mem, copyprop_hardreg_forward_1,
3945 debug_value_data, validate_value_data): Move...
3946 * regcprop.c: ... here.
3947 (rest_of_handle_cprop): Delete.
3948 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
3949
472e0df9
JJ
39502009-05-07 Jakub Jelinek <jakub@redhat.com>
3951
3952 PR middle-end/40057
3953 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
3954 GEN_INT for 1 << bitnum.
3955 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
3956 build_int_cst_type.
3957
0d50d55a
UB
39582009-05-07 Uros Bizjak <ubizjak@gmail.com>
3959
3960 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
7925c06c 3961 Remove wrong description of "nand" operation.
0d50d55a 3962
22f597f1
RG
39632009-05-06 Richard Guenther <rguenther@suse.de>
3964 Adam Nemet <anemet@caviumnetworks.com>
3965
3966 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
3967 comment. Add that if LHS is not a gimple register, then RHS1 has
3968 to be a single object (GIMPLE_SINGLE_RHS).
3969
641cac0b
AN
39702009-05-06 Adam Nemet <anemet@caviumnetworks.com>
3971
3972 * expr.c (get_def_for_expr): Move it up in the file.
3973 (store_field): When expanding a bit-field store, look at the
3974 defining gimple stmt for the masking conversion.
3975
5a5c6435
JJ
39762009-05-06 Janis Johnson <janis187@us.ibm.com>
3977
3978 PR middle-end/39986
3979 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
3980 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
3981 32-bit memcpy into long.
3982
96474f36
JJ
39832009-05-06 Jakub Jelinek <jakub@redhat.com>
3984
3985 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
3986 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
3987 new_reg_loc_descr.
3988 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
3989 instead of appending DW_OP_deref*.
3990
529ff441
MM
39912009-05-06 Michael Matz <matz@suse.de>
3992
3993 PR middle-end/40021
3994 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
3995 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
3996
9419a9fd
RAE
39972009-05-06 Rafael Avila de Espindola <espindola@google.com>
3998
3999 * Makefile.in (install-plugin): Fix srcdir handling.
4000
fff1894c
AB
40012009-05-06 Andrey Belevantsev <abel@ispras.ru>
4002
4003 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
4004 when processing for not_regs_needed bitmap.
4005 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
4006 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
4007 handling it for rhs.
4008
700ae70c
L
40092009-05-06 H.J. Lu <hongjiu.lu@intel.com>
4010
ab3426a7 4011 * config/i386/i386.md (unnamed inc/dec peephole): Use
aa016ff7 4012 optimize_insn_for_size_p instead of optimize_size.
700ae70c
L
4013 * config/i386/predicates.md (incdec_operand): Likewise.
4014 (aligned_operand): Likewise.
4015 * config/i386/sse.md (divv8sf3): Likewise.
4016 (sqrtv8sf2): Likewise.
4017
67341fb5
L
40182009-05-06 H.J. Lu <hongjiu.lu@intel.com>
4019
4020 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
4021
4022 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
4023
87946f42
L
40242009-05-06 H.J. Lu <hongjiu.lu@intel.com>
4025
4026 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
4027 ssemodesuffixf2c with avxmodesuffixf2c.
4028
1202aec1
JM
40292009-05-06 Joseph Myers <joseph@codesourcery.com>
4030
4031 PR c/40032
aa016ff7 4032 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1202aec1 4033
6e57a01d
JJ
40342009-05-05 Jakub Jelinek <jakub@redhat.com>
4035
4036 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
4037 (struct tree_base): Adjust spacing for 8 bit boundaries.
4038 (struct tree_decl_common): Add decl_by_reference_flag bit.
4039 (DECL_BY_REFERENCE): Adjust.
4040 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
4041 print DECL_BY_REFERENCE bit.
4042 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
4043 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
4044 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
4045 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
4046 unconditionally.
4047
32f579f6
JJ
4048 PR middle-end/39666
4049 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
4050 range of the type, but default label is missing, add it with one
4051 of the existing labels instead of adding a new label for it.
4052
617ab743
JM
40532009-05-05 Joseph Myers <joseph@codesourcery.com>
4054
4055 * dwarf.h: Remove.
4056
bf016de8
RAE
40572009-05-05 Rafael Avila de Espindola <espindola@google.com>
4058
4059 * Makefile.in (enable_plugin, plugin_includedir): New.
4060 (install): Depend on install-plugin.
4061 (PLUGIN_HEADERS): New.
4062 (install-plugin): New.
4063 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
4064
7f8fdb9f
RG
40652009-05-05 Richard Guenther <rguenther@suse.de>
4066
4067 PR tree-optimization/40022
4068 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
4069 the only vuse.
4070 (phivn_valid_p): Fix tuplification error, simplify.
4071 (phiprop_insert_phi): Add dumps.
4072 (propagate_with_phi): Simplify.
4073
8d972839
RG
40742009-05-05 Richard Guenther <rguenther@suse.de>
4075
4076 PR middle-end/40023
aa016ff7 4077 * builtins.c (gimplify_va_arg_expr): Properly build the address.
8d972839 4078
66ba9b0b
SZ
40792009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
4080
4081 * tree.h (strip_float_extensions): Remove duplicate declaration.
aa016ff7
UB
4082 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
4083 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
4084 block_ultimate_origin): Rearrange the declarations line to match the
4085 comment that indicates the .c file which the functions are defined.
4086 (dwarf2out_*, set_decl_rtl): Add comment.
4087 (get_base_address): Adjust comment.
4088 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
4089 declarations line and add comment.
4090 (is_builtin_name): Add blank after function name, for clarity.
66ba9b0b 4091
4f1e4960
JM
40922009-05-04 Joseph Myers <joseph@codesourcery.com>
4093
4094 * attribs.c (decl_attributes): Use %qE for identifiers in
4095 diagnostics.
4096 * cgraphunit.c (verify_cgraph_node): Translate function names to
4097 locale character set in diagnostics.
4098 * coverage.c (get_coverage_counts): Use %qE for identifiers in
4099 diagnostics.
4100 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
4101 Document that functions are named in UTF-8.
4102 * expr.c (expand_expr_real_1): Translate function names to locale
4103 character set in diagnostics.
4104 * gimplify.c (omp_notice_variable, omp_is_private,
4105 gimplify_scan_omp_clauses): Use %qE for identifiers in
4106 diagnostics.
4107 * langhooks.c (lhd_print_error_function): Translate function names
4108 to locale character set.
4109 * langhooks.h (decl_printable_name): Document that return value is
4110 in internal character set.
4111 * stmt.c: Include pretty-print.h
4112 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
4113 diagnostics.
4114 (resolve_operand_name_1): Translate named operand name to locale
4115 character set.
4116 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
4117 diagnostics.
4118 * toplev.c (announce_function): Translate function names to locale
4119 character set.
4120 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
4121 (default_tree_printer): Use pp_identifier or translate identifiers
4122 to locale character set. Mark "<anonymous>" for translation.
4123 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
4124 for identifiers in diagnostics.
4125 * tree.c (handle_dll_attribute): Use %qE for identifiers in
4126 diagnostics.
4127 * varasm.c (output_constructor): Use %qE for identifiers in
4128 diagnostics.
4129
40540e68
RAE
41302009-05-04 Rafael Avila de Espindola <espindola@google.com>
4131
4132 * configure.ac: use ` ` instead of $()
4133 * configure: Regenerate.
4134
33fc884c
BE
41352009-05-05 Ben Elliston <bje@au.ibm.com>
4136
4137 * config/pa/linux-atomic.c: Eliminate conditional include of
4138 errno.h on non-LP64 systems to simplify build requirements.
4139
88388a52
JM
41402009-05-04 Joseph Myers <joseph@codesourcery.com>
4141
4142 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
4143 diagnostics.
4144 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
4145 and pass value to identifier_to_locale.
4146 (warn_variable_length_array): Make name a tree.
4147 (grokdeclarator): Separate diagnostic texts for named and unnamed
4148 declarators. Use %qE for named declarators.
4149 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
4150 diagnostics.
4151 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
4152 identifiers in diagnostics.
4153 * c-typeck.c (push_member_name, start_init): Pass identifiers to
4154 identifier_to_locale. Mark "anonymous" strings for translation.
4155
960c5c79
ME
41562009-05-04 Michael Eager <eager@eagercon.com>
4157
4158 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
aa016ff7 4159 address for DImode/DFmode only if double-precision FP regs.
960c5c79 4160
d083fbba
ME
41612009-05-04 Michael Eager <eager@eagercon.com>
4162
4163 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
4164 TARGET_SINGLE_FLOAT check.
4165
c3ba8d32
ME
41662009-05-04 Michael Eager <eager@eagercon.com>
4167
4168 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
4169
edce9f18
ME
41702009-05-04 Michael Eager <eager@eagercon.com>
4171
4172 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
4173 * config/rs6000/t-xilinx: New
4174
506d7b68
PB
41752009-05-04 Paolo Bonzini <bonzini@gnu.org>
4176
e913423f 4177 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
506d7b68
PB
4178 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
4179 * gcc/explow.c (memory_address): Use target hook.
4180 * gcc/targhooks.c (default_legitimize_address): New.
4181 * gcc/targhooks.h (default_legitimize_address): New.
4182 * gcc/target.h (legitimize_address): New.
4183 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
4184 (TARGET_INITIALIZER): Include it.
4185 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
4186
4187 * config/bfin/bfin-protos.h (legitimize_address): Remove.
4188 * config/bfin/bfin.c (legitimize_address): Remove.
4189 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
aa016ff7
UB
4190 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
4191 Remove.
506d7b68
PB
4192 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
4193 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
4194
4195 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
4196 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
4197 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
4198 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
4199 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
4200 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
4201 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
4202 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
4203 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
4204 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
4205 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
4206 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
4207 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
4208 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
4209 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
4210 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
4211 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
4212 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
4213 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
4214 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
4215 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
4216 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
4217 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
4218
4219 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
4220 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
4221 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
4222 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
4223 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
4224 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
4225 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
4226 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
4227 (thumb_legitimize_address): Delete.
4228 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
4229 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
4230 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
4231 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
4232 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
aa016ff7
UB
4233 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
4234 Delete.
4235 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
4236 Delete.
506d7b68
PB
4237
4238 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
4239 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
4240 * config/m32r/m32r.c (m32r_legitimize_address): New.
4241 * config/m68k/m68k.c (m68k_legitimize_address): New.
4242 * config/score/score.c (score_legitimize_address): Standardize.
4243 * config/score/score3.c (score3_legitimize_address): Standardize.
4244 * config/score/score3.h (score3_legitimize_address): Adjust.
4245 * config/score/score7.c (score7_legitimize_address): Standardize.
4246 * config/score/score7.h (score7_legitimize_address): Adjust.
4247 * config/sh/sh.c (sh_legitimize_address): New.
4248 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
4249
4250 * gcc/config/s390/s390.c (legitimize_address): Rename to...
4251 (s390_legitimize_address): ... this.
4252 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
4253 (sparc_legitimize_address): ... this.
4254 * gcc/config/i386/i386.c (legitimize_address): Rename to...
4255 (ix86_legitimize_address): ... this.
4256 * gcc/config/avr/avr.c (legitimize_address): Rename to...
4257 (avr_legitimize_address): ... this.
4258 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
4259 (mn10300_legitimize_address): ... this.
4260 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
4261 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
4262 (alpha_expand_mov): Adjust call.
4263
4264 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
4265 * config/spu/spu.c (spu_legitimize_address): Likewise.
4266 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
4267 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
4268
a3af5087
JM
42692009-05-04 Joseph Myers <joseph@codesourcery.com>
4270
4271 * intl.c (locale_encoding, locale_utf8): New.
4272 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
4273 * intl.h (locale_encoding, locale_utf8): Declare.
4274 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
4275 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
4276 New.
4277 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
4278 argument.
4279 (pp_tree_identifier): Define to call pp_base_tree_identifier.
4280 (pp_base_tree_identifier): Declare as function.
4281 (identifier_to_locale): Declare.
4282 * Makefile.in (pretty-print.o): Update dependencies.
aa016ff7 4283 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
a3af5087 4284
ea5cd5f1
RG
42852009-05-04 Richard Guenther <rguenther@suse.de>
4286
4287 PR middle-end/40015
4288 * builtins.c (fold_builtin_memory_op): Do not decay to element
4289 type if the size matches the whole array.
4290
ddc2690a
KH
42912009-05-04 Kazu Hirata <kazu@codesourcery.com>
4292
4293 * expmed.c (synth_mult): When trying out a shift, pass the result
4294 of a signed shift.
4295
ef268d34
KH
42962009-05-04 Kazu Hirata <kazu@codesourcery.com>
4297
4298 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
4299 (shiftsub1_cost): New.
4300 (init_expmed): Compute shiftsub1_cost.
4301 (synth_mult): Optimize multiplications by constants of the form
4302 -(2^^m-1) for some constant positive integer m.
4303
255d3827
RG
43042009-05-03 Richard Guenther <rguenther@suse.de>
4305
4306 PR c/39983
4307 * c-typeck.c (array_to_pointer_conversion): Do not built
4308 ADDR_EXPRs of arrays of pointer-to-element type.
4309 * c-gimplify.c (c_gimplify_expr): Revert change fixing
4310 up wrong ADDR_EXPRs after-the-fact.
4311 * c-common.c (strict_aliasing_warning): Strip pointer
4312 conversions for obtaining the original type.
4313 * builtins.c (fold_builtin_memset): Handle array types.
4314 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
4315 and array types
4316
16c33770
RG
43172009-05-03 Richard Guenther <rguenther@suse.de>
4318
4319 PR middle-end/23329
4320 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
4321 Do not lose casts from array types with unknown extent to array
4322 types with known extent.
4323 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
4324 alias set compatibility.
4325
62a67c94
MLI
43262009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
4327
4328 * flags.h (extra_warnings): Delete.
4329 * toplev.c (process_options): Handle Wuninitialized here.
4330 * opts.c (extra_warnings): Delete.
4331 (set_Wextra): Delete.
4332 (common_handle_option): -Wextra can be handled automatically.
4333 * c-opts.c (c_common_handle_option): Delete obsolete code.
4334 (c_common_post_options): Simplify comment.
4335 * common.opt (W): Add Var.
4336 (Wextra): Add Var.
4337 (Wuninitialized): Initialize to -1.
4338
8c7926c4
AN
43392009-05-03 Adam Nemet <anemet@caviumnetworks.com>
4340 Richard Guenther <rguenther@suse.de>
4341
4342 * expr.c (get_def_for_expr): New function.
4343 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
4344 SSA rather than trees.
4345 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
4346 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
4347
fa5da7de
JM
43482009-05-03 Joseph Myers <joseph@codesourcery.com>
4349
4350 * c-common.c (reswords): Add _Imaginary.
4351 * c-common.c (enum rid): Add RID_IMAGINARY.
4352
2ddd5020
PB
43532009-05-03 Paolo Bonzini <bonzini@gnu.org>
4354
4355 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
4356 Patch by Richard Guenther.
4357
aea88c05
AS
43582009-05-03 Anatoly Sokolov <aesok@post.ru>
4359
4360 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
4361 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
4362 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
4363 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
4364 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
4365 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
4366 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
4367 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
4368 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
4369 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
4370 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
4371 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
4372 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
4373 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
4374 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
4375 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
4376 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
4377 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
4378
85e59f3a
RG
43792009-05-02 Richard Guenther <rguenther@suse.de>
4380
4381 PR tree-optimization/39940
4382 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
4383 doing so.
4384
4636b850
RG
43852009-05-02 Richard Guenther <rguenther@suse.de>
4386
4387 PR middle-end/40001
4388 * tree-ssa.c (execute_update_addresses_taken): Properly check
4389 if we can mark a variable DECL_GIMPLE_REG_P.
4390 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
4391 back to the end of the function.
4392 (is_gimple_reg_type): Remove complex type special casing.
4393 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
4394 if not optimizing.
4395
5e10cb5a
BE
43962009-05-02 Ben Elliston <bje@au.ibm.com>
4397
4398 * doc/collect2.texi (Collect2): Document search path behaviour
4399 when configured with --with-ld.
4400
048bf48b
JH
44012009-05-02 Jan Hubicka <jh@suse.cz>
4402
4403 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
4404 parameter; update callers.
aa016ff7
UB
4405 (coalesce_cost_edge): EH edges are costier because they needs
4406 splitting even if not critical and even more costier when there are
4407 multiple EH predecestors.
048bf48b 4408
d5c5f9ab
JH
44092009-05-02 Jan Hubicka <jh@suse.cz>
4410
4411 * except.c (remove_eh_handler_and_replace): Handle updating after
4412 removing TRY blocks.
4413
2ed1959a
EB
44142009-05-02 Eric Botcazou <ebotcazou@adacore.com>
4415
4416 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
4417
d363a7e7
SB
44182009-05-02 Steven Bosscher <steven@gcc.gnu.org>
4419
4420 * varasm.c: Do not include c-pragma.h.
4421 * attribs.c: Do not incude c-common.h.
4422
9c3d55b4
MM
44232009-05-01 Michael Matz <matz@suse.de>
4424
4425 * calls.c (initialize_argument_information): Handle SSA names like
4426 decls with a non MEM_P DECL_RTL.
4427
ea264ca5
SB
44282009-05-01 Steven Bosscher <steven@gcc.gnu.org>
4429
4430 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
4431 * ipa-utils.c: Likewise.
4432 * ipa-type-escape.c: Likewise.
4433 * cgraphunit.c Do not include c-common.h.
4434 * ipa-pure-const.c: Likewise.
4435 * tree-if-conv.c: Likewise.
4436 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
4437 * ipa-struct-reorg.c: Likewise.
4438 * tree-nomudflap.c: Likewise.
4439 * tree-ssa-structalias.c: Likewise.
4440
6c5d4d1a
SB
44412009-05-01 Steven Bosscher <steven@gcc.gnu.org>
4442
4443 * store-motion.c: Many cleanups to make this pass a first-class
4444 citizen instead of an appendix to gcse load motion. Add TODO list
4445 to make this pass faster/cleaner/better.
4446
4447 (struct ls_expr): Post gcse.c-split cleanups.
4448 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
4449 "stores" field to "avail_stores".
4450 (pre_ldst_mems): Rename to store_motion_mems.
4451 (pre_ldst_table): Rename to store_motion_mems_table.
4452 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
4453 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
4454 (ldst_entry): Rename to st_expr_entry, update users.
4455 (free_ldst_entry): Rename to free_st_expr_entry, update users.
4456 (free_ldst_mems): Rename to free_store_motion_mems, update users.
aa016ff7
UB
4457 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
4458 update caller.
6c5d4d1a
SB
4459 (first_ls_expr): Rename to first_st_expr, update users.
4460 (next_ls_expr): Rename to next_st_expr, update users.
4461 (print_ldst_list): Rename to print_store_motion_mems. Print names of
4462 fields properly for store motion instead of names inherited from load
4463 motion in gcse.c.
4464 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
4465 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
4466 are done with it.
4467
4468 (ae_kill): Rename to st_kill, update users.
4469 (ae_gen): Rename to st_avloc, update users.
4470 (transp): Rename to st_transp, update users.
4471 (pre_insert_map): Rename to st_insert_map, update users.
4472 (pre_delete_map): Rename to st_delete_map, update users.
4473 (insert_store, build_store_vectors, free_store_memory,
4474 one_store_motion_pass): Update for abovementioned changes.
4475
4476 (gcse_subst_count, gcse_create_count): Remove.
4477 (one_store_motion_pass): New statistics counters "n_stores_deleted"
4478 and "n_stores_created", local variables.
4479
4480 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
4481 use for_each_rtx.
4482
4483 (regvec, compute_store_table_current_insn): Remove.
4484 (reg_set_info, reg_clear_last_set): Remove.
4485 (compute_store_table): Use DF caches instead of local dataflow
4486 solvers.
4487
b02cec6e
JM
44882009-05-01 Joseph Myers <joseph@codesourcery.com>
4489
4490 * c-objc-common.c (c_tree_printer): Print identifiers with
4491 pp_identifier, not pp_string. Mark "({anonymous})" for
4492 translation.
4493 * c-pretty-print.c (pp_c_ws_string): New.
4494 (pp_c_cv_qualifier, pp_c_type_specifier,
4495 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
4496 pp_c_storage_class_specifier, pp_c_function_specifier,
4497 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
4498 pp_c_primary_expression, pp_c_postfix_expression,
4499 pp_c_unary_expression, pp_c_shift_expression,
4500 pp_c_relational_expression, pp_c_equality_expression,
4501 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
4502 use pp_string and pp_c_ws_string in place of pp_identifier and
4503 pp_c_identifier for non-identifiers. Mark English strings for
4504 translation.
4505 * c-pretty-print.h (pp_c_ws_string): Declare.
4506
cd533689
PP
45072009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
4508 Roland McGrath <roland@redhat.com>
4509
aa016ff7 4510 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
cd533689
PP
4511 (ENABLE_LD_BUILDID): New configuration option.
4512 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
4513 (LINK_BUILDID_SPEC): New macro.
4514 (init_spec): If defined, prepend it between LINK_EH_SPEC and
4515 link_spec.
4516 * doc/install.texi: Document --enable-linker-build-id option.
4517 * configure: Rebuild.
4518 * config.in: Rebuild.
4519
ba6adec4
AN
45202009-04-30 Adam Nemet <anemet@caviumnetworks.com>
4521
4522 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
4523 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
4524 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
4525 MIPS_GP_SAVE_AREA_SIZE.
4526 * config/mips/mips.c (struct mips_frame_info): Update comment
4527 before arg_pointer_offset and hard_frame_pointer_offset.
4528 (mips_compute_frame_info): Update diagram before function: to
4529 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
4530 indicate the position of frame_pointer_rtx with -fstack-protector and
4531 to show args_size. Don't allocate cprestore area for leaf functions
4532 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
4533 cprestore_size.
4534 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
4535
48f5b722
MM
45362009-04-30 Michael Matz <matz@suse.de>
4537
ba6adec4
AN
4538 PR tree-optimization/39955
4539 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 4540
b65d6744
DK
45412009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
4542
4543 * ira.c (setup_cover_and_important_classes): Use safe macro
4544 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
4545 directly.
4546 * genpreds.c (write_tm_preds_h): Output suitable definition of
4547 REG_CLASS_FOR_CONSTRAINT.
4548
f136c8ae
RAE
45492009-04-30 Rafael Avila de Espindola <espindola@google.com>
4550
4551 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
4552 instead of an int.
4553 * bitmap.c (bitmap_descriptor): Likewise.
4554 * ggc-common.c (loc_descriptor): Likewise.
4555 * varray.c (varray_descriptor): Likewise.
4556 * vec.c (vec_descriptor): Likewise.
4557
43fcece8 45582009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
4559
4560 * Makefile.in (dce.o): Add $(EXCEPT_H).
4561 * dce.c: Include except.h and delete redundant vector definitions.
4562 (deletable_insn_p): Return false for non-call insns that can throw
4563 if DF is running.
4564
df35c271
SB
45652009-04-30 Steven Bosscher <steven@gcc.gnu.org>
4566
4567 * gcse.c (ae_gen): Remove.
4568 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
4569 and make non-static function to make it available in store-motion.c.
4570 Update call sites with search-and-replace.
4571 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
4572 extract_mentioned_regs, extract_mentioned_regs_helper,
4573 find_moveable_store, compute_store_table, load_kills_store, find_loads,
4574 store_killed_in_insn, store_killed_after, store_killed_before,
4575 build_store_vectors, insert_insn_start_basic_block, insert-store,
4576 remove_reachable_equiv_notes, replace_store_insn, delete_store,
4577 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
4578 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
4579 * store-motion.c: ...new file. Also copy data structures from gcse.c
4580 and clean up to remove parts not used by store motion.
4581 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
4582 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
4583
f711a87a
RR
45842009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4585
4586 PR target/38571
4587 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
4588 when optimizing for size.
4589
fa5ed76e
HPN
45902009-04-30 Hans-Peter Nilsson <hp@axis.com>
4591
4592 * gcse.c (gcse_constant_p): Fix typo in last change.
4593
0acbbdb0
RAE
45942009-04-30 Rafael Avila de Espindola <espindola@google.com>
4595
4596 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
4597
82f5c05d
AK
45982009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
4599
4600 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
4601
6d8f135b
JW
46022009-04-29 James E. Wilson <wilson@codesourcery.com>
4603
4604 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
4605 CONST_HIGH_PART result.
4606
c21ca196
AS
46072009-04-29 Anatoly Sokolov <aesok@post.ru>
4608
4609 * config/avr/avr.c (initial_elimination_offset): Rename to
4610 avr_initial_elimination_offset.
4611 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
4612 change return type to bool.
4613 (avr_can_eliminate): New function.
4614 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
4615 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
4616 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
0d50d55a 4617 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
c21ca196
AS
4618 avr_initial_elimination_offset.
4619 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
4620 (avr_initial_elimination_offset): Define.
4621
2a34bece 46222009-04-29 Eric Botcazou <ebotcazou@adacore.com>
aa016ff7 4623 Steven Bosscher <steven@gcc.gnu.org>
2a34bece
EB
4624
4625 PR rtl-optimization/39938
4626 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
4627 * cfgrtl.c: Include insn-attr.h.
4628 (rest_of_pass_free_cfg): New function.
4629 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
4630 * resource.c (init_resource_info): Remove call to df_analyze.
4631
5dc7911e
RG
46322009-04-29 Richard Guenther <rguenther@suse.de>
4633
4634 PR target/39943
4635 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
4636 allow conversion to signed integers.
4637
1fe479fd
RG
46382009-04-29 Richard Guenther <rguenther@suse.de>
4639
4640 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
4641 shifts of floating point vectors if the shift amount is
4642 a constant multiple of the element size.
4643
8e001680
AK
46442009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
4645 Michael Matz <matz@suse.de>
4646
4647 PR middle-end/39927
4648 PR bootstrap/39929
4649 * tree-outof-ssa.c (emit_partition_copy): New function.
4650 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
4651 insert_part_to_rtx_on_edge): Perform the partition base var
4652 copy using emit_partition_copy.
4653 (insert_value_copy_on_edge): Convert constants to the right mode.
4654 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
4655 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
4656
e50e3081
BS
46572009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
4658
4659 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
4660 scan backwards to try to find a constant to initialize it.
4661
4e5d521b
BS
4662 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
4663 insn before the loop_end instruction, don't look past labels.
4664
7c90021d
RG
46652009-04-29 Richard Guenther <rguenther@suse.de>
4666
4667 PR middle-end/39937
4668 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
4669 loose type conversions.
4670 (forward_propagate_addr_expr): Fix tuplification bug. Remove
4671 stmts only if there are no uses of its definition.
4672
97a988bc
BS
46732009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
4674
4675 * config/bfin/bfin.h (splitting_loops): Declare.
4676 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
4677 Reorder bit definitions to be ascending.
4678 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
4679 * config/bfin/bfin.c (splitting_loops): New variable.
4680 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
4681 (struct loop_info): Remove members INIT and LOOP_INIT.
4682 (bfin_optimize_loop): Don't set them. Reorder the code that generates
aa016ff7
UB
4683 the LSETUP sequence. Allow LC to be loaded from any register, but
4684 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
97a988bc
BS
4685 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
4686 set to 1.
4687 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
4688 of reload_completed.
aa016ff7 4689
97a988bc
BS
4690 From Jie Zhang:
4691 * config/bfin/bfin.md (movsi_insn): Refine constraints.
4692
0c463e16
RAE
46932009-04-29 Rafael Avila de Espindola <espindola@google.com>
4694
4695 * Makefile.in (PLUGIN_VERSION_H): New.
4696 (OBJS-common): Remove plugin-version.o.
4697 (plugin.o): Depend on (PLUGIN_VERSION_H).
4698 (plugin-version.o): Remove.
4699 * configure: Regenerate
4700 * configure.ac: Create plugin-version.h.
4701 * gcc-plugin.h (plugin_gcc_version): Remove.
4702 (plugin_default_version_check): Change signature.
4703 * plugin-version.c: Remove.
4704 * plugin.c: Include plugin-version.h.
4705 (str_plugin_gcc_version_name): Remove.
4706 (try_init_one_plugin): Pass gcc version to plugin_init.
4707 (plugin_default_version_check): Both gcc and plugin versions are now
4708 arguments.
4709
307e7eab
BS
47102009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
4711
4712 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
4713 problematic last insns. Test for TYPE_CALL rather than CALL_P.
aa016ff7
UB
4714 Remove special case testing for last insn of inner loops. Don't fail
4715 if the loop ends with a jump, emit an extra nop instead.
307e7eab 4716
c5d96723
BS
4717 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
4718 DREGS rather than comparing directly. Remove code that tries to
4719 account for latencies.
4720
de0b4ad5
RG
47212009-04-29 Richard Guenther <rguenther@suse.de>
4722
4723 PR tree-optimization/39941
4724 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
4725 eliminating an indirect call.
4726
3a19701a
RG
47272009-04-29 Richard Guenther <rguenther@suse.de>
4728
4729 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
4730 parameter. Allow invariants as base if !require_lvalue.
4731 (verify_gimple_assign_single): Adjust.
4732
a0a31d1e
BS
47332009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
4734
4735 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
4736 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
aa016ff7
UB
4737 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
4738 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
a0a31d1e
BS
4739 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
4740 a VEC_SELECT.
aa016ff7
UB
4741 * config/bfin/bfin.c (bfin_expand_builtin,
4742 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
a0a31d1e 4743
795bd26a
RG
47442009-04-28 Richard Guenther <rguenther@suse.de>
4745
4746 * tree-vect-loop.c (get_initial_def_for_induction): Use
4747 correct types for pointer increment.
4748
04be270f
KG
47492009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4750
4751 * toplev.c (print_version): Update GMP version string calculation.
4752
e1a3b85c
EB
47532009-04-28 Eric Botcazou <ebotcazou@adacore.com>
4754
4755 PR rtl-optimization/39938
4756 * resource.c (init_resource_info): Add call to df_analyze.
4757
8224166e
UB
47582009-04-28 Uros Bizjak <ubizjak@gmail.com>
4759
4760 * config/alpha/alpha.md (usegp): Cast the result of
4761 alpha_find_lo_sum_using_gp to enum attr_usegp.
4762 * config/alpha/alpha.c (override_options): Remove end-of-structure
4763 marker element from cpu_table. Use array size of cpu_table to handle
4764 -mcpu and -mtune options.
4765 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
4766
c5f0fe67
JM
47672009-04-28 Joseph Myers <joseph@codesourcery.com>
4768
4769 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
4770 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
4771 tune_32 and tune_64.
4772 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
4773 support on PowerPC.
4774 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
4775 * config/rs6000/option-defaults.h: ... here. New file.
4776 (OPT_64, OPT_32): Define.
4777 (MASK_64BIT): Define to 0 if not already defined.
4778 (OPT_ARCH64, OPT_ARCH32): Define.
4779 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
4780 and tune_64.
4781
0c48a567
RR
47822009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4783
4784 * config/arm/arm.c (arm_override_options): Emit error on using
4785 fpa with AAPCS.
4786
f1028b9d
UB
47872009-04-28 Uros Bizjak <ubizjak@gmail.com>
4788
4789 PR rtl-optimization/39914
4790 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
4791 registers for allocnos created from user-defined variables only
4792 when not optimizing.
4793
e0dd989a
RG
47942009-04-28 Richard Guenther <rguenther@suse.de>
4795
4796 PR middle-end/39937
4797 * fold-const.c (fold_binary): Use distribute_real_division only
4798 on float types.
4799
9a17c91d
SE
48002009-04-28 Steve Ellcey <sje@cup.hp.com>
4801
4802 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
4803 add hpux-stdint.h to tm_file.
4804 (hppa[12]*-*-hpux11*): Ditto.
4805 (ia64*-*-hpux*): Ditto.
4806 * config/hpux-stdint.h: New.
60839f5d 4807 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 4808 __STDC_EXT__ for all compiles.
60839f5d
EB
4809 * config/pa/pa-hpux.h: Ditto.
4810 * config/pa/pa-hpux10.h: Ditto.
4811 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 4812
af04e659
CM
48132009-04-28 Catherine Moore <clm@codesourcery.com>
4814
4815 * debug.h (set_name): Add comment.
4816
04ef80ce
AP
48172009-04-28 Andrew Pinski <pinskia@gmail.com>
4818
4819 PR target/39929
4820 * config/darwin.c (machopic_gen_offset): Check
4821 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
4822 * config/arm/arm.c (require_pic_register): Likewise.
4823
65ad77af
PB
48242009-04-28 Paolo Bonzini <bonzini@gnu.org>
4825
8224166e
UB
4826 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
4827 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
4828 m32c_promote_prototypes): Delete.
65ad77af 4829
1b15a008
MM
48302009-04-28 Michael Matz <matz@suse.de>
4831
4832 PR middle-end/39922
4833 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
4834 constants.
4835
7569a6cc
RG
48362009-04-28 Richard Guenther <rguenther@suse.de>
4837
f1028b9d 4838 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 4839
ead204d9
RR
48402009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4841
4842 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
4843 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
4844 * config/arm/arm-tune.md: Regenerate.
4845
f2c45f08 48462009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 4847
f2c45f08
AM
4848 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
4849 block if there are complex incoming edges.
4850 (sel_merge_blocks): Remove useless assert.
4851 (sel_redirect_edge_and_branch): Check that edge was redirected.
4852 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
4853 (sel_find_rgns): Delete declaration.
4854 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
4855 the region when it is not a preheader.
4856
7a00d767
UB
48572009-04-28 Uros Bizjak <ubizjak@gmail.com>
4858
4859 PR c/39323
4860 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
4861
448ee662
RG
48622009-04-28 Richard Guenther <rguenther@suse.de>
4863
4864 * tree.h (SSA_NAME_VALUE): Remove.
4865 (struct tree_ssa_name): Remove value_handle member.
4866 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
4867 array for jump threading.
4868 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
4869 SSA_NAME_VALUEs.
4870 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
4871 * tree-flow.h (threadedge_initialize_values): Declare.
4872 (threadedge_finalize_values): Likewise.
4873 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
4874 (SSA_NAME_VALUE): Define.
4875 (threadedge_initialize_values): New function.
4876 (threadedge_finalize_values): Likewise.
4877 * tree-ssa-dom.c (ssa_name_values): New global variable.
4878 (SSA_NAME_VALUE): Define.
f1028b9d 4879 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 4880
8644a673
IR
48812009-04-28 Ira Rosen <irar@il.ibm.com>
4882
4883 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
4884 Use REPORT_VECTORIZED_LOCATIONS instead
4885 REPORT_VECTORIZED_LOOPS.
4886 * tree-vectorizer.c (vect_verbosity_level): Make static.
4887 (vect_loop_location): Rename to vect_location.
4888 (vect_set_verbosity_level): Update comment.
4889 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
4890 and vect_location.
4891 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
4892 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
4893 instead REPORT_UNVECTORIZED_LOOPS.
fbdf817d
UB
4894 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
4895 and vect_loop_def to vect_external_def and vect_internal_def.
8644a673 4896 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7a00d767 4897 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
4898 REPORT_UNVECTORIZED_LOCATIONS.
4899 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
4900 and vect_used_in_loop and to vect_unused_in_scope and
4901 vect_used_in_scope.
4902 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
4903 (vect_verbosity_level): Remove declaration.
4904 (vect_analyze_operations): Likewise.
4905 (vect_analyze_stmt): Declare.
4906 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
4907 REPORT_UNVECTORIZED_LOCATIONS.
4908 (vect_get_loop_niters): Fix indentation.
4909 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
4910 (vect_analyze_loop_operations): New function.
4911 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
4912 vect_analyze_operations.
4913 (vect_is_simple_reduction): Use new names.
4914 (vectorizable_live_operation, vect_transform_loop): Likewise.
fbdf817d
UB
4915 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
4916 to specify whether the data references can be a part of interleaving
4917 chain.
8644a673
IR
4918 (vect_analyze_data_ref_dependence): Use new names.
4919 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
4920 (vect_create_addr_base_for_vector_ref): Remove redundant code.
4921 * tree-vect-patterns.c (widened_name_p): Use new names.
4922 (vect_recog_dot_prod_pattern): Likewise.
4923 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
4924 (process_use, vect_mark_stmts_to_be_vectorized,
4925 vect_model_simple_cost, vect_model_store_cost,
4926 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
4927 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
4928 vectorizable_operation, vectorizable_type_demotion,
4929 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
4930 vectorizable_condition): Likewise.
4931 (vect_analyze_operations): Split into vect_analyze_loop_operations
4932 and ...
4933 (vect_analyze_stmt): ... new function.
4934 (new_stmt_vec_info): Use new names.
4935 (vect_is_simple_use): Use new names and fix comment.
4936 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
4937 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
4938
b91322f2
UB
49392009-04-28 Uros Bizjak <ubizjak@gmail.com>
4940
4941 PR target/39911
4942 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
4943 and integer modes for x87 operands. Do not ICE for unsupported size,
4944 generate error instead. Generate error for unsupported operand types.
4945 ['z']: Do not handle HImode memory operands specially. Warning
4946 for floating-point operands. Fallthru to 'Z' for unsupported operand
4947 types. Do not ICE for unsupported size, generate error instead.
4948 (output_387_binary_op): Use %Z to output operands.
4949 (output_fp_compare): Ditto.
4950 (output_387_reg_move): Ditto.
4951
b2ed71b6
BE
49522009-04-28 Ben Elliston <bje@au.ibm.com>
4953
4954 PR c++/35652
4955 Revert:
4956
4957 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4958
4959 * builtins.c (c_strlen): Do not warn here.
4960 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
4961 * c-common.c (pointer_int_sum): Take an explicit location.
4962 Warn about offsets out of bounds.
4963 * c-common.h (pointer_int_sum): Adjust declaration.
4964
81f40b79
ILT
49652009-04-27 Ian Lance Taylor <iant@google.com>
4966
4967 * collect2.c (is_ctor_dtor): Change type of ret field in struct
4968 names to symkind.
4969 * dce.c (run_fast_df_dce): Change type of old_flags to int.
4970 * df-core.c (df_set_flags): Change return type to int. Change
4971 type of old_flags to int.
4972 (df_clear_flags): Likewise.
4973 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
4974 (df_get_conditional_uses): Likewise.
4975 * df.h (df_set_flags, df_clear_flags): Update declarations.
4976 * dwarf2out.c (struct indirect_string_node): Change type of form
4977 field to enum dwarf_form.
4978 (AT_string_form): Change return type to enum dwarf_form.
4979 * fixed-value.c (fixed_compare): Add cast to enum type.
4980 * fwprop.c (update_df): Change 0 to VOIDmode.
4981 * gensupport.c: Change 0 to UNKNOWN.
4982 * gimple.h (gimple_cond_code): Add cast to enum type.
4983 * haifa-sched.c (reemit_notes): Add cast to enum type.
4984 * hooks.c (hook_int_void_no_regs): Remove function.
4985 * hooks.h (hook_int_void_no_regs): Remove declaration.
4986 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 4987 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
4988 * real.c (real_arithmetic): Add cast to enum type.
4989 (real_compare): Likewise.
4990 * target.h (struct gcc_target): Change return type of
4991 branch_target_register_class to enum reg_class.
4992 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
4993 default_branch_target_register_class.
7a00d767 4994 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 4995 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 4996 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
4997 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
4998 cast to int.
4999 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
5000 ERROR_MARK.
5001 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
5002 vect_uninitialized_def. Change 0 to ERROR_MARK.
5003 * tree-vect-stmts.c (supportable_widening_operation): Don't
5004 initialize icode1 and icode2.
7a00d767 5005 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
5006 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
5007 and to STD_C89.
5008 (cmn_err_flag_specs): Change 0 to STD_C89.
5009 (cmn_err_char_table): Likewise.
5010 * config/arm/arm.c (get_arm_condition_code): Change type of code
5011 to enum arm_cond_code.
5012 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
5013 (IWMMXT_BUILTIN2): Likewise.
5014 (neon_builtin_type_bits): Don't define typedef.
5015 (neon_builtin_datum): Change type of bits field to int.
5016 (arm_expand_neon_args): Add cast to enum type.
5017 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
5018 TLS_MODEL_NONE.
5019 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
5020 casts to enum type.
5021 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
5022 MIPS_FP_COND_f.
5023 * config/mips/mips.md (jal_macro): Return enum constant.
5024 (single_insn): Likewise.
5025 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
5026 CODE_FOR_nothing.
5027 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
5028 casts to enum type.
5029 * config/s390/s390.c (s390_tune_flags): Change type to int.
5030 (s390_arch_flags): Likewise.
7a00d767 5031 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
5032 * config/s390/s390.h (s390_tune_flags): Update declaration.
5033 (s390_arch_flags): Likewise.
5034 * config/sh/sh.c (prepare_move_operands): Compare
5035 tls_symbolic_operand result with enum constant.
5036 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
5037 (sh_expand_prologue): Add cast to enum type.
5038 (sh_expand_epilogue): Likewise.
5039 (tls_symbolic_operand): Change return type to enum tls_model.
5040 (fpscr_set_from_mem): Add cast to enum type.
5041 (legitimize_pic_address): Compare tls_symbolic_operand result with
5042 enum constant.
5043 (sh_target_reg_class): Change return type to enum reg_class.
5044 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
5045 PROCESSOR_xxx.
7a00d767
UB
5046 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
5047 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
5048 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
5049 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
5050 (delayed_branch, tls_call_delay): Likewise.
5051 (eligible_for_sibcall_delay): Likewise.
5052 (eligible_for_return_delay): Likewise.
5053 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
5054 (spu_expand_builtin_1): Likewise.
5055
5056 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
5057 for all types of conversions.
5058 (output_init_element): Issue -Wc++-compat warning if needed when
5059 initializing a bitfield with enum type.
5060 * c-parser.c (c_parser_expression): Set original_type to
5061 original_type of right hand operand of comman operator.
5062
e4ae5e77
RW
50632009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5064
5065 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
5066 grammar nits.
7a00d767 5067 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
5068 * doc/cpp.texi (Standard Predefined Macros)
5069 (Implementation-defined behavior): Likewise.
7a00d767 5070 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
5071 * doc/gimple.texi (GIMPLE Exception Handling)
5072 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 5073 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
5074 * doc/invoke.texi (Warning Options, Optimize Options)
5075 (AVR Options, Darwin Options): Likewise.
5076 (Optimize Options): Reformulate -fwhole-program description.
5077 * doc/loop.texi (Lambda): Likewise.
5078 * doc/md.texi (Output Template, Define Constraints)
5079 (Standard Names, Insn Splitting): Likewise.
5080 * doc/options.texi (Option properties): Likewise.
5081 * doc/passes.texi (Tree-SSA passes): Likewise.
5082 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
5083 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
5084 (File Names and DBX): Likewise.
5085 * doc/trouble.texi (Incompatibilities): Likewise.
5086
1883802f 50872009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
5088
5089 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
5090 instruction is correct.
5091
1883802f 50922009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
5093
5094 Allow non-constant arguments to conversion intrinsics.
5095 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
5096 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
5097 * spu.c (print_operand): Handle 'v' and 'w'.
5098 (exp2_immediate_p, spu_gen_exp2): Define.
5099 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
5100 spu_convtf_1): Update parameter descriptions.
7a00d767 5101 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
5102 * constraints.md ('v', 'w'): New.
5103 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
5104 Remove.
5105 (i2f, I2F): New define_mode_attr.
5106 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
5107 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
5108 fixuns_truncv4sfv4si2): Update to use mode attribute.
5109 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
5110 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
5111 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
5112 patterns for combine.
5113
5f39ad47
SB
51142009-04-27 Steven Bosscher <steven@gcc.gnu.org>
5115
5116 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
5117 (cprop, hoist, pre, store_motion): New debug counters.
5118 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
5119 is not an RTL pass anymore.
5120 (pass_profiling): Remove extern decl for pass removed in 2005.
5121 (pass_gcse, pass_jump_bypass): Remove.
5122 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
5123 to 0 for clean state.
5124 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
5125 * cse.c (gate_handle_cse_after_global_opts,
5126 rest_of_handle_cse_after_global_opts): New functions.
5127 (pass_cse_after_global_opts): New pass, does local CSE.
5128 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
5129 (TV_CPROP): New timevar.
5130 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
5131 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
5132 (gcse_main, recompute_all_luids): Remove.
5133 (compute_hash_table_work): Call max_reg_num instead of reading
5134 max_gcse_regno.
5135 (cprop_jump): Don't set run_jump_opt_after_gcse.
5136 (constprop_register): Always allow to alter jumps.
5137 (cprop_insn): Likewise.
5138 (do_local_cprop): Likewise.
5139 (local_cprop_pass): Likewise. Return non-zero if something changed.
5140 (cprop): Remove function, fold interesting bits into one_cprop_pass.
5141 (find_implicit_sets): Add note about missed optimization opportunity.
5142 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
5143 pass_rtl_cprop execute function.
5144 Don't bother tracking the pass number, each pass gets its own dumpfile
5145 now anyway.
5146 Always allow to alter jumpsand bypass jumps.
5147 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
5148 will just find no suitable set.
5149 (pre_edge_insert): Fix dumping, this function is for PRE only.
5150 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
5151 pass_rtl_pre execute function.
5152 (hoist_code): Return non-zero if something changed. Keep track of
5153 substitutions and insertions for statistics gathering similar to PRE.
5154 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
5155 called from the pass_rtl_hoist execute function. Show pass statistics.
5156 (compute_store_table): Use max_reg_num directly instead of using the
5157 formerly global max_gcse_regno.
5158 (build_store_vectors): Likewise.
5159 (replace_store_insn): Fix dumping.
5160 (store_motion): Rename to ...
5161 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
5162 pass, called from the pass_rtl_store_motion execute function. Keep
5163 track of substitutions and insertions for statistics gathering similar
5164 to PRE.
5165 (bypass_jumps): Remove, fold interesting bits into ...
5166 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
5167 from the pass_rtl_cprop execute function.
5168 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
5169 pass_jump_bypass): Remove.
5170 (gate_handle_gcse, rest_of_handle_gcse): Remove.
5171 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
5172 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
5173 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
5174 (gate_rtl_store_motion, execute_rtl_store_motion,
5175 pass_rtl_store_motion): New.
5176 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
5177 make it clear that -fcse-skip-blocks is a no-op for backward compat.
5178 * passes.c (init_optimization_passes): Remove pass_gcse and
5179 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
5180 and cse_after_global_opts in place of pass_gcse. Schedule cprop
5181 instead of pass_jump_bypass.
5182
c685de4a
RG
51832009-04-27 Richard Guenther <rguenther@suse.de>
5184
5185 PR middle-end/39928
5186 * gimplify.c (gimplify_expr): If we are required to create
5187 a temporary make sure it ends up as register.
5188
72d41f29
L
51892009-04-27 H.J. Lu <hongjiu.lu@intel.com>
5190
5191 PR target/39903
5192 * config/i386/i386.c (construct_container): Don't call
5193 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
5194 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
5195
e97809c6
MM
51962009-04-27 Michael Matz <matz@suse.de>
5197
5198 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
5199 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
5200 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
5201 (dump_replaceable_exprs): Take a bitmap.
5202 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
5203 array.
5204 (expand_gimple_basic_block): Likewise.
5205 * tree-ssa-ter.c (struct temp_expr_table_d): Make
5206 replaceable_expressions member a bitmap.
5207 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
5208 (mark_replaceable): Likewise.
5209 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
5210 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
5211
211ca15c
RG
52122009-04-27 Richard Guenther <rguenther@suse.de>
5213
5214 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
5215 (verify_stmts): Dispatch to gimple/type verification code.
5216 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
5217 issue with call argument types.
5218
fca5f3d1
MM
52192009-04-27 Michael Matz <matz@suse.de>
5220
5221 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
5222 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
5223 to above.
5224
a1fa3e79 52252009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 5226 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
5227
5228 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
5229 a label's basic block.
5230 (mark_target_live_regs): Tidy and rework obsolete comments.
5231 Change back DF problem to LIVE. If a label starts a basic block,
5232 assume that all registers that used to be live then still are.
5233 (init_resource_info): If a label starts a basic block, set its
5234 BLOCK_FOR_INSN accordingly.
5235 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
5236
33b223c0
RG
52372009-04-27 Richard Guenther <rguenther@suse.de>
5238
5239 * tree-flow-inline.h (function_ann): Remove.
5240 (get_function_ann): Likewise.
5241 * tree-dfa.c (create_function_ann): Remove.
5242 * tree-flow.h (struct static_var_ann_d): Remove.
5243 (struct function_ann_d): Likewise.
5244 (union tree_ann_d): Remove fdecl member.
5245 (function_ann_t): Remove.
5246 (function_ann, get_function_ann, create_function_ann): Remove
5247 declarations.
5248
e3136fa2
UB
52492009-04-27 Uros Bizjak <ubizjak@gmail.com>
5250
5251 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
5252
f87c9042
JH
52532009-04-27 Jan Hubicka <jh@suse.cz>
5254
5255 * ipa-pure-const.c (struct funct_state_d): New fields
5256 state_previously_known, looping_previously_known; remove
5257 state_set_in_source.
5258 (analyze_function): Use new fields.
5259 (propagate): Avoid assumption that state_set_in_source imply
5260 nonlooping.
5261
5262 * tree-ssa-loop-niter.c (finite_loop_p): New function.
5263 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
5264 * cfgloop.h (finite_loop_p): Declare.
5265
33abd718
MM
52662009-04-26 Michael Matz <matz@suse.de>
5267
e3136fa2 5268 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 5269
ddc34084
MM
52702009-04-26 Michael Matz <matz@suse.de>
5271
5272 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
5273 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
5274 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
5275 pass_mark_used_blocks): Remove.
5276 * tree-optimize.c (pass_free_datastructures,
5277 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
5278 * passes.c (init_optimization_passes): Don't call
5279 pass_mark_used_blocks, remove dead code.
5280
1fec7ed4
L
52812009-04-26 H.J. Lu <hongjiu.lu@intel.com>
5282
5283 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
5284 * tree-ssa-live.h (register_ssa_partition): Likewise.
5285
4e3825db
MM
52862009-04-26 Michael Matz <matz@suse.de>
5287
5288 Expand from SSA.
5289 * builtins.c (fold_builtin_next_arg): Handle SSA names.
5290 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
5291 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
5292 SSA names.
5293 (compare_pairs): Swap cost comparison.
5294 (coalesce_ssa_name): Don't use change_partition_var.
5295 * tree-nrv.c (struct nrv_data): Add modified member.
5296 (finalize_nrv_r): Set it.
5297 (tree_nrv): Use it to update statements.
5298 (pass_nrv): Require PROP_ssa.
5299 * tree-mudflap.c (mf_decl_cache_locals,
5300 mf_build_check_statement_for): Use make_rename_temp.
5301 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
5302 * alias.c (find_base_decl): Handle SSA names.
5303 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
5304 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
5305 * rtl.h (set_reg_attrs_for_parm): Declare.
5306 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
5307 to "optimized", remove unused locals at finish.
5308 (execute_free_datastructures): Make global, call
5309 delete_tree_cfg_annotations.
5310 (execute_free_cfg_annotations): Don't call
5311 delete_tree_cfg_annotations.
5312
5313 * ssaexpand.h: New file.
5314 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 5315 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
5316 (expand_expr_real_1): Expand SSA names.
5317 * cfgexpand.c (toplevel): Include ssaexpand.h.
5318 (SA): New global variable.
5319 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
5320 (SSAVAR): New macro.
5321 (set_rtl): New helper function.
5322 (add_stack_var): Deal with SSA names, use set_rtl.
5323 (expand_one_stack_var_at): Likewise.
5324 (expand_one_stack_var): Deal with SSA names.
5325 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
5326 before unique numbers.
5327 (expand_stack_vars): Use set_rtl.
5328 (expand_one_var): Accept SSA names, add asserts for them, feed them
5329 to above subroutines.
5330 (expand_used_vars): Expand all partitions (without default defs),
5331 then only the local decls (ignoring those expanded already).
5332 (expand_gimple_cond): Remove edges when jumpif() expands an
5333 unconditional jump.
5334 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
5335 or remove abnormal edges. Ignore insns setting the LHS of a TERed
5336 SSA name.
5337 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
5338 members of SA; deal with PARM_DECL partitions here; expand
5339 all PHI nodes, free tree datastructures and SA. Commit instructions
5340 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
5341 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
5342 info and statements at start, collect garbage at finish.
5343 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
5344 (VAR_ANN_PARTITION) Remove.
5345 (change_partition_var): Don't declare.
5346 (partition_to_var): Always return SSA names.
5347 (var_to_partition): Only accept SSA names.
5348 (register_ssa_partition): Only check argument.
5349 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
5350 member.
5351 (delete_var_map): Don't free it.
5352 (var_union): Only accept SSA names, simplify.
5353 (partition_view_init): Mark only useful SSA names as used.
5354 (partition_view_fini): Only deal with SSA names.
5355 (change_partition_var): Remove.
5356 (dump_var_map): Use ssa_name instead of partition_to_var member.
5357 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
5358 basic blocks.
5359 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
5360 (struct _elim_graph): New member const_dests; nodes member vector of
5361 ints.
5362 (set_location_for_edge): New static helper.
5363 (create_temp): Remove.
5364 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 5365 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
5366 (new_elim_graph): Allocate const_dests member.
5367 (clean_elim_graph): Truncate const_dests member.
5368 (delete_elim_graph): Free const_dests member.
5369 (elim_graph_size): Adapt to new type of nodes member.
5370 (elim_graph_add_node): Likewise.
5371 (eliminate_name): Likewise.
5372 (eliminate_build): Don't take basic block argument, deal only with
5373 partition numbers, not variables.
5374 (get_temp_reg): New static helper.
5375 (elim_create): Use it, deal with RTL temporaries instead of trees.
5376 (eliminate_phi): Adjust all calls to new signature.
5377 (assign_vars, replace_use_variable, replace_def_variable): Remove.
5378 (rewrite_trees): Only do checking.
5379 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
5380 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
5381 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
5382 contains_tree_r, MAX_STMTS_IN_LATCH,
5383 process_single_block_loop_latch, analyze_edges_for_bb,
5384 perform_edge_inserts): Remove.
5385 (expand_phi_nodes): New global function.
5386 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
5387 functions, initialize new parameter, remember partitions having a
5388 default def.
5389 (finish_out_of_ssa): New global function.
5390 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
5391 don't reset in_ssa_p here, don't disable TER when mudflap.
5392 (pass_del_ssa): Remove.
5393 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
5394 partition members.
5395 (execute_free_datastructures): Declare.
5396 * Makefile.in (SSAEXPAND_H): New variable.
5397 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
5398 * basic-block.h (commit_one_edge_insertion): Declare.
5399 * passes.c (init_optimization_passes): Move pass_nrv and
5400 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
5401 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
5402 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
5403 (redirect_branch_edge): Deal with super block when expanding, split
5404 out jump patching itself into ...
5405 (patch_jump_insn): ... here, new static helper.
5406
17c665a9
MM
54072009-04-26 Michael Matz <matz@suse.de>
5408
5409 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
5410 beyond num_ssa_names.
5411 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
5412 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
5413
92061771
JJ
54142009-04-26 Jakub Jelinek <jakub@redhat.com>
5415
ce372372
JJ
5416 PR inline-asm/39543
5417 * fwprop.c (forward_propagate_asm): New function.
5418 (forward_propagate_and_simplify): Propagate also into __asm, if it
5419 doesn't increase the number of referenced registers.
5420
92061771
JJ
5421 PR c/39889
5422 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
5423
54242009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
5425
5426 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
5427 note_nonlocal_vla_type for nonlocal VLAs.
5428 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
5429 contains_remapped_vars, remap_vla_decls): New functions.
5430 (convert_nonlocal_reference_stmt): If not optimizing, call
5431 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
5432 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
5433 if it wasn't found in var_map.
5434 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
5435 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
5436 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
5437 declare_vars.
5438 * gimplify.c (nonlocal_vlas): New variable.
5439 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
5440 referenced VLAs.
5441 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 5442
4561e242
JJ
5443 * dwarf2out.c (loc_descr_plus_const): New function.
5444 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
5445 mem_loc_descriptor, loc_descriptor_from_tree_1,
5446 descr_info_loc, gen_variable_die): Use it.
5447
a9548ddf
JJ
5448 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
5449 !TREE_STATIC VAR_DECLs.
5450 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
5451 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
5452 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
5453 DECL_BY_REFERENCE is valid.
5454 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
5455 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
5456 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
5457 Copy DECL_BY_REFERENCE.
5458 (struct nesting_copy_body_data): New type.
5459 (nesting_copy_decl): New function.
5460 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
5461 if they have variable length.
5462
10555d08
MM
54632009-04-26 Michael Matz <matz@suse.de>
5464
5465 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
5466 mark new temporaries for renaming.
5467
e11187cc
JM
54682009-04-26 Joseph Myers <joseph@codesourcery.com>
5469
5470 PR c/39581
5471 * c-decl.c (global_bindings_p): Return negative value.
5472 (c_variable_size): New. Based on variable_size from
5473 stor-layout.c.
5474 (grokdeclarator): Call c_variable_size not variable_size.
5475
f6a51d31
UB
54762009-04-26 Uros Bizjak <ubizjak@gmail.com>
5477
5478 * config/i386/i386.c (print_operand) ['z']: Fix typo.
5479
4b97723d
KT
54802009-04-26 Kai Tietz <kai.tietz@onevision.com>
5481
5482 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
5483 Redefine it to just use mingw/include.
5484 (ASM_SPEC): Rules for -m32 and -m64.
5485 (LINK_SPEC): Use Likewise.
5486 (SPEC_32): New define.
5487 (SPEC_64): Likewise.
5488 (SUB_LINK_SPEC): Likewise.
5489 (MULTILIB_DEFAULTS): New define.
5490 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
5491 Add multilib options.
5492 (MULTILIB_DIRNAMES): Likewise.
5493 (MULTILIB_OSDIRNAMES): Likewise.
5494 (LIBGCC): Likewise.
5495 (INSTALL_LIBGCC): Likewise.
5496
991d6621
JM
54972009-04-26 Joseph Myers <joseph@codesourcery.com>
5498
5499 PR c/39556
5500 * c-tree.h (enum c_inline_static_type): New.
5501 (record_inline_static): Declare.
5502 * c-decl.c (struct c_inline_static, c_inline_statics,
5503 record_inline_static, check_inline_statics): New.
5504 (pop_file_scope): Call check_inline_statics.
5505 (start_decl): Call record_inline_static instead of pedwarning
5506 directly for static in inline function.
5507 * c-typeck.c (build_external_ref): Call record_inline_static
5508 instead of pedwarning directly for static referenced in inline
5509 function.
5510
4a81774c
SB
55112009-04-26 Steven Bosscher <steven@gcc.gnu.org>
5512
5513 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
5514 not new but only being rescanned.
5515 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
5516 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
5517 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
5518 record_set_info, compute_set, grealloc): Remove.
5519 (recompute_all_luids): New function.
5520 (gcse_main): Don't compute sets, and don't do related memory
5521 allocations/free-ing. If something changed before the end of the
5522 pass, update LUIDs using recompute_all_luids.
5523 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
5524 (free_gcse_mem): Don't free it either.
5525 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
5526 Use the df insn LUIDs.
5527 (load_killed_in_block): Likewise.
5528 (compute_hash_table_work): Don't compute reg_set_in_block.
5529 (compute_transp): Use DF_REG_DEF_CHAINs.
5530 (local_cprop_pass): Don't use compute_sets and related functions.
5531 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
5532 Use get_max_uid() instead of max_cuid.
5533 (insert_insn_end_basic_block, pre_insert_copy_insn,
5534 update_ld_motion_stores): Don't try to
5535 keep reg_set tables up to date.
5536 (pre_insert_copies): Use df insn LUIDs.
5537 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
5538 (reg_set_info): Don't use extra bitmap argument.
5539 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
5540 information to compute regs_set_in_block.
5541 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
5542 (bypass_jumps): Don't use compute_sets and friends.
5543
e8f99a9d
RW
55442009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5545
5546 PR testsuite/39710
5547 * opts.c (undocumented_msg): Do not leave blank even with
5548 ENABLE_CHECKING.
5549
6895bac8
JM
55502009-04-25 Joseph Myers <joseph@codesourcery.com>
5551
5552 * c-decl.c (build_enumerator): Allow values folding to integer
5553 constants but not integer constant expressions with a pedwarn if
5554 pedantic.
5555
24070fcb
JM
55562009-04-25 Joseph Myers <joseph@codesourcery.com>
5557
5558 PR c/39582
5559 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
5560 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
5561 type is an integer constant.
5562
d6d89aa1
UB
55632009-04-25 Uros Bizjak <ubizjak@gmail.com>
5564
5565 PR target/39897
5566 * config/i386/i386.c (print_operand) ['z']: Revert handling of
5567 HImode operands.
5568
92f6fd0b
JM
55692009-04-25 Joseph Myers <joseph@codesourcery.com>
5570
5571 PR c/39564
5572 * c-decl.c (grokdeclarator): Diagnose declarations of functions
5573 with variably modified return type and no storage class
5574 specifiers, except for the case of nested functions. Distinguish
5575 extern declarations of functions with variably modified return
5576 types from those of objects with variably modified types.
5577
a3710436
JH
55782009-04-25 Jan Hubicka <jh@suse.cz>
5579
5580 * tree.c (list_equal_p): New function.
5581 * tree.h (list_equal_p): Declare.
5582 * coretypes.h (edge_def, edge, const_edge, basic_block_def
5583 basic_block_def, basic_block, const_basic_block): New.
5584 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
5585 (redirect_eh_edge): New function.
5586 (make_eh_edge_update_phi): EH edges are not abnormal.
5587 * except.c: Include tree-flow.h.
5588 (list_match): New function.
5589 (eh_region_replaceable_by_p): New function.
5590 (replace_region): New function.
5591 (hash_type_list): New function.
5592 (hash_eh_region): New function.
5593 (eh_regions_equal_p): New function.
5594 (merge_peers): New function.
5595 (remove_unreachable_regions): Verify EH tree when checking;
5596 merge peers.
5597 (copy_eh_region_1): New function.
5598 (copy_eh_region): New function.
5599 (push_reachable_handler): New function.
5600 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
5601 regions without label but with live RESX.
5602 * except.h (redirect_eh_edge_to_label): New.
5603 * tree-flow.h (redirect_eh_edge): New.
5604 * coretypes.h (edge_def, edge, const_edge, basic_block_def
5605 basic_block_def, basic_block, const_basic_block): Remove.
5606 * Makefile.in (except.o): Add dependency on tree-flow.h
5607 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
5608 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
5609 Remove.
5610
3764d512
EB
56112009-04-25 Eric Botcazou <ebotcazou@adacore.com>
5612
5613 PR bootstrap/39645
5614 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
5615 on the destination of memcpy.
5616
1c62e8f2
PB
56172009-04-25 Paolo Bonzini <bonzini@gnu.org>
5618
5619 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
5620 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
5621 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
5622
496a4ef5
JH
56232009-04-25 Jan Hubicka <jh@suse.cz>
5624
5625 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
5626 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
5627 to be reached by different label than left.
5628 (update_eh_edges): Update comment; remove edge_to_remove if possible
5629 and return true if suceeded.
5630 (cleanup_empty_eh): Accept sharing map; handle shared regions.
5631 (cleanup_eh): Compute sharing map.
5632 * except.c (remove_eh_handler_and_replace): Add argument if we should
5633 update regions.
5634 (remove_unreachable_regions): Update for label sharing.
5635 (label_to_region_map): Likewise.
5636 (get_next_region_sharing_label): New function.
5637 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
5638 prev_try pointers.
5639 (remove_eh_handler): Update.
5640 (remove_eh_region_and_replace_by_outer_of): New function.
5641 * except.h (struct eh_region): Add next_region_sharing_label.
5642 (remove_eh_region_and_replace_by_outer_of,
5643 get_next_region_sharing_label): Declare.
5644 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
5645
56462009-04-25 Jan Hubicka <jh@suse.cz>
5647
5648 * tree-cfg.c (split_critical_edges): Split also edges where we can't
5649 insert code even if they are not critical.
5650
56512009-04-25 Jan Hubicka <jh@suse.cz>
5652
5653 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
5654 (gimple_can_remove_branch_p): EH edges won't remove branch by
5655 redirection.
5656 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
5657 updating of non-abnormal EH edges.
5658 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
5659 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
5660 (split_critical_edges): Split also edges where emitting code on them
5661 will lead to splitting later.
5662
a3a5e3d1
UB
56632009-04-25 Uros Bizjak <ubizjak@gmail.com>
5664 H.J. Lu <hongjiu.lu@intel.com>
5665
5666 PR target/39590
5667 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
5668 the configured assembler supports fildq and fistpq mnemonics.
5669 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
5670 * configure: Regenerated.
5671 * config.in: Ditto.
5672
5673 * config/i386/i386.c (print_operand): Handle 'Z'.
5674 ['z']: Remove handling of special fild/fist suffixes.
5675 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
5676 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
5677 suffix of fild insn.
5678 (*floatsi<mode>2_vector_mixed): Ditto.
5679 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
5680 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
5681 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
5682 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
5683 * config/i386/gas.h (GAS_MNEMONICS): Remove.
5684
23750d7f
BE
56852009-04-25 Ben Elliston <bje@au.ibm.com>
5686
5687 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
5688 the source of a set operation.
5689
e6ff3083
AS
56902009-04-25 Anatoly Sokolov <aesok@post.ru>
5691
5692 * target.h (struct gcc_target): Add case_values_threshold field.
5693 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
5694 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
5695 * targhooks.c (default_case_values_threshold): New function.
5696 * targhooks.h (default_case_values_threshold): Declare function.
5697 * stmt.c (expand_case): Use case_values_threshold target hook.
5698 * expr.h (case_values_threshold): Remove declartation.
5699 * expr.c (case_values_threshold): Remove function.
5700 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
5701
5702 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
5703 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
5704 (avr_case_values_threshold): Declare as static.
5705 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
5706
5707 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
5708 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
5709 (mn10300_case_values_threshold): New function.
5710
569c72fc
L
57112009-04-24 H.J. Lu <hongjiu.lu@intel.com>
5712
5713 * ira.c (setup_cover_and_important_classes): Add enum cast.
5714
ff3cb468
VM
57152009-04-24 Vladimir Makarov <vmakarov@redhat.com>
5716
5717 * genpreds.c (write_enum_constraint_num): Output definition of
5718 CONSTRAINT_NUM_DEFINED_P macro.
5719 * ira.c (setup_cover_and_important_classes): Use
5720 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
5721
4f7be849
DD
57222009-04-24 DJ Delorie <dj@redhat.com>
5723
5724 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
5725 __SH2A_SINGLE_ONLY__ also.
5726
735b94a7
SE
57272009-04-24 Steve Ellcey <sje@cup.hp.com>
5728
5729 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
5730 (movdf_internal): Ditto.
5731 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
5732 SFmode and DFmode constants.
5733 (ia64_print_operand): Add 'G' format for printing
5734 floating point constants.
5735
77a30264
RG
57362009-04-24 Richard Guenther <rguenther@suse.de>
5737
5738 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
5739 from unsigned additions.
5740
2b6da65c
JM
57412009-04-24 Joseph Myers <joseph@codesourcery.com>
5742
5743 * c-typeck.c (set_init_index): Allow array designators that are
5744 not integer constant expressions with a pedwarn if pedantic.
5745
f5a17c43
BS
57462009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
5747
5748 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
5749 zero if no overlap in nonzero bits between the operands.
5750
32e8bb8e
ILT
57512009-04-24 Ian Lance Taylor <iant@google.com>
5752
5753 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
5754 (record_dead_and_set_regs): Likewise.
5755 * df.h (struct df_mw_hardreg): Change flags field to int.
5756 (struct df_base_ref): Likewise.
5757 (struct df): Change changeable_flags field to int.
5758 * df-scan.c (df_defs_record): Change clobber_flags to int.
5759 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
5760 constants rather than #define macros.
5761 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
5762 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
5763 (enum dwarf_calling_convention): Likewise.
5764 (enum dwarf_line_number_x_ops): Likewise.
5765 (enum dwarf_call_frame_info): Likewise.
5766 (enum dwarf_source_language): Likewise.
5767 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
5768 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
5769 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
5770 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
5771 * genrecog.c (maybe_both_true_2): Change c to int.
5772 (write_switch): Likewise. Add cast to enum type.
5773 * gimplify.c (gimplify_omp_for): Handle return values from
5774 gimplify_expr using MIN rather than bitwise or.
5775 (gimplify_expr): Add cast to enum type.
5776 * ipa-prop.c (update_jump_functions_after_inlining): Change
5777 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
5778 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
5779 Add casts to enum type.
32e8bb8e
ILT
5780 (setup_cover_and_important_classes): Change cl to int. Add casts
5781 to enum type.
5782 (setup_class_translate): Change cl and mode to int.
5783 (ira_init_once): Change mode to int.
5784 (free_register_move_costs): Likewise.
5785 (setup_prohibited_mode_move_regs): Add casts to enum type.
5786 * langhooks.c (add_builtin_function_common): Rework assertion that
5787 value fits bitfield.
5788 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
5789 * omega.c (omega_do_elimination): Avoid math on enum types.
5790 * optabs.c (expand_vec_shift_expr): Remove casts to int.
5791 * opts.c (set_debug_level): Change 2 to enum constant. Use new
5792 int local to handle integral_argment value.
5793 * regmove.c (try_auto_increment): Change PUT_MODE to
5794 PUT_REG_NOTE_KIND.
5795 * reload.c (push_secondary_reload): Add casts to enum type.
5796 (secondary_reload_class, find_valid_class): Likewise.
5797 * reload1.c (emit_input_reload_insns): Likewise.
5798 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
5799 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
5800 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
5801 constant.
5802 * tree.c (build_common_builtin_nodes): Add casts to enum type.
5803 * tree-complex.c (complex_lattice_t): Typedef to int rather than
5804 enum type.
5805 (expand_complex_libcall): Add casts to enum type.
5806 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
5807 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
5808 with ERROR_MARK, not NUM_TREE_CODES.
5809 (vect_create_epilog_for_reduction): Likewise.
5810 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 5811 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
5812 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
5813 enum machine_mode.
5814 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
5815 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 5816 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
5817 * var-tracking.c (get_init_value): Change return type to enum
5818 var_init_status.
5819 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
5820 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
5821 arm_fp_model.
5822 (arm_override_options): Add casts to enum type.
5823 (arm_emit_tls_decoration): Likewise.
5824 * config/i386/i386.c (ix86_function_specific_restore): Add casts
5825 to enum type.
5826 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
5827 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
5828 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
5829 enum type.
5830 * config/s390/s390.c (code_for_builtin_64): Change to array of
5831 enum insn_code.
5832 (code_for_builtin_31): Likewise.
5833 (s390_expand_builtin): Change code_for_builtin to enum insn_code
5834 const *.
5835 * config/sparc/sparc.c (sparc_override_options): Change value
5836 field in struct code_model to enum cmodel. In initializer change
5837 0 to NULL and add cast to enum type.
5838
5839 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
5840 Change all callers. Issue a -Wc++-compat warning using
5841 lhs_origtype if necessary.
5842 (convert_for_assignment): Issue -Wc++-compat warnings about
5843 invalid conversions to enum type on assignment.
5844 * c-common.h (build_modify_expr): Update declaration.
5845
ac4fc08a
NC
58462009-04-24 Nick Clifton <nickc@redhat.com>
5847
5848 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
5849 (function_arg_advance): Likewise.
5850 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
5851 5th alternative.
5852
f22e891a
AK
58532009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
5854
5855 * config/s390/constraints.md ('I', 'J'): Fix condition.
5856
ad58aabe
DN
58572009-04-24 Diego Novillo <dnovillo@google.com>
5858
5859 * gengtype-parse.c (parse_error): Add newline after message.
5860
879a4a01
L
58612009-04-24 H.J. Lu <hongjiu.lu@intel.com>
5862
5863 * config/i386/sse.md (avxmodesuffixs): Removed.
5864 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
5865 (*avx_pinsr<ssevecsize>): This.
5866
f63426af
BS
58672009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
5868
5869 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
5870 follow chains of regs with a single definition, and allow expressions
5871 that are function_invariant_p.
ce72fe6c 5872 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 5873
30349c74
PB
58742009-04-24 Paolo Bonzini <bonzini@gnu.org>
5875
5876 PR middle-end/39867
5877 * fold-const.c (fold_cond_expr_with_comparison): When folding
5878 > and >= to MAX, make sure the MAX uses the same type as the
5879 comparison's operands.
5880
8d8256c1
NC
58812009-04-24 Nick Clifton <nickc@redhat.com>
5882
5883 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
5884 addressing for DImode accesses.
5885 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 5886 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 5887
6216f94e
JJ
58882009-04-24 Jakub Jelinek <jakub@redhat.com>
5889
5890 PR rtl-optimization/39794
5891 * alias.c (canon_true_dependence): Add x_addr argument.
5892 * rtl.h (canon_true_dependence): Adjust prototype.
5893 * cse.c (check_dependence): Adjust canon_true_dependence callers.
5894 * cselib.c (cselib_invalidate_mem): Likewise.
5895 * gcse.c (compute_transp): Likewise.
5896 * dse.c (scan_reads_nospill): Likewise.
5897 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
5898 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
5899 canon_base_addr of the group, plus optional offset.
5900 (struct group_info): Rename canon_base_mem to
5901 canon_base_addr.
5902 (get_group_info): Set canon_base_addr to canon_rtx of base, not
5903 canon_rtx of base_mem.
5904
6de7a512
PB
59052009-04-23 Paolo Bonzini <bonzini@gnu.org>
5906
5907 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
5908 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
5909
4a3a2376
UW
59102009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5911
5912 * config/spu/spu-builtins.h: Delete file.
5913
5914 * config/spu/spu.h (enum spu_builtin_type): Move here from
5915 spu-builtins.h.
5916 (struct spu_builtin_description): Likewise. Add GTY marker.
5917 Do not use enum spu_function_code or enum insn_code.
5918 (spu_builtins): Add extern declaration.
5919
5920 * config/spu/spu.c: Do not include "spu-builtins.h".
5921 (enum spu_function_code, enum spu_builtin_type_index,
5922 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
5923 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
5924 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
5925 unsigned_V2DI_type_node): Move here from spu-builtins.h.
5926 (spu_builtin_types): Make static. Add GTY marker.
5927 (spu_builtins): Add extern declaration with GTY marker.
5928 Include "gt-spu.h".
5929
5930 * config/spu/spu-c.c: Do not include "spu-builtins.h".
5931 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
5932 Check programmatically whether all parameters are scalar.
5933
5934 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
5935
bbaba73f
EB
59362009-04-23 Eric Botcazou <ebotcazou@adacore.com>
5937
5938 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
5939 assignment from the constructor either if the target is volatile.
5940
ee93c1c6
DJ
59412009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
5942
5943 * config/arm/arm.md (insv): Do not share operands[0].
5944
b2f21330
NS
59452009-04-23 Nathan Sidwell <nathan@codesourcery.com>
5946
5947 * config/vxlib-tls.c (active_tls_threads): Delete.
5948 (delete_hook_installed): New.
5949 (tls_delete_hook): Don't delete the delete hook.
5950 (tls_destructor): Delete it here.
5951 (__gthread_set_specific): Adjust installing the delete hook.
5952 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
5953 __gthread_leave_tsd_dtor_context.
5954
4782dfa7
RAE
59552009-04-23 Rafael Avila de Espindola <espindola@google.com>
5956
5957 * c-format.c (gcc_tdiag_char_table): Add support for %E.
5958
bf758008
UB
59592009-04-23 Uros Bizjak <ubizjak@gmail.com>
5960
5961 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
5962 enum type.
5963 (alpha_rtx_costs): Ditto.
5964 (emit_unlikely_jump): Use add_reg_note.
5965 (emit_frame_store_1): Ditto.
5966 (alpha_expand_prologue): Ditto.
5967 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
5968 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
5969
7323a100
NC
59702009-04-23 Nick Clifton <nickc@redhat.com>
5971
5972 * config/v850/v850.md (epilogue): Remove suppressed code.
5973 (return): Rename to return_simple and remove test of frame size.
5974 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
5975 to gen_return_simple.
5976
360032ba
JY
59772009-04-22 Jing Yu <jingyu@google.com>
5978
5979 PR testsuite/39781
5980 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
5981
53650abe
AP
59822009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
5983
5984 PR C/31499
5985 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
5986 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
5987 value is a VECTOR_CST, the element type is the element type of the
5988 vector.
5989
89043e8a
DD
59902009-04-22 DJ Delorie <dj@redhat.com>
5991
5992 * config/m32c/m32c.h: Update GTY annotations to new syntax.
5993
023f059b
JJ
59942009-04-22 Jakub Jelinek <jakub@redhat.com>
5995
5996 * alias.c (find_base_term): Move around LO_SUM case, so that
5997 CONST falls through into PLUS/MINUS handling.
5998
2c0eba5a
JJ
5999 PR c/39855
6000 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
6001 into 0, use omit_one_operand.
6002
9a461028
BE
60032009-04-23 Ben Elliston <bje@au.ibm.com>
6004
6005 * config/rs6000/linux-unwind.h (get_regs): Remove type
6006 puns. Change the type of `pc' to an array of unsigned ints and
6007 update all users. Constify frame24.
6008
653e2568
DD
60092009-04-22 DJ Delorie <dj@redhat.com>
6010
6011 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
6012 declarations before code.
6013 (current_function_special_page_vector): Likewise.
6014 (m32c_expand_insv): Silence a warning.
6015
60839f5d 60162009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
6017
6018 * alias.c: Update GTY annotations to new syntax.
6019 * basic-block.h: Likewise.
6020 * bitmap.h: Likewise.
6021 * c-common.h: Likewise.
6022 * c-decl.c: Likewise.
6023 * c-parser.c: Likewise.
6024 * c-pragma.c: Likewise.
6025 * c-tree.h: Likewise.
6026 * cfgloop.h: Likewise.
6027 * cgraph.h: Likewise.
6028 * config/alpha/alpha.c: Likewise.
6029 * config/arm/arm.h: Likewise.
6030 * config/avr/avr.h: Likewise.
6031 * config/bfin/bfin.c: Likewise.
6032 * config/cris/cris.c: Likewise.
6033 * config/darwin.c: Likewise.
6034 * config/frv/frv.c: Likewise.
6035 * config/i386/i386.c: Likewise.
6036 * config/i386/i386.h: Likewise.
6037 * config/i386/winnt.c: Likewise.
6038 * config/ia64/ia64.h: Likewise.
6039 * config/iq2000/iq2000.c: Likewise.
6040 * config/mips/mips.c: Likewise.
6041 * config/mmix/mmix.h: Likewise.
6042 * config/pa/pa.c: Likewise.
6043 * config/pa/pa.h: Likewise.
6044 * config/rs6000/rs6000.c: Likewise.
6045 * config/s390/s390.c: Likewise.
6046 * config/sparc/sparc.c: Likewise.
6047 * config/xtensa/xtensa.c: Likewise.
6048 * cselib.h: Likewise.
6049 * dbxout.c: Likewise.
6050 * dwarf2out.c: Likewise.
6051 * except.c: Likewise.
6052 * except.h: Likewise.
6053 * fixed-value.h: Likewise.
6054 * function.c: Likewise.
6055 * function.h: Likewise.
6056 * gimple.h: Likewise.
6057 * integrate.c: Likewise.
6058 * optabs.c: Likewise.
6059 * output.h: Likewise.
6060 * real.h: Likewise.
6061 * rtl.h: Likewise.
6062 * stringpool.c: Likewise.
6063 * tree-data-ref.c: Likewise.
6064 * tree-flow.h: Likewise.
6065 * tree-scalar-evolution.c: Likewise.
6066 * tree-ssa-address.c: Likewise.
6067 * tree-ssa-alias.h: Likewise.
6068 * tree-ssa-operands.h: Likewise.
6069 * tree.c: Likewise.
6070 * tree.h: Likewise.
6071 * varasm.c: Likewise.
6072 * varray.h: Likewise.
6073 * vec.h: Likewise.
bf758008 6074 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
6075 * doc/gty.texi: Update GTY documentation to new syntax.
6076 * gengtype-lex.l: Enforce attribute-like syntax for GTY
6077 annotations on structs.
6078 * gengtype-parse.c: Likewise.
6079
a123d175
MH
60802009-04-22 Mark Heffernan <meheff@google.com>
6081
bf758008 6082 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 6083
4c7c486a
KH
60842009-04-22 Kazu Hirata <kazu@codesourcery.com>
6085
6086 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
6087 where appropriate.
6088
6e782a29
KH
60892009-04-22 Kazu Hirata <kazu@codesourcery.com>
6090
6091 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
6092 the same as a PLUS without a shift. Increase the cost of a
6093 CONST_INT in MULT.
6094
38d2336a
MLI
60952009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6096
6097 * Makefile.in: Update dependencies.
bf758008 6098 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
6099 * errors.h: Remove bogus comment about compatibility.
6100 (warning): Update declaration.
6101 * genautomata.c: Update all calls to warning.
6102 * gimple.c: Do not include errors.h. Include toplev.h.
6103 * tree-ssa-structalias.c: Do not include errors.h.
6104 * omega.c: Likewise.
6105 * tree-ssa-reassoc.c: Likewise.
6106 * config/spu/spu-c.c: Likewise.
6107 * config/spu/t-spu-elf: Update dependencies.
6108
aea4deba
RG
61092009-04-22 Richard Guenther <rguenther@suse.de>
6110
6111 PR tree-optimization/39824
6112 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
6113 make sure the types are compatible.
6114
cfc93532
MLI
61152009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6116
6117 PR c++/14875
6118 * c-common.c (c_parse_error): Take a token_flags parameter.
6119 Use token_type for the token type instead.
6120 Pass token_flags to cpp_type2name.
6121 * c-common.h (c_parse_error): Update declaration.
6122 * c-parser.c (c_parser_error): Pass 0 as token flags.
6123
8632d02a
AB
61242009-04-22 Andrey Belevantsev <abel@ispras.ru>
6125
6126 PR rtl-optimization/39580
6127 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
6128
4c33221c
UW
61292009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6130
6131 * function.c (expand_function_end): Do not emit a jump to the "naked"
6132 return label for fall-through returns.
6133 * except.c (sjlj_emit_function_exit): Always place the call to the
6134 unregister function at the location installed by expand_function_end.
6135
9925bce0
RG
61362009-04-22 Richard Guenther <rguenther@suse.de>
6137
6138 PR tree-optimization/39845
6139 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
6140 (gen_inbound_check): Likewise.
6141
24a40b35
NS
61422009-04-22 Nathan Sidwell <nathan@codesourcery.com>
6143
6144 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
6145 padding for PPC.
6146 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
6147 * config/vxlib.c (__gthread_once): Add race guard for PPC.
6148
6c34a092
PB
61492009-04-22 Paolo Bonzini <bonzini@gnu.org>
6150
6151 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
6152 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
6153 shift counts to avoid out-of-bounds array accesses.
6154
baa48dfa
PB
61552009-04-22 Paolo Bonzini <bonzini@gnu.org>
6156
6157 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
6158 (Pmode): Move above.
6159
7d83f4f5
UB
61602009-04-22 Uros Bizjak <ubizjak@gmail.com>
6161
6162 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
6163 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
6164 GET_CODE macro. Use IN_RANGE macro where appropriate.
6165 * config/alpha/alpha.h: Ditto.
6166 * config/alpha/alpha.md: Ditto.
6167 * config/alpha/constraints.md: Ditto.
6168 * config/alpha/predicates.md: Ditto.
6169
3ad606bc
PB
61702009-04-22 Paolo Bonzini <bonzini@gnu.org>
6171
6172 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
6173 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6174 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6175 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6176 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6177 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6178 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6179 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6180 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6181 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6182 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6183 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6184 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6185 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6186 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6187 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6188 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6189 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6190 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6191 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6192 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6193 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6194 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6195 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6196 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6197 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6198 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6199
3cabd6d1
LB
62002009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
6201
6202 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
6203 references from comments.
6204 * cfgbuild.c: (count_basic_blocks): Delete.
6205 (find_basic_blocks_1): Delete.
6206 (find_basic_blocks): Delete.
6207 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 6208 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
6209 * except.h (finish_eh_generation): Delete.
6210 * basic-block.h (find_basic_blocks): Delete.
6211 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
6212
270d1bcd
DK
62132009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
6214
6215 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
6216 (sdbout_parms): Likewise.
6217
b757d36f
KK
62182009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
6219
6220 * config/sh/sh.c (prepare_cbranch_operands): Use
6221 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
6222 (expand_cbranchdi4): Likewise.
6223 (from_compare): Add cast to enum type.
6224 (expand_cbranchsi4): Use add_reg_note.
6225 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
6226 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
6227 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
6228 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
6229 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
6230 instead of CODE_FOR_nothing.
6231 (cbranchdi4): Likewise. Fix the order of arguments for
6232 gen_rtx_fmt_ee.
6233 (push_fpscr): Use add_reg_note.
6234 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
6235 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
6236
ad41bd84
JM
62372009-04-21 Joseph Myers <joseph@codesourcery.com>
6238
6239 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
6240 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
6241 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
6242 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
6243 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
6244 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
6245 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
6246 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
6247 config/alpha/x-vms, config/arc/t-arc,
6248 config/arm/README-interworking, config/arm/arm-c.c,
6249 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
6250 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
6251 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
6252 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
6253 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
6254 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
6255 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
6256 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
6257 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
6258 config/cris/t-elfmulti, config/crx/t-crx,
6259 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
6260 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
6261 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
6262 config/h8300/t-h8300, config/i386/athlon.md,
6263 config/i386/darwin-libgcc.10.4.ver,
6264 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
6265 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
6266 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
6267 config/i386/t-linux64, config/i386/t-nwld,
6268 config/i386/t-rtems-i386, config/i386/t-sol2-10,
6269 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
6270 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
6271 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
6272 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
6273 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
6274 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
6275 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
6276 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
6277 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
6278 config/m68k/t-uclinux, config/mcore/t-mcore,
6279 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
6280 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
6281 config/mips/crtn.asm, config/mips/irix-crti.asm,
6282 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
6283 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
6284 config/mips/mips-fixed.md, config/mips/sb1.md,
6285 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
6286 config/mips/t-iris6, config/mips/t-isa3264,
6287 config/mips/t-libgcc-mips16, config/mips/t-linux64,
6288 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
6289 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
6290 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
6291 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
6292 config/mn10300/t-linux, config/mn10300/t-mn10300,
6293 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
6294 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
6295 config/picochip/libgccExtras/clzsi2.asm,
6296 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
6297 config/rs6000/darwin-libgcc.10.4.ver,
6298 config/rs6000/darwin-libgcc.10.5.ver,
6299 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
6300 config/rs6000/t-aix43, config/rs6000/t-aix52,
6301 config/rs6000/t-darwin, config/rs6000/t-fprules,
6302 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
6303 config/rs6000/t-lynx, config/rs6000/t-netbsd,
6304 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
6305 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
6306 config/rs6000/t-rtems, config/rs6000/t-spe,
6307 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
6308 config/score/t-score-elf, config/sh/divcost-analysis,
6309 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
6310 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
6311 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
6312 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
6313 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
6314 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
6315 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
6316 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
6317 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
6318 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
6319 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
6320 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
6321 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
6322 limitx.h, version.c, xcoff.h: Add copyright and license notices.
6323 * config/h8300/genmova.sh: Include copyright and license notices
6324 in generated output.
6325 * config/h8300/mova.md: Regenerate.
6326 * doc/install.texi2html: Include word "Copyright" in copyright
6327 notice and use name "Free Software Foundation, Inc.".
6328 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
6329 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
6330 ChangeLog-2007, ChangeLog-2008: Correct dates.
6331
ca80e52b
EB
63322009-04-21 Eric Botcazou <ebotcazou@adacore.com>
6333
6334 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
6335 NE_EXPR operations as well.
6336 * c-parser.c (c_parser_condition): Do not set location information on
6337 the condition.
6338 (c_parser_conditional_expression): Likewise.
6339 (c_parser_binary_expression): Set location information on operators.
6340 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
6341 TRUTH_NOT_EXPR has been folded.
6342 * fold-const.c (fold_truth_not_expr): Copy location information from
6343 the incoming expression to the outgoing one.
6344 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
6345 recursive calls on the LHS of the operator but pass that of the
6346 operator to recursive calls on the RHS of the operator. Set it
6347 on the COND_EXPR.
6348 (shortcut_cond_expr): Set the locus of the operator on the second
6349 COND_EXPR and that of the expression on the first in degenerate cases.
6350 Pass the locus of the expression to calls to shortcut_cond_r.
6351 Set the locus of the 'then' block on the associated jump, if any.
6352 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
6353 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
6354 expression to call to gimplify_boolean_expr.
6355
35091630
KT
63562009-04-21 Kai Tietz <kai.tietz@onevision.com>
6357
6358 * config.gcc: Add additional configuration for
6359 i686-w64-mingw* and x86_64-w64-mingw* triplet.
6360 * config/i386/mingw-w64.h: New mingw-w64 specific header.
6361 (CPP_SPEC): Redefine for allowing -municode option.
6362 (STARTFILE_SPEC): Likewise.
6363 * config/i386/t-mingw-w64: New.
6364 * config/i386/mingw-w64.opt: New.
6365 (municode): Add new target option.
6366 * doc/invoke.texi (municode): Add documentation for new option.
6367
0267afc4
ILT
63682009-04-21 Ian Lance Taylor <iant@google.com>
6369
6370 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6371 Correct test for number of arguments.
6372 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
6373
2ba9daa7
AS
63742009-04-21 Andreas Schwab <schwab@linux-m68k.org>
6375
6376 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
6377 argument of emit_library_call.
6378
ad8a1ac0
RG
63792009-04-21 Richard Guenther <rguenther@suse.de>
6380
6381 PR middle-end/39829
6382 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
6383 inside VIEW_CONVERT_EXPRs.
6384
7156c8ab
MJ
63852009-04-21 Martin Jambor <mjambor@suse.cz>
6386
6387 * tree-switch-conversion.c (build_constructors): Split a long line.
6388 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
6389 (build_one_array): Create assigns of constants if possible, do not
6390 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
6391 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
6392 make_rename_temp. Do not call mark_symbols_for_renaming, call
6393 update_stmt.
6394 (gen_def_assigns): Do not call mark_symbols_for_renaming or
6395 find_new_referenced_vars, call update_stmt.
6396 (gen_inbound_check): Use create_tmp_var and create ssa names manually
6397 instead of calling make_rename_temp. Do not call
6398 find_new_referenced_vars or mark_symbols_for_renaming, call
6399 update_stmt.
6400
2970ccb3
RG
64012009-04-21 Richard Guenther <rguenther@suse.de>
6402
6403 PR tree-optimization/39827
7d83f4f5 6404 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
6405 (tree_ssa_phiprop): Pass the correct array size.
6406
47f402d1
UB
64072009-04-21 Uros Bizjak <ubizjak@gmail.com>
6408
6409 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
6410
1e4ae551
MLI
64112009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
6412
6413 PR 16202
6414 * c-typeck.c (lvalue_p): Move declaration ...
6415 * c-common.h (lvalue_p): ... to here.
6416 * c-common.c (candidate_equal_p): New.
6417 (add_tlist): Use it.
6418 (merge_tlist): Use it.
6419 (warn_for_collisions_1): Likewise.
6420 (warning_candidate_p): Accept more candidates.
6421 (verify_tree): A warning candidate can be an expression. Use
6422 candidate_equal_p.
6423
244609a6
BE
64242009-04-21 Ben Elliston <bje@au.ibm.com>
6425
6426 PR target/5267
6427 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
6428 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
6429 options. Remove -mcall-solaris documentation.
6430
9c650d90
MLI
64312009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6432
6433 PR c++/13358
6434 * doc/invoke.texi (-Wlong-long): Update description.
6435 * c-lex (interpret_integer): Only warn if there was no previous
6436 overflow and -Wlong-long is enabled.
6437 * c-decl.c (declspecs_add_type): Drop redundant flags.
6438 * c.opt (Wlong-long): Init to -1.
6439 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
6440 and front-end warn_long_long. Wlong-long only depends on other
6441 flags if it is uninitialized.
6442 * c-parser.c (disable_extension_diagnostics): warn_long_long is
6443 the same for CPP and FE.
6444 (restore_extension_diagnostics): Likewise.
6445
bbbbb16a
ILT
64462009-04-20 Ian Lance Taylor <iant@google.com>
6447
6448 Fix enum conversions which are invalid in C++:
47f402d1
UB
6449 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
6450 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
6451 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
6452 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 6453 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 6454 (dbxout_parms): Likewise.
47f402d1 6455 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
6456 (df_clear_flags): Likewise.
6457 * df-problems.c (df_rd_bb_local_compute_process_def): Change
6458 top_flag parameter to int.
6459 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
6460 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
6461 Remove cast.
bbbbb16a
ILT
6462 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
6463 (df_ref_create_structure, df_def_record_1): Likewise.
6464 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
6465 (df_notes_rescan): Change 0 to VOIDmode in function call.
6466 (df_get_call_refs, df_insn_refs_collect): Likewise.
6467 (df_bb_regs_collect): Likewise.
6468 (df_entry_block_defs_collect): Likewise.
6469 (df_exit_block_uses_collect): Likewise.
6470 * df.h: Update declarations.
6471 * double-int.c (double_int_divmod): Add cast to enum type.
6472 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
6473 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
6474 (based_loc_descr): Likewise.
6475 (loc_descriptor_from_tree_1): Change first_op and second_op to
6476 enum dwarf_location_atom. Add cast to enum type.
6477 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 6478 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
6479 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
6480 (do_store_flag): Likewise.
6481 * fixed-value.h (struct fixed_value): Change mode to enum
6482 machine_mode.
47f402d1 6483 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
6484 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
6485 function call.
6486 (insert_insn_decl, insert_decl, insert_state): Likewise.
6487 (automata_list_finish): Likewise.
6488 * genrecog.c (process_define_predicate): Add cast to enum type.
6489 * gensupport.c (init_predicate_table): Add cast to enum type.
6490 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
6491 function call.
6492 (gimple_build_call_1, gimple_build_label): Likewise.
6493 (gimple_build_goto, gimple_build_asm_1): Likewise.
6494 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 6495 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
6496 (enum fallback): Rename from enum fallback_t.
6497 (fallback_t): Typedef as int.
6498 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
6499 GSI_SAME_STMT in function call.
6500 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
6501 enum type.
6502 (setup_reg_class_relations): Likewise.
47f402d1 6503 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
6504 (setup_prohibited_class_mode_regs): Add cast to enum type.
6505 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 6506 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
6507 (record_address_regs): Change i to enum reg_class.
6508 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
6509 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
6510 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
6511 (GET_MODE_2XWIDER_MODE): Likewise.
6512 (GET_CLASS_NARROWEST_MODE): Likewise.
6513 * omp-low.c (expand_omp_for): Add cast to enum type.
6514 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
6515 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
6516 * postreload.c (reload_cse_simplify_operands): Change rclass local
6517 to enum reg_class.
6518 * predict.c (combine_predictions_for_insn): Change best_predictor
6519 and predictor to enum br_predictor.
6520 (combine_predictions_for_bb): Likewise.
6521 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
6522 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 6523 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
6524 * reginfo.c (init_move_cost): Add casts to enum type.
6525 (init_reg_sets_1, init_fake_stack_mems): Likewise.
6526 * regmove.c (regclass_compatible_p): Change class0 and class1 to
6527 enum reg_class.
6528 * reload.c (find_valid_class): Add casts to enum type.
6529 (push_reload): Change 0 to NO_REGS in function call.
6530 (find_reloads): Change this_alternative to array of enum
6531 reg_class. Remove some now-unnecessary casts.
6532 (make_memloc): Change 0 to VOIDmode in function call.
6533 * reload1.c (reload): Change 0 to VOIDmode in function call.
6534 (eliminate_regs_1, elimination_effects): Likewise.
6535 (eliminate_regs_in_insn): Likewise.
6536 (emit_input_reload_insns): Add cast to enum type.
6537 (delete_output_reload): Change 0 to VOIDmode in function call.
6538 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
6539 to enum type in function call.
6540 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
6541 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 6542 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
6543 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
6544 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
6545 (dump_function): Likewise.
6546 * tree-dump.h: Update declarations.
6547 * tree-pass.h: Update declarations.
6548 * varasm.c (assemble_integer): Change mclass to enum mode_class.
6549 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
6550 enum type.
6551 (arm_rtx_costs_1): Correct parenthesization.
6552 (arm_rtx_costs): Add casts to enum type.
6553 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
6554 (vfp_emit_fstmd): Use add_rg_note.
6555 (emit_multi_reg_push, emit_sfm): Likewise.
6556 (thumb_set_frame_pointer): Likewise.
6557 (arm_expand_prologue): Likewise.
6558 (arm_regno_class): Change return type to enum reg_class.
6559 (thumb1_expand_prologue): Use add_reg_note.
6560 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
6561 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
6562 in function call.
6563 * config/arm/gentune.sh: Add cast to enum type.
6564 * config/arm/arm-tune.md: Rebuild.
6565 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
6566 (ix86_split_fp_branch, predict_jump): Likewise.
6567 (ix86_expand_multi_arg_builtin): Change sub_code from enum
6568 insn_code to enum rtx_code.
6569 (ix86_builtin_vectorized_function): Add cast to enum type.
6570 * config/i386/i386.md (truncdfsf2): Change slot to enum
6571 ix86_stack_slot.
6572 (truncxf<mode>2, isinf<mode>2): Likewise.
6573 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
6574 enum type.
6575 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
6576 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
6577 (insert_bundle_state): Change 1 to INSERT in function call.
6578 (ia64_add_bundle_selector_before): Likewise.
6579 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
6580 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
6581 (restore_stack_nonlocal): Likewise.
6582 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
6583 function call.
6584 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
6585 function call.
6586 (mips_rtx_costs): Likewise.
6587 (mips_override_options): Add casts to enum type.
6588 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
6589 in function call.
6590 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
6591 (store_reg, set_reg_plus_d): Likewise.
6592 (hppa_expand_prologue, hppa_profile_hook): Likewise.
6593 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
6594 cast to enum type.
6595 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
6596 function call.
6597 (emit_unlikely_jump): Use add_reg_note.
6598 (rs6000_emit_allocate_stack): Likewise.
6599 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
6600 (output_toc): Change 1 to INSERT in function call.
6601 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
6602 (rs6000_initialize_trampoline): Likewise.
6603 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
6604 function call.
6605 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
6606 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
6607 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
6608 (save_gprs): Use add_reg_note.
6609 (s390_emit_prologue): Likewise.
47f402d1 6610 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
6611 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
6612 (sparc_fold_builtin): Add cast to enum type.
6613 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
6614 enum insn_code.
6615 (spu_expand_prologue): Use add_reg_note.
47f402d1 6616 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
6617
66182009-04-20 Ian Lance Taylor <iant@google.com>
6619
6620 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
6621 (c_parser_postfix_expression_after_primary): Get VEC for list of
6622 arguments. Get original types of arguments. Call
6623 build_function_call_vec.
6624 (cached_expr_list_1, cached_expr_list_2): New static variables.
6625 (c_parser_expr_list): Change return type to VEC *. Add
6626 p_orig_types parameter. Change all callers.
6627 (c_parser_release_expr): New static function.
6628 (c_parser_vec_to_tree_list): New static function.
6629 * c-typeck.c (build_function_call): Rewrite to build a VEC and
6630 call build_function_call_vec.
6631 (build_function_call_vec): New function, based on old
6632 build_function_call.
6633 (convert_arguments): Remove nargs and argarray parameters. Change
6634 values to a VEC. Add origtypes parameter.
47f402d1 6635 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
6636 (convert_for_assignment): Add origtype parameter. Change all
6637 callers. If warn_cxx_compat, check for conversion to an enum
6638 type when calling a function.
6639 (store_init_value): Add origtype parameter. Change all callers.
6640 (digest_init): Likewise.
6641 (struct init_node): Add origtype field.
6642 (add_pending_init): Add origtype parameter. Change all callers.
6643 (output_init_element): Likewise.
6644 (output_pending_init_elements): Pass origtype from init_node to
6645 output_init_element.
f28a61ab 6646 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
6647 output_init_element.
6648 (c_finish_return): Add origtype parameter. Change all callers.
6649 * c-common.c (sync_resolve_size): Change params to VEC *. Change
6650 caller.
6651 (sync_resolve_params): Likewise.
47f402d1 6652 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 6653 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 6654 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
6655 * c-decl.c (finish_decl): Add origtype parameter. Change all
6656 callers. Call build_function_call_vec rather than
6657 build_function_call for cleanup.
6658 * c-tree.h: Update declarations.
6659 * c-common.h: Update declarations.
6660 * stub-objc.c (objc_rewrite_function_call): Change parameter from
6661 params to first_param.
6662 * target.h (struct gcc_target): Change resolve_overloaded_builtin
6663 params parameter from tree to void *.
6664 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6665 Change arglist parameter to have type void *, and to be a pointer
6666 to a VEC.
6667 * config/rs6000/rs6000-protos.h
6668 (altivec_resolve_overloaded_builtin): Update declaration.
6669 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
6670 fnargs parameter to have type void *, and to be a pointer to a
6671 VEC. Call build_function_call_vec instead of
6672 build_function_call.
47f402d1 6673 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 6674
6ff078d4 66752009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 6676 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
6677 H.J. Lu <hongjiu.lu@intel.com>
6678
6679 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
6680
6681 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
6682 (IX86_LEA_PRIORITY): Likewise.
6683 (distance_non_agu_define): New function.
6684 (distance_agu_use): Likewise.
6685 (ix86_lea_for_add_ok): Likewise.
6686 (ix86_dep_by_shift_count): Likewise.
6687
6688 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
6689 should split for LEA.
6690
6691 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
6692 function.
6693 (ix86_dep_by_shift_count): Likewise.
6694
87a5b4cc
RG
66952009-04-20 Richard Guenther <rguenther@suse.de>
6696
6697 * expr.c (handled_component_p): Move ...
6698 * tree.h (handled_component_p): ... here.
6699 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
6700 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
6701 and REALPART_EXPR to be in one group.
6702
438c239d
RG
67032009-04-20 Richard Guenther <rguenther@suse.de>
6704
6705 * basic-block.h (get_all_dominated_blocks): Declare.
6706 * dominance.c (get_all_dominated_blocks): New function.
6707 * tree-cfg.c (get_all_dominated_blocks): Remove.
6708 (remove_edge_and_dominated_blocks): Adjust.
6709 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
6710 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
6711 instead of recursing.
6712
fed5ae11
DK
67132009-04-20 Doug Kwan <dougkwan@google.com>
6714
6715 * cgraph.h (cgraph_node_ptr): New type for vector functions.
6716 (struct cgraph_node_set_def): New type.
6717 (cgraph_node_set) New type. Also declare vector functions.
6718 (struct cgraph_node_set_element_def): New type.
6719 (cgraph_node_set_element): Ditto.
6720 (cgraph_node_set_iterator): New iterator type.
6721 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
6722 cgraph_node_set_remove, dump_cgraph_node_set,
6723 debug_cgraph_node_set): New prototypes.
6724 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
6725 cgraph_node_set_size): New inlines.
6726 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
6727 including cgraph.h.
6728 (struct ipa_opt_pass): Add struct cgraph_node_set_def
6729 argument to function 'write_summary'.
6730 * ipa.c: Include ggc.h.
6731 (hash_cgraph_node_set_element,
6732 eq_cgraph_node_set_element, cgraph_node_set_new,
6733 cgraph_node_set_add, cgraph_node_set_remove,
6734 cgraph_node_set_find, dump_cgraph_node_set,
6735 debug_cgraph_node_set): New functions.
6736 * Makefile.in (ipa.o): Add dependency on GGC_H.
6737
c4551b28
IR
67382009-04-20 Ira Rosen <irar@il.ibm.com>
6739
6740 PR tree-optimization/39675
2ba9daa7 6741 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
6742 check of the return code of vect_schedule_slp. Check that
6743 stmt_vec_info still exists for the statement, before checking its
6744 vectorization type.
c4551b28 6745
21a495fb
MM
67462009-04-20 Michael Matz <matz@suse.de>
6747
6748 * Makefile.in (generated_files): Take out $(simple_generated_c).
6749
8e208874
DK
67502009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
6751
6752 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
6753 (UINTPTR_TYPE): Likewise.
6754
a45e580b
JM
67552009-04-19 Joseph Myers <joseph@codesourcery.com>
6756
6757 PR c/37481
6758 * c-typeck.c (digest_init): Check for initializing an array with a
6759 string literal.
6760
20845d35
JM
67612009-04-19 Joseph Myers <joseph@codesourcery.com>
6762
6763 PR c/19771
6764 * c-semantics.c (pop_stmt_list): Propagate
6765 STATEMENT_LIST_HAS_LABEL to parent statement list.
6766
28143fdd
AN
67672009-04-19 Adam Nemet <anemet@caviumnetworks.com>
6768
6769 * config/mips/mips.h (mips_tune_attr): New macro.
6770 * config/mips/mips.md (cpu): Use it.
6771
da377db9
JM
67722009-04-19 Joseph Myers <joseph@codesourcery.com>
6773
6774 PR c/38243
6775 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
6776 declaring a tag.
6777
3baf459d
DN
67782009-04-19 Diego Novillo <dnovillo@google.com>
6779
6780 * toplev.c (compile_file): Move call to coverage_finish ...
6781 * cgraphunit.c (ipa_passes): ... here.
6782 Call cgraph_process_new_functions.
6783 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
6784 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
6785
b6fa5b01
JH
67862009-04-19 Jan Hubicka <jh@suse.cz>
6787
47f402d1
UB
6788 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
6789 cfun.
b6fa5b01
JH
6790 (dump_cgraph_node): Dump can throw external flag.
6791 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
6792
ca409efd
MLI
67932009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
6794
6795 PR c/32061
6796 PR c++/36954
6797 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
6798 * common.opt (Wlogical-op): Move from here...
6799 * c.opt (Wlogical-op): ... to here.
6800 * c-typeck.c (parser_build_binary_op): Update call to
6801 warn_logical_operator.
6802 * c-opts.c (c_common_post_options): Enable warn_logical_op with
6803 extra_warnings.
6804 * c-common.c (warn_logical_op): Update.
6805 * c-common.h (warn_logical_op): Update declaration.
6806
9db4cdd3
EB
68072009-04-19 Eric Botcazou <ebotcazou@adacore.com>
6808
6809 * tree.c (protected_set_expr_location): Fix formatting.
6810
f37acdf9
JM
68112009-04-18 Joseph Myers <joseph@codesourcery.com>
6812
6813 PR c/27676
6814 * c-typeck.c (readonly_warning): new.
6815 (build_unary_op, build_modify_expr): Use readonly_warning for
6816 storing into something readonly but not const-qualified.
6817
2b4b7036
JM
68182009-04-18 Joseph Myers <joseph@codesourcery.com>
6819
6820 PR c/22367
6821 * c-typeck.c (build_unary_op): Check for taking address of
6822 expression of type void.
6823
3ce62965
JM
68242009-04-18 Joseph Myers <joseph@codesourcery.com>
6825
6826 PR c/35210
6827 * c-typeck.c (build_function_call): Check for calling a function
6828 with qualified void return types. Call require_complete_type when
6829 generating a trap.
6830
2505c5ed
JH
68312009-04-18 Jan Hubicka <jh@suse.cz>
6832
6833 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
6834 Set nothrow flag.
6835 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
6836 can_throw_external flag.
6837 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
6838 * ipa-pure-const.c (ignore_edge): New function.
6839 (propagate): Compute order for NOTHROW computation; set NOTHROWs
6840 only over can_throw_external edges.
6841 (local_pure_const): Add nothrow flag.
6842 * ipa-utils.c (searchc): Add ignore_edge callback.
6843 (ipa_utils_reduced_inorder): Add ignore_edge callback.
6844 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
6845 (set_nothrow_function_flags): Update cgraph.
6846 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
6847
2586ba4b
RG
68482009-04-18 Richard Guenther <rguenther@suse.de>
6849
6850 PR middle-end/39804
6851 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
6852 (fold_stmt): ... this and ...
6853 (fold_stmt_inplace): ... this.
6854 (fold_stmt_1): Fold references in calls and asms.
6855 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
6856
1eefab17
KH
68572009-04-18 Kazu Hirata <kazu@codesourcery.com>
6858
6859 * tree-vrp.c (ssa_name_nonzero_p): Remove.
6860 * tree.h: Remove the prototype for ssa_name_nonzero_p.
6861
aa424b01
KH
68622009-04-18 Kazu Hirata <kazu@codesourcery.com>
6863
6864 * tree.c (function_args_count): Remove.
6865 * tree.h: Remove the prototype for function_args_count.
6866
613a896b
KH
68672009-04-18 Kazu Hirata <kazu@codesourcery.com>
6868
6869 * tree-iterator.c (expr_only): Remove.
6870 * tree.h: Remove the prototype for expr_only.
6871
579e694c
KH
68722009-04-18 Kazu Hirata <kazu@codesourcery.com>
6873
6874 * reginfo.c (cannot_change_mode_set_regs): Remove.
6875 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
6876
ee7e3ad3
AS
68772009-04-08 Anatoly Sokolov <aesok@post.ru>
6878
6879 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
6880 whether operands 0 and 1 overlaps.
6881
92ef7fb1
MLI
68822009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
6883
6884 PR middle-end/36902
6885 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
6886 pointer. Use warning_at instead of warning.
6887 (search_for_addr_array): Likewise.
6888 (check_array_bounds): Likewise.
6889 (check_all_array_refs): Check that the incoming edge is not in the
6890 list of edges to be removed.
6891 (check_all_array_refs): Avoid the temporal pointer.
6892 (vrp_visit_cond_stmt): Fix typo.
6893 (simplify_switch_using_ranges): Handle the case where the switch
6894 index is an integer constant.
6895
0e097268
AN
68962009-04-18 Adam Nemet <anemet@caviumnetworks.com>
6897
6898 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
6899
c782f1dd
KH
69002009-04-18 Kazu Hirata <kazu@codesourcery.com>
6901
6902 * doc/extend.texi, doc/invoke.texi: Fix typos.
6903
668fb0e8
CC
69042009-04-17 Cary Coutant <ccoutant@google.com>
6905
6906 * tree-flow-inline.h (get_lineno): Fix inverted test.
6907
4d4014c1
DN
69082009-04-17 Diego Novillo <dnovillo@google.com>
6909
6910 * tree-ssa-pre.c (create_expression_by_pieces): Remove
6911 assertion for AVAIL_OUT.
6912
2984e1b6
MF
69132009-04-17 Mike Frysinger <vapier@gentoo.org>
6914
6915 PR target/38627
6916 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
6917 * config/sh/linux-atomic.asm: Likewise.
6918
9994a182
DN
69192009-04-17 Diego Novillo <dnovillo@google.com>
6920
6921 * except.c (debug_eh_tree): New.
6922 (struct eh_region, struct eh_status): Move ...
6923 * except.h: ... here.
6924 (add_type_for_runtime): Declare extern.
6925 (lookup_type_for_runtime): Likewise.
6926 (debug_eh_tree): Declare.
6927 * Makefile.in (GTFILES): List except.h before except.c
6928
07485407
DN
69292009-04-17 Diego Novillo <dnovillo@google.com>
6930
47f402d1 6931 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
6932 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
6933 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
6934 (find_vars_r): ... here.
6935 * tree-flow.h (find_referenced_vars_in): Declare.
6936 * tree-ssa-pre.c (create_expression_by_pieces): Assert
6937 that AVAIL_OUT exists for BLOCK.
6938 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
6939 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
6940 (tree-parloops.o): Likewise.
6941
4e53d196
SB
69422009-04-17 Simon Baldwin <simonb@google.com>
6943
6944 * toplev.c (default_tree_printer): Add handling for %E format.
6945
413d3aa8
DN
69462009-04-17 Diego Novillo <dnovillo@google.com>
6947
47f402d1
UB
6948 * tree-pretty-print.c (dump_generic_node): Add break after
6949 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
6950 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
6951 FUNCTION_TYPE together. Call print_struct_decl when printing
6952 structures and TDF_SLIM is not given.
413d3aa8
DN
6953 (print_struct_decl): Fix logic for detecting recursion.
6954
5a691e98
RAE
69552009-04-17 Rafael Avila de Espindola <espindola@google.com>
6956
6957 PR 31567
6958 * gcc.c (create_at_file): New.
6959 (compile_input_file_p): New.
6960 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
6961 * main.c (main): Update call to toplev_main.
6962 * toplev.c (toplev_main): Change signature. Call expandargv.
6963 * toplev.h (toplev_main): Change signature.
6964
9eacf7a6
EB
69652009-04-17 Eric Botcazou <ebotcazou@adacore.com>
6966
6967 * dwarf2out.c (field_byte_offset): Use the type size as the field size
6968 if the latter is not constant.
6969
58298177
DE
69702009-04-17 David Edelsohn <edelsohn@gnu.org>
6971
6972 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
6973
5b4c43d7
EB
69742009-04-17 Eric Botcazou <ebotcazou@adacore.com>
6975
6976 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
6977 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
6978
b51605c4
RG
69792009-04-17 Richard Guenther <rguenther@suse.de>
6980
6981 * tree-ssa-structalias.c (get_constraint_for_component_ref):
6982 Handle component references view-converting an invariant address.
6983
9e3be889
AN
69842009-04-17 Adam Nemet <anemet@caviumnetworks.com>
6985
6986 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
6987 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
6988 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
6989 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
6990 Use @deftypevr rather than @deftypevar.
6991
7c3e9dc3
RG
69922009-04-17 Richard Guenther <rguenther@suse.de>
6993
47f402d1 6994 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
6995 (get_prop_source_stmt): Likewise.
6996 (can_propagate_from): Likewise.
6997
aca600aa
AS
69982009-04-17 Andrew Stubbs <ams@codesourcery.com>
6999
7000 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
7001 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
7002 (--with-multilib-list): Add default value.
7003 * configure: Regenerate.
7004 * Makefile.in (TM_ENDIAN_CONFIG): Define.
7005 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
7006 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
7007 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
7008 Don't add default cpu to multilib list unnecessarily, but do enable
7009 the relevant compiler option..
7010 Add support for --with-multilib-list=<blank> and
7011 --with-multilib-list=!<somelib> to supress unwanted multilibs.
7012 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
7013 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
7014 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
7015 TM_MULTILIB_CONFIG.
7016 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
7017 (MULTILIB_OSDIRNAMES): New variable.
7018 * config/sh/t-1e: Delete file.
7019 * config/sh/t-mlib-sh1: Delete file.
7020 * config/sh/t-mlib-sh2: Delete file.
7021 * config/sh/t-mlib-sh2a: Delete file.
7022 * config/sh/t-mlib-sh2a-nofpu: Delete file.
7023 * config/sh/t-mlib-sh2a-single: Delete file.
7024 * config/sh/t-mlib-sh2a-single-only: Delete file.
7025 * config/sh/t-mlib-sh2e: Delete file.
7026 * config/sh/t-mlib-sh3e: Delete file.
7027 * config/sh/t-mlib-sh4: Delete file.
7028 * config/sh/t-mlib-sh4-nofpu: Delete file.
7029 * config/sh/t-mlib-sh4-single: Delete file.
7030 * config/sh/t-mlib-sh4-single-only: Delete file.
7031 * config/sh/t-mlib-sh4a: Delete file.
7032 * config/sh/t-mlib-sh4a-nofpu: Delete file.
7033 * config/sh/t-mlib-sh4a-single: Delete file.
7034 * config/sh/t-mlib-sh4a-single-only: Delete file.
7035 * config/sh/t-mlib-sh4al: Delete file.
7036 * config/sh/t-mlib-sh5-32media: Delete file.
7037 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
7038 * config/sh/t-mlib-sh5-64media: Delete file.
7039 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
7040 * config/sh/t-mlib-sh5-compact: Delete file.
7041 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
7042 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
7043 * doc/install.texi (Options specification): Add
7044 --with-multilib-list and --with-endian.
7045
cf8aba7f
RAE
70462009-04-17 Rafael Avila de Espindola <espindola@google.com>
7047
7048 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
7049 REVISION_c.
7050 (OBJS-common): Add plugin-version.o.
7051 (plugin-version.o): New.
7052 * gcc-plugin.h (plugin_gcc_version): New.
7053 (plugin_default_version_check): New.
7054 (plugin_init_func, plugin_init): Add version argument.
7055 * plugin-version.c: New.
7056 * plugin.c (str_plugin_gcc_version_name): New.
7057 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
7058 pass it to the init function.
7059 (plugin_default_version_check): New.
7060
61e20b90
RG
70612009-04-17 Richard Guenther <rguenther@suse.de>
7062
7063 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
7064 for decl-vs-decl disambiguation.
7065
90c6fd8a
AK
70662009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
7067
7068 * config/s390/s390.h (s390_tune_attr): New macro definition.
7069 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
7070
9fe9fe04
RG
70712009-04-17 Richard Guenther <rguenther@suse.de>
7072
7073 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
7074 (fold_stmt_r): Likewise.
7075 (maybe_fold_reference): New function.
7076 (fold_gimple_assign): Handle cases fold_stmt_r did.
7077 (fold_stmt): Do not use fold_stmt_r.
7078 (fold_stmt_inplace): Likewise.
7079
7e673273
RG
70802009-04-17 Richard Guenther <rguenther@suse.de>
7081
7082 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
7083 (record_equivalences_from_stmt): Remove useless checks and
7084 simplifications.
7085 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
7086 the type is already suitable.
7087
fabf2749
PB
70882009-04-17 Paolo Bonzini <bonzini@gnu.org>
7089
7090 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
7091
68f7b061
UB
70922009-04-17 Uros Bizjak <ubizjak@gmail.com>
7093
7094 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
7095 (CMPtype): Define as __gcc_CMPtype.
7096
532bfb0a
AJ
70972009-04-17 Aurelien Jarno <aurelien@aurel32.net>
7098
7099 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
7100 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
7101
e3ac77ff
RG
71022009-04-17 Richard Guenther <rguenther@suse.de>
7103
7104 PR tree-optimization/39746
7105 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
7106 special-casing for builtins and static variable use/def.
7107 (call_may_clobber_ref_p_1): Likewise.
7108
7072a650
ILT
71092009-04-16 Ian Lance Taylor <iant@google.com>
7110
7111 * df.h: Include "timevar.h".
7112 (struct df_problem): Change tv_id field to timevar_id_t.
7113 * tree-pass.h: Include "timevar.h".
7114 (struct opt_pass): Change tv_id field to timevar_id_t.
7115 * timevar.h (timevar_id_t): Define TV_NONE.
7116 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
7117 TV_NONE rather than tv_id != 0.
7118 (execute_one_pass): Likewise.
7119 * Makefile.in (DF_H): Add $(TIMEVAR_H).
7120 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
7121 dependencies to $(TREE_PASS_H).
7122 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
7123 to TV_NONE.
7124 (pass_branch_target_load_optimize2): Likewise.
7125 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
7126 (pass_outof_cfg_layout_mode): Likewise.
7127 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
7128 (pass_rebuild_cgraph_edges): Likewise.
7129 (pass_remove_cgraph_callee_edges): Likewise.
7130 * df-core.c (pass_df_initialize_opt): Likewise.
7131 (pass_df_initialize_no_opt): Likewise.
7132 (pass_df_finish): Likewise.
7133 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
7134 * except.c (pass_set_nothrow_function_flags): Likewise.
7135 (pass_convert_to_eh_region_ranges): Likewise.
7136 * final.c (pass_compute_alignments): Likewise.
7137 * function.c (pass_instantiate_virtual_regs): Likewise.
7138 (pass_init_function): Likewise.
7139 (pass_leaf_regs): Likewise.
7140 (pass_match_asm_constraints): Likewise.
7141 * gimple-low.c (pass_lower_cf): Likewise.
7142 (pass_mark_used_blocks): Likewise.
7143 * init-regs.c (pass_initialize_regs): Likewise.
7144 * integrate.c (pass_initial_value_sets): Likewise.
7145 * ira.c (pass_ira): Likewise.
7146 * jump.c (pass_cleanup_barriers): Likewise.
7147 * omp-low.c (pass_expand_omp): Likewise.
7148 (pass_lower_omp): Likewise.
7149 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
7150 * recog.c (pass_split_all_insns): Likewise.
7151 (pass_split_after_reload): Likewise.
7152 (pass_split_before_regstack): Likewise.
7153 (pass_split_before_sched2): Likewise.
7154 (pass_split_for_shorten_branches): Likewise.
7155 * reginfo.c (pass_reginfo_init): Likewise.
7156 (pass_subregs_of_mode_init): Likewise.
7157 (pass_subregs_of_mode_finish): Likewise.
7158 * passes.c (pass_postreload): Likewise.
7159 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
7160 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
7161 (pass_warn_function_return): Likewise.
7162 (pass_warn_function_noreturn): Likewise.
7163 * tree-complex.c (pass_lower_complex): Likewise.
7164 (pass_lower_complex_O0): Likewise.
7165 * tree-if-conv.c (pass_if_conversion): Likewise.
7166 * tree-into-ssa.c (pass_build_ssa): Likewise.
7167 * tree-mudflap.c (pass_mudflap_1): Likewise.
7168 (pass_mudflap_2): Likewise.
7169 * tree-nomudflap.c (pass_mudflap_1): Likewise.
7170 (pass_mudflap_2): Likewise.
7171 * tree-nrv.c (pass_return_slot): Likewise.
7172 * tree-object-size.c (pass_object_sizes): Likewise.
7173 * tree-optimize.c (pass_all_optimizations): Likewise.
7174 (pass_early_local_passes): Likewise.
7175 (pass_all_early_optimizations): Likewise.
7176 (pass_cleanup_cfg): Likewise.
7177 (pass_cleanup_cfg_post_optimizing): Likewise.
7178 (pass_free_datastructures): Likewise.
7179 (pass_free_cfg_annotations): Likewise.
7180 (pass_fixup_cfg): Likewise.
7181 (pass_init_datastructures): Likewise.
7182 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
7183 (pass_late_warn_uninitialized): Likewise.
7184 (pass_update_address_taken): Likewise.
7185 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
7186 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
7187 (pass_cse_sincos): Likewise.
7188 (pass_convert_to_rsqrt): Likewise.
7189 * tree-ssa-structalias.c (pass_build_alias): Likewise.
7190 * tree-stdarg.c (pass_stdarg): Likewise.
7191 * tree-tailcall.c (pass_tail_recursion): Likewise.
7192 (pass_tail_calls): Likewise.
7193 * tree-vect-generic.c (pass_lower_vector): Likewise.
7194 (pass_lower_vector_ssa): Likewise.
7195 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
7196
0051ef59
JM
71972009-04-16 Joseph Myers <joseph@codesourcery.com>
7198
7199 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
7200 XLR entry.
7201 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
7202 Handle -march=xlr.
7203 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
7204 logical and signext.
7205
b3f8558a
KK
72062009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
7207
7208 PR target/39767
7209 * config/sh/predicates.md (arith_operand): Check if the operand
7210 of TRUNCATE is a REG.
7211
f57597d9
KH
72122009-04-16 Kazu Hirata <kazu@codesourcery.com>
7213
7214 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
7215 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
7216
b172d063
KH
72172009-04-16 Kazu Hirata <kazu@codesourcery.com>
7218
7219 * tree-iterator.c (tsi_split_statement_list_after,
7220 tsi_split_statement_list_before): Remove.
7221 * tree-iterator.h: Remove the prototypes for
532bfb0a 7222 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 7223
78fe4f1f
KH
72242009-04-16 Kazu Hirata <kazu@codesourcery.com>
7225
7226 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
7227 * tree-ssa-propagate.h: Remove the prototype for
7228 stmt_makes_single_load.
7229
43dd3201
KH
72302009-04-16 Kazu Hirata <kazu@codesourcery.com>
7231
7232 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
7233 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
7234
4252a4aa
KH
72352009-04-16 Kazu Hirata <kazu@codesourcery.com>
7236
7237 * tree-iterator.c (EXPR_LAST_BODY): Remove.
7238
bfb69968
KH
72392009-04-16 Kazu Hirata <kazu@codesourcery.com>
7240
7241 * except.c (eh_region_outer_p): Remove.
7242 * except.h: Remove the prototype for eh_region_outer_p.
7243
c7db7fa5
KH
72442009-04-16 Kazu Hirata <kazu@codesourcery.com>
7245
7246 * function.c (current_function_assembler_name): Remove.
7247 * function.h: Remove the prototype for
7248 current_function_assembler_name.
7249
efc0b2bd
ILT
72502009-04-16 Ian Lance Taylor <iant@google.com>
7251
532bfb0a 7252 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
7253 (add_reg_note): Call alloc_reg_note.
7254 * rtl.h (alloc_reg_note): Declare.
7255 * combine.c (try_combine): Use alloc_reg_note.
7256 (recog_for_combine, move_deaths): Likewise.
7257 (distribute_notes): Use alloc_reg_note and add_reg_note.
7258 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
7259 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
7260 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
7261
6080348f
VM
72622009-04-16 Vladimir Makarov <vmakarov@redhat.com>
7263
7264 PR rtl-optimization/39762
7265 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
7266 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 7267 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 7268
6080348f
VM
7269 * ira-conflicts.c (process_regs_for_copy): Use function
7270 ira_get_register_move_cost instead of global
7271 ira_register_move_cost.
7272
7273 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
7274 color_pass, move_spill_restore, update_curr_costs): Ditto.
7275
7276 * ira-lives.c (process_single_reg_class_operands): Ditto.
7277
7278 * ira-emit.c (emit_move_list): Ditto.
7279
7280 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
7281 (record_reg_classes): Ditto. Use functions
7282 ira_get_register_move_cost and ira_get_may_move_cost instead of
7283 global vars ira_register_move_cost, ira_may_move_out_cost and
7284 ira_may_move_in_cost.
7285 (record_address_regs): Don't call ira_init_register_move_cost.
7286 Use function ira_get_may_move_cost instead of global
7287 ira_may_move_in_cost.
7288 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 7289 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 7290 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 7291
646bea10
RG
72922009-04-16 Richard Guenther <rguenther@suse.de>
7293
7294 * tree-cfg.c (verify_gimple_assign_binary):
7295 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
7296 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
7297 (create_general_new_stmt): Note that this function is broken.
7298
02e819ff
RAE
72992009-04-16 Rafael Avila de Espindola <espindola@google.com>
7300
7301 * common.opt (fhelp): Add Var(help_flag).
7302 * gcc-plugin.h (plugin_info): Add help.
7303 * plugin.c (plugin_name_args): Add help.
7304 (register_plugin_info): Set plugin->help.
7305 (print_help_one_plugin): New.
7306 (print_plugins_help): New.
7307 * plugin.h (print_plugins_help): New.
7308 * toplev.c (toplev_main): Call print_plugins_help if needed.
7309
ccacdf06
RG
73102009-04-16 Richard Guenther <rguenther@suse.de>
7311
7312 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
7313 (gimple_ior_addresses_taken_1): New function.
7314 (gimple_ior_addresses_taken): Likewise.
7315 * gimple.h (struct gimple_statement_with_ops_base): Remove
7316 addresses_taken member.
7317 (gimple_ior_addresses_taken): Declare.
7318 (gimple_addresses_taken, gimple_addresses_taken_ptr,
7319 gimple_set_addresses_taken): Remove.
7320 * ipa-reference.c (mark_address): New function.
7321 (scan_stmt_for_static_refs): Use it for marking addresses taken.
7322 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
7323 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
7324 (gimple_add_to_addresses_taken): Remove.
7325 (get_tmr_operands): Call mark_address_taken.
7326 (get_asm_expr_operands): Likewise.
7327 (get_expr_operands): Likewise.
7328 (build_ssa_operands): Do not clear the addresses_taken bitmap.
7329 (free_stmt_operands): Do not free it.
7330 * tree-ssa.c (delete_tree_ssa): Likewise.
7331 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
7332
346ef3fa
RG
73332009-04-16 Richard Guenther <rguenther@suse.de>
7334
7335 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
7336 (walk_stmt_load_store_ops): Likewise.
7337 * gimple.c (get_base_loadstore): New function.
7338 (walk_stmt_load_store_addr_ops): Likewise.
7339 (walk_stmt_load_store_ops): Likewise.
7340 * ipa-pure-const.c (check_op): Simplify.
7341 (check_load, check_store): New functions.
7342 (check_stmt): Use walk_stmt_load_store_ops.
7343 * ipa-reference.c (mark_load): Adjust signature.
7344 (mark_store): Likewise.
7345 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
7346
44e9f006
RAE
73472009-04-16 Rafael Avila de Espindola <espindola@google.com>
7348
7349 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
7350 (plugin_info): New.
7351 * opts.c (common_handle_option): Don't call print_version.
7352 * plugin.c (plugin_name_args): Add version.
7353 (register_plugin_info): New.
7354 (register_callback): Handle PLUGIN_INFO.
7355 (try_init_one_plugin): New.
7356 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
7357 if failed to init.
7358 (finalize_one_plugin): New.
7359 (finalize_plugins): New.
7360 (print_one_plugin): New.
7361 (print_plugins_versions): New.
7362 * plugin.h (print_plugins_versions): New.
7363 (finalize_plugins): New.
7364 * toplev.c (compile_file): Don't call initialize_plugins.
7365 (print_version): Call print_plugins_versions.
7366 (toplev_main): Call initialize_plugins. Print version if needed.
7367 Call finalize_plugins.
7368
41fd0f9b
RAE
73692009-04-16 Rafael Avila de Espindola <espindola@google.com>
7370
7371 * common.opt (fversion): New.
7372 * gcc.c (print_version): New.
7373 (process_command): Don't print the version. Just set print_version.
7374 (main): Print version. Call subprocesses if print_version and
7375 verbose_flag are set.
7376 * opts.c (common_handle_option): Handle OPT_fversion.
7377
550918ca 73782009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 7379 Ira Rosen <irar@il.ibm.com>
550918ca
RG
7380
7381 PR tree-optimization/39698
7382 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
7383 type of the reduction variable. Only generate the def if
7384 it is needed.
7385
7386 * omp-low.c (expand_omp_for_generic): When converting to a pointer
7387 make sure to first convert to an integer of the same precision.
7388 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
7389 the type of the evolution correctly in computing the new
7390 induction variable base.
7391
54634841
RG
73922009-04-16 Richard Guenther <rguenther@suse.de>
7393
7394 PR middle-end/39625
7395 * tree-cfg.c (make_blocks): Split statements with to-be
7396 abnormal SSA names on the lhs.
7397
b6fc2cdb
PB
73982009-04-16 Paolo Bonzini <bonzini@gnu.org>
7399
7400 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
7401 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
7402 * c-typeck.c (really_start_incremental_init): Likewise.
7403 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
7404 (TARGET_INITIALIZER): Remove it.
7405 * target.h (struct target): Remove vector_opaque_p.
7406 * tree.c (build_opaque_vector_type): New.
7407 * tree.h (TYPE_VECTOR_OPAQUE): New.
7408 (build_opaque_vector_type): Declare.
7409 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
7410 * config/rs6000/rs6000.c (build_opaque_vector_type,
7411 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
7412 (rs6000_init_builtins): Use build_opaque_vector_type for
7413 opaque_V4SI_type_node.
7414
a417cdd9
CM
74152009-04-15 Catherine Moore <clm@codesourcery.com>
7416
532bfb0a
AJ
7417 * debug.h (set_name): Declare.
7418 * dwarf2out.c (dwarf2out_set_name): Declare.
7419 (dwarf2_debug_hooks): Add set_name.
7420 (find_AT_string): New.
7421 (add_AT_string): Call find_AT_string.
7422 (dwarf2out_set_name): New.
7423 * cp/decl.c (grokdeclarator): Call set_name.
7424 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
7425 * debug.c (do_nothing_debug_hooks): Likewise.
7426 * dbxout.c (dbx_debug_hooks): Likewise.
7427 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 7428
60839f5d 74292009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 7430
532bfb0a
AJ
7431 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
7432 reg for single-precision FPU.
7433 * config/rs6000/rs6000.md (movsi_internal1): Only for
7434 !TARGET_SINGLE_FPU.
7435 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
7436 single-precision FP regs.
7437
ada39f0b
RG
74382009-04-15 Richard Guenther <rguenther@suse.de>
7439
7440 * omp-low.c (lower_rec_input_clauses): Build correct address
7441 expressions.
7442 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 7443 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
7444 (generate_memset_zero): Fix types.
7445 * tree-profile.c (prepare_instrumented_value): Correctly
7446 widen a pointer.
7447
6866c6e8
ILT
74482009-04-15 Ian Lance Taylor <iant@google.com>
7449
7450 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
7451 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
7452 for -Wall and for -Wc++-compat.
7453 (c_common_post_options): For C++, set warn_enum_compare if not
7454 already set.
7455 * c-tree.h (struct c_expr): Add field original_type.
7456 (build_external_ref): Update declaration.
7457 * c-parser.c (c_parser_braced_init): Set original_type.
7458 (c_parser_initelt): Likewise.
7459 (c_parser_expr_no_commas): Likewise.
7460 (c_parser_conditional_expression): Likewise.
7461 (c_parser_cast_expression): Likewise.
7462 (c_parser_unary_expression): Likewise. Pull setting of
7463 original_code to top of function.
7464 (c_parser_sizeof_expression): Set original_type.
7465 (c_parser_alignof_expression): Likewise.
7466 (c_parser_postfix_expression): Likewise. Pull setting of
7467 original_code to top of function.
532bfb0a 7468 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
7469 (c_parser_postfix_expression_after_primary): Likewise.
7470 (c_parser_expression): Likewise.
7471 * c-typeck.c (build_external_ref): Add type parameter. Change all
7472 callers.
7473 (c_expr_sizeof_expr): Set original_type field.
7474 (parser_build_unary_op): Likewise.
7475 (parser_build_binary_op): Likewise. Optionally warn about
7476 comparisons of enums of different types.
7477 (digest_init): Set original_type field.
7478 (really_start_incremental_init): Likewise.
7479 (push_init_level, pop_init_level): Likewise.
7480 * doc/invoke.texi (Warning Options): -Wenum-compare now
7481 supported in C.
7482
f116fecf
RG
74832009-04-15 Richard Guenther <rguenther@suse.de>
7484
7485 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
7486 out a necessary conversion.
7487 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
7488 names we didn't value number.
7489 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
7490
25e20805
RG
74912009-04-15 Richard Guenther <rguenther@suse.de>
7492
7493 PR tree-optimization/39764
7494 * tree-ssa-ccp.c (get_value): Canonicalize value with
7495 canonicalize_float_value.
7496
90cc3676
JH
74972009-04-15 Jan Hubicka <jh@suse.cz>
7498
7499 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
7500 Wrong version of patch.
7501
6d14c006
JH
75022009-04-15 Jan Hubicka <jh@suse.cz>
7503
7504 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
7505
5afaa917
NS
75062009-04-15 Nathan Sidwell <nathan@codesourcery.com>
7507
7508 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
7509 our distinct integral and vector types.
7510
3b482fca
RAE
75112009-04-15 Rafael Avila de Espindola <espindola@google.com>
7512
7513 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
7514 * init.c (build_vtbl_address): Remove call to assemble_external.
7515
6cd1d2e2
DJ
75162009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
7517
7518 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
7519 output for other floating point modes.
7520
dab71827
DN
75212009-04-14 Diego Novillo <dnovillo@google.com>
7522
7523 * diagnostic.c (diagnostic_report_diagnostic): Do not
7524 warn about loaded plugins for DK_ERROR and DK_WARNING.
7525 * c-decl.c (declspecs_add_type): Move call to
7526 invoke_plugin_callbacks ...
7527 * c-parser.c (c_parser_declspecs): ... here.
7528 * plugin.c (dump_active_plugins): Tidy output.
7529
68a607d8
DN
75302009-04-14 Diego Novillo <dnovillo@google.com>
7531 Le-Chun Wu <lcwu@google.com>
7532
7533 * configure.ac: Add --enable-plugin support.
7534 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
7535 * Makefile.in (PLUGIN_H): Define.
7536 Export ENABLE_PLUGIN and GMPINC to site.exp.
7537 Add PLUGINLIBS to link command.
7538 Add/modify dependencies for plugin.o and files including plugin.h.
7539 (plugin.o): New.
7540 * config.in: Regenerate.
2ba9daa7 7541
68a607d8
DN
7542 * opts.c (common_handle_option): Handle OPT_fplugin_ and
7543 OPT_fplugin_arg_.
7544
75452009-04-14 Le-Chun Wu <lcwu@google.com>
7546
7547 * tree-pass.h (register_one_dump_file): Add a prototype for
7548 register_one_dump_file.
7549 * toplev.c (compile_file): Call initialize_plugins.
7550 (do_compile): Call invoke_plugin_callbacks.
7551 (toplev_main): Call invoke_plugin_callbacks.
7552 * common.opt: Add -fplugin= and -fplugin-arg-.
7553 * gcc-plugin.h: New public header file for plugins to include.
7554 * plugin.c: New source file.
7555 * plugin.h: New internal header file.
7556 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 7557
68a607d8
DN
7558 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
7559
75602009-04-14 Diego Novillo <dnovillo@google.com>
7561
7562 * doc/plugins.texi: New.
7563 * doc/gccint.texi: Add reference to Plugins chapter.
7564 * doc/invoke.texi: Document -fplugin and -fplugin-arg
7565 * diagnostic.c (diagnostic_report_diagnostic): Warn about
7566 loaded plugins, if any.
7567 * timevar.def (TV_PLUGIN_INIT): Define.
7568 (TV_PLUGIN_RUN): Define.
7569 * plugin.c: Include timevar.h
7570 (plugins_active_p): New.
7571 (dump_active_plugins): New.
7572 (debug_active_plugins): New.
7573
50617257
JM
75742009-04-14 Joseph Myers <joseph@codesourcery.com>
7575
7576 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
7577 library paths.
7578 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
7579
b32f6fff
KH
75802009-04-14 Kazu Hirata <kazu@codesourcery.com>
7581
7582 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
7583 the same as a minus without a shift.
7584
85d04fa2
NC
75852009-04-14 Nick Clifton <nickc@redhat.com>
7586
7587 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
7588 comparisons with small integers will always produce a short
7589 branch.
7590
e495a0c8
RAE
75912009-04-14 Rafael Avila de Espindola <espindola@google.com>
7592
7593 Merge:
e495a0c8
RAE
7594 2008-12-19 Diego Novillo <dnovillo@google.com>
7595
532bfb0a 7596 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 7597
ad41bd84 75982009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
7599
7600 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
7601 verification.
7602 (verify_gimple_assign_binary): Likewise. Handle shifts and
7603 rotates correctly.
7604 (verify_gimple_phi): Print the mismatched argument position.
7605 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
7606 Fix types.
7607 (vect_update_init_of_dr): Likewise.
7608 * matrix-reorg.c (transform_access_sites): Do what the
7609 comment suggests.
7610 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
7611
60839f5d 76122009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
7613
7614 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
7615 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
7616 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 7617 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
7618 remove duplicate config
7619
b0e2d008
DR
76202009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
7621
7622 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
7623 file_name:line_number type locator of the call site.
2ba9daa7 7624
1244a8b7
VM
76252009-04-13 Vladimir Makarov <vmakarov@redhat.com>
7626
7627 * genautomata.c: Put blank after comma.
7628 (automaton_decls): New.
7629 (struct unit_usage): Add comments to member next.
7630 (store_alt_unit_usage): Keep the list ordered.
7631 (unit_present_on_list_p, equal_alternatives_p): New.
7632 (check_regexp_units_distribution): Check units distribution
7633 correctness correctly.
7634 (main): Don't write automata if error is found. Return correct
7635 exit code.
2ba9daa7 7636
1244a8b7
VM
7637 * config/m68k/cf.md (cfv4_ds): Remove.
7638 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
7639 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
7640
7641 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
7642 power4-load-ext, power4-store, power4-store-update,
7643 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
7644 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
7645 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
7646 power4-sqrt, power4-isync): Modify reservation to make correct
7647 unit distribution to automata.
7648
7649 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
7650 power5-store-update, power5-two, power5-three, power5-lmul,
7651 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 7652
f7dd1864
AN
76532009-04-13 Adam Nemet <anemet@caviumnetworks.com>
7654
7655 * except.c (pass_set_nothrow_function_flags): Set name and add
7656 TODO_dump_func.
7657 (set_nothrow_function_flags): Mention in the dump file when
7658 changing a function to nothrow.
7659
59a1171f
OS
76602009-04-13 Ozkan Sezer <sezeroz@gmail.com>
7661
7662 PR/39066
7663 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
7664 instead of unsigned long.
7665
934c2060
RR
76662009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7667
f7dd1864
AN
7668 * config/arm/arm.c (return_used_this_function): Remove.
7669 (arm_output_function_prologue): Remove use of
934c2060 7670 return_used_this_function.
f7dd1864 7671 (output_return_instruction): Replace use of
934c2060
RR
7672 return_used_this_function
7673 by cfun->machine->return_used_this_function.
f7dd1864
AN
7674 (arm_output_epilogue): Likewise.
7675 (arm_output_function_epilogue): Likewise.
7676 (thumb_unexpanded_epilogue): Likewise.
7677 * config/arm/arm.h (struct machine_function):
934c2060 7678 New member return_used_this_function.
f7dd1864 7679
ae5cc016
MM
76802009-04-12 Mark Mitchell <mark@codesourcery.com>
7681
7682 * doc/install.texi: Correct description of default directory for
7683 --with-gxx-include-dir.
7684
a0ce68df 76852009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
7686
7687 * fold-const.c (build_range_check): Properly deal with enumeral and
7688 boolean base types.
7689
3906a4a1
SB
76902009-04-12 Steven Bosscher <steven@gcc.gnu.org>
7691
7692 * doc/invoke.texi (max_gcse_passes): Remove documentation.
7693 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
7694 * params.h (MAX_GCSE_PASSES): Remove.
7695 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
7696 in sequence. Remove ability to run multiple passes.
7697 (bypass_jumps): Report run as third CPROP pass.
7698
efaadb93
AN
76992009-04-12 Adam Nemet <anemet@caviumnetworks.com>
7700
7701 PR middle-end/39651
7702 * except.c (can_throw_external): Look at each insn in a SEQUENCE
7703 when deciding whether the whole SEQUENCE can throw.
7704
4c48007b
UB
77052009-04-12 Uros Bizjak <ubizjak@gmail.com>
7706
7707 PR target/39740
7708 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
7709 offseted label references.
7710
b4104018
JH
77112009-04-11 Jan Hubicka <jh@suse.cz>
7712
7713 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
7714
32848948
RG
77152009-04-11 Richard Guenther <rguenther@suse.de>
7716
7717 PR middle-end/39732
7718 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
7719 return variables as TREE_ADDRESSABLE.
7720
8810712e
RG
77212009-04-11 Richard Guenther <rguenther@suse.de>
7722
7723 PR tree-optimization/39713
7724 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
7725 reference trees have SSA_NAME operands.
7726
fa78c0c1
RG
77272009-04-11 Richard Guenther <rguenther@suse.de>
7728
7729 PR c/39712
7730 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
7731 address expressions.
7732
4d722130
DK
77332009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
7734
7735 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
7736 match changes in Cygwin 1.7
7737 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
7738 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
7739
567a90f5
PB
77402009-04-10 Paolo Bonzini <bonzini@gnu.org>
7741
7742 PR tree-optimization/39701
7743 * doc/invoke.texi (Optimization Options): Document change in
7744 meaning and initialization of -fdelete-null-pointer-checks.
7745
1ad2f450
L
77462009-04-10 H.J. Lu <hongjiu.lu@intel.com>
7747
7748 PR middle-end/39701
7749 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
7750
7751 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
7752 here.
7753
7754 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
7755
1afc5373
CF
77562009-04-10 Chao-ying Fu <fu@mips.com>
7757
7758 * doc/tm.texi (Instruction Output): Document
7759 TARGET_ASM_FINAL_POSTSCAN_INSN.
7760 * target.h (final_postscan_insn): New field in asm_out.
7761 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
7762 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
7763 * final.c (final_scan_insn): Call
7764 targetm.asm_out.final_postscan_insn after outputting
7765 an asm macro and a normal instruction.
7766
7767 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
7768 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
7769 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
7770 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
7771 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
7772
4d35e75c
PB
77732009-04-10 Paolo Bonzini <bonzini@gnu.org>
7774
7775 PR middle-end/39701
1ad2f450
L
7776 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
7777 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 7778
62c49b83
L
77792009-04-10 H.J. Lu <hongjiu.lu@intel.com>
7780
7781 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
7782
80558628
L
77832009-04-09 H.J. Lu <hongjiu.lu@intel.com>
7784
7785 PR target/39678
7786 * config/i386/i386.c (classify_argument): Handle SCmode with
7787 (bit_offset % 64) != 0.
7788
8c70d28b
SL
77892009-04-09 Sandra Loosemore <sandra@codesourcery.com>
7790
7791 * doc/invoke.texi (Optimize Options): Add cross-reference to
7792 -Q --help=optimizers examples.
7793
e1ff19bf
BE
77942009-04-10 Ben Elliston <bje@au.ibm.com>
7795
7796 PR target/36800
7797 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
7798 regalign for the reg == fpr and TDmode case.
7799
52daca75
DA
78002009-04-09 David Ayers <ayers@fsfe.org>
7801
7802 PR objc/29200
7803 * objc/objc-act.c (warn_with_method): Remove helper function.
7804 (check_duplicates): Call warning and inform directly.
7805 (really_start_method): Likewise.
7806
b45f0e58
PB
78072009-04-09 Paolo Bonzini <bonzini@gnu.org>
7808
7809 * expmed.c (expand_divmod): Always use a comparison for a division
7810 by a large unsigned integer.
7811
1ad2f450
L
7812 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
7813 for things others than variables or functions as nonzero.
b45f0e58 7814
748086b7
JJ
78152009-04-09 Nick Clifton <nickc@redhat.com>
7816
7817 * unwind-compat.c: Change copyright header to refer to version
7818 3 of the GNU General Public License with version 3.1 of the
7819 GCC Runtime Library Exception and to point readers at the
7a715bba 7820 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
7821 * config/alpha/crtfastmath.c: Likewise.
7822 * config/alpha/linux-unwind.h: Likewise.
7823 * config/alpha/qrnnd.asm: Likewise.
7824 * config/alpha/vms-crt0-64.c: Likewise.
7825 * config/alpha/vms-crt0.c: Likewise.
7826 * config/alpha/vms-dwarf2.asm: Likewise.
7827 * config/alpha/vms-dwarf2eh.asm: Likewise.
7828 * config/alpha/vms-psxcrt0-64.c: Likewise.
7829 * config/alpha/vms-psxcrt0.c: Likewise.
7830 * config/alpha/vms_tramp.asm: Likewise.
7831 * config/arc/initfini.c: Likewise.
7832 * config/arc/lib1funcs.asm: Likewise.
7833 * config/arm/bpabi-v6m.S: Likewise.
7834 * config/arm/bpabi.S: Likewise.
7835 * config/arm/bpabi.c: Likewise.
7836 * config/arm/crti.asm: Likewise.
7837 * config/arm/crtn.asm: Likewise.
7838 * config/arm/ieee754-df.S: Likewise.
7839 * config/arm/ieee754-sf.S: Likewise.
7840 * config/arm/lib1funcs.asm: Likewise.
7841 * config/arm/libunwind.S: Likewise.
7842 * config/arm/linux-atomic.c: Likewise.
7843 * config/arm/mmintrin.h: Likewise.
7844 * config/arm/pr-support.c: Likewise.
7845 * config/arm/unaligned-funcs.c: Likewise.
7846 * config/arm/unwind-arm.c: Likewise.
7847 * config/arm/unwind-arm.h: Likewise.
7848 * config/avr/libgcc.S: Likewise.
7849 * config/bfin/crti.s: Likewise.
7850 * config/bfin/crtlibid.s: Likewise.
7851 * config/bfin/crtn.s: Likewise.
7852 * config/bfin/lib1funcs.asm: Likewise.
7853 * config/bfin/linux-unwind.h: Likewise.
7854 * config/cris/arit.c: Likewise.
7855 * config/cris/cris_abi_symbol.c: Likewise.
7856 * config/darwin-64.c: Likewise.
7857 * config/darwin-crt2.c: Likewise.
7858 * config/darwin-crt3.c: Likewise.
7859 * config/darwin.h: Likewise.
7860 * config/dbxelf.h: Likewise.
7861 * config/dfp-bit.c: Likewise.
7862 * config/dfp-bit.h: Likewise.
7863 * config/elfos.h: Likewise.
7864 * config/fixed-bit.c: Likewise.
7865 * config/fixed-bit.h: Likewise.
7866 * config/fp-bit.c: Likewise.
7867 * config/fp-bit.h: Likewise.
7868 * config/fr30/crti.asm: Likewise.
7869 * config/fr30/crtn.asm: Likewise.
7870 * config/fr30/lib1funcs.asm: Likewise.
7871 * config/freebsd-spec.h: Likewise.
7872 * config/frv/cmovd.c: Likewise.
7873 * config/frv/cmovh.c: Likewise.
7874 * config/frv/cmovw.c: Likewise.
7875 * config/frv/frvbegin.c: Likewise.
7876 * config/frv/frvend.c: Likewise.
7877 * config/frv/lib1funcs.asm: Likewise.
7878 * config/glibc-stdint.h: Likewise.
7879 * config/h8300/clzhi2.c: Likewise.
7880 * config/h8300/crti.asm: Likewise.
7881 * config/h8300/crtn.asm: Likewise.
7882 * config/h8300/ctzhi2.c: Likewise.
7883 * config/h8300/fixunssfsi.c: Likewise.
7884 * config/h8300/lib1funcs.asm: Likewise.
7885 * config/h8300/parityhi2.c: Likewise.
7886 * config/h8300/popcounthi2.c: Likewise.
7887 * config/i386/ammintrin.h: Likewise.
7888 * config/i386/att.h: Likewise.
7889 * config/i386/avxintrin.h: Likewise.
7890 * config/i386/biarch64.h: Likewise.
7891 * config/i386/bmmintrin.h: Likewise.
7892 * config/i386/cpuid.h: Likewise.
7893 * config/i386/cross-stdarg.h: Likewise.
7894 * config/i386/crtfastmath.c: Likewise.
7895 * config/i386/crtprec.c: Likewise.
7896 * config/i386/cygming-crtbegin.c: Likewise.
7897 * config/i386/cygming-crtend.c: Likewise.
7898 * config/i386/cygwin.asm: Likewise.
7899 * config/i386/emmintrin.h: Likewise.
7900 * config/i386/gmm_malloc.h: Likewise.
7901 * config/i386/gthr-win32.c: Likewise.
7902 * config/i386/i386.h: Likewise.
7903 * config/i386/immintrin.h: Likewise.
7904 * config/i386/linux-unwind.h: Likewise.
7905 * config/i386/linux64.h: Likewise.
7906 * config/i386/mm3dnow.h: Likewise.
7907 * config/i386/mmintrin-common.h: Likewise.
7908 * config/i386/mmintrin.h: Likewise.
7909 * config/i386/nmmintrin.h: Likewise.
7910 * config/i386/pmm_malloc.h: Likewise.
7911 * config/i386/pmmintrin.h: Likewise.
7912 * config/i386/smmintrin.h: Likewise.
7913 * config/i386/sol2-c1.asm: Likewise.
7914 * config/i386/sol2-ci.asm: Likewise.
7915 * config/i386/sol2-cn.asm: Likewise.
7916 * config/i386/sol2-gc1.asm: Likewise.
7917 * config/i386/tmmintrin.h: Likewise.
7918 * config/i386/unix.h: Likewise.
7919 * config/i386/w32-unwind.h: Likewise.
7920 * config/i386/wmmintrin.h: Likewise.
7921 * config/i386/x86-64.h: Likewise.
7922 * config/i386/x86intrin.h: Likewise.
7923 * config/i386/xmmintrin.h: Likewise.
7924 * config/ia64/crtbegin.asm: Likewise.
7925 * config/ia64/crtend.asm: Likewise.
7926 * config/ia64/crtfastmath.c: Likewise.
7927 * config/ia64/crti.asm: Likewise.
7928 * config/ia64/crtn.asm: Likewise.
7929 * config/ia64/fde-glibc.c: Likewise.
7930 * config/ia64/lib1funcs.asm: Likewise.
7931 * config/ia64/linux-unwind.h: Likewise.
7932 * config/ia64/quadlib.c: Likewise.
7933 * config/ia64/unwind-ia64.c: Likewise.
7934 * config/linux.h: Likewise.
7935 * config/m32c/m32c-lib1.S: Likewise.
7936 * config/m32c/m32c-lib2-trapv.c: Likewise.
7937 * config/m32c/m32c-lib2.c: Likewise.
7938 * config/m32r/initfini.c: Likewise.
7939 * config/m68hc11/larith.asm: Likewise.
7940 * config/m68hc11/m68hc11-crt0.S: Likewise.
7941 * config/m68k/cf.md: Likewise.
7942 * config/m68k/crti.s: Likewise.
7943 * config/m68k/crtn.s: Likewise.
7944 * config/m68k/lb1sf68.asm: Likewise.
7945 * config/m68k/linux-unwind.h: Likewise.
7946 * config/mcore/crti.asm: Likewise.
7947 * config/mcore/crtn.asm: Likewise.
7948 * config/mcore/lib1.asm: Likewise.
7949 * config/mips/linux-unwind.h: Likewise.
7950 * config/mips/loongson.h: Likewise.
7951 * config/mips/mips16.S: Likewise.
7952 * config/mmix/crti.asm: Likewise.
7953 * config/mmix/crtn.asm: Likewise.
7954 * config/pa/fptr.c: Likewise.
7955 * config/pa/hpux-unwind.h: Likewise.
7956 * config/pa/lib2funcs.asm: Likewise.
7957 * config/pa/linux-atomic.c: Likewise.
7958 * config/pa/linux-unwind.h: Likewise.
7959 * config/pa/milli64.S: Likewise.
7960 * config/pa/quadlib.c: Likewise.
7961 * config/pa/stublib.c: Likewise.
7962 * config/picochip/libgccExtras/adddi3.asm: Likewise.
7963 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
7964 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
7965 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
7966 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
7967 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
7968 * config/picochip/libgccExtras/divmod15.asm: Likewise.
7969 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
7970 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
7971 * config/picochip/libgccExtras/longjmp.asm: Likewise.
7972 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
7973 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
7974 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
7975 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
7976 * config/picochip/libgccExtras/setjmp.asm: Likewise.
7977 * config/picochip/libgccExtras/subdi3.asm: Likewise.
7978 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
7979 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
7980 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
7981 * config/rs6000/750cl.h: Likewise.
7982 * config/rs6000/altivec.h: Likewise.
7983 * config/rs6000/biarch64.h: Likewise.
7984 * config/rs6000/crtresfpr.asm: Likewise.
7985 * config/rs6000/crtresgpr.asm: Likewise.
7986 * config/rs6000/crtresxfpr.asm: Likewise.
7987 * config/rs6000/crtresxgpr.asm: Likewise.
7988 * config/rs6000/crtsavfpr.asm: Likewise.
7989 * config/rs6000/crtsavgpr.asm: Likewise.
7990 * config/rs6000/darwin-asm.h: Likewise.
7991 * config/rs6000/darwin-fallback.c: Likewise.
7992 * config/rs6000/darwin-fpsave.asm: Likewise.
7993 * config/rs6000/darwin-ldouble.c: Likewise.
7994 * config/rs6000/darwin-tramp.asm: Likewise.
7995 * config/rs6000/darwin-unwind.h: Likewise.
7996 * config/rs6000/darwin-vecsave.asm: Likewise.
7997 * config/rs6000/darwin-world.asm: Likewise.
7998 * config/rs6000/e500crtres32gpr.asm: Likewise.
7999 * config/rs6000/e500crtres64gpr.asm: Likewise.
8000 * config/rs6000/e500crtres64gprctr.asm: Likewise.
8001 * config/rs6000/e500crtrest32gpr.asm: Likewise.
8002 * config/rs6000/e500crtrest64gpr.asm: Likewise.
8003 * config/rs6000/e500crtresx32gpr.asm: Likewise.
8004 * config/rs6000/e500crtresx64gpr.asm: Likewise.
8005 * config/rs6000/e500crtsav32gpr.asm: Likewise.
8006 * config/rs6000/e500crtsav64gpr.asm: Likewise.
8007 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
8008 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
8009 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
8010 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
8011 * config/rs6000/eabi-ci.asm: Likewise.
8012 * config/rs6000/eabi-cn.asm: Likewise.
8013 * config/rs6000/eabi.asm: Likewise.
8014 * config/rs6000/linux-unwind.h: Likewise.
8015 * config/rs6000/linux64.h: Likewise.
8016 * config/rs6000/paired.h: Likewise.
8017 * config/rs6000/paired.md: Likewise.
8018 * config/rs6000/ppc64-fp.c: Likewise.
8019 * config/rs6000/ppu_intrinsics.h: Likewise.
8020 * config/rs6000/rs6000.h: Likewise.
8021 * config/rs6000/si2vmx.h: Likewise.
8022 * config/rs6000/sol-ci.asm: Likewise.
8023 * config/rs6000/sol-cn.asm: Likewise.
8024 * config/rs6000/spe.h: Likewise.
8025 * config/rs6000/spu2vmx.h: Likewise.
8026 * config/rs6000/sysv4.h: Likewise.
8027 * config/rs6000/tramp.asm: Likewise.
8028 * config/rs6000/vec_types.h: Likewise.
8029 * config/s390/linux-unwind.h: Likewise.
8030 * config/s390/tpf-unwind.h: Likewise.
8031 * config/score/crti.asm: Likewise.
8032 * config/score/crtn.asm: Likewise.
8033 * config/sh/crt1.asm: Likewise.
8034 * config/sh/crti.asm: Likewise.
8035 * config/sh/crtn.asm: Likewise.
8036 * config/sh/divtab-sh4-300.c: Likewise.
8037 * config/sh/divtab-sh4.c: Likewise.
8038 * config/sh/divtab.c: Likewise.
8039 * config/sh/lib1funcs-4-300.asm: Likewise.
8040 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
8041 * config/sh/lib1funcs.asm: Likewise.
8042 * config/sh/lib1funcs.h: Likewise.
8043 * config/sh/linux-atomic.asm: Likewise.
8044 * config/sh/linux-unwind.h: Likewise.
8045 * config/sh/shmedia.h: Likewise.
8046 * config/sh/sshmedia.h: Likewise.
8047 * config/sh/ushmedia.h: Likewise.
8048 * config/sparc/crtfastmath.c: Likewise.
8049 * config/sparc/linux-unwind.h: Likewise.
8050 * config/sparc/sol2-c1.asm: Likewise.
8051 * config/sparc/sol2-ci.asm: Likewise.
8052 * config/sparc/sol2-cn.asm: Likewise.
8053 * config/spu/divmodti4.c: Likewise.
8054 * config/spu/divv2df3.c: Likewise.
8055 * config/spu/float_disf.c: Likewise.
8056 * config/spu/float_unsdidf.c: Likewise.
8057 * config/spu/float_unsdisf.c: Likewise.
8058 * config/spu/float_unssidf.c: Likewise.
8059 * config/spu/mfc_multi_tag_release.c: Likewise.
8060 * config/spu/mfc_multi_tag_reserve.c: Likewise.
8061 * config/spu/mfc_tag_release.c: Likewise.
8062 * config/spu/mfc_tag_reserve.c: Likewise.
8063 * config/spu/mfc_tag_table.c: Likewise.
8064 * config/spu/multi3.c: Likewise.
8065 * config/spu/spu_internals.h: Likewise.
8066 * config/spu/spu_intrinsics.h: Likewise.
8067 * config/spu/spu_mfcio.h: Likewise.
8068 * config/spu/vec_types.h: Likewise.
8069 * config/spu/vmx2spu.h: Likewise.
8070 * config/stormy16/stormy16-lib2.c: Likewise.
8071 * config/svr4.h: Likewise.
8072 * config/sync.c: Likewise.
8073 * config/v850/lib1funcs.asm: Likewise.
8074 * config/vxlib-tls.c: Likewise.
8075 * config/vxlib.c: Likewise.
8076 * config/vxworks-dummy.h: Likewise.
8077 * config/xtensa/crti.asm: Likewise.
8078 * config/xtensa/crtn.asm: Likewise.
8079 * config/xtensa/ieee754-df.S: Likewise.
8080 * config/xtensa/ieee754-sf.S: Likewise.
8081 * config/xtensa/lib1funcs.asm: Likewise.
8082 * config/xtensa/lib2funcs.S: Likewise.
8083 * config/xtensa/linux-unwind.h: Likewise.
8084 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
8085 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
8086 * coretypes.h: Likewise.
8087 * crtstuff.c: Likewise.
8088 * defaults.h: Likewise.
8089 * dwarf2.h: Likewise.
8090 * emutls.c: Likewise.
8091 * gbl-ctors.h: Likewise.
8092 * gcov-io.h: Likewise.
8093 * ginclude/float.h: Likewise.
8094 * ginclude/iso646.h: Likewise.
8095 * ginclude/stdarg.h: Likewise.
8096 * ginclude/stdbool.h: Likewise.
8097 * ginclude/stddef.h: Likewise.
8098 * ginclude/stdfix.h: Likewise.
8099 * ginclude/stdint-gcc.h: Likewise.
8100 * ginclude/tgmath.h: Likewise.
8101 * gthr-aix.h: Likewise.
8102 * gthr-dce.h: Likewise.
8103 * gthr-gnat.c: Likewise.
8104 * gthr-gnat.h: Likewise.
8105 * gthr-lynx.h: Likewise.
8106 * gthr-mipssde.h: Likewise.
8107 * gthr-nks.h: Likewise.
8108 * gthr-posix.c: Likewise.
8109 * gthr-posix.h: Likewise.
8110 * gthr-posix95.h: Likewise.
8111 * gthr-rtems.h: Likewise.
8112 * gthr-single.h: Likewise.
8113 * gthr-solaris.h: Likewise.
8114 * gthr-tpf.h: Likewise.
8115 * gthr-vxworks.h: Likewise.
8116 * gthr-win32.h: Likewise.
8117 * gthr.h: Likewise.
8118 * libgcc2.c: Likewise.
8119 * libgcc2.h: Likewise.
8120 * libgcov.c: Likewise.
8121 * tsystem.h: Likewise.
8122 * typeclass.h: Likewise.
8123 * unwind-c.c: Likewise.
8124 * unwind-compat.h: Likewise.
8125 * unwind-dw2-fde-compat.c: Likewise.
8126 * unwind-dw2-fde-darwin.c: Likewise.
8127 * unwind-dw2-fde-glibc.c: Likewise.
8128 * unwind-dw2-fde.c: Likewise.
8129 * unwind-dw2-fde.h: Likewise.
8130 * unwind-dw2.c: Likewise.
8131 * unwind-dw2.h: Likewise.
8132 * unwind-generic.h: Likewise.
8133 * unwind-pe.h: Likewise.
8134 * unwind-sjlj.c: Likewise.
8135 * unwind.inc: Likewise.
8136 * config/arm/neon-gen.ml: Change generated copyright header to
8137 refer to version 3 of the GNU General Public License with
8138 version 3.1 of the GCC Runtime Library Exception and to point
8139 readers at the COPYING3 and COPYING3.RUNTIME files and the
8140 FSF's license web page.
8141 * config/arm/arm_neon.h: Regenerate.
8142
81432009-04-09 Jakub Jelinek <jakub@redhat.com>
8144
8145 * config/cris/cris.md: Change copyright header to refer to version
8146 3 of the GNU General Public License.
8147 * doc/install.texi2html: Change copyright header to refer to version
8148 3 of the GNU General Public License and to point readers at the
8149 COPYING3 file and the FSF's license web page.
8150 * config/vax/linux.h: Likewise.
8151
4a77c72b
PB
81522009-04-09 Paolo Bonzini <bonzini@gnu.org>
8153
1ad2f450
L
8154 * config/i386/i386.md (cmpcc): New.
8155 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
8156 (sync_compare_and_swap_cc*): Delete.
8157
8158 * config/s390/s390.c (s390_compare_emitted): Remove.
8159 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
8160 s390_compare_emitted used to be handled. Assert that modes match.
8161 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
8162 refer to sync_compare_and_swap_ccsi.
8163 * config/s390/s390.h (s390_compare_emitted): Remove.
8164 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
8165 instead of s390_compare_emitted.
8166 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
8167 instead of s390_compare_emitted.
8168 * config/s390/s390.md (cmpcc): New.
8169 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
8170 CC_REGNUM, do not pretend it's set.
8171 (sync_compare_and_swap_cc*): Delete.
8172 * config/s390/predicates.md (cc_reg_operand): New.
8173
8174 * expr.c (sync_compare_and_swap_cc): Delete.
8175 * optabs.h (sync_compare_and_swap_cc): Delete.
8176 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
8177 is being used with can_compare_p.
8178 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
8179 (find_cc_set): New.
8180 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
8181 look for a MODE_CC set instead. Use emit_store_flag.
8182 (expand_compare_and_swap_loop): Likewise, with some additional
8183 complication to avoid a force_reg when useless. Use
8184 emit_cmp_and_jump_insns.
8185 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
8186 * doc/md.texi (sync_compare_and_swap_cc): Merge with
8187 sync_compare_and_swap documentation.
4a77c72b 8188
0c0efb33
JH
81892009-04-09 Jan Hubicka <jh@suse.cz>
8190
8191 * except.c (find_prev_try): Break out from ....
8192 (duplicate_eh_regions): ... here; properly update prev_try pointers
8193 when duplication part of tree.
8194 (dump_eh_tree): Improve dumping.
8195 (verify_eh_region): New.
8196 (verify_eh_tree): Use it.
8197
22a65a54
RG
81982009-04-06 Richard Guenther <rguenther@suse.de>
8199
8200 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
8201 &ARRAY addresses by adjusting their types and prepending
8202 a conversion.
8203 * tree-cfg.c (verify_gimple_assign_single): Verify that
8204 addresses are correct.
8205
f76968e6
RG
82062009-04-09 Richard Guenther <rguenther@suse.de>
8207
8208 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
8209 indices into an array reference if possible.
8210 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
8211 Fold POINTER_PLUS_EXPR statements with invariant address.
8212
c90c5fb5
AM
82132009-04-09 Alan Modra <amodra@bigpond.net.au>
8214
8215 PR target/39634
8216 * config.gcc (powerpc64-*-linux*): Always build biarch.
8217
17cede2e
JM
82182009-04-09 Joseph Myers <joseph@codesourcery.com>
8219
8220 PR c/39613
8221 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
8222 it and pedwarn if this results in an INTEGER_CST.
8223
a3337ea2
KG
82242009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8225
8226 * doc/install.texi: Update minimum GMP version. Remove obsolete
8227 text in MPFR section.
8228
ce9ba79b
JJ
82292009-04-08 Jakub Jelinek <jakub@redhat.com>
8230
8231 * dwarf2out.c (class_scope_p): New static inline.
8232 (class_or_namespace_scope_p): Use it.
8233 (gen_variable_die): Use DW_TAG_member tag for static data member
8234 declarations instead of DW_TAG_variable.
8235
4f0ae266
JJ
8236 PR middle-end/39573
8237 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
8238 variables.
8239
d27f0ddc
RG
82402009-04-08 Richard Guenther <rguenther@suse.de>
8241
8242 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
8243 valueize random data.
8244
557cc596
DE
82452009-04-08 David Edelsohn <edelsohn@gnu.org>
8246
8247 * config.gcc (aix tm_file): Add aix-stdint.h.
8248 (aix tm clause use_gcc_stdint): Set to wrap.
8249 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 8250
75ccc1e7
RG
82512009-04-08 Richard Guenther <rguenther@suse.de>
8252
8253 PR middle-end/36291
8254 * tree-dfa.c (add_referenced_var): Do not recurse into
8255 global initializers.
8256 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
8257 exposed variables.
8258 (fold_const_aggregate_ref): Likewise.
8259
c6963675
PB
82602009-04-08 Paolo Bonzini <bonzini@gnu.org>
8261
6c44cf79
L
8262 * recog.c (ordered_comparison_operator): New.
8263 * gensupport.c (std_preds): Add it.
c6963675
PB
8264 * doc/md.texi (Machine-Independent Predicates): Document it.
8265
6d07ad98
JH
82662009-04-08 Jan Hubicka <jh@suse.cz>
8267
8268 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
8269 * function.h (rtl_eh): Remove exception_handler_label_map.
8270 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
8271 remove_exception_handler_label, for_each_eh_label_1): Remove.
8272 (rtl_remove_unreachable_regions): Remove.
8273 (convert_from_eh_region_ranges): Do not remove unreachable regions.
8274 (find_exception_handler_labels): Don't build the hashtable.
8275 (maybe_remove_eh_handler): Remove.
8276 (for_each_eh_label): Rewrite to walk the tree.
8277 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
8278 * except.h (maybe_remove_eh_handler): Remove.
8279 * passes.c (init_optimization_passes): Schedule second EH cleanup
8280 before out-of-ssa.
8281 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
8282 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
8283
7ddf71e3
PB
82842009-04-08 Paolo Bonzini <bonzini@gnu.org>
8285
8286 * genoutput.c (validate_optab_operands): New.
8287 (gen_insn, gen_expand): Call it.
8288
8289 * genflags.c (gen_insn): Detect misused iterators.
8290 (main): Pass line_no to gen_insn, exit with status 1 on error.
8291
8292 * genextract.c (line_no): Make global.
8293 (VEC_safe_set_locstr): Change assertion to error message.
8294 (main): Exit with status 1 on error.
8295
4d84fe7c
JM
82962009-04-08 Joseph Myers <joseph@codesourcery.com>
8297
8298 PR c/39614
8299 PR c/39673
8300 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
8301 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
8302 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
8303 * c-convert.c (convert): Do not call fold on results of conversion
8304 functions when the result is a C_MAYBE_CONST_EXPR.
8305 * c-parser.c (c_parser_postfix_expression): Do not fold condition
8306 of __builtin_choose_expr.
8307 * c-typeck.c (remove_c_maybe_const_expr): New.
8308 (build_unary_op, build_conditional_expr, build_compound_expr,
8309 build_binary_op, c_objc_common_truthvalue_conversion): Call
8310 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
8311 integer operands.
8312
60839f5d 83132009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 8314
2ba9daa7 8315 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 8316 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 8317
8e481a2c
DS
83182009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
8319
8320 PR bootstrap/39660
8321 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
8322 mix declarations and code.
8323
ee618c17
BE
83242009-04-08 Ben Elliston <bje@au.ibm.com>
8325
8326 * gcc.c: Replace `CC' with `GCC' throughout.
8327
f2a758a2
L
83282009-04-07 H.J. Lu <hongjiu.lu@intel.com>
8329
8330 * doc/invoke.texi: Document Atom support.
8331
6ea2bd47
JM
83322009-04-07 Jason Merrill <jason@redhat.com>
8333
8334 PR c++/25185
8335 * c-common.h, c-common.c: Add flag_pretty_templates.
8336 * c-opts.c (c_common_handle_option): Set it.
8337 * c.opt: Add -fno-pretty-templates.
8338 * doc/invoke.texi (C++ Dialect Options): Likewise.
8339
fcb82ab0
UB
83402009-04-07 Uros Bizjak <ubizjak@gmail.com>
8341
8342 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
8343 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
8344 (ia64_expand_builtin): Likewise.
8345
dc5e7298
MJ
83462009-04-07 Martin Jambor <mjambor@suse.cz>
8347
8348 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
8349 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
8350 ADDR_EXPRS are include too.
8351
0609b355
RG
83522009-04-07 Richard Guenther <rguenther@suse.de>
8353
8354 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
8355 decls are only used if passes as parameters or if they are
8356 local statics and the call is not to a builtin.
8357 (call_may_clobber_ref_p_1): Likewise.
8358
d8e535fa
PB
83592009-04-07 Paolo Bonzini <bonzini@gnu.org>
8360
8361 * expr.c (do_store_flag): Remove last argument. Simplify code
8362 to avoid duplication of tests already done by can_compare_p.
8363 (expand_expr_real_1): Adjust caller.
8364
c3c64f50
PB
83652009-04-07 Paolo Bonzini <bonzini@gnu.org>
8366
fcb82ab0
UB
8367 * optabs.c (can_compare_p): Test the predicate of a
8368 cbranch and cstore pattern.
c3c64f50 8369
9a53bc17
PB
83702009-04-07 Paolo Bonzini <bonzini@gnu.org>
8371
fcb82ab0
UB
8372 * expr.c (convert_move): Use emit_store_flag instead of
8373 "emulating" it.
9a53bc17 8374
67b8f1c1
PB
83752009-04-07 Paolo Bonzini <bonzini@gnu.org>
8376
fcb82ab0
UB
8377 * config/i386/i386.c (ix86_compare_emitted): Remove.
8378 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
8379 ix86_compare_op0 like ix86_compare_emitted used to be handled.
8380 * config/i386/i386.h (ix86_compare_emitted): Remove.
8381 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
8382 instead of ix86_compare_emitted.
8383 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 8384
44509946
AS
83852009-04-07 Andrew Stubbs <ams@codesourcery.com>
8386
8387 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
8388 Add t-sysroot-suffix to tmake_file.
8389 * config/print-sysroot-suffix.sh: New file.
8390 * config/t-sysroot-suffix: New file.
8391
ca22d882
BE
83922009-04-07 Ben Elliston <bje@au.ibm.com>
8393
8394 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
8395 as the latter produces a warning when the target does not support
8396 infinity.
8397
95aac11b
BE
83982009-04-07 Ben Elliston <bje@au.ibm.com>
8399
8400 * dfp.c: Replace type punning assignments with memcpy throughout.
8401 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 8402
633dd061
AM
84032009-04-07 Alan Modra <amodra@bigpond.net.au>
8404
8405 PR target/39634
8406 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
8407 Include soft-fp/t-softfp after rs6000/t-linux64.
8408
fe0a25ec
EB
84092009-04-06 Eric Botcazou <ebotcazou@adacore.com>
8410
8411 * stor-layout.c (set_sizetype): Use the full precision of their
8412 machine mode for bitsize types.
8413
0c011bc3
L
84142009-04-06 H.J. Lu <hongjiu.lu@intel.com>
8415
8416 * config/i386/i386.md: Revert 2 accidental checkins.
8417
b6837b94 84182009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 8419 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
8420 H.J. Lu <hongjiu.lu@intel.com>
8421
8422 Atom pipeline model, tuning and insn selection.
8423 * config.gcc (atom): Add atom config options and target.
8424
8425 * config/i386/atom.md: New.
8426
8427 * config/i386/i386.c (atom_cost): New cost.
8428 (m_ATOM): New macro flag.
8429 (initial_ix86_tune_features): Set m_ATOM.
8430 (x86_accumulate_outgoing_args): Likewise.
8431 (x86_arch_always_fancy_math_387): Likewise.
8432 (processor_target): Add Atom cost.
8433 (cpu_names): Add Atom cpu name.
8434 (override_options): Set Atom ISA.
8435 (ix86_issue_rate): New case PROCESSOR_ATOM.
8436 (ix86_adjust_cost): Likewise.
8437
8438 * config/i386/i386.h (TARGET_ATOM): New target macro.
8439 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
8440 (TARGET_OPT_AGU): New target option.
8441 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
8442 (processor_type): Add PROCESSOR_ATOM.
8443
8444 * config/i386/i386.md (cpu): Add new value "atom".
8445 (use_carry, movu): New attr.
8446 (atom.md): Include atom.md.
8447 (adddi3_carry_rex64): Set attr "use_carry".
8448 (addqi3_carry): Likewise.
8449 (addhi3_carry): Likewise.
8450 (addsi3_carry): Likewise.
8451 (*addsi3_carry_zext): Likewise.
8452 (subdi3_carry_rex64): Likewise.
8453 (subqi3_carry): Likewise.
8454 (subhi3_carry): Likewise.
8455 (subsi3_carry): Likewise.
8456 (x86_movdicc_0_m1_rex64): Likewise.
8457 (*x86_movdicc_0_m1_se): Likewise.
8458 (x86_movsicc_0_m1): Likewise.
8459 (*x86_movsicc_0_m1_se): Likewise.
8460 (*adddi_1_rex64): Emit add insn as much as possible.
8461 (*addsi_1): Likewise.
8462 (return_internal): Set atom_unit.
8463 (return_internal_long): Likewise.
8464 (return_pop_internal): Likewise.
8465 (*rcpsf2_sse): Set atom_sse_attr attr.
8466 (*qrt<mode>2_sse): Likewise.
8467 (*prefetch_sse): Likewise.
8468
8469 * config/i386/i386-c.c (ix86_target_macros_internal): New case
8470 PROCESSOR_ATOM.
8471 (ix86_target_macros_internal): Likewise.
8472
8473 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
8474 (*prefetch_sse_rex): Likewise.
8475 (sse_rcpv4sf2): Likewise.
8476 (sse_vmrcpv4sf2): Likewise.
8477 (sse_sqrtv4sf2): Likewise.
8478 (<sse>_vmsqrt<mode>2): Likewise.
8479 (sse_ldmxcsr): Likewise.
8480 (sse_stmxcsr): Likewise.
8481 (*sse_sfence): Likewise.
8482 (sse2_clflush): Likewise.
8483 (*sse2_mfence): Likewise.
8484 (*sse2_lfence): Likewise.
8485 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
8486 (<sse>_movup<ssemodesuffixf2c>): Likewise.
8487 (avx_movdqu<avxmodesuffix>): Likewise.
8488 (avx_lddqu<avxmodesuffix>): Likewise.
8489 (sse2_movntv2di): Change attr "type" to "ssemov".
8490 (sse2_movntsi): Likewise.
8491 (rsqrtv8sf2): Change attr "type" to "sseadd".
8492 (sse3_addsubv2df3): Set attr "atom_unit".
8493 (sse3_h<plusminus_insn>v4sf3): Likewise.
8494 (*sse2_pmaddwd): Likewise.
8495 (*vec_extractv2di_1_rex64): Likewise.
8496 (*vec_extractv2di_1_avx): Likewise.
8497 (sse2_psadbw): Likewise.
8498 (ssse3_phaddwv8hi3): Likewise.
8499 (ssse3_phaddwv4hi3): Likewise.
8500 (ssse3_phadddv4si3): Likewise.
8501 (ssse3_phadddv2si3): Likewise.
8502 (ssse3_phaddswv8hi3): Likewise.
8503 (ssse3_phaddswv4hi3): Likewise.
8504 (ssse3_phsubwv8hi3): Likewise.
8505 (ssse3_phsubwv4hi3): Likewise.
8506 (ssse3_phsubdv4si3): Likewise.
8507 (ssse3_phsubdv2si3): Likewise.
8508 (ssse3_phsubswv8hi3): Likewise.
8509 (ssse3_phsubswv4hi3): Likewise.
8510 (ssse3_pmaddubsw128): Likewise.
8511 (sse3_pmaddubsw: Likewise.
8512 (ssse3_palignrti): Likewise.
8513 (ssse3_palignrdi): Likewise.
8514
53e350d3
GP
85152009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
8516
8517 * doc/install.texi (Specific): Fix two cross-references to MinGW.
8518
439ef907
RG
85192009-04-06 Richard Guenther <rguenther@suse.de>
8520
8521 PR tree-optimization/28868
8522 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
8523 of which PHI results we inserted.
8524 (insert_into_preds_of_block): Record inserted PHIs.
8525 (eliminate): Eliminate redundant PHI nodes.
8526 (init_pre): Init inserted_phi_names.
8527
4bad83f5
RG
85282009-04-06 Richard Guenther <rguenther@suse.de>
8529
8530 PR tree-optimization/39643
8531 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
8532 IMAGPART_EXPRs of complex constants.
8533 (execute_fold_all_builtins): If we folded a call queue
8534 TODO_update_address_taken.
8535
570c4247
JH
85362009-04-06 Jan Hubicka <jh@suse.cz>
8537
8538 PR middle-end/39659
8539 * except.c (remove_unreachable_regions): Propagate may_contain_throw
8540 flag.
8541
a460d7a1
AS
85422009-04-06 Andrew Stubbs <ams@codesourcery.com>
8543
8544 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
8545 delay slot.
8546 (ic_invalidate_array): Likewise.
8547
60839f5d 85482009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
8549
8550 * calls.c (emit_library_call_value_1): Fix a problem with parameter
8551 alignment for library calls.
8552
7d253f6e
DS
85532009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
8554
8555 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
8556 (mingw32 tm clause use_gcc_stdint): Set to wrap.
8557 * config/i386/mingw-stdint.h: New file.
8558
941c3614
RB
85592009-04-05 Richard Guenther <rguenther@suse.de>
8560
8561 PR tree-optimization/39648
8562 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
8563 our &A vs. &A[0] IL deficiencies.
8564
12633413
JH
85652009-04-04 Jan Hubicka <jh@suse.cz>
8566
941c3614
RB
8567 * except.c (sjlj_find_directly_reachable_regions): Be ready for
8568 removed toplevel regions.
12633413
JH
8569 (sjlj_mark_call_sites): Likewise.
8570
bb2aaded
DK
85712009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
8572
8573 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
8574 (cygwin tm clause use_gcc_stdint): Set to wrap.
8575 * config/i386/cygwin-stdint.h: New file.
8576
86290011
RG
85772009-04-04 Richard Guenther <rguenther@suse.de>
8578
8579 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
8580 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
8581 single-argument PHIs if we are in loop-closed SSA form.
8582 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
8583 for the pre-condition.
8584 (slpeel_tree_peel_loop_to_edge): Likewise.
8585 (vect_build_loop_niters): Take an optional sequence to append stmts.
8586 (vect_generate_tmps_on_preheader): Likewise.
8587 (vect_do_peeling_for_loop_bound): Take extra guards for the
8588 pre-condition.
8589 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
8590 the cost model check.
8591 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 8592 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
8593 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
8594 (vect_do_peeling_for_loop_bound): Likewise.
8595 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
8596 loop bound only record extra pre-conditions, do not apply loop
8597 versioning.
8598
5eeeac64
RG
85992009-04-04 Richard Guenther <rguenther@suse.de>
8600
8601 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
8602 renaming code.
8603
1ff7d06b
JH
86042009-04-04 Jan Hubicka <jh@suse.cz>
8605
8606 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
8607 last_basic_block for size of bb->index indexed array.
8608 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
8609 compute_out, link_btr_uses, build_btr_def_use_webs,
8610 build_btr_def_use_webs, migrate_btr_defs): Likewise.
8611
14925fcd
JH
86122009-04-04 Jan Hubicka <jh@suse.cz>
8613
8614 * except.c (remove_eh_handler_and_replace): Break out from ...
8615 (remove_eh_handler): ... here.
8616 (bring_to_root): New function.
8617 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
8618 handled ones, bring others to root of tree.
8619
4e6d1743
JH
86202009-04-04 Jan Hubicka <jh@suse.cz>
8621
4cb735f7
JH
8622 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
8623 (all_phis_safe_to_merge): New function.
8624 (update_info): New structure.
8625 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
8626 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 8627
c6803d43
RG
86282009-04-04 Richard Guenther <rguenther@suse.de>
8629
8630 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
8631 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
8632 (append_vuse): Likewise.
8633
54f5943c
JJ
86342009-04-04 Jakub Jelinek <jakub@redhat.com>
8635
8636 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
8637 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
8638 instead of REG_UNSAVED for DW_CFA_undefined.
8639 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
8640 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
8641 outermost frame.
8642
aad2bccb
RE
86432009-04-04 Richard Earnshaw <rearnsha@arm.com>
8644
8645 PR target/39501
8646 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
8647 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
8648 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
8649
aa7069aa
RG
86502009-04-04 Richard Guenther <rguenther@suse.de>
8651
8652 PR tree-optimization/8781
8653 PR tree-optimization/37892
8654 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
8655 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
8656 (valueize_refs): Call it for *& valueizations.
8657 (shared_reference_ops_from_ref): Rename to ...
8658 (valueize_shared_reference_ops_from_ref): ... this and valueize.
8659 (shared_reference_ops_from_call): Rename to ...
8660 (valueize_shared_reference_ops_from_call): ... this and valueize.
8661 (vn_reference_lookup): Update.
8662 (visit_reference_op_call): Likewise.
8663 * tree-ssa-pre.c (phi_translate_1): Fold *&.
8664 (eliminate): Value-replace the call address in call statements.
8665
cd15ad3e
RG
86662009-04-04 Richard Guenther <rguenther@suse.de>
8667
8668 PR tree-optimization/39636
8669 * tree-ssa-forwprop.c
8670 (forward_propagate_addr_into_variable_array_index): Check for
8671 GIMPLE_ASSIGN before accessing the rhs code.
8672
462f3262
JM
86732009-04-03 Jason Merrill <jason@redhat.com>
8674
8675 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
8676
6adb807e
SE
86772009-04-03 Steve Ellcey <sje@cup.hp.com>
8678
8679 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
8680 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
8681 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
8682 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
8683 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
8684 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
8685 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
8686 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
8687 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
8688 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
8689 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
8690 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
8691 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
8692 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
8693 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
8694 Use fr_reg_or_fp01_operand instead of fr_register_operand
8695
8696 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
8697 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
8698 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
8699
174b3107
VM
87002009-04-03 Vladimir Makarov <vmakarov@redhat.com>
8701
b844e5d8
L
8702 PR rtl-optimization/39607
8703 PR rtl-optimization/39631
7a715bba
UB
8704
8705 Revert:
2ba9daa7 8706
174b3107
VM
8707 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
8708 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
8709 instead of DF_LR_OUT.
8710 * ira-lives.c (process_bb_node_lives): Ditto.
8711 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
8712 instead of DF_LR_{OUT,IN}.
8713 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
8714 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
8715
535b544a
SB
87162009-04-03 Steven Bosscher <steven@gcc.gnu.org>
8717
8718 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
8719 (execute_lower_omp): Always run but take the short way out if -fopenmp
8720 is not given.
8721 (gate_lower_omp): Remove, forcing the pass manager to always run the
8722 pass and always set PROP_gimple_lomp.
8723 (pass_lower_omp): Remove gate function.
8724 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
8725 PROP_trees. Instead, require it.
8726 * ipa-cp.c (pass_ipa_cp): Likewise.
8727 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
8728 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
8729 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
8730 and PROP_gimple_leh.
8731
5006671f
RG
87322009-04-03 Richard Guenther <rguenther@suse.de>
8733
8734 PR middle-end/13146
8735 PR tree-optimization/23940
8736 PR tree-optimization/33237
8737 PR middle-end/33974
8738 PR middle-end/34093
8739 PR tree-optimization/36201
8740 PR tree-optimization/36230
8741 PR tree-optimization/38049
8742 PR tree-optimization/38207
8743 PR tree-optimization/38230
8744 PR tree-optimization/38301
8745 PR tree-optimization/38585
8746 PR middle-end/38895
8747 PR tree-optimization/38985
8748 PR tree-optimization/39299
8749 * tree-ssa-structalias.h: Remove.
8750 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
8751 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
8752 (struct vuse_element_d): Remove.
8753 (struct vuse_vec_d): Likewise.
8754 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
8755 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
8756 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
8757 VUSE_ELEMENT_VAR): Likewise.
8758 (struct voptype_d): Likewise.
8759 (NUM_VOP_FREE_BUCKETS): Likewise.
8760 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
8761 (struct stmt_operands_d): Remove.
8762 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
8763 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
8764 VDEF_NUM, VDEF_VECT): Likewise.
8765 (copy_virtual_operands): Remove.
8766 (operand_build_cmp): Likewise.
8767 (create_ssa_artificial_load_stmt): Likewise.
8768 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
8769 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
8770 vuse_index and mayuse_index members. Pack and move done and iter_type
8771 members to the front.
8772 (SSA_OP_VMAYUSE): Remove.
8773 (SSA_OP_VIRTUAL_USES): Adjust.
8774 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
8775 (unlink_stmt_vdef): Declare.
8776 (add_to_addressable_set): Remove.
8777 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
8778 (vrp_visit_stmt): Likewise.
8779 * doc/tree-ssa.texi (Alias analysis): Update.
8780 * doc/invoke.texi (max-aliased-vops): Remove docs.
8781 (avg-aliased-vops): Likewise.
8782 * tree-into-ssa.c (syms_to_rename): Remove.
8783 (need_to_update_vops_p): Likewise.
8784 (need_to_initialize_update_ssa_p): Rename to ...
8785 (update_ssa_initialized_fn): ... this. Track function we are
8786 initialized for.
8787 (symbol_marked_for_renaming): Simplify.
8788 (add_new_name_mapping): Do not set need_to_update_vops_p.
8789 (dump_currdefs): Use SYMS_TO_RENAME.
8790 (rewrite_update_stmt): Always walk all uses/defs.
8791 (dump_update_ssa): Adjust.
8792 (init_update_ssa): Take function argument. Track what we are
8793 initialized for.
8794 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
8795 (create_new_def_for): Initialize for cfun, assert we are initialized
8796 for cfun.
8797 (mark_sym_for_renaming): Simplify.
8798 (mark_set_for_renaming): Do not initialize update-ssa.
8799 (need_ssa_update_p): Simplify. Take function argument.
8800 (name_mappings_registered_p): Assert we ask for the correct function.
8801 (name_registered_for_update_p): Likewise.
8802 (ssa_names_to_replace): Likewise.
8803 (release_ssa_name_after_update_ssa): Likewise.
8804 (update_ssa): Likewise. Use SYMS_TO_RENAME.
8805 (dump_decl_set): Do not print a newline.
8806 (debug_decl_set): Do it here.
8807 (dump_update_ssa): And here.
8808 * tree-ssa-loop-im.c (move_computations): Adjust.
8809 (movement_possibility): Likewise.
8810 (determine_max_movement): Likewise.
8811 (gather_mem_refs_stmt): Likewise.
8812 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
8813 or NAME_MEMORY_TAG.
8814 * tree-complex.c (update_all_vops): Remove.
8815 (expand_complex_move): Adjust.
8816 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
8817 Simplify test for memory referencing statement. Exclude
8818 non-invariant ADDR_EXPRs.
8819 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
8820 * tree-loop-distribution.c (generate_memset_zero): Adjust.
8821 (rdg_flag_uses): Likewise.
8822 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
8823 related code.
8824 (tree_optimize_tail_calls_1): Also split the
8825 edge from the entry block if we have degenerate PHI nodes in
8826 the first basic block.
8827 * tree.c (init_ttree): Remove memory-tag related code.
8828 (tree_code_size): Likewise.
8829 (tree_node_structure): Likewise.
8830 (build7_stat): Re-write to be build6_stat.
8831 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
8832 (SSA_VAR_P): Adjust.
8833 (struct tree_memory_tag): Remove.
8834 (struct tree_memory_partition_tag): Likewise.
8835 (union tree_node): Adjust.
8836 (build7): Re-write to be build6.
8837 * tree-pass.h (pass_reset_cc_flags): Remove.
8838 (TODO_update_address_taken): New flag.
8839 (pass_simple_dse): Remove.
8840 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
8841 * params.h (MAX_ALIASED_VOPS): Remove.
8842 (AVG_ALIASED_VOPS): Likewise.
8843 * omp-low.c (expand_omp_taskreg): Update SSA form.
8844 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
8845 aliases the lhs in a copy stmt.
8846 * tree-ssa-dse.c (struct address_walk_data): Remove.
8847 (memory_ssa_name_same): Likewise.
8848 (memory_address_same): Likewise.
8849 (get_kill_of_stmt_lhs): Likewise.
8850 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
8851 unused stores. Look through PHI nodes into post-dominated regions.
8852 (dse_optimize_stmt): Simplify. Properly remove stores.
8853 (tree_ssa_dse): Compute dominators.
8854 (execute_simple_dse): Remove.
8855 (pass_simple_dse): Likewise.
8856 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
8857 gimple_loaded_syms and gimple_stored_syms computation.
8858 * toplev.c (dump_memory_report): Dump alias and pta stats.
8859 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
8860 (vn_reference_eq): Likewise.
8861 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
8862 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
8863 valueize_vuses): Remove.
8864 (get_def_ref_stmt_vuses): Simplify. Rename to ...
8865 (get_def_ref_stmt_vuse): ... this.
8866 (vn_reference_lookup_2): New function.
8867 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
8868 walking equivalent vuses. Simplify.
8869 (vn_reference_lookup): Likewise.
8870 (vn_reference_insert): Likewise.
8871 (vn_reference_insert_pieces): Likewise.
8872 (visit_reference_op_call): Simplify.
8873 (visit_reference_op_load): Likewise.
8874 (visit_reference_op_store): Likewise.
8875 (init_scc_vn): Remove shared_lookup_vuses initialization.
8876 (free_scc_vn): Remove shared_lookup_vuses freeing.
8877 (sort_vuses, sort_vuses_heap): Remove.
8878 (get_ref_from_reference_ops): Export.
8879 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
8880 vector with single vuse pointer.
8881 (vn_reference_lookup_pieces, vn_reference_lookup,
8882 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
8883 (shared_vuses_from_stmt): Remove.
8884 (get_ref_from_reference_ops): Declare.
8885 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
8886 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
8887 memory-tag related code.
8888 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
8889 (likely_value): Add comment, skip static-chain of call statements.
8890 (surely_varying_stmt_p): Adjust.
8891 (gimplify_and_update_call_from_tree): Likewise.
8892 (execute_fold_all_builtins): Do not rebuild alias info.
8893 (gimplify_and_update_call_from_tree): Properly update VOPs.
8894 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
8895 (copy_ref_info): Remove memory-tag related code.
8896 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
8897 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
8898 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
8899 computation.
8900 * tree-ssa-dom.c (gimple_p): Remove typedef.
8901 (eliminate_redundant_computations): Adjust.
8902 (record_equivalences_from_stmt): Likewise.
8903 (avail_expr_hash): Likewise.
8904 (avail_expr_eq): Likewise.
7a715bba 8905 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
8906 (stmt_makes_single_load): Likewise.
8907 (stmt_makes_single_store): Likewise.
8908 * tree-ssa-alias.c: Rewrite completely.
8909 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
8910 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
8911 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
8912 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
8913 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
8914 Remove public functions.
8915 (pass_reset_cc_flags): Remove.
8916 (pass_build_alias): Move ...
8917 * tree-ssa-structalias.c (pass_build_alias): ... here.
8918 * tree-ssa-alias.c (may_be_aliased): Move ...
8919 * tree-flow-inline.h (may_be_aliased): ... here.
8920 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
8921 count_uses_and_derefs): Move ...
8922 * gimple.c: ... here.
8923 * gimple.h (count_uses_and_derefs): Declare.
8924 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
8925 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
8926 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
8927 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
8928 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
8929 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
8930 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
8931 New functions.
8932 * tree-dfa.c (refs_may_alias_p): Move ...
8933 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
8934 * tree-ssa-alias.h: New file.
8935 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
8936 (statement_sink_location): Likewise.
8937 * opts.c (decode_options): Do not adjust max-aliased-vops or
8938 avg-aliased-vops values.
8939 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
8940 (TV_CALL_CLOBBER): Likewise.
8941 (TV_FLOW_SENSITIVE): Likewise.
8942 (TV_FLOW_INSENSITIVE): Likewise.
8943 (TV_MEMORY_PARTITIONING): Likewise.
8944 (TV_ALIAS_STMT_WALK): New timevar.
8945 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
8946 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
8947 (get_address_description): Remove memory-tag related code.
8948 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
8949 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
8950 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
8951 and immediate uses in statements. Document.
8952 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
8953 (dump_symbols): Remove.
8954 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
8955 * alias.c (get_deref_alias_set): New function split out from ...
8956 (get_alias_set): ... here.
8957 * alias.h (get_deref_alias_set): Declare.
8958 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
8959 type parameter. Remove restrict pointer handling. Create a
8960 ref-all pointer in case type-based alias sets do not conflict.
8961 (vect_analyze_data_refs): Remove SMT related code.
8962 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
8963 (vectorizable_load): Likewise.
8964 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
8965 (DR_SYMBOL_TAG, DR_VOPS): Remove.
8966 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
8967 Ignore vops and SMTs.
8968 (dr_analyze_alias): Likewise..
8969 (free_data_ref): Likewise.
8970 (create_data_ref): Likewise.
8971 (analyze_all_data_dependences): Likewise.
8972 (get_references_in_stmt): Adjust.
8973 * tree-flow-inline.h (gimple_aliases_computed_p,
8974 gimple_addressable_vars, gimple_call_clobbered_vars,
8975 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
8976 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
8977 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
8978 gimple_mem_ref_stats): Remove.
8979 (gimple_vop): New function.
8980 (op_iter_next_use): Remove vuses and mayuses cases.
8981 (op_iter_next_def): Remove vdefs case.
8982 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
8983 (clear_and_done_ssa_iter): Do not set removed fields.
8984 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
8985 Assert we are not iterating over vuses or vdefs if not also
8986 iterating over uses or defs.
8987 (op_iter_init_use): Likewise.
8988 (op_iter_init_def): Likewise.
8989 (op_iter_next_vdef): Remove.
8990 (op_iter_next_mustdef): Likewise.
8991 (op_iter_init_vdef): Likewise.
8992 (compare_ssa_operands_equal): Likewise.
8993 (link_use_stmts_after): Handle vuse operand.
8994 (is_call_used): Use is_call_clobbered.
8995 (is_call_clobbered): Global variables are always call clobbered,
8996 query the call-clobbers bitmap.
8997 (mark_call_clobbered): Ignore global variables.
8998 (clear_call_clobbered): Likewise.
8999 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
9000 virtual operands sanity check.
9001 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
9002 Remove.
9003 (TARGET_MEM_REF): Remove TMR_TAG operand.
9004 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
9005 Remove call-clobber related code.
9006 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
9007 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
9008 partitions or escape reason.
9009 (get_single_def_stmt, get_single_def_stmt_from_phi,
9010 get_single_def_stmt_with_phi): Remove.
9011 (dump_referenced_vars): Tidy.
9012 (get_ref_base_and_extent): Allow bare decls.
9013 (collect_dfa_stats): Adjust.
9014 * graphite.c (rename_variables_in_stmt): Adjust.
9015 (graphite_copy_stmts_from_block): Likewise.
9016 (translate_clast): Likewise.
9017 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
9018 (EXPR_DIES): New.
9019 (translate_vuse_through_block): Use the oracle.
9020 (phi_translate_1): Adjust.
9021 (value_dies_in_block_x): Use the oracle. Cache the outcome
9022 in EXPR_DIES.
9023 (valid_in_sets): Check if the VUSE for
9024 a REFERENCE is available.
9025 (eliminate): Do not remove stmts during elimination,
9026 instead queue and remove them afterwards.
9027 (do_pre): Do not rebuild alias info.
9028 (pass_pre): Run TODO_rebuild_alias before PRE.
9029 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
9030 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
9031 (mark_all_v_defs_stmt): Remove.
9032 (mark_all_v_defs_seq): Adjust.
9033 (sra_replace): Likewise.
9034 (scalarize_use): Likewise.
9035 (scalarize_copy): Likewise.
9036 (scalarize_init): Likewise.
9037 (scalarize_ldst): Likewise.
9038 (todoflags): Remove.
9039 (tree_sra): Do not rebuild alias info.
9040 (tree_sra_early): Adjust.
9041 (pass_sra): Run TODO_update_address_taken before SRA.
9042 * tree-predcom.c (set_alias_info): Remove.
9043 (prepare_initializers_chain): Do not call it.
9044 (mark_virtual_ops_for_renaming): Adjust.
9045 (mark_virtual_ops_for_renaming_list): Remove.
9046 (initialize_root_vars): Adjust.
9047 (initialize_root_vars_lm): Likewise.
9048 (prepare_initializers_chain): Likewise.
9049 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
9050 (may_propagate_copy_into_stmt): Likewise.
9051 (merge_alias_info): Do nothing for now.
9052 (propagate_tree_value_into_stmt): Adjust.
9053 (stmt_may_generate_copy): Likewise.
9054 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
9055 not mark symbols for renaming.
9056 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
9057 with the same statement, make sure to update the new pointed-to one.
9058 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
9059 call statements, do not mark symbols for renaming.
9060 (mark_operand_necessary): Dump something.
9061 (ref_may_be_aliased): New function.
9062 (mark_aliased_reaching_defs_necessary_1): New helper function.
9063 (mark_aliased_reaching_defs_necessary): Likewise.
9064 (mark_all_reaching_defs_necessary_1): Likewise.
9065 (mark_all_reaching_defs_necessary): Likewise.
9066 (propagate_necessity): Do not process virtual PHIs. For
9067 non-aliased loads mark all reaching definitions as necessary.
9068 For aliased loads and stores mark the immediate dominating
9069 aliased clobbers as necessary.
9070 (visited): New global static.
9071 (perform_tree_ssa_dce): Free visited bitmap after propagating
9072 necessity.
9073 (remove_dead_phis): Perform simple dead virtual PHI removal.
9074 (remove_dead_stmt): Properly unlink virtual operands when
9075 removing stores.
9076 (eliminate_unnecessary_stmts): Schedule PHI removal after
9077 stmt removal.
9078 * tree-ssa-ter.c (is_replaceable_p): Adjust.
9079 (process_replaceable): Likewise.
9080 (find_replaceable_in_bb): Likewise.
9081 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
9082 based on the single gimple vop.
9083 (verify_flow_insensitive_alias_info): Remove.
9084 (verify_flow_sensitive_alias_info): Likewise.
9085 (verify_call_clobbering): Likewise.
9086 (verify_memory_partitions): Likewise.
9087 (verify_alias_info): Likewise.
9088 (verify_ssa): Adjust..
9089 (execute_update_addresses_taken): Export. Update SSA
9090 manually. Optimize only when optimizing. Use a local bitmap.
9091 (pass_update_address_taken): Remove TODO_update_ssa, add
9092 TODO_dump_func.
9093 (pass_update_address_taken): Just use TODO_update_address_taken.
9094 (init_tree_ssa): Do not initialize addressable_vars.
9095 (verify_ssa): Verify new VUSE / VDEF properties.
9096 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
9097 Do not call verify_alias_info.
9098 (delete_tree_ssa): Clear the VUSE, VDEF operands.
9099 Do not free the loaded and stored syms bitmaps. Reset the escaped
9100 and callused solutions. Do not free addressable_vars.
9101 Remove memory-tag related code.
9102 (warn_uninitialized_var): Aliases are always available.
9103 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
9104 * lambda-code.c (can_put_in_inner_loop): Adjust.
9105 (can_put_after_inner_loop): Likewise.
9106 (perfect_nestify): Likewise.
9107 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
9108 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
9109 (vectorizable_conversion): Do not mark symbols for renaming.
9110 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
9111 (expand_call_inline): Unlink the calls virtual operands before
9112 replacing it.
9113 (tree_function_versioning): Do not call update_ssa if we are not
9114 updating clones. Simplify.
9115 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
9116 (propagate_with_phi): Likewise..
9117 * tree-outof-ssa.c (create_temp): Remove memory tag and call
9118 clobber code. Assert we are not aliased or global.
9119 * tree-flow.h: Include tree-ssa-alias.h
9120 (enum escape_type): Remove.
9121 (struct mem_sym_stats_d): Likewise.
9122 (struct mem_ref_stats_d): Likewise.
9123 (struct gimple_df): Add vop member. Remove global_var,
9124 call_clobbered_vars, call_used_vars, addressable_vars,
9125 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
9126 escaped and callused members.
9127 (struct ptr_info_def): Remove all members, add points-to solution
9128 member pt.
9129 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
9130 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
9131 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
9132 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
9133 (tree-ssa-alias.o): Likewise.
9134 (toplev.o): Add tree-ssa-alias.h
9135 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
9136 * gimple.c (gimple_set_bb): Fix off-by-one error.
9137 (is_gimple_reg): Do not handle memory tags.
9138 (gimple_copy): Also copy virtual operands.
9139 Delay updating the statement. Do not reset loaded and stored syms.
9140 (gimple_set_stored_syms): Remove.
9141 (gimple_set_loaded_syms): Likewise.
9142 (gimple_call_copy_skip_args): Copy the virtual operands
9143 and mark the new statement modified.
9144 * tree-ssa-structalias.c (may_alias_p): Remove.
9145 (set_uids_in_ptset): Take the alias set to prune with as
9146 parameter. Fold in the alias test of may_alias_p.
9147 (compute_points_to_sets): Compute whether a ptr is dereferenced
9148 in a local sbitmap.
9149 (process_constraint): Deal with &ANYTHING on the lhs, reject all
9150 other ADDRESSOF constraints on the lhs.
9151 (get_constraint_for_component_ref): Assert that we don't get
9152 ADDRESSOF constraints from the base of the reference.
9153 Properly generate UNKNOWN_OFFSET for DEREF if needed.
9154 (struct variable_info): Remove collapsed_to member.
9155 (get_varinfo_fc): Remove.
9156 (new_var_info): Do not set collapsed_to.
9157 (dump_constraint): Do not follow cycles.
9158 (dump_constraint_graph): Likewise.
9159 (build_pred_graph): Likewise.
9160 (build_succ_graph): Likewise.
9161 (rewrite_constraints): Likewise.
9162 (do_simple_structure_copy): Remove.
9163 (do_rhs_deref_structure_copy): Remove.
9164 (do_lhs_deref_structure_copy): Remove.
9165 (collapse_rest_of_var): Remove.
9166 (do_structure_copy): Re-implement.
9167 (pta_stats): New global variable.
9168 (dump_pta_stats): New function.
9169 (struct constraint_expr): Make offset signed.
9170 (UNKNOWN_OFFSET): Define special value.
9171 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
9172 (solution_set_expand): New helper function split out from ...
9173 (do_sd_constraint): ... here.
9174 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
9175 (do_ds_constraint): Likewise.
9176 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
9177 and CALLUSED = *CALLUSED.
9178 (set_union_with_increment): Make inc argument signed.
9179 (type_safe): Remove.
9180 (get_constraint_for_ptr_offset): Handle unknown and negative
9181 constant offsets.
9182 (first_vi_for_offset): Handle offsets before start. Bail
9183 out early for offsets beyond the variable extent.
9184 (first_or_preceding_vi_for_offset): New function.
9185 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
9186 Together with ESCAPED = *ESCAPED this properly computes reachability.
9187 (find_what_var_points_to): New function.
9188 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
9189 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
9190 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
9191 pt_solutions_intersect): New functions.
9192 (compute_call_used_vars): Remove.
9193 (compute_may_aliases): New main entry into PTA computation.
9194 * gimple.h (gimple_p): New typedef.
9195 (struct gimple_statement_base): Remove references_memory_p.
9196 (struct gimple_statement_with_memory_ops_base): Remove
9197 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
9198 members.
9199 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
9200 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
9201 gimple_set_references_memory): Remove.
9202 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
9203 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
9204 New functions.
9205 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
9206 (verify_expr): Allow RESULT_DECL.
9207 (gimple_duplicate_bb): Do not copy virtual operands.
9208 (gimple_duplicate_sese_region): Adjust.
9209 (gimple_duplicate_sese_tail): Likewise.
9210 (mark_virtual_ops_in_region): Remove.
9211 (move_sese_region_to_fn): Do not call it.
9212 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
9213 and pass_simple_dse.
9214 (execute_function_todo): Handle TODO_update_address_taken,
9215 call execute_update_addresses_taken for TODO_rebuild_alias.
9216 (execute_todo): Adjust.
9217 (execute_one_pass): Init dump files early.
9218 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
9219 call-clobbered.
9220 (create_general_new_stmt): Clear vops.
9221 * tree-ssa-reassoc.c (get_rank): Adjust.
9222 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
9223 symbols for renaming.
9224 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
9225 (PARAM_AVG_ALIASED_VOPS): Likewise.
9226 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
9227 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 9228 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
9229 (operand_build_cmp, copy_virtual_operands,
9230 create_ssa_artificial_load_stmt, add_to_addressable_set,
9231 gimple_add_to_addresses_taken): Remove public functions.
9232 (unlink_stmt_vdef): New function.
9233
457d1d00
AM
92342009-04-03 Alan Modra <amodra@bigpond.net.au>
9235
9236 * config.gcc (powerpc-*-linux*): Merge variants.
9237
e19da24c 92382009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 9239 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
9240
9241 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
9242 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
9243 cop0_sp_offset.
9244 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
9245 keep_interrupts_masked_p, use_debug_exception_return_p.
9246 (mips_attribute_table): Add interrupt, use_shadow_register_set,
9247 keep_interrupts_masked, use_debug_exception_return.
9248 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
9249 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
9250 New functions.
9251 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
9252 (mips_print_operand): Process COP0 registers to print $0 .. $31
9253 correctly for GAS to process.
9254 (mips_interrupt_extra_call_saved_reg_p): New function.
9255 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
9256 extra registers.
9257 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
9258 (mips_compute_frame_info): Add supports for interrupt context that
9259 includes doubleword accumulators and COP0 registers.
9260 (mips_for_each_saved_acc): New function.
9261 (mips_for_each_saved_gpr_and_fpr): Change the function name from
9262 mips_for_each_saved_reg.
9263 (mips_save_reg): Save accumulators.
9264 (mips_kernel_reg_p): A new for_each_rtx callback.
9265 (mips_expand_prologue): Support interrupt handlers.
9266 (mips_restore_reg): Restore accumulators.
9267 (mips_expand_epilogue): Support interrupt handlers.
9268 (mips_can_use_return_insn): Return false for interrupt handlers.
9269 (mips_epilogue_uses): New function.
9270 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
9271 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
9272 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
9273 cop0_move): New instructions.
9274 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
9275 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
9276 defines.
9277 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
9278 New defines.
9279 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
9280 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
9281 interrupt handlers, we use K0 as the temporary register.
9282 (EPILOGUE_USES): Change to a function call.
9283 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
9284 handlers, we use K0 as the temporary register.
2ba9daa7 9285
e19da24c
CF
9286 * doc/extend.texi (Function Attributes): Document interrupt,
9287 use_shadow_register_set, keep_interrupts_masked,
9288 use_debug_exception_return for MIPS attributes.
9289
aa1ca044
AM
92902009-04-03 Alan Modra <amodra@bigpond.net.au>
9291
9292 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
9293 Remove a number of t-files from tmake_file.
9294 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
9295 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
9296 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
9297 target_prototype, not TARGET_PROTOTYPE.
9298 (LINK_OS_GNU_SPEC): Define.
9299 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
9300 and darwin-ldoubdle.c.
9301
14fdc613
MM
93022009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
9303
9304 PR driver/39293
9305 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
9306 (cpp_options): Ditto.
9307 (default_compilers): Ditto.
9308 (display_help): Ditto.
9309 (process_command): Ditto.
9310 (do_spec_1): Ditto.
9311 (set_input): Use lbasename instead of duplicate code.
9312 (save_temps_prefix): New static for -save-temps=obj.
9313 (save_temps_length): Ditto.
2ba9daa7 9314
14fdc613
MM
9315 * doc/invoke.texi (-save-temps=obj): Document new variant to
9316 -save-temps switch.
9317
d3aa398e
JL
93182009-04-02 Jeff Law <law@redhat.com>
9319
9320 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
9321 variable.
9322
83f0ccb8
L
93232009-04-02 H.J. Lu <hongjiu.lu@intel.com>
9324
9325 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
9326 * configure: Regenerated.
9327
dcb6e951
RAE
93282009-04-02 Rafael Avila de Espindola <espindola@google.com>
9329
9330 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
9331 share the argument list.
9332
d85478c2
RAE
93332009-04-02 Rafael Avila de Espindola <espindola@google.com>
9334
9335 Merge
9336
9337 2009-02-12 Diego Novillo <dnovillo@google.com>
9338
83f0ccb8
L
9339 * varpool.c (debug_varpool): New.
9340 * cgraph.h (debug_varpool): Declare.
d85478c2 9341
34f42a49
JH
93422009-04-02 Jan Hubicka <jh@suse.cz>
9343
9344 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
9345 pass.
9346
a4747b4a
L
93472009-04-02 H.J. Lu <hongjiu.lu@intel.com>
9348
9349 * config/i386/i386.c (ix86_abi): Move initialization to ...
9350 (override_options): Here.
9351
63a9de54
CB
93522009-04-02 Christian Bruel <christian.bruel@st.com>
9353
9354 * config/sh/sh.c (sh_dwarf_register_span): New function.
9355 (TARGET_DWARF_REGISTER_SPAN): Define.
9356 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 9357
2f0fa28e
IR
93582009-04-02 Ira Rosen <irar@il.ibm.com>
9359
9360 PR tree-optimization/39595
2ba9daa7 9361 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
9362 interleaved loads group is not greater than the SLP group size.
9363
bbf7ce11
RAE
93642009-04-02 Rafael Avila de Espindola <espindola@google.com>
9365
9366 * builtins.c (is_builtin_name): New.
9367 (called_as_built_in): Use is_builtin_name.
9368 * tree.h (is_builtin_name): New.
9369 * varasm.c (incorporeal_function_p): Use is_builtin_name
9370
47e4dfcf
AS
93712009-04-02 Andrew Stubbs <ams@codesourcery.com>
9372
9373 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
9374
d0940d56
DS
93752009-04-02 Dodji Seketeli <dodji@redhat.com>
9376
9377 PR c++/26693
532bfb0a 9378 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
9379 * c-common.c (set_underlying_type): ... here.
9380 Also, make sure the function properly sets TYPE_STUB_DECL() on
9381 the newly created typedef variant type.
9382 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
9383 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
9384 points.
d0940d56 9385
bf1cbdc6
RG
93862009-04-02 Richard Guenther <rguenther@suse.de>
9387
9388 PR tree-optimization/37221
9389 * tree-flow.h (degenerate_phi_result): Declare.
9390 * tree-ssa-dom.c (degenerate_phi_result): Export.
9391 * tree-scalar-evolution.c (analyze_initial_condition): If
9392 the initial condition is defined by a degenerate PHI node
9393 use the degenerate value.
9394
87cfb32c
EB
93952009-04-01 Eric Botcazou <ebotcazou@adacore.com>
9396
9397 PR rtl-optimization/39588
9398 * combine.c (merge_outer_ops): Do not set the constant when this
9399 is not necessary.
9400 (simplify_shift_const_1): Do not modify it either in this case.
9401
bbb6eae8
SB
94022009-04-01 Steven Bosscher <steven@gcc.gnu.org>
9403
9404 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
9405 tuning is deprecated if -mtune value is set to an Itanium1 variant.
9406
839a3b8a
JJ
94072009-04-01 Janis Johnson <janis187@us.ibm.com>
9408
9409 PR c/29027
9410 * c-lex.c (interpret_float): Default (no suffix) is double.
9411
667e8acb
XDL
94122009-04-1 Xinliang David Li <davidxl@google.com>
9413
9414 * config/i386/i386.c (legitimate_constant_p): Recognize
9415 all one vector constant.
9416
60839f5d 94172009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9418
60839f5d 9419 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
9420 Change #include order to silence two warnings.
9421
60839f5d 94222009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9423
60839f5d 9424 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
9425 (ASM_SPEC): Pass -k to the assembler for PIC code.
9426
60839f5d 94272009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9428
60839f5d
EB
9429 * config.gcc: Add vax-*-linux* to the switch.
9430 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
9431 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
9432
60839f5d 94332009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9434
60839f5d 9435 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 9436 Use predicate macros instead of GET_CODE() == foo.
60839f5d 9437 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
9438 ashlsi3, rotrsi3, <unnamed>): Likewise.
9439
60839f5d 94402009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9441
60839f5d 9442 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 9443 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d
EB
9444 * config/vax/constraints.md: Likewise.
9445 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
9446 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
9447 * config/vax/predicates.md: Likewise.
9448 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 9449 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
9450 * config/vax/vax.h: Likewise.
9451 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 9452
60839f5d 94532009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9454
60839f5d 9455 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
9456 (indirectable_address_p, adjacent_operands_p): Add spaces around
9457 braces.
60839f5d 9458 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 9459
60839f5d 94602009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9461
60839f5d 9462 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
9463 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
9464 index_term_p, reg_plus_index_p, legitimate_address_p,
9465 vax_mode_dependent_address_p): Update comments to match functions
9466 modified by the recent int->bool conversion.
9467
60839f5d 94682009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9469
60839f5d
EB
9470 * config/vax/builtins.md: Update copyright message.
9471 * config/vax/constraints.md: Likewise.
9472 * config/vax/netbsd-elf.h: Likewise.
9473 * config/vax/predicates.md: Likewise.
9474 * config/vax/vax-protos.h: Likewise.
9475 * config/vax/vax.c: Likewise.
9476 * config/vax/vax.h: Likewise.
9477 * config/vax/vax.md: Likewise.
9478 * config/vax/vax.opt: Likewise.
c4e75102 9479
60839f5d 94802009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9481
60839f5d 9482 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 9483 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
9484 * config/vax/constraints.md (B, R): Likewise.
9485 * config/vax/predicates.md (external_memory_operand,
c4e75102 9486 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
9487 * config/vax/vax.c (vax_output_int_add): Likewise.
9488 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
9489 untyped_call): Likewise.
9490
60839f5d 94912009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 9492
7a715bba
UB
9493 * config/vax/predicates.md: New file.
9494 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
9495 external_const_operand, nonsymbolic_operand, external_memory_operand,
9496 indirect_memory_operand, indexed_memory_operand,
9497 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
9498 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
9499 predicate.
7a715bba
UB
9500 * config/vax/constraints.md: New file.
9501 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
9502 New constraint.
9503 * config/vax/builtins.md: New file.
9504 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
9505 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
9506 jbbccisi): Define.
c4e75102
MT
9507 * config/vax/vax.opt (mqmath): Add option.
9508 * config/vax/vax.md (isfx): Extend with DI.
9509 (VAXintQH, VAXintQHSD): Define.
9510 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
9511 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
9512 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
9513 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
9514 (movdi): Update constraints and use vax_output_int_move().
9515 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
9516 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
9517 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
9518 nonlocal_goto): New.
9519 (mov<mode>): Extend accepted operand types.
9520 (subdi3_old): Rename from subdi3, change update constraints and use
9521 a new implementation.
60839f5d 9522 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
9523 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
9524 MOVE_RATIO, CLEAR_RATIO): Define.
9525 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
9526 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
9527 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 9528 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
9529 (split_quadword_operands): Make static and really allow variable
9530 splitting.
9531 (print_operand_address): Update for PIC generation.
9532 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
9533 indexable_address_p, fixup_mathdi_operand,
9534 vax_expand_addsub_di_operands, adjacent_operands_p): New.
9535 (vax_float_literal, legitimate_constant_p,
9536 indirectable_constant_address_p, index_term_p,
9537 reg_plus_index_p): Return bool instead of int.
9538 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
9539 where needed.
9540 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
9541 generation.
9542 (vax_output_conditional_branch): Indent.
9543 (legitimate_constant_address_p, indirectable_constant_address_p,
9544 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
9545 vax_mode_dependent_address_p): Return bool instead of int, update for
9546 PIC generation.
9547 * config/vax/vax-protos.h (legitimate_constant_address_p,
9548 legitimate_constant_p, legitimate_address_p,
9549 vax_mode_dependent_address_p): Change declaration to bool.
9550 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
9551 vax_expand_addsub_di_operands, vax_output_int_subtract,
9552 vax_output_movmemsi): Declare.
9553 (split_quadword_operands, vax_float_literal): Delete declaration.
9554 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
9555 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
9556 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
9557 ASM_OUTPUT_DWARF_PCREL): Define.
9558 (ASM_SPEC): Change definition to allow PIC generation.
9559
9332c6eb
L
95602009-04-01 Steve Ellcey <sje@cup.hp.com>
9561
9562 * doc/sourcebuild.texi: Update front-end requirements.
9563
d93e052c
JJ
95642009-04-01 Jakub Jelinek <jakub@redhat.com>
9565
9566 PR target/39226
9567 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
9568 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
9569 (booldi3_internal3): Use boolean_or_operator instead of
9570 boolean_operator.
9571
6ccb2a4a
JM
95722009-04-01 Joseph Myers <joseph@codesourcery.com>
9573
9574 PR c/39605
9575 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
9576 declarator whose size is not an integer constant expression but
9577 folds to an integer constant, then treat it as a constant
9578 subsequently.
9579
299b87f8
RG
95802009-04-01 Richard Guenther <rguenther@suse.de>
9581
9582 * fold-const.c (fold_plusminus_mult_expr): Do not fold
9583 i * 4 + 2 to (i * 2 + 1) * 2.
9584
b85eb797
JJ
95852009-04-01 Jakub Jelinek <jakub@redhat.com>
9586
9587 PR c/37772
9588 * c-parser.c (c_parser_asm_statement): Skip until close paren and
9589 return if c_parser_asm_string_literal returned NULL.
9590
235e1fe8
NC
95912009-04-01 Nick Clifton <nickc@redhat.com>
9592
9593 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
9594 already defined.
9595 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
9596 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
9597 other typedefs to avoid conflicts with libgcc2.c. Define labels
9598 to gain 16-bit bit-manipulation functions from libgcc2.c and then
9599 include it.
9600 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
9601 to gain 16-bit trapping arithmetic functions from libgcc2.c and
9602 then include it.
9603
d6868399
RAE
96042009-04-01 Rafael Avila de Espindola <espindola@google.com>
9605
7a715bba
UB
9606 * varasm.c (default_function_rodata_section): Declare DOT as
9607 const char*.
d6868399 9608
73d21f56 96092009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 9610 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
9611
9612 PR/39492
9613 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
9614 Make object_name unique for each process.
9615
03742a9b
JJ
96162009-04-01 Jakub Jelinek <jakub@redhat.com>
9617
9618 PR other/39591
9619 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
9620 addressable variables in the parallel that could go out of scope while
9621 running queued tasks.
9622
4223ff5f
AS
96232009-04-01 Anatoly Sokolov <aesok@post.ru>
9624
9625 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
9626 (CASE_VALUES_THRESHOLD): Redefine.
9627 * config/avr/avr.c (avr_override_options): Remove initialization of
9628 avr_case_values_threshold variable.
9629 (avr_case_values_threshold): Remove variable. Add new function.
9630 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
9631 * config/avr/avr.opt (mno-tablejump): Remove option.
9632 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
9633
e893f6f3
DD
96342009-04-01 DJ Delorie <dj@redhat.com>
9635
9636 * varasm.c (default_function_rodata_section): Don't assume
9637 anything about where the first '.' in the section name is.
9638
b246d100
AM
96392009-04-01 Alan Modra <amodra@bigpond.net.au>
9640
9641 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
9642 rs6000_emit_stack_tie.
9643
d3e37a9e
ILT
96442009-03-31 Ian Lance Taylor <iant@google.com>
9645
9646 * tree-eh.c (tree_remove_unreachable_handlers): Compare
9647 gimple_code with GIMPLE_RESX, not RESX.
9648
c1b61fca
JM
96492009-03-31 Joseph Myers <joseph@codesourcery.com>
9650
9651 * c-common.c (c_get_ident): New.
7a715bba 9652 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 9653
c2d2ad48
BE
96542009-04-01 Ben Elliston <bje@au.ibm.com>
9655
9656 * config/rs6000/sysv4.opt (msdata): Improve option description.
9657
13d1a6e7
SE
96582009-03-31 Steve Ellcey <sje@cup.hp.com>
9659
9660 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
9661 (divdf3_internal_lat): Remove.
9662 (divxf3_internal_lat): Remove.
9663 (divxf3_internal_thr): Remove.
9664 (divxf): Use divxf3_internal.
9665 * config/ia64/div.md (divsf3_internal_lat): New.
9666 (divdf3_internal_lat): New.
9667 (divxf3_internal): New.
9668
207bf79d
JM
96692009-03-31 Joseph Myers <joseph@codesourcery.com>
9670
9671 PR c/448
9672 * Makefile.in (USE_GCC_STDINT): Define.
9673 (stmp-int-hdrs): Install stdint.h if applicable.
9674 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
9675 if known.
9676 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
9677 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
9678 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
9679 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
9680 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
9681 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
9682 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
9683 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
9684 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
9685 (c_common_nodes_and_builtins): Initialize
9686 underlying_wchar_type_node. Do not initialize
9687 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
9688 nodes for new types.
9689 (c_stddef_cpp_builtins): Define macros for new types.
9690 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
9691 Remove.
9692 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
9693 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
9694 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
9695 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
9696 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
9697 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
9698 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
9699 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
9700 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
9701 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
9702 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
9703 int16_type_node, int32_type_node, int64_type_node,
9704 uint8_type_node, uint16_type_node, c_uint32_type_node,
9705 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
9706 int_least32_type_node, int_least64_type_node,
9707 uint_least8_type_node, uint_least16_type_node,
9708 uint_least32_type_node, uint_least64_type_node,
9709 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
9710 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
9711 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
9712 uintptr_type_node): Define.
9713 * c-cppbuiltin.c (builtin_define_constants,
9714 builtin_define_type_minmax): New.
9715 (builtin_define_stdint_macros): Define more macros.
9716 (c_cpp_builtins): Define more limit macros.
9717 (type_suffix): New.
9718 (builtin_define_type_max): Define in terms of
9719 builtin_define_type_minmax. Remove is_long parameter. All
9720 callers changed.
9721 * config.gcc (use_gcc_stdint): Define.
9722 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
9723 Add newlib-stdint.h for generic targets.
9724 * config/glibc-stdint.h, config/newlib-stdint.h,
9725 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
9726 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
9727 * config/score/score.h (UINTPTR_TYPE): Define.
9728 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
9729 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
9730 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
9731 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
9732 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
9733 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
9734 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
9735 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
9736 * config/spu/spu.h (STDINT_LONG32): Define.
9737 * configure.ac (use_gcc_stdint): Substitute.
9738 * configure: Regenerate.
9739 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
9740 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
9741 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
9742 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
9743 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
9744 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
9745 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
9746 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
9747 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
9748 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
9749 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
9750 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
9751 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
9752 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
9753 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
9754 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
9755 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
9756 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
9757 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
9758 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
9759 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
9760 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
9761 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
9762 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
9763 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
9764 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
9765 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
9766 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
9767 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
9768
ed853664
BS
97692009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
9770
9771 * loop-iv.c (suitable_set_for_replacement): Renamed from
9772 simplify_using_assignment; changed to return bool and to accept new
9773 args DEST and SRC. Return true iff we find a source/destination pair
9774 that can be used to make a replacement, and fill SRC and DEST if so.
9775 Remove arg ALTERED. Don't deal with altered regs here. All callers
9776 changed.
9777 (simplify_using_initial_values): Deal with altered regs here and track
9778 more precisely the effect they have on the validity of our expression.
9779
1569e190
BS
9780 * loop-iv.c (simplify_using_condition): A condition of the form
9781 (EQ REG CONST) can be used to simply make a substitution.
9782 (simplify_using_initial_values): Keep track of conditions we have seen
9783 and keep using them to simplify new expressions, while applying the
9784 same substitutions to them as to the expression.
9785
1d1eb80c
BS
9786 * simplify-rtx.c (simplify_relational_operation_1): Simplify
9787 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
9788 GEU/LTU reversed.
9789
28af33b0
BS
9790 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
9791 changed. Use this when trying to improve the upper bound.
9792 Generate the comparison by using simplify_gen_relational.
9793
b30321cd
BS
9794 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
9795
60081874
BS
9796 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
9797 functions.
2ba9daa7 9798 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
9799 replace_in_expr to make replacements. Call replace_single_def_regs
9800 once on the initial version of the expression.
9801
bebc6e07
RR
98022009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9803
fcb82ab0 9804 PR target/27237
bebc6e07 9805 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 9806
6b12efe9
RG
98072009-03-31 Richard Guenther <rguenther@suse.de>
9808
9809 PR middle-end/31029
9810 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
9811 equality comparisons. Fold C - X CMP X if C % 2 == 1.
9812
108f6c2f
RG
98132009-03-31 Richard Guenther <rguenther@suse.de>
9814
9815 * tree.h (div_if_zero_remainder): Declare.
9816 * fold-const.c (div_if_zero_remainder): Export.
9817 * tree-ssa-forwprop.c
9818 (forward_propagate_addr_into_variable_array_index): Handle
9819 constant array index addition outside of the variable index.
9820
8f612190
JM
98212009-03-31 Joseph Myers <joseph@codesourcery.com>
9822
9823 PR target/39592
9824 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
9825 define_splits, floatunssi<mode>2): Require x87 conversions from
9826 DImode to be permitted.
9827
47580d22
JM
98282009-03-31 Joseph Myers <joseph@codesourcery.com>
9829
9830 PR preprocessor/15638
9831 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
9832
ba4d8f9d
RG
98332009-03-31 Richard Guenther <rguenther@suse.de>
9834
9835 PR middle-end/23401
9836 PR middle-end/27810
9837 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
9838 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
9839 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
9840 a separate statement.
9841 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
9842 (lookup_tmp_var): Likewise.
9843 (is_gimple_formal_tmp_or_call_rhs): Remove.
9844 (is_gimple_reg_or_call_rhs): Rename to ...
9845 (is_gimple_reg_rhs_or_call): ... this.
9846 (is_gimple_mem_or_call_rhs): Rename to ...
9847 (is_gimple_mem_rhs_or_call): ... this.
9848 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
9849 DECL_GIMPLE_REG_P only if is_formal is true.
9850 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
9851 for non-proper post-modify expression gimplification.
9852 (gimplify_self_mod_expr): For post-modify expressions gimplify
9853 the lvalue to a minimal lvalue.
9854 (rhs_predicate_for): Remove formal temp case.
9855 (gimplify_modify_expr_rhs): Likewise.
9856 (gimplify_addr_expr): Use is_gimple_reg.
9857 (gimplify_expr): Remove formal temp cases.
9858 (gimple_regimplify_operands): Likewise.
9859 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
9860 and FILTER_EXPR like constants.
9861 * gimple.c (walk_gimple_op): Fix val_only initialization, use
9862 is_gimple_reg.
9863 (is_gimple_formal_tmp_rhs): Remove.
9864 (is_gimple_reg_rhs): Remove special casing.
9865 (is_gimple_mem_rhs): Fix.
9866 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
9867 (is_gimple_formal_tmp_var): Remove.
9868 (is_gimple_formal_tmp_reg): Likewise.
9869 (is_gimple_min_lval): Allow invariant component ref parts.
9870 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
9871 is_gimple_formal_tmp_reg): Remove declarations.
9872 * tree-cfg.c (verify_expr): Verify that variables with address
9873 taken do not have DECL_GIMPLE_REG_P set.
9874 * tree-mudflap.c (mf_build_check_statement_for): Use
9875 force_gimple_operand instead of gimplify_expr.
9876
8de9b877
AZ
98772009-03-31 Ayal Zaks <zaks@il.ibm.com>
9878
9879 * modulo-sched.c (sms_schedule_by_order): Pass the actual
9880 schedulable rows to compute_split_row.
9881
b5e3caf2
BE
98822009-03-31 Ben Elliston <bje@au.ibm.com>
9883
9884 PR target/31635
9885 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
9886 OPT_mvrsave.
9887
9752c4ad
AM
98882009-03-31 Alan Modra <amodra@bigpond.net.au>
9889
9890 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
9891 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
9892 * configure: Regenerate.
9893 * config.in: Regenerate.
9894 * config/rs6000/rs6000.opt (mtls-markers): Add.
9895 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
9896 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
9897 (tls_ld_aix, tls_ld_sysv): Likewise.
9898 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
9899 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
9900
b597d1b6
AM
99012009-03-31 Alan Modra <amodra@bigpond.net.au>
9902
9903 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
9904
a203a221
JH
99052009-03-30 Jan Hubicka <jh@suse.cz>
9906
b597d1b6
AM
9907 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
9908 out of RESX.
9909 (tree_remove_unreachable_handlers): Cleanup EH predecestor
9910 detection and label handling.
a203a221 9911
5b0c0b2c
VM
99122009-03-30 Vladimir Makarov <vmakarov@redhat.com>
9913
9914 * ira-int.h (ira_allocno): Rename left_conflicts_num to
9915 left_conflicts_size.
9916 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
9917 ALLOCNO_LEFT_CONFLICTS_SIZE.
9918
9919 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
9920 remove_allocno_from_bucket_and_push,
9921 allocno_spill_priority_compare, push_allocnos_to_stack,
9922 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
9923 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
9924 (setup_allocno_left_conflicts_num): Ditto. Rename to
9925 setup_allocno_left_conflicts_size.
9926 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
9927 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
9928 setup_allocno_left_conflicts_size instead of
9929 setup_allocno_left_conflicts_num.
9930
9931 * ira-build.c (ira_create_allocno): Use
9932 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
9933 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 9934
9a48a93f
VM
99352009-03-30 Vladimir Makarov <vmakarov@redhat.com>
9936
9937 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
9938 instead of DF_LR_OUT.
9939
9940 * ira-lives.c (process_bb_node_lives): Ditto.
9941
9942 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
9943 instead of DF_LR_{OUT,IN}.
9944
9945 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
9946
9947 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
9948
4c936d4f
JH
99492009-03-30 Jan Hubicka <jh@suse.cz>
9950
9951 * except.c (label_to_region_map): Fix thinko.
9952
f4d9f129
SE
99532009-03-30 Steve Ellcey <sje@cup.hp.com>
9954
9955 PR middle-end/38237
9956 * tree.h (tree_find_value): New declaration.
9957 * tree.c (tree_find_value): New function.
9958 * varasm.c (assemble_external): Avoid duplicate entries on lists.
9959
b3f27c15
JJ
99602009-03-30 Jakub Jelinek <jakub@redhat.com>
9961
9962 PR debug/39563
9963 * c-decl.c (struct c_binding): Add locus field.
9964 (bind): Add locus argument, set locus field from it.
9965 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
9966 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
9967 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
9968 implicitly_declare, undeclared_variable, lookup_label,
9969 declare_label, c_make_fname_decl, c_builtin_function,
9970 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
9971 bind callers.
9972
ad41bd84 99732009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
9974
9975 PR target/38781
9976 * config/i386/i386.c (classify_argument): Check total size of
9977 structure.
9978
133f9369
MJ
99792009-03-30 Martin Jambor <mjambor@suse.cz>
9980
9981 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
9982 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
9983 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
9984 respectively.
9985
9986 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
9987 seen_variable_array_ref while also traversing a union.
9988
9989 * tree-inline.c (optimize_inline_calls): Do not call
9990 cgraph_node_remove_callees.
9991 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
9992 (pass_remove_cgraph_callee_edges): New variable.
9993 * passes.c (init_optimization_passes): Add
9994 pass_remove_cgraph_callee_edges after early inlining and before all
9995 late intraprocedural passes.
9996
9997 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
9998
1190f2eb
PB
99992009-03-30 Paolo Bonzini <bonzini@gnu.org>
10000
10001 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
10002 Fix typos in names.
10003
fedc1775
PB
100042009-03-30 Paolo Bonzini <bonzini@gnu.org>
10005
fcb82ab0
UB
10006 * combine.c (simplify_comparison): Use have_insn_for.
10007 * dojump.c (do_jump): Likewise.
fedc1775 10008
65c5ae8b
PB
100092009-03-30 Paolo Bonzini <bonzini@gnu.org>
10010
10011 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
10012 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
10013 sparc_compare_op0 like sparc_compare_emitted used to be handled.
10014 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
10015 instead of sparc_compare_emitted.
10016 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
10017 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
10018 instead of sparc_compare_emitted.
10019
d25aa7ab
PB
100202009-03-30 Paolo Bonzini <bonzini@gnu.org>
10021
10022 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
10023 enter/exit cfglayout mode.
10024 (pass_partition_block): Require it.
10025 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
10026 (combine_instructions): Track basic blocks instead of labels.
10027 (update_cfg_for_uncondjump): New.
10028 (try_combine): Use it. Update jumps after rescanning.
10029 (pass_combine): Require PROP_cfglayout.
10030 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
10031
9c9e26f5
PB
100322009-03-30 Paolo Bonzini <bonzini@gnu.org>
10033
fcb82ab0
UB
10034 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
10035 Provide/destroy PROP_cfglayout respectively.
10036 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
10037 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 10038
28ddeea1
PB
100392009-03-30 Paolo Bonzini <bonzini@gnu.org>
10040
10041 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
10042 fold_convert_const_fixed_from_fixed,
10043 fold_convert_const_fixed_from_int,
10044 fold_convert_const_fixed_from_real, fold_negate_const): Do not
10045 set TREE_CONSTANT_OVERFLOW.
10046 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
10047 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
10048
ebfd146a
IR
100492009-03-30 Ira Rosen <irar@il.ibm.com>
10050
10051 * tree-vect-loop-manip.c: New file.
10052 * tree-vectorizer.c: Update documentation and included files.
10053 (vect_loop_location): Make extern.
10054 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
10055 (rename_variables_in_bb, rename_variables_in_loop,
10056 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
10057 slpeel_update_phi_nodes_for_guard1,
10058 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
10059 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
10060 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 10061 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
10062 find_loop_location): Likewise.
10063 (new_stmt_vec_info): Move to tree-vect-stmts.c.
10064 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
10065 get_vectype_for_scalar_type, vect_is_simple_use,
10066 supportable_widening_operation, supportable_narrowing_operation):
10067 Likewise.
10068 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
10069 (new_loop_vec_info, destroy_loop_vec_info,
10070 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
10071 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
10072 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
10073 (vect_supportable_dr_alignment): Likewise.
10074 * tree-vectorizer.h (tree-data-ref.h): Include.
10075 (vect_loop_location): Declare.
10076 Reorganize function declarations according to the new file structure.
10077 * tree-vect-loop.c: New file.
2ba9daa7 10078 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
10079 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
10080 * tree-vect-data-refs.c: New file.
10081 * tree-vect-patterns.c (timevar.h): Don't include.
10082 * tree-vect-stmts.c: New file.
2ba9daa7 10083 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 10084 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
10085 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
10086 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
10087 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
10088 (tree-vect-analyze.o): Remove.
10089 (tree-vect-transform.o): Likewise.
10090 (tree-vect-data-refs.o): Add rule.
2ba9daa7 10091 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
10092 tree-vect-slp.o): Likewise.
10093 (tree-vect-patterns.o): Remove redundant dependencies.
10094 (tree-vectorizer.o): Likewise.
10095 * tree-vect-slp.c: New file.
10096
40a1cfba
RW
100972009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10098
10099 * optc-gen.awk: Warn if an option flag has multiple different
10100 help strings.
10101
a9a7a9a2
SP
101022009-03-30 Sebastian Pop <sebastian.pop@amd.com>
10103
10104 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
10105 -floop-block): Document dependences on PPL, CLooG and Graphite.
10106
8ce94e44
JM
101072009-03-30 Joseph Myers <joseph@codesourcery.com>
10108
10109 PR rtl-optimization/323
10110 * c-common.c (c_fully_fold, convert_and_check,
10111 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
10112 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
10113 * c-common.def (EXCESS_PRECISION_EXPR): New.
10114 * c-cppbuiltin.c (builtin_define_float_constants): Define
10115 constants with enough digits for long double.
10116 * c-lex.c (interpret_float): Interpret constant with excess
10117 precision where appropriate.
10118 * c-opts.c (c_common_post_options): Set
10119 flag_excess_precision_cmdline. Give an error for
10120 -fexcess-precision=standard for C++ for processors where the
10121 option is significant.
10122 * c-parser.c (c_parser_conditional_expression): Handle excess
10123 precision in condition.
10124 * c-typeck.c (convert_arguments): Handle arguments with excess
10125 precision.
10126 (build_unary_op): Move excess precision outside operation.
10127 (build_conditional_expr): Likewise.
10128 (build_compound_expr): Likewise.
10129 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
10130 (build_modify_expr): Handle excess precision in RHS.
10131 (convert_for_assignment): Handle excess precision in converted
10132 value.
10133 (digest_init, output_init_element, process_init_element): Handle
10134 excess precision in initializer.
10135 (c_finish_return): Handle excess precision in return value.
10136 (build_binary_op): Handle excess precision in operands and add
10137 excess precision as needed for operation.
10138 * common.opt (-fexcess-precision=): New option.
10139 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
10140 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
10141 For standard excess precision, output explicit conversion to and
10142 truncation from XFmode.
10143 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
10144 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
10145 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
10146 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
10147 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
10148 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
10149 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
10150 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
10151 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
10152 define_splits, sqrt<mode>2): Disable where appropriate for
10153 standard excess precision.
10154 * convert.c (convert_to_real): Do not shorten arithmetic to type
10155 for which excess precision would be used.
10156 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
10157 * doc/invoke.texi (-fexcess-precision=): Document option.
10158 (-mfpmath=): Correct index entry.
10159 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
10160 flag_excess_precision): New.
10161 * langhooks.c (lhd_post_options): Set
10162 flag_excess_precision_cmdline.
10163 * opts.c (common_handle_option): Handle -fexcess-precision=.
10164 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
10165 init_excess_precision): New.
10166 (lang_dependent_init_target): Call init_excess_precision.
10167 * tree.c (excess_precision_type): New.
10168 * tree.h (excess_precision_type): Declare.
10169
1e57bf47
JM
101702009-03-30 Joseph Myers <joseph@codesourcery.com>
10171
10172 PR c/35235
10173 * c-typeck.c (build_component_ref): Do not copy qualifiers from
10174 non-lvalue to component.
10175
148e4216
JM
101762009-03-29 Joseph Myers <joseph@codesourcery.com>
10177
10178 PR preprocessor/34695
10179 * Makefile.in (c-opts.o): Depend on c-tree.h.
10180 * c-common.c: Move down include of diagnostic.h.
10181 (done_lexing, c_cpp_error): New.
10182 * c-common.h (done_lexing): Declare.
10183 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
10184 (parse_in).
10185 * c-opts.c: Include c-tree.h.
10186 (c_common_init_options): Set preprocessor error callback.
10187 (c_common_handle_option): Do not set preprocessor
10188 inhibit_warnings, warnings_are_errors, warn_system_headers,
10189 pedantic_errors or inhibit_warnings flags.
10190 (c_common_post_options): Do not check cpp_errors (parse_in).
10191 (c_common_finish): Do not output dependencies if there were
10192 errors. Do not check return value of cpp_finish.
10193 * c-ppoutput.c (pp_file_change): Set input_location.
10194 * c-tree.h (c_cpp_error): Declare.
10195 * diagnostic.c (diagnostic_set_info_translated): Also initialize
10196 override_column.
10197 (diagnostic_build_prefix): Check override_column.
10198 * diagnostic.h (diagnostic_info): Add override_column field.
10199 (diagnostic_override_column): Define.
10200
2ec5deb5
PB
102012009-03-28 Paolo Bonzini <bonzini@gnu.org>
10202
ba20e309
UB
10203 * c-common.c (c_expand_expr, c_staticp): Remove.
10204 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
10205 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
10206 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
10207 * c-gimplify.c (gimplify_compound_literal_expr,
10208 optimize_compound_literals_in_ctor): Remove.
10209 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
10210 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
10211 * c-semantics.c (emit_local_var): Remove.
10212
10213 * langhooks-def.h (lhd_expand_expr): Remove.
10214 * langhooks.c (lhd_expand_expr): Remove.
10215 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
10216
10217 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
10218 handling from c-semantics.c; don't call into langhook.
10219 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
10220 * gimplify.c (gimplify_compound_literal_expr,
10221 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
10222 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
10223 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
10224 as was done in c-gimplify.c.
10225 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
10226 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
10227 Move from c-common.h.
10228 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
10229
10230 * tree.c (staticp): Do not call langhook.
10231 * langhooks.c (lhd_staticp): Delete.
10232 * langhooks-def.h (lhd_staticp): Delete prototype.
10233 (LANG_HOOKS_STATICP): Delete.
10234 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
10235
ba20e309
UB
10236 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
10237 instead of DECL_STMTs.
2ec5deb5 10238
928c19bb
JM
102392009-03-29 Joseph Myers <joseph@codesourcery.com>
10240
10241 PR c/456
10242 PR c/5675
10243 PR c/19976
10244 PR c/29116
10245 PR c/31871
10246 PR c/35198
10247 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
10248 void_type_node.
10249 (fold_call_expr): Return a NOP_EXPR from folding rather than the
10250 contained expression.
ba20e309 10251 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
10252 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
10253 conditional expressions for C.
10254 (decl_constant_value_for_optimization): Move from
ba20e309 10255 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
10256 whether optimizing and that the expression is a VAR_DECL not of
10257 array type instead of doing such checks in the caller. Do not
10258 check pedantic. Call gcc_unreachable for C++.
10259 * c-common.def (C_MAYBE_CONST_EXPR): New.
10260 * c-common.h (c_fully_fold, c_save_expr,
10261 decl_constant_value_for_optimization): New prototypes.
10262 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
10263 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
10264 EXPR_INT_CONST_OPERANDS): Define.
10265 * c-convert.c (convert): Strip nops from expression.
10266 * c-decl.c (groktypename): Take extra parameters expr and
10267 expr_const_operands. Update call to grokdeclarator.
10268 (start_decl): Update call to grokdeclarator. Add statement for
10269 expressions used in type of decl.
10270 (grokparm): Update call to grokdeclarator.
10271 (push_parm_decl): Update call to grokdeclarator.
10272 (build_compound_literal): Add parameter non_const and build a
10273 C_MAYBE_COSNT_EXPR if applicable.
10274 (grokdeclarator): Take extra parameters expr and
10275 expr_const_operands. Track expressions used in declaration
10276 specifiers and declarators. Fold array sizes and track whether
10277 they are constant expressions and whether they are integer
10278 constant expressions.
10279 (parser_xref_tag): Set expr and expr_const_operands fields in
10280 return value.
10281 (grokfield): Update call to grokdeclarator.
10282 (start_function): Update call to grokdeclarator.
10283 (build_null_declspecs): Set expr and expr_const_operands fields in
10284 return value.
10285 (declspecs_add_type): Handle expressions in typeof specifiers.
10286 * c-parser.c (c_parser_declspecs): Set expr and
10287 expr_const_operands fields for declaration specifiers.
10288 (c_parser_enum_specifier): Likewise.
10289 (c_parser_struct_or_union_specifier): Likewise.
10290 (c_parser_typeof_specifier): Likewise. Update call to
10291 groktypename. Fold expression as needed. Return expressions with
10292 type instead of adding statements.
10293 (c_parser_attributes): Update calls to c_parser_expr_list.
10294 (c_parser_statement_after_labels): Fold expression before passing
10295 to objc_build_throw_stmt.
10296 (c_parser_condition): Fold expression.
10297 (c_parser_asm_operands): Fold expression.
10298 (c_parser_conditional_expression): Use c_save_expr. Update call
10299 to build_conditional_expr.
10300 (c_parser_alignof_expression): Update call to groktypename.
10301 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
10302 original_code. Fold expression argument of va_arg. Create
10303 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
10304 argument to va_arg. Update calls to groktypename. Fold array
10305 index for offsetof. Verify that first argument to
10306 __builtin_choose_expr has integer type.
10307 (c_parser_postfix_expression_after_paren_type): Update calls to
10308 groktypename and build_compound_literal. Handle expressions with
10309 side effects in type name.
10310 (c_parser_postfix_expression_after_primary): Update call to
10311 c_parser_expr_list. Set original_code for calls to
10312 __builtin_constant_p.
10313 (c_parser_expr_list): Take extra parameter fold_p. Fold
10314 expressions if requested.
10315 (c_parser_objc_type_name): Update call to groktypename.
10316 (c_parser_objc_synchronized_statement): Fold expression.
10317 (c_parser_objc_receiver): Fold expression.
10318 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
10319 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
10320 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
10321 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
10322 (struct c_typespec): Add elements expr and expr_const_operands.
10323 (struct c_declspecs): Add elements expr and expr_const_operands.
10324 (groktypename, build_conditional_expr, build_compound_literal):
10325 Update prototypes.
10326 (in_late_binary_op): Declare.
10327 * c-typeck.c (note_integer_operands): New function.
10328 (in_late_binary_op): New variable.
10329 (decl_constant_value_for_broken_optimization): Move to c-common.c
10330 and rename to decl_constant_value_for_optimization.
10331 (default_function_array_conversion): Do not strip nops.
10332 (default_conversion): Do not call
10333 decl_constant_value_for_broken_optimization.
10334 (build_array_ref): Do not fold result.
10335 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
10336 result when operand is a VLA.
10337 (c_expr_sizeof_type): Update call to groktypename. Handle
10338 expressions included in type name. Use C_MAYBE_CONST_EXPR for
10339 result when operand names a VLA type.
10340 (build_function_call): Update call to build_compound_literal.
10341 Only fold result for calls to __builtin_* functions. Strip
10342 NOP_EXPR from INTEGER_CST returned from such functions. Fold
10343 the function designator.
10344 (convert_arguments): Fold arguments. Update call to
10345 convert_for_assignment.
10346 (build_unary_op): Handle increment and decrement of
10347 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
10348 decrement earlier. Fold operand of increment and decrement.
10349 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
10350 built for integer operand. Wrap returns that are INTEGER_CSTs
10351 without being integer constant expressions or that have integer
10352 constant operands without being INTEGER_CSTs.
10353 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
10354 (build_conditional_expr): Add operand ifexp_bcp. Track whether
10355 result is an integer constant expression or can be used in
10356 unevaluated parts of one and avoid folding and wrap as
10357 appropriate. Fold operands before possibly doing -Wsign-compare
10358 warnings.
10359 (build_compound_expr): Wrap result for C99 if operands can be used
10360 in integer constant expressions.
10361 (build_c_cast): Update call to digest_init. Do not ignore
10362 overflow from casting floating-point constants to integers. Wrap
10363 results that could be confused with integer constant expressions,
10364 null pointer constants or floating-point constants.
10365 (c_cast_expr): Update call to groktypename. Handle expressions
10366 included in type name.
10367 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
10368 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
10369 Update calls to convert_for_assignment.
10370 (convert_for_assignment): Take new parameter
10371 null_pointer_constant. Do not strip nops or call
10372 decl_constant_value_for_broken_optimization. Set
10373 in_late_binary_op for conversions to boolean.
10374 (store_init_value): Update call to digest_init.
10375 (digest_init): Take new parameter null_pointer_constant. Do not
10376 call decl_constant_value_for_broken_optimization. pedwarn for
10377 initializers not constant expressions. Update calls to
10378 convert_for_assignment.
10379 (constructor_nonconst): New.
10380 (struct constructor_stack): Add nonconst element.
10381 (really_start_incremental_init, push_init_level, pop_init_level):
10382 Handle constructor_nonconst and nonconst element.
10383 (set_init_index): Call constant_expression_warning for array
10384 designators.
10385 (output_init_element): Fold value. Set constructor_nonconst as
10386 applicable. pedwarn for initializers not constant expressions.
10387 Update call to digest_init. Call constant_expression_warning
10388 where constant initializers are required.
10389 (process_init_element): Use c_save_expr.
10390 (c_finish_goto_ptr): Fold expression.
10391 (c_finish_return): Fold return value. Update call to
10392 convert_for_assignment.
10393 (c_start_case): Fold switch expression.
10394 (c_process_expr_stmt): Fold expression.
10395 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 10396 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
10397 (build_binary_op): Track whether results are integer constant
10398 expressions or may occur in such, disable folding and wrap results
10399 as applicable. Fold operands for -Wsign-compare warnings unless
10400 in_late_binary_op.
10401 (c_objc_common_truthvalue_conversion): Handle results folded to
10402 integer constants that are not integer constant expressions.
10403 * doc/extend.texi: Document when typeof operands are evaluated,
10404 that condition of __builtin_choose_expr is an integer constant
10405 expression, and more about use of __builtin_constant_p in
10406 initializers.
10407
5babbcc0
RG
104082009-03-29 Richard Guenther <rguenther@suse.de>
10409
10410 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
10411 propagate addresses of array references.
10412
0340f2ba
SB
104132009-03-29 Steven Bosscher <steven@gcc.gnu.org>
10414
10415 * regmove.c (perhaps_ends_bb_p): Remove.
10416 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
10417 from INSN and check that the main loop stays within that basic block.
10418 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
10419 (regmove_forward_pass): Split out from regmove_optimize. Use
10420 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
10421 (regmove_backward_pass): Split out from regmove_optimize. Use
10422 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
10423 (regmove_optimize): Simplify.
10424
eeae74a1
L
104252009-03-29 H.J. Lu <hongjiu.lu@intel.com>
10426
10427 PR target/39545
10428 * config/i386/i386.c (classify_argument): Ignore flexible array
10429 member in struct and warn ABI change.
10430
a24078b2
L
104312009-03-29 H.J. Lu <hongjiu.lu@intel.com>
10432
10433 * config/i386/i386-protos.h (ix86_agi_dependent): New.
10434
10435 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
10436 (ix86_adjust_cost): Updated.
10437
a8da523f
JH
104382009-03-29 Jan Hubicka <jh@suse.cz>
10439
10440 PR middle-end/28850
10441 * tree-pass.h (pass_cleanup_eh): New function.
10442 (remove_unreachable_regions): Break code handling RTL
10443 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
10444 that can not be reached by runtime.
10445 (can_be_reached_by_runtime): New function.
10446 (label_to_region_map): New function.
10447 (num_eh_regions): New function.
10448 (rtl_remove_unreachable_regions): New function.
10449 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
10450 (remove_eh_region): New function.
10451 * except.h: Include sbitmap and vecprim.
10452 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
10453 num_eh_regions): Declare.
10454 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 10455 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
10456 * tree-eh.c (tree_remove_unreachable_handlers): New function.
10457 (tree_empty_eh_handler_p): New function.
10458 (cleanup_empty_eh): New function.
10459 (cleanup_eh): New function.
10460 (pass_cleanup_eh): New function.
10461
98f358e5
JH
104622009-03-29 Jan Hubicka <jh@suse.cz>
10463
10464 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
10465 for removed regions.
10466
13a9fa44
JH
104672009-03-29 Jan Hubicka <jh@suse.cz>
10468
10469 * except.c (dump_eh_tree): Dump all datastructures.
10470
e38cf733
JH
104712009-03-29 Jan Hubicka <jh@suse.cz>
10472
10473 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
10474 (duplicate_eh_regions_1): Likewise.
10475 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
10476 vector; call EH verification.
10477 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
10478 Be ready for region being removed.
10479
12802c2b
JH
104802009-03-29 Jan Hubicka <jh@suse.cz>
10481
10482 * bitmap.c (bitmap_last_set_bit): New function.
10483 * bitmap.h (bitmap_last_set_bit): Declare.
10484
4ea80a41
DA
104852009-03-29 David Ayers <ayers@fsfe.org>
10486
10487 PR objc/27377
10488 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
10489 by calling objc_compare_types and surpress warnings about
10490 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 10491
4ea80a41 104922009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
10493
10494 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
10495 call initialize_inline_failed.
10496 (initialize_inline_failed): Move it from here ...
10497 * cgraph.c (initialize_inline_failed): ... to here.
10498 (cgraph_create_edge): Call initialize_inline_failed rather than
10499 setting inline_failed directly.
10500
7fb0ee07
BE
105012009-03-29 Ben Elliston <bje@au.ibm.com>
10502
10503 PR target/32542
10504 * sysv4.opt (msdata): Improve comment.
10505 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
10506 * sysv4.h (SVR4_ASM_SPEC): Likewise.
10507
0be77bf2
BE
105082009-03-29 Ben Elliston <bje@au.ibm.com>
10509
10510 PR target/30451
10511 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
10512 load and store attributes.
10513
593812b6
BE
105142009-03-29 Ben Elliston <bje@au.ibm.com>
10515
10516 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
10517 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
10518 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
10519 * doc/extend.texi (X86 Built-in Functions): Add index entries for
10520 __builtin_infq and __builtin_huge_valq.
10521
8272d11d
AS
105222009-03-28 Anatoly Sokolov <aesok@post.ru>
10523
10524 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
10525 atmega8m1 devices.
10526 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
10527 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
10528
74fe548b
XDL
105292009-03-28 Xinliang David Li <davidxl@google.com>
10530
2ba9daa7 10531 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
10532 (do_dbg_cnt): New function.
10533
33977f81
JH
105342009-03-28 Jan Hubicka <jh@suse.cz>
10535
10536 Merge from pretty-ipa:
10537
10538 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 10539
33977f81
JH
10540 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
10541 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
10542 * passes.c (function_called_by_processed_nodes_p): New.
10543 * ipa-pure-const.c (check_call): Fix handling of operands.
10544 (analyze_function): Dump debug output for skipped bodies.
10545 (local_pure_const): Use function_called_by_processed_nodes_p.
10546 * dwarf2out.c (reference_to_unused): Use output.
10547 * passes.c (do_per_function_toporder): Likewise.
10548
10549 2008-11-12 Jan Hubicka <jh@suse.cz>
10550
10551 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
10552 * ipa-pure-const.c (funct_state_d): Add can throw field; make
10553 state_set_in_source enum
10554 (check_decl): Ignore memory tags; do not set fake looping flags;
10555 dump diagnostics.
10556 (check_operand, check_tree, check_rhs_var, check_lhs_var,
10557 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
10558 (check_call, analyze_function): Rewrite.
10559 (check_stmt): New.
10560 (add_new_function): Update call of analyze_function.
10561 (generate_summary): Add call of analyze_function.
10562 (propagate): Propagate can_throw; handle state_set_in_source correctly.
10563 (local_pure_const): New function.
10564 (pass_local_pure_const): New pass.
10565 * ipa-inline.c (inline_transform): Set after_inlining.
10566 * tree-eh.c (stmt_can_throw_external): New.
10567 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
10568 work with aliasing built.
10569 * tree-flow.h (stmt_can_throw_external): New.
10570 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
10571 and local pure/const pass in early and late optimization queue.
ba20e309 10572
617f3897
MJ
105732009-03-28 Martin Jambor <mjambor@suse.cz>
10574
10575 * fold-const.c (get_pointer_modulus_and_residue): New parameter
10576 allow_func_align.
10577 (fold_binary): Allow function decl aligment consideration is the
10578 second argument is integer constant one.
10579 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
10580 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
10581 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
10582
fe89fbc5
JH
105832009-03-28 Jan Hubicka <jh@suse.cz>
10584
10585 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
10586 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
10587 * function.h (rtl_data): Add nothrow flag.
10588 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
10589 set DECL_NOTHROW for AVAILABLE functions.
10590
574872ff
JJ
105912009-03-28 Jakub Jelinek <jakub@redhat.com>
10592
b3bf8855
JJ
10593 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
10594 following vector keyword has expansion starting with pixel or bool
10595 keyword, expand vector to __vector and pixel or bool to __pixel or
10596 __bool.
10597
574872ff
JJ
10598 PR c++/39554
10599 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
10600 warn_if_disallowed_function_p): Removed.
10601 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
10602 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
10603 warning_if_disallowed_function_p.
10604 * flags.h (warn_if_disallowed_function_p,
10605 warn_disallowed_functions): Removed.
10606 * common.opt (Wdisallowed-function-list=): Removed.
10607 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
10608
b005da11
RG
106092009-03-28 Richard Guenther <rguenther@suse.de>
10610
10611 PR tree-optimization/38723
10612 * tree-ssa-pre.c (compute_avail): Add all default definitions to
10613 the entry block.
10614
1de812a6
JH
106152009-03-28 Jan Hubicka <jh@suse.cz>
10616
10617 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
10618 test introduced by my previous patch.
10619
fbb789d4
RG
106202009-03-28 Richard Guenther <rguenther@suse.de>
10621
10622 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
10623 the PHIs value undefined.
10624
6f1873a1
JH
106252009-03-28 Jan Hubicka <jh@suse.cz>
10626
10627 * tree-pass.h (pass_fixup_cfg): New pass.
10628 * ipa-inline.c (inline_transform): Set
10629 always_inline_functions_inlined/after_inlining.
10630 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
10631 (pass_fixup_cfg): New pass.
10632 * passes.c (init_optimization_passes): Add fixup_cfg.
10633
17021bc8
RG
106342009-03-28 Richard Guenther <rguenther@suse.de>
10635
10636 PR tree-optimization/38458
10637 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
10638 argument use the arguments copy-of value.
10639
e8114fba
RG
106402009-03-28 Richard Guenther <rguenther@suse.de>
10641
10642 PR tree-optimization/38180
10643 * tree-ssa-ccp.c (get_default_value): Simplify.
10644 (likely_value): Likewise.
10645 (surely_varying_stmt_p): Properly handle VOP case.
10646 (ccp_initialize): Likewise.
10647 (ccp_fold): Handle propagating through *&.
10648 (fold_const_aggregate_ref): Also handle decls.
10649
257eb6e3
JH
106502009-03-28 Jan Hubicka <jh@suse.cz>
10651
10652 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
10653 * cgraph.h (cgraph_node): Likewise.
10654 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
10655 (cgraph_reset_node): Use process flag.
10656 (cgraph_mark_functions_to_output): Likewise.
10657 (cgraph_expand_function): Likewise.
10658 (cgraph_expand_all_functions): Likewise.
10659 (cgraph_output_in_order): Likewise.
10660 * dwarf2out.c (reference_to_unused): Likewise.
10661 * passes.c do_per_function_toporder): Likewise.
10662
61a05df1
JH
106632009-03-28 Jan Hubicka <jh@suse.cz>
10664
10665 Bring from lto-branch:
ba20e309 10666
61a05df1
JH
10667 2008-09-03 Doug Kwan <dougkwan@google.com>
10668
10669 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
10670 enums instead of reason strings.
10671 * cgraph.c (cgraph_create_edge): Same.
10672 (cgraph_inline_failed_string): New function.
10673 * cgraph.h (cgraph_inline_failed_t): New enum type.
10674 (cgraph_inline_failed_string): New prototype.
10675 (struct cgraph_edge): Change type of INLINED_FAILED from constant
10676 char pointer to cgraph_inline_failed_t.
10677 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
10678 (cgraph_default_inline_p): Ditto.
60839f5d 10679 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
10680 to cgraph_inline_failed_t pointer.
10681 * cif-code.def: New file.
10682 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
10683 reason string.
10684 (cgraph_check_inline_limits): Change type of REASON to pointer to
10685 cgraph_inline_failed_t. Replace reason strings with enums.
10686 (cgraph_default_inline_p): Ditto.
10687 (cgraph_recursive_inlining_p): Ditto.
10688 (update_caller_keys): Change type of FAILED_REASON to
10689 cgraph_inline_failed_t.
10690 (cgraph_set_inline_failed): Change type of REASON to pointer to
10691 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
10692 convert enums to strings for text output.
10693 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
10694 to be of type cgraph_inline_failed_t. Replace reason strings with
10695 enums. Call cgraph_inline_failed_string to covert enums
10696 to strings for text output.
10697 (cgraph_decide_inlining): Replace reason strings with enums.
10698 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
10699 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
10700 for text output.
10701 * tree-inline.c (expand_call_inline): Change type of REASON
10702 to cgraph_inline_failed_t. Replace reason strings with enums.
10703 Call cgraph_inline_failed_string for text output.
10704 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
10705 (cgraph.o): Ditto.
10706
144e8aac
JH
107072009-03-28 Jan Hubicka <jh@suse.cz>
10708
10709 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
10710 cgraph_clone_node): Remove master clone handling.
10711 (cgraph_is_master_clone, cgraph_master_clone): Remove.
10712 * cgraph.h (master_clone): Remove.
10713 (cgraph_is_master_clone, cgraph_master_clone): Remove.
10714 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
10715 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
10716
4a371c8d
JH
107172009-03-28 Jan Hubicka <jh@suse.cz>
10718
10719 * cgraph.c (cgraph_function_body_availability): Functions declared
10720 inline are always safe to assume that it is not going to be replaced.
10721
6cdb0ee3
RG
107222009-03-28 Richard Guenther <rguenther@suse.de>
10723
10724 PR tree-optimization/38513
10725 * tree-ssa-pre.c (eliminate): Remove redundant stores.
10726 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
10727 EXC_PTR_EXPR and FILTER_EXPR.
10728 (get_ref_from_reference_ops): Likewise.
10729
8ca1fd76
RG
107302009-03-28 Richard Guenther <rguenther@suse.de>
10731
10732 PR tree-optimization/38968
10733 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
10734 Use FLOOR_MOD_EXPR to compute misalignment.
10735
a254e44d
RG
107362009-03-28 Richard Guenther <rguenther@suse.de>
10737
10738 PR tree-optimization/37795
10739 * tree.h (combine_comparisons): Declare.
10740 * fold-const.c (combine_comparisons): Export.
10741 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
10742 comparisons.
10743 (ifcombine_iforif): Use combine_comparisons.
10744
a8ee227c
JH
107452009-03-28 Jan Hubicka <jh@suse.cz>
10746
10747 * tree-eh.c (inlinable_call_p): New function.
10748 (make_eh_edges): Use it.
10749 (verify_eh_edges): Use it.
10750 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
10751 * except.c (reachable_next_level): Add inlinable_function argument
10752 (sjlj_find_directly_reachable_regions): Update.
10753 (add_reachable_handler): Do not set saw_any_handlers.
10754 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
10755 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
10756 Add new inlinable call parameter.
10757 (can_throw_internal, can_throw_external): Update.
10758 * except.h (can_throw_internal_1, can_throw_external_1,
10759 foreach_reachable_handler): Update declaration.
10760
52c0e446
JM
107612009-03-28 Joseph Myers <joseph@codesourcery.com>
10762
10763 * config/arm/t-arm-coff, config/h8300/coff.h,
10764 config/i386/i386-aout.h, config/i386/i386-coff.h,
10765 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
10766 config/pdp11/2bsd.h, config/rs6000/aix41.h,
10767 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
10768 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
10769 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
10770 sys-types.h: Remove.
10771 * Makefile.in: Remove protoize and fixproto support and references
10772 in comments.
10773 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
10774 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
10775 Remove.
10776 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
10777 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
10778 unprotoize$(exeext).
10779 (rest.encap): Don't depend on $(STMP_FIXPROTO)
10780 (.PHONY): Don't depend on proto.
10781 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
10782 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
10783 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
10784 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
10785 build/gen-protos.o, build/scan.o, xsys-protos.h,
10786 build/fix-header$(build_exeext), build/fix-header.o,
10787 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
10788 stmp-install-fixproto): Remove.
10789 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
10790 SYSCALLS.c or fixproto files.
10791 (install-common): Don't install protoize.
10792 (install-headers-tar, install-headers-cpio, install-headers-cp):
10793 Don't depend on $(STMP_FIXPROTO).
10794 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
10795 install fixproto files or write out fixproto settings.
10796 (uninstall): Don't uninstall protoize.
10797 * config.gcc (use_fixproto): Remove.
10798 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
10799 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
10800 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
10801 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
10802 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
10803 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
10804 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
10805 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
10806 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
10807 * config/t-vxworks (STMP_FIXPROTO): Remove.
10808 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
10809 STMP_FIXPROTO): Remove.
10810 * config.in, configure: Regenerate.
10811 * crtstuff.c (gid_t, uid_t): Don't undefine.
10812 * doc/install.texi: Change m68k-coff to m68k-elf in example.
10813 (arm-*-coff, arm-*-aout: Remove target entries.
10814 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
10815 Remove mention of AIX 4.1.
10816 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
10817 * doc/invoke.texi (Running Protoize): Remove.
10818 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
10819 (Protoize Caveats): Remove.
10820 * tsystem.h: Update comments on headers assumed to exist.
10821
20a07f44
VM
108222009-03-27 Vladimir Makarov <vmakarov@redhat.com>
10823
10824 * genautomata.c: Add a new year to the copyright. Add a new
10825 reference.
10826 (struct insn_reserv_decl): Add comments for member bypass_list.
10827 (find_bypass): Remove.
10828 (insert_bypass): New.
10829 (process_decls): Use insert_bypass.
10830 (output_internal_insn_latency_func): Output all bypasses with the
10831 same input insn in one switch case.
10832
10833 * rtl.def (define_bypass): Describe bypass choice.
10834 * doc/md.texi (define_bypass): Ditto.
10835
3a0d06c1
RB
108362009-03-27 Richard Guenther <rguenther@suse.de>
10837
10838 * gimplify.c (mark_addressable): Export.
10839 * tree-flow.h (mark_addressable): Declare.
10840 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
10841 * tree-ssa.c (verify_phi_args): Verify that address taken
10842 variables have TREE_ADDRESSABLE set.
10843
108442009-03-27 Richard Guenther <rguenther@suse.de>
10845
10846 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
10847 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
10848 Do not mark decls TREE_ADDRESSABLE.
10849 (build_fold_addr_expr): Adjust.
10850 (fold_addr_expr): Remove.
10851 (fold_unary): Use build_fold_addr_expr.
10852 (fold_comparison): Likewise.
10853 (split_address_to_core_and_offset): Likewise.
10854 * coverage.c (tree_coverage_counter_addr): Mark the array decl
10855 TREE_ADDRESSABLE.
10856 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
10857 (gimplify_modify_expr_to_memcpy): Mark source and destination
10858 addressable.
10859 * omp-low.c (create_omp_child_function): Mark the object decl
10860 TREE_ADDRESSABLE.
10861 (lower_rec_input_clauses): Mark the var we take the address of
10862 TREE_ADDRESSABLE.
10863 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
10864
2ac26e15
L
108652009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10866
10867 PR middle-end/39315
10868 * cfgexpand.c (expand_one_stack_var_at): Change alignment
10869 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
10870
472c7fbd
RG
108712009-03-27 Richard Guenther <rguenther@suse.de>
10872
10873 PR tree-optimization/39120
10874 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
10875 constraints.
10876 (handle_lhs_call): Process return constraints. Add escape
10877 constraints if necessary.
10878 (handle_const_call): Fill out return constraints. Make nested
10879 case more precise. Avoid consttmp if possible.
10880 (handle_pure_call): Fill out return constraints. Avoid
10881 callused if possible.
10882 (find_func_aliases): Simplify call handling.
10883
108842009-03-27 Richard Guenther <rguenther@suse.de>
10885
10886 PR tree-optimization/39120
10887 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
10888 as a representative.
10889 (solve_graph): Do propagate CALLUSED.
10890 (handle_pure_call): Use a scalar constraint from CALLUSED for
10891 the return value.
10892 (find_what_p_points_to): CALLUSED shall not appear in poins-to
10893 solutions.
10894
d9223014
L
108952009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10896
10897 PR c/39323
10898 * c-common.c (handle_aligned_attribute): Properly check alignment
10899 overflow. Use (1U << i) instead of (1 << i).
10900
ba20e309 10901 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
10902
10903 * expr.h (get_mem_align_offset): Updated.
10904
10905 * tree.h (tree_decl_common): Change align to "unsigned int" and
10906 move it before pointer_alias_set.
10907
689b689c
L
109082009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10909 Jakub Jelinek <jakub@redhat.com>
10910
10911 PR target/38034
10912 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
10913 gr_register_operand with gr_reg_or_0_operand.
10914 (cmpxchg_rel_di): Likewise.
10915 (sync_lock_test_and_set<mode>): Likewise.
10916
c619e982
L
109172009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10918
10919 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
10920 (true_regnum): Likewise.
10921
10922 * rtlanal.c (subreg_info): Moved to ...
10923 * rtl.h (subreg_info): Here. New.
10924 (subreg_get_info): New.
10925
10926 * rtlanal.c (subreg_get_info): Make it extern.
10927
51212b32
L
109282009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10929
10930 PR target/39472
10931 * config/i386/i386.c (ix86_abi): New.
10932 (override_options): Handle -mabi=.
ba20e309 10933 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
10934 (ix86_call_abi_override): Likewise.
10935 (init_cumulative_args): Likewise.
10936 (function_arg_advance): Likewise.
10937 (function_arg_64): Likewise.
10938 (function_arg): Likewise.
10939 (ix86_pass_by_reference): Likewise.
10940 (ix86_function_value_regno_p): Likewise.
10941 (ix86_build_builtin_va_list_abi): Likewise.
10942 (setup_incoming_varargs_64): Likewise.
10943 (is_va_list_char_pointer): Likewise.
10944 (ix86_init_machine_status): Likewise.
ba20e309 10945 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
10946 (ix86_function_type_abi): Return enum calling_abi. Rewrite
10947 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 10948 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
10949 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
10950 with ix86_abi.
10951 (ix86_fn_abi_va_list): Updated.
10952
10953 * config/i386/i386.h (ix86_abi): New.
10954 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
10955 (CONDITIONAL_REGISTER_USAGE): Likewise.
10956 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
10957 (machine_function): Likewise.
10958
10959 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
10960 with ix86_abi.
10961 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
10962 (STACK_BOUNDARY): Likewise.
10963 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
10964
10965 * config/i386/i386.opt (mabi=): New.
10966
10967 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
10968 return enum calling_abi.
10969 (ix86_function_type_abi): Likewise.
10970 (ix86_function_abi): Removed.
10971
10972 * doc/invoke.texi: Document -mabi= option for x86.
10973
7338ea63
KG
109742009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10975
10976 * builtins.c (real_dconstp): Delete.
10977 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
10978
68599f33
DS
109792009-03-27 Dodji Seketeli <dodji@redhat.com>
10980 Jakub Jelinek <jakub@redhat.com>
10981
10982 PR debug/37959
10983 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
10984 (gen_subprogram_die): When a function is explicit, generate the
10985 DW_AT_explicit attribute.
10986 * langhooks.h (struct lang_hooks_for_decls): Add
10987 function_decl_explicit_p langhook.
10988 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
10989 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
10990
9f5e9983
JJ
109912009-03-27 Jakub Jelinek <jakub@redhat.com>
10992
64d7685c
JJ
10993 * builtins.c (fold_builtin_memory_op): Optimize memmove
10994 into memcpy if we can prove source and destination don't overlap.
10995
9f5e9983
JJ
10996 * tree-inline.c: Include gt-tree-inline.h.
10997 (clone_fn_id_num): New variable.
10998 (clone_function_name): New function.
10999 (tree_function_versioning): Use it.
11000 * Makefile.in (GTFILES): Add tree-inline.c.
11001
e54d52a8
MM
110022009-03-27 Mark Mitchell <mark@codesourcery.com>
11003
11004 * BASE-VER: Change to 4.5.0.
11005
e9d51dc6
XDL
110062009-03-27 Xinliang David Li <davidxl@google.com>
11007
11008 PR tree-optimization/39557
11009 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
11010
4577cea1
XDL
110112009-03-27 Xinliang David Li <davidxl@google.com>
11012
11013 PR tree-optimization/39548
2ba9daa7 11014 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
11015 candidate check.
11016
0f7464f4
L
110172009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11018
11019 * c-common.c (pointer_int_sum): Use %wd on return from
11020 tree_low_cst.
11021
a8847a7f
L
110222009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11023
11024 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
11025 on return from tree_low_cst.
11026
b0957daf
AP
110272009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
11028
11029 PR c++/36799
ba20e309
UB
11030 * ginclude/stdarg.h (va_copy): Define also for
11031 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 11032
a5f805df
MLI
110332009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
11034
11035 PR c++/35652
11036 * builtins.h (c_strlen): Do not warn here.
11037 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
11038 * c-common.c (pointer_int_sum): Take an explicit location.
11039 Warn about offsets out of bounds.
11040 * c-common.h (pointer_int_sum): Adjust declaration.
11041
6f401211
RW
110422009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11043
a5f805df
MLI
11044 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
11045 markup glitch.
6f401211 11046
5a59b39e
JJ
110472009-03-26 Jakub Jelinek <jakub@redhat.com>
11048
11049 PR c++/39554
11050 * opts.c (warn_if_disallowed_function_p): Don't assume
11051 get_callee_fndecl must return non-NULL.
11052
d5f89b53
VM
110532009-03-26 Vladimir Makarov <vmakarov@redhat.com>
11054
11055 PR rtl-optimization/39522
11056 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
11057 when reg_reloaded_valid is set.
11058
61238a79
UW
110592009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11060
11061 * config/spu/divv2df3.c: New file.
11062 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
11063 (DPBIT_FUNCS): Filter out _div_df.
11064
03f8829b
BS
110652009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
11066
11067 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
11068 a jump insn, count that jump in the distance to the loop start.
11069
9fdcdc74
KK
110702009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
11071
11072 PR target/39523
11073 * config/sh/sh.c (calc_live_regs): Fix condition for global
11074 registers except PIC_OFFSET_TABLE_REGNUM.
11075
46994828
KT
110762009-03-25 Kai Tietz <kai.tietz@onevision.com>
11077
11078 PR/39518
11079 * doc/invoke.texi (-mconsole): New.
11080 (-mcygwin): New.
11081 (-mno-cygwin): New.
11082 (-mdll): New.
11083 (-mnop-fun-dllimport): New.
11084 (-mthread): New.
11085 (-mwin32): New.
11086 (-mwindows): New.
11087 (sub section "i386 and x86-64 Windows Options"): New.
11088
60839f5d 110892009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
11090
11091 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
11092 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
11093
ae560440
RG
110942009-03-25 Richard Guenther <rguenther@suse.de>
11095
11096 PR middle-end/39497
11097 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
11098 of -Wno-error.
11099
cd510f15
AM
111002009-03-25 Andrey Belevantsev <abel@ispras.ru>
11101
11102 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
11103 neither of haifa/selective schedulers are working.
11104
44ab0f0e
RW
111052009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11106
11107 * doc/invoke.texi (Debugging Options): Fix description of
11108 -fno-merge-debug-strings.
11109
ad9646c7
HPN
111102009-03-24 Hans-Peter Nilsson <hp@axis.com>
11111
e6142656
HPN
11112 * config/cris/libgcc.ver: New version-script.
11113 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
11114
ad9646c7
HPN
11115 * configure.ac <GAS features, nop mnemonic>: Add pattern
11116 crisv32-*-* for "nop".
ba20e309 11117 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
11118 * configure: Regenerate.
11119
09ac4473
IR
111202009-03-24 Ira Rosen <irar@il.ibm.com>
11121
11122 PR tree-optimization/39529
11123 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
11124 mark_sym_for_renaming for the tag copied to the new vector
11125 pointer.
11126
d94a427e
AL
111272009-03-24 Arthur Loiret <aloiret@debian.org>
11128
ba20e309 11129 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
11130 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
11131 EXTRA_SPEC_FUNCTIONS.
11132 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
11133 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
11134 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
11135 -march and -mtune options.
11136
60839f5d 111372009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
11138
11139 * config/m68k/t-rtems: Add m5329 multilib.
11140
603f5959
DS
111412009-03-24 Dodji Seketeli <dodji@redhat.com>
11142 Jakub Jelinek <jakub@redhat.com>
11143
11144 PR debug/39524
11145 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
11146 nodes.
11147
c5cdb03f
JJ
111482009-03-23 Jakub Jelinek <jakub@redhat.com>
11149
11150 PR c/39495
11151 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
11152 instead of c_parser_expression_conv, if original_code isn't one of the
11153 4 allowed comparison codes, fail.
11154
3691626c
RG
111552009-03-23 Richard Guenther <rguenther@suse.de>
11156
11157 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
11158 * tree.h (struct tree_type): Likewise.
11159 * reload.h (struct insn_chain): Likewise.
11160 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
11161 * function.h (struct function): Likewise.
11162 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
11163
88ccb72a
JJ
111642009-03-23 Jakub Jelinek <jakub@redhat.com>
11165
11166 PR tree-optimization/39516
11167 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
11168
60839f5d 111692009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 11170
2ba9daa7 11171 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
11172 should be set true if BITS_PER_WORD of target is bigger than 32
11173
f82162f8
HPN
111742009-03-22 Hans-Peter Nilsson <hp@axis.com>
11175
11176 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
11177 Translate -B-options to -rpath-link. Correct existing
11178 rpath-link and conditionalize on !nostdlib.
11179
048fd785
RW
111802009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11181
11182 * doc/extend.texi (Function Attributes, Variable Attributes):
11183 Fix typos.
11184 * doc/invoke.texi (Debugging Options, Optimize Options)
11185 (i386 and x86-64 Options, MCore Options): Likewise.
11186
6e75c1a9
JJ
111872009-03-20 Jakub Jelinek <jakub@redhat.com>
11188
11189 PR debug/37890
11190 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
11191 it for block local namespace aliases.
11192 (gen_decl_die): Pass context_die to gen_namespace_die.
11193
ea1199ee
JJ
111942009-03-19 Jakub Jelinek <jakub@redhat.com>
11195
11196 PR c/39495
11197 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
11198 minimum or maximum value.
11199
58929c10
AO
112002009-03-19 Alexandre Oliva <aoliva@redhat.com>
11201
11202 * reginfo.c (globalize_reg): Recompute derived reg sets.
11203
60839f5d 112042009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
11205
11206 PR target/39063
11207 * libgcc2.c (mprotect): Do not use signed arguments for
11208 VirtualProtect, use DWORD arguments. Also fix the 'may
11209 be used uninitialized' warning for the np variable.
11210
f57c2f04
JJ
112112009-03-19 Jakub Jelinek <jakub@redhat.com>
11212
11213 PR target/39496
11214 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
11215 functions using regparm calling conventions when not optimizing.
11216 (ix86_function_sseregparm): Similarly for sseregparm calling
11217 conventions.
11218
9e517d61
LF
112192009-03-19 Li Feng <nemokingdom@gmail.com>
11220
11221 PR middle-end/39500
11222 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
11223 dependence if the first conflict is after niter iterations.
11224
8ef20026
HPN
112252009-03-19 Hans-Peter Nilsson <hp@axis.com>
11226
11227 PR middle-end/38609
11228 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
11229 functions with dynamic stack-pointer adjustments.
11230
64e4a1a6
BE
112312009-03-19 Ben Elliston <bje@au.ibm.com>
11232
11233 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
11234 option; change to -msdata=data.
11235
9a0f3e86
RW
112362009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11237
11238 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
11239 and -fopenmp.
11240
09bc5979
EB
112412009-03-18 Eric Botcazou <ebotcazou@adacore.com>
11242
11243 PR target/35180
11244 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
11245
332459cd
SL
112462009-03-18 Sandra Loosemore <sandra@codesourcery.com>
11247
11248 * doc/invoke.texi (Code Gen Options): Expand discussion of
11249 -fno-common.
11250
8f5929e1
JJ
112512009-03-18 Jakub Jelinek <jakub@redhat.com>
11252
11253 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
11254 * matrix-reorg.c (struct matrix_info): Likewise.
11255 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
11256 * rtl.h (struct mem_attrs): Likewise.
11257 * df.h (struct df): Likewise.
11258 * tree-data-ref.h (struct data_dependence_relation): Likewise.
11259 * ira-int.h (struct ira_allocno): Likewise.
11260 * df-scan.c (struct df_collection_rec): Likewise.
11261 * ira.c (struct equivalence): Likewise.
11262 * function.c (struct temp_slot): Likewise.
11263 * cfgloop.h (struct loop): Likewise.
11264
d130d647
JJ
11265 PR debug/39485
11266 * function.c (use_register_for_decl): When not optimizing, disregard
11267 register keyword for variables with types containing methods.
11268
9968d233
SP
112692009-03-18 Sebastian Pop <sebastian.pop@amd.com>
11270
11271 PR middle-end/39447
11272 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
11273 (is_simple_operand): Call contains_component_ref_p before calling data
11274 reference analysis that would fail on COMPONENT_REFs.
11275
11276 * tree-vrp.c (search_for_addr_array): Fix formatting.
11277
69484bfd
RG
112782009-03-18 Richard Guenther <rguenther@suse.de>
11279
11280 * tree-vect-transform.c (vect_loop_versioning): Fold the
11281 generated comparisons.
11282 * tree-vectorizer.c (set_prologue_iterations): Likewise.
11283 (slpeel_tree_peel_loop_to_edge): Likewise.
11284
66811228
RW
112852009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11286
0631b69f
RW
11287 PR middle-end/37805
11288 * opts.c (print_specific_help): In addition to `undocumented',
11289 accept `separate' and `joined' flags if passed alone. Describe
11290 output by the first matched one of those.
11291 (common_handle_option): Skip over empty strings.
11292 * gcc.c (display_help): Fix help string for `--help='.
11293 * doc/invoke.texi (Option Summary, Overall Options): With
11294 `--help=', classes and qualifiers can both be repeated, but
11295 only the latter can be negated. One should not pass only
11296 negated qualifiers. Fix markup and examples.
11297
66811228
RW
11298 Revert
11299 2008-10-14 Jakub Jelinek <jakub@redhat.com>
11300 PR middle-end/37805
11301 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
11302 and -fhelp=separate.
11303
3c072c6b
JY
113042009-03-17 Jing Yu <jingyu@google.com>
11305
11306 PR middle-end/39378
80c65208
JY
11307 * function.h (struct rtl_data): Move is_thunk from here...
11308 (struct function): ...to here.
11309 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
11310 * varasm.c (assemble_start_function): Change is_thunk from crtl to
11311 cfun.
80c65208
JY
11312 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
11313 cfun.
11314 (alpha_does_function_need_gp, alpha_start_function): Likewise.
11315 (alpha_output_function_end_prologue): Likewise.
11316 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
11317 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
11318 (rs6000_output_function_epilogue): Likewise.
11319 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 11320
9ade279b
UB
113212009-03-17 Uros Bizjak <ubizjak@gmail.com>
11322
11323 PR target/39482
11324 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
11325 from different units in a single alternative.
11326 (*truncdfsf_i387): Ditto.
11327 (*truncxfsf2_mixed): Ditto.
11328 (*truncxfdf2_mixed): Ditto.
11329
16e60c17
JJ
113302009-03-17 Jakub Jelinek <jakub@redhat.com>
11331
98381eb4
JJ
11332 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
11333 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
11334
df5deb18
JJ
11335 PR debug/39474
11336 * tree-ssa-live.c (remove_unused_locals): Don't remove local
11337 unused non-artificial variables when not optimizing.
11338
a3f596ba
JJ
11339 PR debug/39471
11340 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
11341 DW_TAG_imported_module even if decl is IMPORTED_DECL with
11342 NAMESPACE_DECL in its DECL_INITIAL.
11343
6b2b8871
JJ
11344 PR middle-end/39443
11345 * optabs.c (set_user_assembler_libfunc): New function.
11346 * expr.h (set_user_assembler_libfunc): New prototype.
11347 * c-common.c: Include libfuncs.h.
11348 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
11349 for memcmp, memset, memcpy, memmove and abort.
11350 * Makefile.in (c-common.o): Depend on libfuncs.h.
11351
16e60c17
JJ
11352 PR debug/39412
11353 * dwarf2out.c (gen_inlined_enumeration_type_die,
11354 gen_inlined_structure_type_die, gen_inlined_union_type_die,
11355 gen_tagged_type_instantiation_die): Removed.
11356 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
11357 do nothing.
11358
4d936aca
JJ
113592009-03-17 Janis Johnson <janis187@us.ibm.com>
11360
11361 PR testsuite/38526
11362 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
11363 its use.
11364 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
11365 (check-parallel-%): Ditto.
11366 (check-consistency): Ditto.
11367
4e9b2e50
KT
113682009-03-17 Kai Tietz <kai.tietz@onevision.com>
11369
11370 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
11371 local variable rhs by NULL_TREE.
11372
21440b2d
L
113732009-03-17 H.J. Lu <hongjiu.lu@intel.com>
11374
11375 PR target/39477
9ade279b 11376 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 11377
d8905c6a
L
113782009-03-17 H.J. Lu <hongjiu.lu@intel.com>
11379
11380 PR target/39476
9ade279b 11381 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
11382
113832009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
11384
11385 PR target/39473
11386 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
11387 for ms->sysv ABI calls only in 64bit mode.
11388
11389 * config/i386/i386.md (untyped_call): Support 32bit.
11390
cdcabece
L
113912009-03-16 H.J. Lu <hongjiu.lu@intel.com>
11392
11393 * doc/extend.texi: Replace x86_65 with x86_64.
11394
97b4ba9f
JJ
113952009-03-16 Jakub Jelinek <jakub@redhat.com>
11396
11397 PR tree-optimization/39455
11398 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
11399 mismatches for POINTER_TYPE_P (type).
11400 (number_of_iterations_le): Likewise.
11401
60839f5d 114022009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
11403
11404 * config/picochip/picochip.c: Removed profiling support.
11405 * config/picochip/picochip.md: Removed profiling instruction.
11406 * config/picochip/picochip.h: Removed profiling builtin.
11407
f38095f3
JM
114082009-03-16 Joseph Myers <joseph@codesourcery.com>
11409
11410 * doc/install.texi (--with-host-libstdcxx): Document.
11411
2cb4817b
AS
114122009-03-14 Anatoly Sokolov <aesok@post.ru>
11413
11414 PR target/34299
11415 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
11416 generate a warning if the function name does not begin with
11417 "__vector" and the function has either the 'signal' or 'interrupt'
11418 attribute, from here to ...
11419 (avr_declare_function_name): ...here. New function.
11420 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
11421 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
11422
39b2ac74
JJ
114232009-03-14 Jakub Jelinek <jakub@redhat.com>
11424
11425 PR bootstrap/39454
11426 * cse.c (fold_rtx): Don't modify original const_arg1 when
11427 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
11428 separate variable instead.
11429 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
11430 from out of range shift counts.
11431 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
11432
ad41bd84 114332009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 11434
60839f5d 11435 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
11436 diagnostic.h with $(DIAGNOSTIC_H).
11437
ad41bd84 114382009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
11439
11440 PR target/39431
11441 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
11442 predicate.
11443 * config/i386/sync.md (sync_compare_and_swap<mode>,
11444 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
11445 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
11446 into a register.
11447 (sync_double_compare_and_swapdi_pic,
11448 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
11449 cmpxchg8b_pic_memory_operand instead of just memory_operand.
11450
122c59c7
L
114512009-03-12 H.J. Lu <hongjiu.lu@intel.com>
11452
11453 PR target/39445
9ade279b 11454 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 11455
cec8874f
L
114562009-03-12 H.J. Lu <hongjiu.lu@intel.com>
11457
11458 PR target/39327
11459 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
11460 (avx_addsubv4df3): Likewise.
11461 (*avx_addsubv4sf3): Likewise.
11462 (sse3_addsubv4sf3): Likewise.
11463
bbb52802
L
114642009-03-12 H.J. Lu <hongjiu.lu@intel.com>
11465
11466 PR target/38824
9ade279b 11467 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 11468
a812fb07
VM
114692009-03-12 Vladimir Makarov <vmakarov@redhat.com>
11470
11471 PR debug/39432
11472 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
11473 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
11474 registers for allocnos created from user-defined variables.
11475
4caab5ba
UW
114762009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11477
11478 PR target/39181
11479 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
11480 of non-integer mode as well.
11481
498e51ca
AN
114822009-03-11 Adam Nemet <anemet@caviumnetworks.com>
11483
11484 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
11485 for functions for which the parameter types are unknown.
11486
9bfaf89d
JJ
114872009-03-11 Jakub Jelinek <jakub@redhat.com>
11488
11489 PR target/39137
9ade279b 11490 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
11491 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
11492 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
11493 * config/i386/i386.c (ix86_local_alignment): For
11494 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
11495 long long variables on the stack to avoid dynamic realignment.
11496 Allow the first argument to be a decl rather than type.
11497 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
11498
18a3bdcb
NC
114992009-03-11 Nick Clifton <nickc@redhat.com>
11500
11501 PR target/5362
40190a76
NC
11502 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
11503 options.
11504 Add description to mno-lsim option.
11505 * config/mcore/mcore.h: Remove comment about deprecated m4align
11506 option.
11507 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
11508 * doc/invoke.texi: Add description of mno-lsim and
11509 mstack-increment options.
11510
18a3bdcb
NC
11511 * config/fr30/fr30.opt: Document the -mno-lsim option.
11512 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
11513 and -mno-lsim options.
11514
dc215785
UW
115152009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11516
11517 * fold-const.c (fold_comparison): Only call fold_inf_compare
11518 if the mode supports infinities.
11519
7716876b
JM
115202009-03-11 Jason Merrill <jason@redhat.com>
11521
11522 PR debug/39086
11523 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
11524 end already did. Notice GIMPLE_CALL modifications of the result.
11525 Don't copy debug information from an ignored decl or a decl from
11526 another function.
11527
ddef83d2
RG
115282009-03-10 Richard Guenther <rguenther@suse.de>
11529 Nathan Froyd <froydnj@codesourcery.com>
11530
11531 PR middle-end/37850
9ade279b 11532 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
11533 (__divMODE3): Likewise.
11534
9a9ba8d9
JJ
115352009-03-09 Jakub Jelinek <jakub@redhat.com>
11536
11537 PR tree-optimization/39394
11538 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
11539 DECL_SIZE_UNIT of variable length FIELD_DECLs.
11540
929b7fc3
AK
115412009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11542
11543 * recog.c (verfiy_changes): Disallow renaming of hard regs in
11544 inline asms for register asm ("") declarations.
11545
1803581d
EB
115462009-03-09 Eric Botcazou <ebotcazou@adacore.com>
11547
11548 * fold-const.c (fold_unary): Fix comment.
11549
8454d27e
JH
115502009-03-07 Jan Hubicka <jh@suse.cz>
11551
11552 PR target/39361
969a5433
JJ
11553 * tree-inline.c (setup_one_parameter): Do replacement of const
11554 argument by constant in SSA form.
8454d27e 11555
3a695389
UW
115562009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11557
11558 PR middle-end/38028
11559 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
11560 determine alignment passed to assign_stack_local.
11561 (assign_parms_unsplit_complex): Likewise.
11562 * except.c (sjlj_build_landing_pads): Likewise.
11563
9f0e7885
JJ
115642009-03-06 Jakub Jelinek <jakub@redhat.com>
11565
65401a0b
JJ
11566 PR middle-end/39360
11567 * tree-flow.h (add_referenced_var): Return bool instead of void.
11568 * tree-dfa.c (add_referenced_var): Return result of
11569 referenced_var_check_and_insert call.
11570 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
11571 of referenced_var_check_and_insert.
11572
9f0e7885 11573 PR debug/39372
9ade279b 11574 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
11575 (gen_variable_die): Emit DW_AT_location on abstract static variable's
11576 DIE, don't emit it if abstract origin already has it.
11577 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
11578 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
11579
3b664bd1
JBG
115802009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
11581
ba20e309 11582 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
11583 detection.
11584 (write_tm_constrs_h): Indent generated code.
11585
d8f8ca80
RR
115862009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11587
11588 * doc/extend.texi (Function Attributes): Add documentation
11589 for isr attributes.
11590
6c3d550c
JJ
115912009-03-06 Jakub Jelinek <jakub@redhat.com>
11592
11593 PR debug/39387
11594 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
11595 take locus from its DECL_SOURCE_LOCATION instead of input_location.
11596
f9e96751
BS
115972009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
11598
11599 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
11600 the loop as bad.
11601
ee0ee7e2
JJ
116022009-03-05 Jakub Jelinek <jakub@redhat.com>
11603
11604 PR debug/39379
11605 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
11606 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
11607
6c6094f1
UB
116082009-03-05 Uros Bizjak <ubizjak@gmail.com>
11609
11610 * config/i386/i386.md (R8_REG, R9_REG): New constants.
11611 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
11612 constants instead of magic numbers.
11613 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
11614 (QI_REG_P): Ditto.
11615 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
11616 (x86_64_ms_abi_int_parameter_registers): Ditto.
11617 (x86_64_int_return_registers): Ditto.
09f8a8d3 11618 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
11619 (ix86_expand_call): Ditto for clobbered_registers array.
11620 (ix86_hard_regno_mode_ok): Ditto.
11621 (x86_extended_QIreg_mentioned_p): Ditto.
11622
b267bd41
R
116232009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
11624
6c6094f1 11625 PR tree-optimization/39349
1f3ad3f0
R
11626 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
11627
b267bd41
R
11628 * combine.c (gen_lowpart_for_combine): Use omode when generating
11629 clobber.
11630
1242bc9d
R
116312009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
11632
6c6094f1 11633 PR rtl-optimization/39235
1242bc9d
R
11634 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
11635
48f03606
ZD
116362009-03-04 Zdenek Dvorak <ook@ucw.cz>
11637
11638 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
11639
b505e785
RG
116402009-03-04 Richard Guenther <rguenther@suse.de>
11641
11642 PR tree-optimization/39362
11643 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
11644 that occur in abnormal PHIs should be varying.
11645
f017bf5e
ZD
116462009-03-04 Zdenek Dvorak <ook@ucw.cz>
11647
11648 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
11649 Extend comments.
11650 (simple_iv): Take loop as an argument instead of statement.
11651 * tree-scalar-evolution.h (simple_iv): Declaration changed.
11652 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
11653 to simple_iv.
11654 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
11655 Ditto.
11656 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
11657 * matrix-reorg.c (analyze_transpose): Ditto.
11658 * tree-data-ref.c (dr_analyze_innermost): Ditto.
11659 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
11660 * tree-predcom.c (ref_at_iteration): Ditto.
11661 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
11662
6a66f28e
RG
116632009-03-04 Richard Guenther <rguenther@suse.de>
11664
11665 PR tree-optimization/39358
11666 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
11667 escaped_id and callused_id.
11668 (solve_graph): Likewise.
11669
57e454ee
RG
116702009-03-04 Richard Guenther <rguenther@suse.de>
11671
11672 PR tree-optimization/39339
11673 * tree-sra.c (try_instantiate_multiple_fields): Make it
11674 no longer ICE on the above.
11675
a6fe9ed4
JM
116762009-03-03 Joseph Myers <joseph@codesourcery.com>
11677
11678 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
11679 that fits within Pmode.
11680
dc672951
SE
116812009-03-03 Steve Ellcey <sje@cup.hp.com>
11682
11683 PR middle-end/10109
11684 * tm.texi (LIBCALL_VALUE): Update description.
11685
8b9d598f
SE
116862009-03-03 Steve Ellcey <sje@cup.hp.com>
11687
11688 PR middle-end/34443
11689 * doc/extend.texi (section): Update description.
11690
13e4e36e
L
116912009-03-03 H.J. Lu <hongjiu.lu@intel.com>
11692
11693 PR middle-end/39345
11694 * tree-inline.c (remapped_type): New.
11695 (can_be_nonlocal): Call remapped_type instead of remap_type.
11696
067dd3c9
JJ
116972009-03-03 Jakub Jelinek <jakub@redhat.com>
11698
11699 PR fortran/39354
11700 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
11701 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
11702
9bd9f738
RG
117032009-03-03 Richard Guenther <rguenther@suse.de>
11704
11705 PR middle-end/39272
11706 * tree.c (tree_nonartificial_location): New function.
11707 * tree.h (tree_nonartificial_location): Declare.
11708 * builtins.c (expand_builtin_memory_chk): Provide location
11709 of the call location for artificial function pieces.
11710 (maybe_emit_chk_warning): Likewise.
11711 (maybe_emit_sprintf_chk_warning): Likewise.
11712 (maybe_emit_free_warning): Likewise.
11713 * expr.c (expand_expr_real_1): Likewise.
11714
f07049c8
JJ
117152009-03-03 Jakub Jelinek <jakub@redhat.com>
11716
11717 PR tree-optimization/39343
11718 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
11719 COMPONENT_REF t has ARRAY_TYPE.
11720
7d4fba4a
SP
117212009-03-02 Sebastian Pop <sebastian.pop@amd.com>
11722
11723 PR middle-end/39335
11724 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
11725 when the type precision of the induction variable should be
11726 larger than the type precision of nit.
11727 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
11728 * graphite.c (graphite_loop_normal_form): Same.
11729 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
11730
78168632
UB
117312009-03-02 Uros Bizjak <ubizjak@gmail.com>
11732
11733 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
11734 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 11735 numbers to describe clobbered registers.
78168632 11736 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
11737 * config/i386/mmx.md (mmx_emms): Ditto.
11738 (mmx_femms): Ditto.
78168632 11739
63553059
RS
117402009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
11741
11742 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
11743 of ABI_64.
11744
500a1f85
UW
117452009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11746
11747 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
11748 (spu_section_type_flags): New function.
11749
962aae34
UB
117502009-03-02 Uros Bizjak <ubizjak@gmail.com>
11751
11752 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
11753 reg_class_contents of FLOAT_REGS into a temporary.
11754
6dfb529c 117552009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 11756 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
11757
11758 PR tree-optimization/39318
11759 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
11760 information to the vectorized statement.
11761
6b5629db
UB
117622009-03-01 Uros Bizjak <ubizjak@gmail.com>
11763
434426d2
UB
11764 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
11765 variable. Use defined names instead of magic constants for REX SSE
11766 registers.
6b5629db 11767
14e5b285
RG
117682009-03-01 Richard Guenther <rguenther@suse.de>
11769
11770 PR tree-optimization/39331
11771 * omp-low.c (lower_send_shared_vars): Do not receive new
11772 values for the reference of DECL_BY_REFERENCE parms or results.
11773
526d73ab
JH
117742009-03-01 Jan Hubicka <jh@suse.cz>
11775
11776 PR debug/39267
11777 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
11778 BLOCK_NONLOCALIZED_VAR): New macros.
11779 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
11780 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
11781 gen_decl_die): Add origin argument. Allow generation of die with
11782 origin at hand only.
526d73ab 11783 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
11784 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
11785 of gen_*.
526d73ab
JH
11786 (gen_block_die): Fix checking for unused blocks.
11787 (process_scope_var): Break out from .... ; work with origins only.
11788 (decls_for_scope) ... here; process nonlocalized list.
11789 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
11790 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
11791 vars.
526d73ab
JH
11792 (dump_scope_block): Dump them.
11793 * tree-inline.c (remap_decls): Handle nonlocalized vars.
11794 (remap_block): Likewise.
11795 (can_be_nonlocal): New predicate.
11796 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
11797
7a9d3fe8
RW
117982009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11799
11800 * configure: Regenerate.
11801
b3cdf3cb
RW
118022009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11803
a16d1645 11804 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 11805 Reuse help texts for duplicate options which do not have any.
a16d1645 11806
1156c176
RW
11807 * gcc.c (display_help): Document --version.
11808
033505fc
RW
11809 * gcc.c (main): If print_help_list and verbose_flag, ensure
11810 driver output comes before subprocess output.
11811
4d077054
RW
11812 * optc-gen.awk: Assign all remaining fields to help string,
11813 space-separated, for multi-line help in *.opt.
11814
a072f1cf
RW
11815 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
11816 -Wno-pedantic-ms-format is for MinGW targets only.
11817
b3cdf3cb
RW
11818 * doc/options.texi (Option file format): Fix bad indentation,
11819 restoring dropped sentence.
11820
a3aadcc5
JH
118212009-02-28 Jan Hubicka <jh@suse.cz>
11822
11823 * tree-inline.c (tree_function_versioning): Output debug info.
11824
1cf5abb3
JH
118252009-02-28 Jan Hubicka <jh@suse.cz>
11826
11827 PR debug/39267
11828 * tree-inline.c (setup_one_parameter): Do not copy propagate
11829 arguments when not optimizing.
11830
c4d3f42f
L
118312009-02-28 H.J. Lu <hongjiu.lu@intel.com>
11832
11833 PR target/39327
11834 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
11835 (avx_addsubv4df3): Likewise.
11836 (*avx_addsubv4sf3): Likewise.
11837 (sse3_addsubv4sf3): Likewise.
11838 (*avx_addsubv2df3): Likewise.
11839 (sse3_addsubv2df3): Likewise.
11840 (avx_unpckhps256): Correct item selectors.
11841 (avx_unpcklps256): Likewise.
11842 (avx_unpckhpd256): Likewise.
11843 (avx_unpcklpd256): Likewise.
11844
eb50f5f4
JH
118452009-02-28 Jan Hubicka <jh@suse.cz>
11846
11847 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
11848 static vars.
11849 (copy_arguments_for_versioning): If var is declared don't declare it.
11850 (tree_function_versioning): First setup substitutions and then copy
11851 args.
11852
26140130
JH
118532009-02-27 Jan Hubicka <jh@suse.cz>
11854
11855 PR debug/39267
11856 * cgraph.h (varpool_output_debug_info): Remove.
11857 * cgraphunit.c (varpool_output_debug_info): Remove.
11858 * dwarf2out.c (deferred_locations_struct): New struct
11859 (deferred_locations): New type.
11860 (deferred_locations_list): New static var.
11861 (deffer_location): New function.
11862 (gen_variable_die): Use it.
11863 (decls_for_scope): Output info on local static vars.
11864 (dwarf2out_finish): Process deferred locations.
11865 * varpool.c (varpool_output_debug_info): Remove.
11866
cff7525f
JH
118672009-02-27 Jan Hubicka <jh@suse.cz>
11868
11869 PR debug/39267
11870 * tree.h (TREE_PROTECTED): Fix comment.
11871 (BLOCK_HANDLER_BLOCK): Remove.
11872 (struct tree_block): Remove handler_block add body_block.
11873 (inlined_function_outer_scope_p): New.
11874 (is_body_block): Remove.
11875 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
11876 * dwarf2out.c (is_inlined_entry_point): Remove.
11877 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
11878 (gen_block_die): Use is_inlined_entry_point check. Remove body block
11879 code.
cff7525f
JH
11880 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
11881 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
11882 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
11883 block with multiple subblocks.
cff7525f
JH
11884 (dump_scope_block): Prettier output; dump more flags and info.
11885 (dump_scope_blocks): New.
11886 (remove_unused_locals): Use dump_scope_blocks.
11887 * tree-flow.h (dump_scope_blocks): Declare.
11888 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
11889 * stmt.c (is_body_block): Remove.
11890 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
11891 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
11892
c20993b9
SP
118932009-02-27 Sebastian Pop <sebastian.pop@amd.com>
11894
11895 PR middle-end/39308
2ba9daa7 11896 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
11897 number_of_iterations_exit from a gcc_assert.
11898
e3cba5e5
AK
118992009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11900
60839f5d 11901 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
11902 jumps if COND is NULL.
11903 (find_cond_jump): New function.
11904 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 11905 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 11906
9dadeeb8
UB
119072009-02-26 Uros Bizjak <ubizjak@gmail.com>
11908
11909 * config/alpha/alpha.h (alpha_expand_mov): Return false if
11910 force_const_mem returns NULL_RTX.
11911
625d3251
EB
119122009-02-26 Jan Hubicka <jh@suse.cz>
11913
11914 PR debug/39267
11915 * cgraph.h (varpool_output_debug_info): Remove.
11916 * cgraphunit.c (varpool_output_debug_info): Remove.
11917 * dwarf2out.c (deferred_locations_struct): New struct
11918 (deferred_locations): New type.
11919 (deferred_locations_list): New static var.
11920 (deffer_location): New function.
11921 (gen_variable_die): Use it.
11922 (decls_for_scope): Output info on local static vars.
11923 (dwarf2out_finish): Process deferred locations.
11924 * varpool.c (varpool_output_debug_info): Remove.
11925
38432148 119262009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
11927
11928 PR rtl-optimization/39241
11929 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
11930 to subreg_offset_representable_p.
11931
62d049cf
PB
119322009-02-25 Paolo Bonzini <bonzini@gnu.org>
11933
11934 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
11935 execute function prototype. Get f and nregs from max_reg_num
11936 and get_insns. Remove the first backward pass as it's dead,
11937 guard the forward pass by flag_expensive_optimizations.
11938 (rest_of_handle_regmove): Delete.
11939 (pass_regmove): Replace it with regmove_optimize.
11940
f618d33e
MJ
119412009-02-25 Martin Jambor <mjambor@suse.cz>
11942
11943 PR tree-optimization/39259
11944 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 11945 calls_alloca function flags.
f618d33e
MJ
11946 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
11947 calls are detected.
11948
c8a05f7c
PB
119492009-02-25 Paolo Bonzini <bonzini@gnu.org>
11950
11951 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
11952 flags_set_1_rtx, flags_set_1_set): Delete.
11953 (regmove_optimize): Do not call mark_flags_life_zones.
11954
6d2538f5
JB
119552009-02-24 Julian Brown <julian@codesourcery.com>
11956
11957 PR target/35965
11958 * config/arm/arm.c (require_pic_register): Only set
11959 cfun->machine->pic_reg once per function.
11960
a2fa6772
SL
119612009-02-24 Sandra Loosemore <sandra@codesourcery.com>
11962
11963 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 11964 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 11965
5472de36
SE
119662009-02-24 Steve Ellcey <sje@cup.hp.com>
11967
11968 PR target/33785
11969 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
11970
844216f3
RG
119712009-02-24 Richard Guenther <rguenther@suse.de>
11972
11973 PR debug/39285
11974 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
11975
71adbef3 119762009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 11977 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
11978
11979 PR tree-optimization/39233
11980 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
11981 from converting them to a generic type.
11982
f1a558e0
SP
119832009-02-23 Sebastian Pop <sebastian.pop@amd.com>
11984
11985 PR tree-optimization/39260
11986 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
11987 contains a condition with a real type.
11988 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
11989
d8028f2c
JM
119902009-02-23 Jason Merrill <jason@redhat.com>
11991
11992 PR c++/38880
11993 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
11994 narrowing_initializer_constant_valid_p.
2ba9daa7 11995 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
11996 null_pointer_node for adding a pointer to itself.
11997
9283b513
JH
119982009-02-23 Jan Hubicka <jh@suse.cz>
11999
12000 PR c/12245
9dadeeb8
UB
12001 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
12002 resizing.
9283b513 12003
61e04322
JH
120042009-02-23 Jan Hubicka <jh@suse.cz>
12005
9dadeeb8
UB
12006 PR tree-optimization/37709
12007 * tree.c (block_ultimate_origin): Move here from dwarf2out.
12008 * tree.h (block_ultimate_origin): Declare.
12009 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
12010 * tree-ssa-live.c (remove_unused_scope_block_p):
12011 Eliminate blocks containig no instructions nor live variables nor
12012 nested blocks.
12013 (dump_scope_block): New function.
12014 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 12015 enable dumping at TDF_DETAILS.
61e04322 12016
38432148 120172009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
12018
12019 * config/i386/i386.c (classify_argument): Don't allow COImode
12020 and OImode.
12021 (function_arg_advance_32): Don't allow OImode.
12022 (function_arg_32): Likewise.
12023 (function_value_32): Likewise.
12024 (return_in_memory_32): Likewise.
12025 (function_arg_64): Remove OImode comment.
12026
38432148 120272009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
12028
12029 PR target/39261
12030 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
12031 ix86_expand_vector_set for V4DImode in 64bit mode only.
12032 (ix86_expand_vector_init_one_var): Likewise.
12033
dcd739a6
SP
120342009-02-21 Sebastian Pop <sebastian.pop@amd.com>
12035
12036 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
12037
6c3b938d
RS
120382009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
12039
8e361f23 12040 PR bootstrap/39257
6c3b938d
RS
12041 * loop-iv.c: Revert last change.
12042 * emit-rtl.c: Likewise.
12043
38432148 120442009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
12045
12046 PR target/39256
12047 * config/i386/i386.c (type_natural_mode): Remove an extra
12048 space in the warning message.
12049 (function_value_32): Handle 32-byte vector modes.
12050 (return_in_memory_32): Likewise.
12051
2ec62529
RS
120522009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
12053
12054 * loop-iv.c (truncate_value): New function.
12055 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
12056 of lowpart_subreg.
12057 (lowpart_subreg): Move to...
12058 * emit-rtl.c: ...here.
12059
ecb8c3cc 120602009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 12061
ecb8c3cc
DS
12062 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
12063 accidental and undocumented change at revision 140860.
12064
ae46a823
JM
120652009-02-21 Joseph Myers <joseph@codesourcery.com>
12066
12067 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
12068 take gimple_seq * arguments.
12069 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
12070 types_compatible_p langhook.
12071
07d8efe3 120722009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 12073 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
12074
12075 * config/arm/arm.c (arm_builtin_va_list): New function.
12076 (arm_expand_builtin_va_start): Likewise.
12077 (arm_gimplify_va_arg_expr): Likewise.
12078 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
12079 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
12080 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
12081 (va_list_type): New variable.
12082 (arm_mangle_type): Mangle va_list_type appropriately.
12083
b1fb9f56
JJ
120842009-02-20 Jakub Jelinek <jakub@redhat.com>
12085
12086 PR middle-end/39157
12087 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
12088 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
12089 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
12090 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
12091 parameter to 1000 for -O1 by default.
12092 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
12093 parameter.
12094 * loop-invariant.c: Include params.h.
12095 (move_loop_invariants): Don't call move_single_loop_invariants on
12096 very large loops.
12097
5bc0807c
JM
120982009-02-20 Jaka Mocnik <jaka@xlab.si>
12099
12100 * calls.c (emit_library_call_value_1): Use slot_offset instead of
12101 offset when calculating bounds for indexing stack_usage_map. Fixes
12102 a buffer overflow with certain target setups.
12103
c69cd1f5
JJ
121042009-02-20 Jakub Jelinek <jakub@redhat.com>
12105
12106 PR target/39240
12107 * calls.c (expand_call): Clear try_tail_call if caller and callee
12108 disagree in promotion of function return value.
12109
09812622
JJ
121102009-02-19 Jakub Jelinek <jakub@redhat.com>
12111
12112 PR target/39175
12113 * c-common.c (c_determine_visibility): If visibility changed and
12114 DECL_RTL has been already set, call make_decl_rtl to update symbol
12115 flags.
12116
68017cb4
L
121172009-02-19 H.J. Lu <hongjiu.lu@intel.com>
12118
12119 PR c++/39188
12120 * varasm.c (assemble_variable): Don't check DECL_NAME when
12121 globalizing a variable.
12122
ab4194da
JM
121232009-02-19 Joseph Myers <joseph@codesourcery.com>
12124
12125 PR c/38483
12126 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
12127 expression before any __builtin_trap call.
12128 * c-typeck.c (build_function_call): Convert and check function
12129 arguments before generating a call to a trap. Evaluate the
12130 function arguments before the trap.
12131
6b67572e
UB
121322009-02-19 Uros Bizjak <ubizjak@gmail.com>
12133
12134 PR target/39228
12135 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
12136 (UNSPEC_FXAM_MEM): New unspec.
12137 (fxam<mode>2_i387_with_temp): New insn and split pattern.
12138 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
12139 memory using fxam<mode>2_i387_with_temp to remove excess precision.
12140
9e39dba6
RG
121412009-02-19 Richard Guenther <rguenther@suse.de>
12142
12143 PR tree-optimization/39207
12144 PR tree-optimization/39074
12145 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
12146 storedanything_tree): New.
12147 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 12148 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
12149 (build_succ_graph): Add edges from STOREDANYTHING to all
12150 non-direct nodes.
12151 (init_base_vars): Initialize STOREDANYTHING.
12152 (compute_points_to_sets): Free substitution info after
12153 building the succ graph.
12154 (ipa_pta_execute): Likewise.
12155
12156 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
12157 field.
12158 (do_ds_constraint): Do not add to special var or non-pointer
12159 field solutions.
12160 (type_could_have_pointers): Split out from ...
12161 (could_have_pointers): ... here. For arrays use the element type.
12162 (create_variable_info_for): Initialize may_have_pointers.
12163 (new_var_info): Likewise.
12164 (handle_lhs_call): Make the HEAP variable unknown-sized.
12165 (intra_create_variable_infos): Use a type with pointers for
12166 PARM_NOALIAS, make it unknown-sized.
12167
fd7b2603
L
121682009-02-18 H.J. Lu <hongjiu.lu@intel.com>
12169
12170 PR target/39224
6b67572e 12171 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 12172
98b80692
JM
121732009-02-18 Jason Merrill <jason@redhat.com>
12174
12175 PR target/39179
12176 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
12177 value if DECL_EXTERNAL.
12178 * tree-sra.c (sra_walk_gimple_assign): Likewise.
12179 * target.h (gcc_target::binds_local_p): Clarify "module".
12180 * tree.h (TREE_PUBLIC): Clarify "module".
12181
0705d3f4
L
121822009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
12183
12184 PR target/38891
12185 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
12186 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
12187
bce08d50
L
121882009-02-17 H.J. Lu <hongjiu.lu@intel.com>
12189
12190 PR target/39082
12191 * c.opt (Wabi): Support C and ObjC.
12192 (Wpsabi): New.
12193
12194 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
12195
12196 * config/i386/i386.c (classify_argument): Warn once about the ABI
12197 change when passing union with long double.
12198
12199 * doc/invoke.texi: Update -Wabi for warning psABI changes.
12200
5600f233
JM
122012009-02-18 Joseph Myers <joseph@codesourcery.com>
12202
12203 PR c/35447
12204 * c-parser.c (c_parser_compound_statement): Always enter and leave
12205 a scope.
12206
8cd01fe6
JDA
122072009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12208
12209 PR target/34587
12210 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
12211
418df9d7
JJ
122122009-02-18 Jakub Jelinek <jakub@redhat.com>
12213
12214 PR tree-optimization/36922
12215 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
12216 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
12217 Likewise.
12218
082d2ebb
RS
122192009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
12220
12221 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
12222 to 0 for EABI64.
12223
17de576c
RS
122242009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
12225
12226 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
12227
6d8d5435
RS
122282009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
12229
12230 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
12231 tree sharing.
12232
e69ff910
RB
122332009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
12234 Richard Sandiford <rdsandiford@googlemail.com>
12235
12236 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
12237 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
12238 (loongson_biadd): ...this.
12239
6b24ee26
RG
122402009-02-17 Richard Guenther <rguenther@suse.de>
12241
12242 PR tree-optimization/39202
12243 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
12244 a var make sure to follow existing collapses.
12245
91ab2c86
RG
122462009-02-17 Richard Guenther <rguenther@suse.de>
12247
12248 PR middle-end/39214
12249 * langhooks.c (lhd_print_error_function): Check for NULL block.
12250
73a63870
RG
122512009-02-17 Richard Guenther <rguenther@suse.de>
12252
12253 PR tree-optimization/39204
12254 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
12255 of the PHI arg.
12256
0e08f686
UB
122572009-02-17 Uros Bizjak <ubizjak@gmail.com>
12258
12259 * config/soft-fp/double.h: Update from glibc CVS.
12260
a60b7ddb
RG
122612009-02-17 Richard Guenther <rguenther@suse.de>
12262
12263 PR tree-optimization/39207
12264 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
12265 strict-aliasing warnings for pointers pointing to NULL.
12266
a47e20fd
JM
122672009-02-16 Joseph Myers <joseph@codesourcery.com>
12268
12269 PR c/35446
12270 * c-parser.c (c_parser_braced_init): Call pop_init_level when
12271 skipping until next close brace.
12272
50aab7dc
L
122732009-02-16 H.J. Lu <hongjiu.lu@intel.com>
12274
12275 PR target/37049
12276 * config/i386/i386.c (ix86_expand_push): Set memory alignment
12277 to function argument boundary.
12278
68e53db0
HS
122792009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
12280
12281 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
12282 in the lea_add. Reload eventually constraints it properly.
0d50d55a 12283 * config/picochip/constraints.md: Remove the target constraint
68e53db0
HS
12284 "b", since it is not needed anymore.
12285
09e361bb
JJ
122862009-02-16 Jakub Jelinek <jakub@redhat.com>
12287
12288 * gthr-dce.h: Uglify function parameter and local variable names.
12289 * gthr-gnat.h: Likewise.
12290 * gthr-mipssde.h: Likewise.
12291 * gthr-nks.h: Likewise.
12292 * gthr-posix95.h: Likewise.
12293 * gthr-posix.h: Likewise.
12294 * gthr-rtems.h: Likewise.
12295 * gthr-single.h: Likewise.
12296 * gthr-solaris.h: Likewise.
12297 * gthr-tpf.h: Likewise.
12298 * gthr-vxworks.h: Likewise.
12299 * gthr-win32.h: Likewise.
12300
47f5a48f
L
123012009-02-15 H.J. Lu <hongjiu.lu@intel.com>
12302
12303 PR target/39196
12304 * config/i386/i386.md: Restrict the new peephole2 to move
12305 between MMX/SSE registers.
12306
68c9ab45
RG
123072009-02-15 Richard Guenther <rguenther@suse.de>
12308
12309 Revert
12310 2009-02-13 Richard Guenther <rguenther@suse.de>
12311
12312 * configure.ac: Enable LFS.
12313 * configure: Re-generate.
12314 * config.in: Likewise.
12315
d7815554
UW
123162009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12317
12318 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
12319 spu_srqwbyte, spu_srqwbytebc): Define.
12320 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
12321 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
12322 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
12323 "shrqby_<mode>"): New insn-and-split patterns.
12324 * config/spu/spu.c (expand_builtin_args): Determine and return
12325 number of operands using spu_builtin_description data.
12326 (spu_expand_builtin_1): Use it.
12327
c208436c
SE
123282009-02-13 Steve Ellcey <sje@cup.hp.com>
12329
12330 PR target/38056
12331 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
12332 TARGET_CONST_GP.
12333
c2e7ba7e
L
123342009-02-13 H.J. Lu <hongjiu.lu@intel.com>
12335
12336 PR target/39149
12337 * config/i386/i386.c (override_options): Correct warning
6c6094f1 12338 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 12339
72f4e3a7
L
123402009-02-13 H.J. Lu <hongjiu.lu@intel.com>
12341
12342 PR target/39152
12343 * config/i386/i386.md: Restrict the new peephole2 to move
12344 between the general purpose registers.
12345
53f648e2
L
123462009-02-13 H.J. Lu <hongjiu.lu@intel.com>
12347
12348 PR target/39162
12349 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 12350 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
12351 (function_arg_advance): Updated.
12352 (function_arg): Likewise.
12353 (ix86_function_value): Likewise.
12354 (ix86_return_in_memory): Likewise.
12355 (ix86_sol10_return_in_memory): Likewise.
12356 (ix86_gimplify_va_arg): Likewise.
12357 (function_arg_32): Don't warn ABX ABI change here.
12358 (function_arg_64): Likewise.
12359
38432148 123602009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
12361
12362 * loop-iv.c (implies_p): In the final case, test that operands 0
12363 of the two comparisons match.
12364
dd2139e7
BS
12365 * config/bfin/bfin.c (find_prev_insn_start): New function.
12366 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
12367 (find_next_insn_start): Move.
12368
601b3e1a
RG
123692009-02-13 Richard Guenther <rguenther@suse.de>
12370
12371 * configure.ac: Enable LFS.
12372 * configure: Re-generate.
12373 * config.in: Likewise.
12374
f007042e
JM
123752009-02-13 Joseph Myers <joseph@codesourcery.com>
12376
12377 PR c/35444
12378 * c-parser.c (c_parser_parms_list_declarator): Discard pending
12379 sizes on syntax error after some arguments have been parsed.
12380
3f238e8b
JJ
123812009-02-12 Jakub Jelinek <jakub@redhat.com>
12382
12383 * doc/invoke.texi (-fira): Remove.
12384
328e13b7
L
123852009-02-12 H.J. Lu <hongjiu.lu@intel.com>
12386
12387 * caller-save.c: Replace regclass.c with reginfo.c in comments.
12388 * recog.c: Likewise.
12389 * rtl.h: Likewise.
12390
c252db20
L
123912009-02-12 Uros Bizjak <ubizjak@gmail.com>
12392
12393 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
12394 (umul_ppmm): Likewise.
12395 (count_leading_zeros): Likewise.
12396 (count_trailing_zeros): Likewise.
12397 (UMUL_TIME): Likewise.
12398
123992009-02-12 H.J. Lu <hongjiu.lu@intel.com>
12400
ba181049
UB
12401 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
12402 soft-fp/t-softfp to tmake_file.
c252db20
L
12403
12404 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
12405 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
12406 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
12407 IA64_BUILTIN_INFQ]: New.
c252db20
L
12408 (ia64_init_builtins): Initialize __builtin_infq,
12409 __builtin_fabsq and __builtin_copysignq if not HPUX.
12410 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
12411 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
12412
12413 * config/ia64/lib1funcs.asm (__divtf3): Define only if
12414 SHARED is defined.
12415 (__fixtfti): Likewise.
12416 (__fixunstfti): Likewise.
12417 (__floattitf): Likewise.
12418
12419 * config/ia64/libgcc-glibc.ver: New.
12420 * config/ia64/t-fprules-softfp: Likewise.
12421 * config/ia64/sfp-machine.h: Likewise.
12422
12423 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
12424 (LIBGCC2_TF_CEXT): Likewise.
12425 (TF_SIZE): Likewise.
12426 (TARGET_INIT_LIBFUNCS): Likewise.
12427
ba181049 12428 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 12429 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 12430
f13eae6a
L
124312009-02-12 H.J. Lu <hongjiu.lu@intel.com>
12432
12433 * config/i386/i386.c (construct_container): Rewrite processing
12434 BLKmode with X86_64_SSE_CLASS.
12435
12019aec
L
124362009-02-12 Paolo Bonzini <bonzini@gnu.org>
12437
12438 PR target/39152
12439 * config/i386/i386.md: Replace simplify_replace_rtx with
12440 replace_rtx in the new peephole2.
12441
28c11eb3
NS
124422009-02-12 Nathan Sidwell <nathan@codesourcery.com>
12443
12444 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
12445 loop unrolling do not happen at -O2.
12446
c7b94907
MM
124472009-02-12 Michael Matz <matz@suse.de>
12448
12449 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
12450
61e98967
JJ
124512009-02-12 Jakub Jelinek <jakub@redhat.com>
12452
12453 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
12454 for -g3.
12455
a2a237b5
BE
124562009-02-12 Ben Elliston <bje@au.ibm.com>
12457
12458 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
12459 patterns when updating the back chain. Missed in the 2009-02-10
12460 change.
12461
853eda8d
JJ
124622009-02-11 Janis Johnson <janis187@us.ibm.com>
12463
12464 * doc/extend.texi (Decimal Floating Types): Update identifier of
12465 draft TR and list of missing support.
12466
3ad6b266
JJ
124672009-02-11 Jakub Jelinek <jakub@redhat.com>
12468
12469 PR middle-end/39154
12470 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
12471 bit to variable length decl's flags, add it also to its
12472 pointer replacement variable.
12473
b058b753
UB
124742009-02-11 Uros Bizjak <ubizjak@gmail.com>
12475 Jakub Jelinek <jakub@redhat.com>
12476
12477 PR target/39118
12478 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
12479 (memory_blockage): New expander.
12480 (*memory_blockage): New insn pattern.
12481 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
12482 instead of general blockage at the end of function prologue when
12483 frame pointer is used to access red zone area. Do not emit blockage
12484 when profiling, it is emitted in generic code.
12485 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
12486 function epilogue when frame pointer is used to access red zone area.
12487
bab64f23
PB
124882009-02-11 Paolo Bonzini <bonzini@gnu.org>
12489
0ce6dcfa 12490 PR target/38824
bab64f23
PB
12491 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
12492 by arithmetic with memory operands.
12493 * config/i386/predicates.md (commutative_operator): New.
12494
8fd94bda
JJ
124952009-02-10 Janis Johnson <janis187@us.ibm.com>
12496
12497 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
12498 bulleted lists.
12499
794511d2
EB
125002009-02-10 Eric Botcazou <ebotcazou@adacore.com>
12501
12502 * alias.h (record_alias_subset): Declare.
12503 * alias.c (record_alias_subset): Make global.
12504
6da7fc87
NC
125052009-02-10 Nick Clifton <nickc@redhat.com>
12506
12507 * tree-parloops.c: Change license to GPLv3.
12508 * ipa-struct-reorg.c: Change license to GPLv3.
12509 * ipa-struct-reorg.h: Change license to GPLv3.
12510
a03813c8
SE
125112009-02-10 Steve Ellcey <sje@cup.hp.com>
12512
12513 PR c/39084
12514 * c-decl.c (start_struct): Return NULL on error.
12515
fc3103e7
JJ
125162009-02-10 Jakub Jelinek <jakub@redhat.com>
12517
9b43d37b
JJ
12518 PR middle-end/39124
12519 * cfgloopmanip.c (remove_path): Call remove_bbs after
12520 cancel_loop_tree, not before it.
12521
fc3103e7 12522 PR target/39139
b058b753 12523 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
12524 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
12525 VAR_DECLs were seen.
12526 * tree-ssa-live.c (remove_unused_locals): Recompute
12527 cfun->has_local_explicit_reg_vars.
12528 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
12529 copies or clearings if cfun->has_local_explicit_reg_vars.
12530
dbf9ee15
UB
125312009-02-10 Uros Bizjak <ubizjak@gmail.com>
12532
12533 PR target/39118
12534 * config/i386/i386.c (expand_prologue): Emit blockage at the end
12535 of function prologue when frame pointer is used to access
12536 red zone area.
12537
bdec4dc7
RG
125382009-02-10 Richard Guenther <rguenther@suse.de>
12539
12540 PR middle-end/39127
12541 * gimplify.c (gimple_regimplify_operands): Always look if
12542 we need to create a temporary.
12543
7cae94fc
RG
125442009-02-10 Richard Guenther <rguenther@suse.de>
12545
12546 PR tree-optimization/39132
12547 * tree-loop-distribution.c (todo): New global var.
12548 (generate_memset_zero): Trigger TODO_rebuild_alias.
12549 (tree_loop_distribution): Return todo.
12550
a8800687
L
125512009-02-10 H.J. Lu <hongjiu.lu@intel.com>
12552
12553 PR target/39119
12554 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
12555 (x86_64_reg_class_name): Removed.
12556 (classify_argument): Return 0 if bytes > 32. Return 0 if the
12557 first one isn't X86_64_SSE_CLASS or any other ones aren't
12558 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
12559 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
12560 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
12561 and 3 X86_64_SSEUP_CLASS.
12562 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
12563 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
12564
d4bacef0
BE
125652009-02-10 Ben Elliston <bje@au.ibm.com>
12566
12567 * config/rs6000/rs6000.md (allocate_stack): Always use an update
12568 form instruction to update the stack back chain word, even if the
12569 user has disabled the generation of update instructions.
12570 (movdi_<mode>_update_stack): New.
12571 (movsi_update_stack): Likewise.
12572 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
12573 always use an update form instruction to update the stack back
12574 chain word.
12575
01d7d2f3
SP
125762009-02-09 Sebastian Pop <sebastian.pop@amd.com>
12577
12578 PR middle-end/38953
b058b753
UB
12579 * graphite.c (if_region_set_false_region): After moving a region in
12580 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
12581 (gloog): Remove wrong fix for PR38953.
12582
e41e2ab4
UW
125832009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12584
12585 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
12586 generation due to implicit sign extension.
12587
4bb07c5d
EB
125882009-02-09 Eric Botcazou <ebotcazou@adacore.com>
12589
12590 PR middle-end/38981
12591 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
12592 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
12593
f060a261
RG
125942009-02-09 Richard Guenther <rguenther@suse.de>
12595
12596 PR middle-end/35202
12597 * convert.c (convert_to_real): Disable (float)fn((double)x)
12598 to fnf(x) conversion if errno differences may occur and
12599 -fmath-errno is set.
12600
5a7e237c
AS
126012009-02-07 Anatoly Sokolov <aesok@post.ru>
12602
12603 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
12604 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
12605 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
12606
feab5a67
JM
126072009-02-06 Joseph Myers <joseph@codesourcery.com>
12608
12609 PR c/35434
12610 * c-common.c (handle_alias_attribute): Disallow attribute for
12611 anything not a FUNCTION_DECL or VAR_DECL.
12612
90ef2296
JJ
126132009-02-06 Janis Johnson <janis187@us.ibm.com>
12614
12615 PR c/39035
12616 * real.c (do_compare): Special-case compare of zero against
12617 decimal float value.
12618
1de2c900
JM
126192009-02-06 Joseph Myers <joseph@codesourcery.com>
12620
12621 PR c/36432
12622 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
12623 as indicating flexible array members unless the field itself is
12624 being declarared as the incomplete array.
12625
e901811a
JH
126262009-02-06 Jan Hubicka <jh@suse.cz>
12627
12628 PR tree-optimization/38844
12629 * ipa-inline.c (try_inline): Stop inlining recursion when edge
12630 is already inlined.
12631
3cfa762b
RG
126322009-02-06 Richard Guenther <rguenther@suse.de>
12633
12634 PR middle-end/38977
12635 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
12636 fork because we may expand it as __gcov_fork.
12637
8506528c
NC
126382009-02-06 Nick Clifton <nickc@redhat.com>
12639
dbf9ee15 12640 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 12641
85169114
PB
126422009-02-06 Paolo Bonzini <bonzini@gnu.org>
12643
12644 PR tree-optimization/35659
12645 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
12646 vn_phi_eq): Shortcut if hashcode does not match.
12647 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
12648 NULL operands.
12649 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
12650 and avoid iterative_hash_expr.
12651 (FOR_EACH_VALUE_ID_IN_SET): New.
12652 (value_id_compare): Remove.
12653 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
12654 sort expressions by value id.
12655
6d39673d
KK
126562009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
12657
12658 PR target/38991
12659 * config/sh/predicates.md (general_movsrc_operand): Don't check
12660 the subreg of system registers here.
12661
e6e1c050
JJ
126622009-02-05 Jakub Jelinek <jakub@redhat.com>
12663
12664 PR c++/39106
12665 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
12666 on the copied decl.
12667
65a74b5d
PB
126682009-02-05 Paolo Bonzini <bonzini@gnu.org>
12669
12670 PR rtl-optimization/39110
12671 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
12672 addresses, not aligned ones.
12673
08e14b2a
DB
126742009-02-05 Daniel Berlin <dberlin@dberlin.org>
12675 Richard Guenther <rguenther@suse.de>
12676
12677 PR tree-optimization/39100
12678 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
12679 comment says and add edges.
12680
5006381c
JM
126812009-02-05 Joseph Myers <joseph@codesourcery.com>
12682
12683 PR c/35435
12684 * c-common.c (handle_tls_model_attribute): Ignore attribute for
12685 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
12686
2ba9daa7 126872009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
12688
12689 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
12690 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
12691 register_bb_in_sese, new_sese, free_sese): Moved.
12692 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
12693 outermost_loop_in_scop, build_scop_iteration_domain,
12694 expand_scalar_variables_ssa_name, get_vdef_before_scop,
12695 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
12696 Use loop_in_sese_p instead of loop_in_scop_p.
12697 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
12698 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
12699 (scopdet_basic_block_info): Fix bug in scop detection.
12700 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
12701 eq_loop_to_cloog_loop): Remove.
12702 (nb_loops_around_loop_in_scop, nb_loop
12703 ref_nb_loops): Moved here...
12704 * graphite.h (ref_nb_loops): ... from here.
12705 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
12706 (loop_domain_dim, loop_iteration_vector_dim): Remove.
12707 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
12708 * testsuite/gcc.dg/graphite/scop-19.c: New
12709
48e8382e
PB
127102009-02-04 Paolo Bonzini <bonzini@gnu.org>
12711 Hans-Peter Nilsson <hp@axis.com>
12712
12713 PR rtl-optimization/37889
12714 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
12715 Move offset handling from PLUS to before the switch. Use new
12716 arguments when considering SYMBOL_REFs too.
12717 (rtx_addr_can_trap_p): Pass dummy offset and size.
12718 (enum may_trap_p_flags): Remove.
12719 (may_trap_p_1): Pass size from MEM_SIZE.
12720
12721 PR rtl-optimization/38921
12722 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
12723 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
12724 * rtlanal.c (may_trap_after_code_motion_p): Delete.
12725 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
12726
69349ea5
L
127272009-02-04 H.J. Lu <hongjiu.lu@intel.com>
12728
12729 AVX Programming Reference (January, 2009)
12730 * config/i386/sse.md (*vpclmulqdq): New.
12731
b545e411
JJ
127322009-02-04 Jakub Jelinek <jakub@redhat.com>
12733
12734 PR tree-optimization/38977
12735 PR gcov-profile/38292
bf9b2cc9 12736 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 12737
5b43bf05
HS
127382009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
12739
12740 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
12741 non-indexable addresses even before reload.
12742
062c4bb3
JM
127432009-02-03 Joseph Myers <joseph@codesourcery.com>
12744
12745 PR c/29129
12746 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
12747 as having variable size. Do not give an error for unnamed
12748 parameters with [*] declarators. Give a warning for type names
12749 with [*] declarators and mark them as variable size.
12750 * c-parser.c (c_parser_sizeof_expression): Do not give an error
12751 for sizeof applied to [*] type names.
12752
6175f578
AP
127532009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
12754
12755 PR C++/36607
12756 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
12757
d4f4bc84
JJ
127582009-02-03 Jakub Jelinek <jakub@redhat.com>
12759
12760 * gcc.c (process_command): Update copyright notice dates.
12761 * gcov.c (print_version): Likewise.
12762 * gcov-dump.c (print_version): Likewise.
12763 * mips-tfile.c (main): Likewise.
12764 * mips-tdump.c (main): Likewise.
12765
f6294de7
JM
127662009-02-03 Joseph Myers <joseph@codesourcery.com>
12767
12768 PR c/35433
12769 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
12770 for composite type involving a zero-length array type.
12771
754ccf7c
JJ
127722009-02-03 Jakub Jelinek <jakub@redhat.com>
12773
70f16287
JJ
12774 PR target/35318
12775 * function.c (match_asm_constraints_1): Skip over
12776 initial optional % in the constraint.
12777
754ccf7c
JJ
12778 PR inline-asm/39059
12779 * c-parser.c (c_parser_postfix_expression): If fixed point is not
12780 supported, don't accept FIXED_CSTs.
12781 * c-decl.c (finish_declspecs): Error if fixed point is not supported
12782 and _Sat is used without _Fract/_Accum. Set specs->type to
12783 integer_type_node for cts_fract/cts_accum if fixed point is not
12784 supported.
12785
965fdadf
CM
127862009-02-02 Catherine Moore <clm@codesourcery.com>
12787
dbf9ee15 12788 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 12789
2e8a796f
RS
127902009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
12791
12792 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
12793 (ABI_HAS_64BIT_SYMBOLS): Use it.
12794 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
12795
e0079468
PB
127962009-02-02 Paul Brook <paul@codesourcery.com>
12797
12798 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
12799
eca72963
JJ
128002009-02-02 Jakub Jelinek <jakub@redhat.com>
12801
12802 PR inline-asm/39058
12803 * recog.h (asm_operand_ok): Add constraints argument.
12804 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
12805 recurse on matching constraint.
12806 (check_asm_operands): Pass constraints as 3rd argument to
12807 asm_operand_ok. Don't look up matching constraint here.
12808 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
12809 to asm_operand_ok.
12810
b5bde9ff
BE
128112009-02-02 Ben Elliston <bje@au.ibm.com>
12812
12813 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
12814 TARGET_NARROW_VOLATILE_BITFIELD macro names.
12815
30f3e427
JDA
128162009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12817
be7659ba
JDA
12818 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
12819 information. Remove some obsolete information. Reorganize.
12820
30f3e427
JDA
12821 * config/pa/fptr.c: Revert license to GPL 2.
12822 * config/pa/milli64.S: Likewise.
12823
3cbfaf98
DK
128242009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
12825
12826 PR target/38904
12827 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
12828 LIBRARY name in, instead of hard-coding it.
12829 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
12830 extra target make frag to tmake_files according to EH model.
12831 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
12832 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
12833 frags that define makefile variable EH_MODEL appropriately.
12834 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
12835 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
12836 to "-sjlj" according to type of EH configured.
12837 (LIBGCC_SONAME): Concatenate it to shared library base name.
12838 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
12839 to "_sjlj" according to type of EH configured.
12840 (LIBGCC_SONAME): Concatenate it to shared library base name.
12841 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
12842 (SHLIB_LINK): Add missing semicolon to if-else construct.
12843 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
12844 string value of "pe_dll" command-line option.
12845 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
12846 (SHLIB_SONAME): Use it when overriding t-cygming default.
12847 (SHLIB_IMPLIB): Override t-cygming default.
12848 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
12849 string value of "pe_dll" command-line option.
12850
8d0b6068
DK
128512009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
12852
12853 PR target/38952
12854 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 12855 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 12856
14c28276
RG
128572009-01-31 Richard Guenther <rguenther@suse.de>
12858
12859 PR tree-optimization/38937
12860 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
12861 computing the transitive closure.
12862
5f4d82c2
RG
128632009-01-30 Richard Guenther <rguenther@suse.de>
12864
12865 PR tree-optimization/39041
12866 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
12867 Propagate variable indices only if the types match for this stmt.
12868
d0728ae0
JJ
128692009-01-30 Jakub Jelinek <jakub@redhat.com>
12870
12871 PR target/39013
12872 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
12873 inline but never defined.
12874
6b67572e 128752009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
12876
12877 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
12878 (*insv_h_di_reg_extimm): New insn.
12879 (*insv_l<mode>_reg_extimm): New insn.
12880
128812009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
12882
12883 * config/picochip/picochip.c (flag_conserve_stack): set
12884 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
12885 fconserve-stack. Reduce call-overhead used by inliner.
12886
9fec758d 128872009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
12888
12889 PR/38157
12890 * common.opt (flag_conserve_stack): Initialised to zero.
12891
7f1c539c
KT
128922009-01-30 Kai Tietz <kai.tietz@onevision.com>
12893
12894 PR/39002
12895 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
12896 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
12897 method.
12898
3631be48
L
128992009-01-29 H.J. Lu <hongjiu.lu@intel.com>
12900
12901 * ira-color.c (allocno_reload_assign): Update comments.
12902 * regmove.c (regmove_optimize): Likewise.
12903
12904 * ra.h: Removed.
12905
416ac4d4
RM
129062009-01-29 Robert Millan <rmh@aybabtu.com>
12907
60839f5d
EB
12908 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
12909 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 12910 `MD_UNWIND_SUPPORT'.
60839f5d 12911 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 12912
d5e54bc1
KH
129132009-01-29 Kazu Hirata <kazu@codesourcery.com>
12914
12915 PR tree-optimization/39007
12916 * tree-loop-distribution.c (generate_builtin): Use
12917 recompute_dominator to compute the immediate dominator of the
12918 basic block just after the loop.
12919
38432148 129202009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
12921
12922 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
12923 (ASM_OUTPUT_DWARF_PCREL): Define.
12924
38432148 129252009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
12926
12927 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
12928 * doc/passes.texi: Remove entries about regclass, local-alloc, and
12929 global. Modify entries about regmove and IRA.
12930
12931 * ra-conflict.c: Remove the file.
12932
12933 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
12934
12935 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
12936 (pass_regclass_init): Rename to pass_reginfo_init.
12937
12938 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
12939
12940 * toplev.h (flag_ira): Remove.
12941
12942 * caller-save.c (setup_save_areas): Remove flag_ira.
12943
bf9b2cc9 12944 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
12945
12946 * global.c: Remove the file.
12947
ba20e309 12948 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
12949
12950 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
12951
12952 * regmove.c: Modify file description.
12953 (find_use_as_address, try_auto_increment): Define them only if
12954 AUTO_INC_DEC is defined.
12955 (replacement_quality, replace_in_call_usage, fixup_match_1,
12956 stable_and_no_regs_but_for_p): Remove.
12957 (reg_set_in_bb): Make it static.
12958 (regmove_optimize): Remove flag_ira and code which worked for
12959 !flag_ira.
12960
12961 * local-alloc.c: Remove the file.
12962
12963 * common.opt (fira): Remove.
12964
12965 * ira.c: Include except.h.
12966 (eliminable_regset): Move from global.c.
12967 (mark_elimination): Ditto. Remove flag_ira.
12968 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
12969 equiv_mem_modified, validate_equiv_mem_from_store,
12970 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
12971 contains_replace_regs, memref_referenced_p, memref_used_between_p,
12972 no_equiv, recorded_label_ref): Move from local-alloc.c.
12973 (update_equiv_regs): Ditto. Make it static.
12974 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 12975 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
12976 (build_insn_chain): Ditto. Make it static.
12977 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
12978 Rename to init_live_subregs.
12979 (gate_ira): Remove flag_ira.
12980
12981 * regclass.c: Rename reginfo.c. Change file description.
12982 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 12983 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
12984 (init_reg_sets_1): Remove code for evaluation of
12985 reg_class_superclasses and losing_caller_save_reg_set.
12986 (init_regs): Remove init_reg_autoinc.
12987 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
12988 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 12989 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
12990 (pass_regclass_init): Rename to pass_reginfo_init. Modify
12991 corresponding entries.
12992 (dump_regclass, record_operand_costs, scan_one_insn,
12993 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
12994 record_address_regs, auto_inc_dec_reg_p): Remove.
12995 (gt-regclass.h): Rename to gt-reginfo.h.
12996
12997 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 12998 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
12999
13000 * Makefile.in (RA_H): Remove.
13001 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
13002 Rename regclass.o to reginfo.o.
13003 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
13004 gt-reginfo.h.
13005 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
13006 (GTFILES): Rename regclass.c to reginfo.c.
13007
13008 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 13009 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
13010
13011 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
13012 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
13013 Remove flag_ira.
6b67572e 13014 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 13015
c95b2534 130162009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
13017
13018 PR middle-end/35854
13019 * doc/invoke.texi (rtl debug options): Complete rewrite.
13020 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
13021 to auto_inc_dec".
13022 * mode-switching.c (pass_mode_switching): Rename pass from
13023 "mode-sw" to "mode_sw".
13024 * except.c (pass_convert_to_eh_ranges): Rename pass from
13025 "eh-ranges" to "eh_ranges".
13026 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
13027 to "subreg1".
2ba9daa7
AS
13028
13029
72a54528
AM
130302009-01-29 Andrey Belevantsev <abel@ispras.ru>
13031 Alexander Monakov <amonakov@ispras.ru>
13032
13033 PR middle-end/38857
13034 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
13035 register.
13036 (move_exprs_to_boundary): Change return type and pass through
13037 should_move from move_op. Relax assert. Update usage ...
13038 (schedule_expr_on_boundary): ... here. Use should_move instead of
13039 cant_move.
13040 (move_op_orig_expr_found): Indicate that insn was disconnected from
13041 stream.
13042 (code_motion_process_successors): Do not call after_merge_succs
13043 callback if original expression was not found when traversing any of
13044 the branches.
13045 (code_motion_path_driver): Change return type. Update prototype.
13046 (move_op): Update comment. Add a new parameter (should_move). Update
13047 prototype. Set *should_move based on indication provided by
13048 move_op_orig_expr_found.
13049
001b9eb6
PH
130502009-01-28 Pat Haugen <pthaugen@us.ibm.com>
13051
13052 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
13053 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
13054 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
13055 * config/rs6000/rs6000.c (rs6000_override_options): Default
13056 avoid-indexed-addresses on for Power6, off for everything else.
13057 (avoiding_indexed_address_p): New function.
13058 (rs6000_legitimize_address): Use it.
13059 (rs6000_legitimate_address): Likewise.
13060 * config/rs6000/rs6000.md (movXX_updateX): Likewise
13061
59dc4898
KH
130622009-01-28 Kazu Hirata <kazu@codesourcery.com>
13063
13064 PR tree-optimization/38997
13065 * tree-loop-distribution.c (generate_memset_zero): Use
13066 POINTER_PLUS_EXPR for a pointer addition.
13067
07da44ab
AK
130682009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
13069
13070 * config/s390/s390.md (bswap<mode>2): New pattern added.
13071
cdc15d23
WG
130722009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
13073
13074 * config/s390/s390.md (*tls_load_31): Added type attribute.
13075
d46f24b6
WG
130762009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
13077
13078 * config/s390/s390.md: Fix a few comments.
13079
729e750f
WG
130802009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
13081
13082 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
13083 (*tm<mode>_full): Fixed z10prop attribute.
13084 (*tst<mode>_extimm): Fixed z10prop attribute.
13085 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
13086 (*tstqiCCT_cconly): Fixed z10prop attribute.
13087 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
13088 (*movsi_larl): Fixed z10prop attribute.
13089 (*movsi_zarch): Fixed z10prop attribute.
13090 (*movsi_eas): Fixed z10prop attribute.
13091 (*movhi): Fixed z10prop attribute.
13092 (*movqi): Fixed z10prop attribute.
13093 (*movstrictqi): Fixed z10prop attribute.
13094 (*mov<mode>): Fixed z10prop attribute.
13095 (*movcc): Fixed z10prop attribute.
13096 (*sethighpartdi_64): Fixed z10prop attribute.
13097 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
13098 (*negdi2_sign_cc): Fixed z10prop attribute.
13099 (*negdi2_sign): Fixed z10prop attribute.
13100 (*absdi2_sign_cc): Fixed z10prop attribute.
13101 (*absdi2_sign): Fixed z10prop attribute.
13102 (*negabsdi2_sign_cc): Fixed z10prop attribute.
13103 (*negabsdi2_sign): Fixed z10prop attribute.
13104 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
13105 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
13106 (doloop_si64): Fixed z10prop attribute.
13107 (doloop_si31): Fixed z10prop attribute.
13108 (doloop_long): Fixed z10prop attribute.
13109 (indirect_jump): Fixed z10prop attribute.
13110 (nop): Fixed z10prop attribute.
13111 (main_base_64): Fixed z10prop attribute.
13112 (reload_base_64): Fixed z10prop attribute.
13113
c7789bfb
JJ
131142009-01-28 Jakub Jelinek <jakub@redhat.com>
13115
13116 PR rtl-optimization/38740
6b67572e
UB
13117 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
13118 if !optimize.
c7789bfb
JJ
13119 * config/mips/mips.c (mips_reorg): Likewise.
13120
de081cfd
RG
131212009-01-28 Richard Guenther <rguenther@suse.de>
13122
13123 PR tree-optimization/38926
13124 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
13125 with the correct value id to a value.
13126 (do_regular_insertion): Use the value number of edoubleprime
13127 for the value number of the expr.
13128
13129 Revert
13130 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 13131
d748c406
UB
13132 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
13133 a PHI ask VN if it is already available.
13134 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
13135 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 13136
a9d386a1
JJ
131372009-01-28 Jakub Jelinek <jakub@redhat.com>
13138
13139 PR middle-end/38934
13140 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
13141 set to varying whenever max has TREE_OVERFLOW set, similarly
13142 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
13143
97a170cd
RG
131442009-01-28 Richard Guenther <rguenther@suse.de>
13145
13146 PR middle-end/38908
13147 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
13148 uninitialized aggregate uses in call arguments.
13149
89ebafc6
PB
131502009-01-28 Paolo Bonzini <bonzini@gnu.org>
13151
13152 PR tree-optimization/38984
13153 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
13154 the nothing_id variable if -fno-delete-null-pointer-checks.
13155
bef3c57b
UB
131562009-01-28 Uros Bizjak <ubizjak@gmail.com>
13157
13158 PR target/38988
13159 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
13160 (set_got_offset_rex64): Ditto.
13161
0c6390fa
L
131622009-01-27 H.J. Lu <hongjiu.lu@intel.com>
13163
13164 PR target/38941
13165 * doc/extend.texi: Improve local variable with asm reg.
13166
bee6fa6d
AN
131672009-01-27 Adam Nemet <anemet@caviumnetworks.com>
13168
13169 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
13170 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
13171 was not supplied then set warn_packed_bitfield_compat to the
13172 default value of 1.
13173 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
13174 against 1.
13175
b5c3dfbb
RG
131762009-01-27 Richard Guenther <rguenther@suse.de>
13177
13178 PR tree-optimization/38503
13179 * cfgexpand.c (expand_gimple_basic_block): Ignore
13180 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
13181 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
13182 variables that cannot have TBAA applied.
13183 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
13184 statements.
13185
d748c406 131862009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
13187
13188 PR middle-end/38969
13189 * calls.c (initialize_argument_information): Do not wrap complex
13190 arguments in SAVE_EXPR.
13191
9112bb38
AT
131922009-01-26 Andreas Tobler <a.tobler@schweiz.org>
13193
13194 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 13195 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 13196
4757704f
RG
131972009-01-26 Richard Guenther <rguenther@suse.de>
13198
13199 PR tree-optimization/38745
13200 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
13201 from special handling.
13202
e3e6cff4
RG
132032009-01-26 Richard Guenther <rguenther@suse.de>
13204
13205 PR tree-optimization/38745
13206 * tree-ssa.c (execute_update_addresses_taken): Do not include
13207 variables that cannot possibly be a register in not_reg_needs.
13208 Do not clear TREE_ADDRESSABLE on vars that may not become
13209 registers.
13210 * tree-ssa.c (update_alias_info_1): Include those in the set
13211 of addressable vars.
13212
dc874b53
RG
132132009-01-26 Richard Guenther <rguenther@suse.de>
13214
13215 PR middle-end/38851
13216 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
13217 * tree-ssa-dse.c: Include langhooks.h
13218 (execute_simple_dse): Remove stores with zero size.
13219
849421a3
JJ
132202009-01-24 Jakub Jelinek <jakub@redhat.com>
13221
13222 PR c/38957
13223 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
13224 as PLUS_EXPR.
13225
82f70421
JB
132262009-01-24 Julian Brown <julian@codesourcery.com>
13227
13228 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
13229 config/arm/linux-atomic.c.
13230 * config/arm/linux-atomic.c: New.
13231
863412d6
EB
132322009-01-24 Eric Botcazou <ebotcazou@adacore.com>
13233
13234 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
13235 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
13236 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
13237
8c684300
L
132382009-01-24 H.J. Lu <hongjiu.lu@intel.com>
13239
13240 PR c/38938
93f1527a 13241 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
13242 properly.
13243
b840fb02
SP
132442009-01-24 Sebastian Pop <sebastian.pop@amd.com>
13245
13246 PR tree-optimization/38953
13247 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
13248 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
13249 (gloog): Split the exit of the scop when the scop exit is a loop exit.
13250 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
13251 changed the CFG.
13252
ecee559f
PB
132532009-01-24 Paul Brook <paul@codesourcery.com>
13254
13255 * config/arm/neon.md (neon_type): Move to arm.md.
13256 (neon_mov<VSTRUCT>): Add neon_type attribute.
13257 * config/arm/arm.md (neon_type): Move to here.
13258 (conds): Add "unconditioal" and use as default for NEON insns.
13259
61ad0914
BE
132602009-01-24 Ben Elliston <bje@au.ibm.com>
13261
13262 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
13263 void *' warning from -Wc++-compat.
13264 * Makefile.in (dominance.o-warn): Remove.
13265
38432148 132662009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
13267
13268 PR tree-optimization/38932
13269 * fold-const.c (fold_unary_ignore_overflow): New.
13270 * tree.h (fold_unary_ignore_overflow): Declare.
13271 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
13272 * tree-ssa-sccvn.c (visit_reference_op_load,
13273 simplify_unary_expression): Likewise.
13274
2cd36c22
AN
132752009-01-22 Adam Nemet <anemet@caviumnetworks.com>
13276
13277 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
13278 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
13279 regardless of their type.
13280 * c-common.c (handle_packed_attribute): Don't ignore packed on
13281 bitfields.
13282 * c.opt (Wpacked-bitfield-compat): New warning option.
13283 * stor-layout.c (place_field): Warn if offset of a field changed.
13284 * doc/extend.texi (packed): Mention the ABI change.
13285 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
13286 (Warning Options): Add it to the list.
13287
e4e624ab
L
132882009-01-22 H.J. Lu <hongjiu.lu@intel.com>
13289
13290 * c-opts.c (c_common_post_options): Fix a typo in comments.
13291
d0ea0759
SE
132922009-01-22 Steve Ellcey <sje@cup.hp.com>
13293
13294 PR middle-end/38615
13295 * gimplify.c (gimplify_init_constructor): Fix promotion of const
13296 variables to static.
13297 * doc/invoke.texi (-fmerge-all-constants): Update description.
13298
87673f84
UB
132992009-01-22 Uros Bizjak <ubizjak@gmail.com>
13300
13301 PR target/38931
13302 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
13303 (*movdi_1_rex64): Use type "mmx" for alternative 5.
13304
96339268
RE
133052009-01-22 Richard Earnshaw <rearnsha@arm.com>
13306
13307 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
13308 a word boundary.
13309 (LOCAL_ALIGNMENT): Similarly.
13310
442dc742 133112009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 13312 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
13313
13314 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
13315 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
13316 * config/arm/arm-tune.md: Regenerate.
13317 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
13318 -march=iwmmxt2.
13319
9b34732e
MS
133202009-01-22 Mark Shinwell <shinwell@codesourcery.com>
13321
13322 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
13323 version number to five.
13324
03c2a308
DS
133252009-01-22 Dodji Seketeli <dodji@redhat.com>
13326
13327 PR c++/38930
ba20e309 13328 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
13329 * c-common.c (set_underlying_type): Likewise.
13330 (is_typedef_decl ): Likewise
13331 * tree.h: Likewise
13332 (set_underlying_type): Likewise.
13333 (is_typedef_type): Likewise.
13334
1240d76e
VM
133352009-01-21 Vladimir Makarov <vmakarov@redhat.com>
13336
13337 PR middle-end/38587
13338 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
13339 crossing setjmps.
13340
b8a1087d
DK
133412009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
13342
13343 PR bootstrap/37660
13344 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
13345 (LIBGCC_SPEC): Don't define.
13346 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
13347
435da628
UB
133482009-01-21 Uros Bizjak <ubizjak@gmail.com>
13349
13350 PR rtl-optimization/38879
13351 * alias.c (base_alias_check): Unaligned access via AND address can
13352 alias all surrounding object types except those with sizes equal
13353 or wider than the size of unaligned access.
13354
d597b3ce
DS
133552009-01-21 Dodji Seketeli <dodji@redhat.com>
13356
13357 PR c++/26693
ba20e309 13358 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 13359 * c-common.c (set_underlying_type): ... here.
435da628 13360 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
13361 the newly created typedef variant type.
13362 (is_typedef_decl ): New entry point.
13363 * tree.h: Added a new member member_types_needing_access_check to
13364 struct tree_decl_non_common.
13365 (set_underlying_type): New entry point.
13366 (is_typedef_type): Likewise.
13367
71a6fe66
BM
133682009-01-21 Bingfeng Mei <bmei@broadcom.com>
13369
13370 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
13371 Check whether two instructions have memory references that
13372 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
13373 are helper functions for traversing.
13374 * alias.h (insn_alias_sets_confilict_p): New prototypes.
13375 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
13376 not to draw dependency edge for instructions with non-conflicting
13377 alias sets.
13378
5a248274
JM
133792009-01-20 Joseph Myers <joseph@codesourcery.com>
13380
13381 PR other/38758
6b67572e
UB
13382 * longlong.h: Update copyright years. Use soft-fp license notice.
13383 Sync __clz_tab declaration with glibc.
5a248274 13384
4b84f3de
SE
133852009-01-20 Steve Ellcey <sje@cup.hp.com>
13386
13387 PR target/30687
13388 * doc/extend.texi (syscall_linkage): New.
13389 (version_id): Modify.
13390
37348bf1 133912009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 13392 Richard Guenther <rguenther@suse.de>
37348bf1
AP
13393
13394 PR tree-optimization/38747
13395 PR tree-optimization/38748
13396 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
13397 conversion if the base address is an indirect reference and the
13398 aliasing sets could cause issues.
13399
d0a58904
SP
134002009-01-20 Sebastian Pop <sebastian.pop@amd.com>
13401
2ba9daa7 13402 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
13403 explaining why these options are not documented.
13404
71e7afb2
SP
134052009-01-20 Sebastian Pop <sebastian.pop@amd.com>
13406
13407 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
13408 gimple_call_lhs is NULL.
13409
38432148 134102009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
13411
13412 PR target/38868
13413 * emit-rtl.c (adjust_address_1): Make sure memref is never
13414 overwritten.
13415
cbb8dee3
BE
134162009-01-20 Ben Elliston <bje@au.ibm.com>
13417
13418 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 13419 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
13420 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
13421 const qualifier from arg 2.
13422
72c66596
IS
134232009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
13424
435da628 13425 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 13426
f68211cd
VM
134272009-01-19 Vladimir Makarov <vmakarov@redhat.com>
13428
13429 PR c/38869
13430 * rtl.h (reinit_regs): New prototype.
13431 * regclass.c: Include ira.h.
13432 (reinit_regs): New.
13433 * Makefile.in (regclass.o): Add ira.h.
13434 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
13435
6e4f1168
L
134362009-01-18 H.J. Lu <hongjiu.lu@intel.com>
13437
13438 PR target/38736
13439 * c-common.c (handle_aligned_attribute): Use
13440 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
13441 default alignment value.
13442
13443 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
13444
13445 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
13446 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
13447
13448 * doc/extend.texi: Update __attribute__ ((aligned)). Document
13449 __BIGGEST_ALIGNMENT__.
13450
13451 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
13452
890065bf
RG
134532009-01-18 Richard Guenther <rguenther@suse.de>
13454
13455 PR tree-optimization/38819
13456 * tree-flow.h (operation_could_trap_helper_p): Declare.
13457 * tree-eh.c (operation_could_trap_helper_p): Export.
13458 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
13459 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
13460 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
13461 are about to insert a possibly trapping instruction and fail
13462 in this case.
13463
a729d731
AS
134642009-01-18 Andreas Schwab <schwab@suse.de>
13465
13466 * doc/install.texi (Configuration): Remove obsolete paragraph
13467 about use of --with-gnu-ld with --with-gnu-as.
13468
a640c13b
KH
134692009-01-18 Kazu Hirata <kazu@codesourcery.com>
13470
13471 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
13472 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
13473 Follow spelling conventions.
13474
dba2cc0c
BE
134752009-01-18 Ben Elliston <bje@au.ibm.com>
13476
13477 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
13478 C++ warning about implicit conversion from void * to struct
13479 bitmap_head_def *.
13480 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 13481 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 13482
2207a498
DK
134832009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
13484
13485 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
13486
8137e465
SP
134872009-01-17 Sebastian Pop <sebastian.pop@amd.com>
13488 Tobias Grosser <tobi.grosser@amd.com>
13489
13490 * graphite.c (graphite_trans_scop_block): Do not block single
13491 nested loops.
13492
5be1c58c
AO
134932009-01-16 Alexandre Oliva <aoliva@redhat.com>
13494
13495 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
13496 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
13497 test with assertion.
13498
786ce82d
RG
134992009-01-16 Richard Guenther <rguenther@suse.de>
13500
13501 PR tree-optimization/38835
13502 PR middle-end/36227
13503 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
13504 and INT + PTR -> (INT)(PTR p+ INT) folding.
13505 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
13506
c1cb09ad
AN
135072009-01-16 Adam Nemet <anemet@caviumnetworks.com>
13508
13509 PR target/38554
13510 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
13511 the subreg from a lowpart subreg if it is also casting the value.
13512
bcab4e19
SP
135132009-01-16 Sebastian Pop <sebastian.pop@amd.com>
13514 Tobias Grosser <tobi.grosser@amd.com>
13515
13516 * graphite.c (compare_prefix_loops): New.
13517 (build_scop_canonical_schedules): Rewritten.
13518 (graphite_transform_loops): Move build_scop_canonical_schedules
13519 after build_scop_iteration_domain.
13520
0b040072
SP
135212009-01-16 Sebastian Pop <sebastian.pop@amd.com>
13522 Tobias Grosser <tobi.grosser@amd.com>
13523
2ba9daa7 13524 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
13525 the dimension of the iteration domain. Do copy the domain
13526 only when it exists.
13527 (build_scop_conditions_1): Do not call add_conditions_to_domain.
13528 (add_conditions_to_constraints): New.
13529 (can_generate_code_stmt, can_generate_code): Removed.
13530 (gloog): Do not call can_generate_code.
13531 (graphite_transform_loops): Call add_conditions_to_constraints
13532 after building the iteration domain.
13533
56c6a499
JJ
135342009-01-16 Jakub Jelinek <jakub@redhat.com>
13535
13536 PR tree-optimization/38789
13537 * tree-ssa-threadedge.c
13538 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
13539 __builtin_constant_p.
13540
c95b2534 135412009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
13542
13543 * dce.c (delete_unmarked_insns): Reversed the order that insns are
13544 examined before deleting them.
2ba9daa7 13545
c433cb14
RE
135462009-01-16 Richard Earnshaw <rearnsha@arm.com>
13547
13548 * function.c (aggregate_value_p): Correctly extract the function
13549 type from CALL_EXPR_FN lookup.
13550
c95b2534 135512009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
13552
13553 * config/picochip/picochip.c (picochip_override_options): Revert
13554 CFI asm flag disable commited previously.
13555
c77bb78f
SP
135562009-01-15 Sebastian Pop <sebastian.pop@amd.com>
13557 Tobias Grosser <tobi.grosser@amd.com>
13558 Jan Sjodin <jan.sjodin@amd.com>
13559
13560 * graphite.c (scan_tree_for_params): On substractions negate
13561 all the coefficients of the term.
13562 (clast_to_gcc_expression_red): New. Handle reduction expressions
13563 of more than two operands.
13564 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
13565 (get_vdef_before_scop): Handle also the case of default definitions.
13566
574af2d6
RS
135672009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
13568
13569 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
13570 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
13571 Also use them when walking CALL_INSN_FUNCTION_USAGE.
13572
e939805b
L
135732009-01-15 H.J. Lu <hongjiu.lu@intel.com>
13574 Joey Ye <joey.ye@intel.com>
13575
13576 PR middle-end/37843
13577 * cfgexpand.c (expand_stack_alignment): Don't update stack
13578 boundary nor check incoming stack boundary here.
13579 (gimple_expand_cfg): Update stack boundary and check incoming
13580 stack boundary here.
13581
c95b2534 135822009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 13583
435da628 13584 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 13585
0196c95e
JJ
135862009-01-14 Jakub Jelinek <jakub@redhat.com>
13587
13588 PR rtl-optimization/38245
13589 * calls.c (expand_call): Add stack arguments to
13590 CALL_INSN_FUNCTION_USAGE even for pure calls (when
13591 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
13592 in regs and partially in memory or BLKmode arguments.
13593 (emit_library_call_value_1): Add stack arguments to
13594 CALL_INSN_FUNCTION_USAGE even for pure calls (when
13595 ACCUMULATE_OUTGOING_ARGS).
13596 * dce.c: Include tm_p.h.
13597 (find_call_stack_args): New function.
13598 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
13599 argument.
13600 (mark_insn): Call find_call_stack_args for CALL_Ps.
13601 (prescan_insns_for_dce): Walk insns backwards in bb rather than
13602 forwards. Allocate and free arg_stores bitmap if needed, pass it
13603 down to deletable_insn_p, don't mark stores set in arg_stores
13604 bitmap, clear the bitmap at the beginning of each bb.
13605 * Makefile.in (dce.o): Depend on $(TM_P_H).
13606
6df6bcfa
MM
136072009-01-14 Michael Meissner <gnu@the-meissners.org>
13608
13609 PR target/22599
435da628
UB
13610 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
13611 to make sure the insn is a conditional test (bug 22599). Reformat a
13612 few long lines.
6df6bcfa 13613
765ec70c
SP
136142009-01-14 Sebastian Pop <sebastian.pop@amd.com>
13615
13616 PR middle-end/38431
13617 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
13618 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
13619 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 13620 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
13621 scops have been code generated.
13622
7de2b688
BS
136232009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
13624 * doc/gty.texi (Invoking the garbage collector): Added new node
13625 and section documenting ggc_collect.
13626
10bd6c5c
RG
136272009-01-14 Richard Guenther <rguenther@suse.de>
13628
13629 PR tree-optimization/38826
13630 PR middle-end/38477
13631 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
13632 initialization notes only if we actually emitted a warning.
13633 (intra_create_variable_infos): Add constraints for a result decl
13634 that is passed by hidden reference.
13635 (build_pred_graph): Mark all related variables non-direct on
13636 address-taking.
13637
9c7c70ee
NC
136382009-01-14 Nick Clifton <nickc@redhat.com>
13639
13640 * ira-conflicts.c: Include addresses.h for the definition of
13641 base_reg_class.
435da628
UB
13642 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
13643 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 13644
cf0c2a60
VM
136452009-01-13 Vladimir Makarov <vmakarov@redhat.com>
13646
13647 PR target/38811
13648 * Makefile.in (ira-lives.o): Add except.h.
13649
13650 * ira-lives.c: Include except.h.
13651 (process_bb_node_lives): Process can_throw_internal.
13652
d3302fd3
JJ
136532009-01-13 Jakub Jelinek <jakub@redhat.com>
13654
13655 PR rtl-optimization/38774
13656 * combine.c (simplify_set): When undoing cc_use change, don't do
13657 PUT_CODE on the newly created comparison, but instead put back the
13658 old comparison.
13659
7ab23fd0
JM
136602009-01-13 Joseph Myers <joseph@codesourcery.com>
13661
13662 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
13663 values. Remove duplicate arm8 entry.
13664
f9344488
SP
136652009-01-13 Sebastian Pop <sebastian.pop@amd.com>
13666
13667 PR tree-optimization/38786
13668 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
13669 the SSA_NAME case of expand_scalar_variables_expr.
13670 Set the type of an expression to the type of its assign statement.
13671 (expand_scalar_variables_expr): Also gather the scalar computation
13672 used to index the memory access. Do not pass loop_p.
13673 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
13674 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
13675 the gimple_stmt_iterator where it inserts new code.
13676 Do not pass loop_p.
f9344488
SP
13677 (copy_bb_and_scalar_dependences): Do not pass loop_p.
13678 (translate_clast): Update call to copy_bb_and_scalar_dependences.
13679
2d8bb84d
SP
136802009-01-13 Sebastian Pop <sebastian.pop@amd.com>
13681
13682 * graphite.h (debug_value): Removed.
13683 * graphite.c (debug_value): Removed.
13684
ff128632
RE
136852009-01-13 Richard Earnshaw <rearnsha@arm.com>
13686
435da628
UB
13687 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
13688 ldrd/strd with two 32-bit instructions.
ff128632 13689
d5a0a47b
RE
136902009-01-13 Richard Earnshaw <rearnsha@arm.com>
13691
435da628
UB
13692 * config/arm/arm.c (struct processors): Pass for speed down into
13693 cost helper functions.
d5a0a47b
RE
13694 (const_ok_for_op): Handle COMPARE and inequality nodes.
13695 (arm_rtx_costs_1): Rewrite.
13696 (arm_size_rtx_costs): Update prototype.
13697 (arm_rtx_costs): Pass speed down to helper functions.
13698 (arm_slowmul_rtx_costs): Rework cost calculations.
13699 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
13700 (arm_9e_rtx_costs): Likewise.
13701
26d5bf5b
UB
137022009-01-13 Uros Bizjak <ubizjak@gmail.com>
13703
13704 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 13705 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
13706 (alpha_legitimize_address): Do not split local symbols wider than
13707 UNITS_PER_WORD into HIGH/LO_SUM parts.
13708
5d14e3d5
DS
137092009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
13710
13711 PR bootstrap/38580
13712 * gcc.c (process_command): Replace call to execvp with calls
13713 to pex_one and exit.
13714
33faafca
AS
137152009-01-03 Anatoly Sokolov <aesok@post.ru>
13716
13717 PR target/29141
13718 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
13719 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
13720 variant for devices with 3-byte PC.
ba20e309 13721 (__tablejump_elpm__): New.
33faafca 13722
634b5df5
JJ
137232009-01-12 Jakub Jelinek <jakub@redhat.com>
13724
13725 PR c/32041
13726 * c-parser.c (c_parser_postfix_expression): Allow `->' in
13727 offsetof member-designator, handle it as `[0].'.
13728
2842bb86
JDA
137292009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13730
13731 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
13732 function when not using named sections on targets with named sections
13733 if branch distance is less than 262132.
13734
76ee70f6
RE
137352009-01-12 Richard Earnshaw <rearnsha@arm.com>
13736
13737 * combine.c (combine_instructions): Recompute
13738 optimize_this_for_speed_p for each BB in the main combine loop.
13739
f56e675d
TB
137402009-01-12 Tomas Bily <tbily@suse.cz>
13741
13742 PR middlend/38385
26d5bf5b
UB
13743 * tree-loop-distribution.c (prop_phis): New function.
13744 (generate_builtin): Call prop_phis.
13745 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
f56e675d 13746
c2152239
JJ
137472009-01-12 Jakub Jelinek <jakub@redhat.com>
13748
13749 PR tree-optimization/38807
13750 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
13751 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
13752
0e510b3e
AN
137532009-01-11 Adam Nemet <anemet@caviumnetworks.com>
13754
13755 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
13756 subreg of op0 to the original op0.
13757
c95b2534 137582009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
13759
13760 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 13761
53a7ff9a
MS
137622009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
13763
13764 PR debug/7055
60839f5d 13765 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
13766 starting with digits.
13767
b3a796bc
JJ
137682009-01-10 Jakub Jelinek <jakub@redhat.com>
13769
13770 PR target/38695
13771 * config/arm/arm.c (arm_is_long_call_p): Don't call
13772 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
13773
b21b850e
SB
137742009-01-09 Steven Bosscher <steven@gcc.gnu.org>
13775
13776 * regrename.c (regrename_optimize): Fix dumping.
13777 (find_oldest_value_reg): Preserve REG_POINTER.
13778 (copy_hardreg_forward_1): Likewise.
13779
e0e10d3a
DN
137802009-01-09 Diego Novillo <dnovillo@google.com>
13781
bf9b2cc9 13782 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
13783 the restrictions on its use.
13784 (gimple_uid): Tidy.
13785 (gimple_set_uid): Tidy.
13786
c9da2ae8
JJ
137872009-01-09 Jakub Jelinek <jakub@redhat.com>
13788
13789 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
13790 zero guard even if align_bytes != 0 and count is smaller than
13791 size_needed.
13792
38432148 137932009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
13794
13795 PR rtl-optimization/38495
26d5bf5b 13796 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
13797 (add_range_and_copies_from_move_list): Print all added ranges.
13798 Add ranges to memory optimized destination.
13799
260fda3d
JJ
138002009-01-09 Jakub Jelinek <jakub@redhat.com>
13801
6f6278ad
JJ
13802 PR target/38686
13803 PR target/38708
13804 * config/i386/i386.c (override_options): Reject
13805 -mstringop-strategy=rep_8byte with -m32.
13806 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
13807 to 1. Do count comparison against epilogue_size_needed at compile
13808 time even when count_exp was constant forced into register. For
13809 size_needed don't jump to epilogue, instead just avoid aligning
13810 and invoke the body algorithm. If need_zero_guard, add zero guard
13811 even if count is non-zero, but smaller than size_needed + number of
13812 bytes that could be stored for alignment.
13813 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
13814 to 1. If need_zero_guard, add zero guard even if count is non-zero,
13815 but smaller than size_needed + number of bytes that could be stored
13816 for alignment. Compare size_needed with epilogue_size_needed instead
13817 of desired_align - align, don't adjust size_needed, pass
13818 epilogue_size_needed to the epilogue expanders.
13819
260fda3d 13820 PR c/35742
26d5bf5b 13821 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 13822
67b846fa
JDA
138232009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13824
13825 * pa.c (last_address): Change to unsigned.
13826 (update_total_code_bytes): Change argument to unsigned. Don't
13827 check if insn addresses are set.
13828 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
13829 addresses are not set.
13830 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
13831
91c82473
NC
138322009-01-09 Nick Clifton <nickc@redhat.com>
13833
13834 * config/sh/symbian.c: Replace uses of DECL_INLINE with
13835 DECL_DECLARED_INLINE_P.
13836
4017e262
JJ
138372009-01-09 Jakub Jelinek <jakub@redhat.com>
13838
0a49e5c2
JJ
13839 PR middle-end/38347
13840 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
13841 GET_MODE (op0) in operand_subword_force calls.
13842
4017e262
JJ
13843 PR middle-end/38771
13844 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
13845 fold_convert arg0 operands to TREE_TYPE (op0) first.
13846
7cd06356
VM
138472009-01-08 Vladimir Makarov <vmakarov@redhat.com>
13848
13849 * params.def (ira-max-conflict-table-size): Decrease default value
13850 to 1000.
13851
96867bbd
JJ
138522009-01-08 Jakub Jelinek <jakub@redhat.com>
13853
13854 PR tree-optimization/37031
13855 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
13856 on parameter_set.
13857 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
13858 allocate it using gc instead of heap, use VEC_quick_push instead of
13859 VEC_safe_push.
13860 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
13861 instead of heap, use VEC_quick_push instead of VEC_safe_push.
13862 * tree-data-ref.h (struct access_matrix): Change matrix to gc
13863 allocated vector from heap allocated.
13864 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
13865 * tree-loop-linear.c (linear_transform_loops): Allocate nest
13866 vector only after perfect_loop_nest_depth call.
13867
68f61c3d
SP
138682009-01-08 Sebastian Pop <sebastian.pop@amd.com>
13869 Jan Sjodin <jan.sjodin@amd.com>
13870
13871 PR tree-optimization/38559
13872 * graphite.c (debug_value, copy_constraint,
13873 swap_constraint_variables, scale_constraint_variable, ): New.
13874 (get_lower_bound, get_upper_bound): Removed.
13875 (graphite_trans_bb_strip_mine): Clean up this code that works
13876 only for constant number of iterations. Fully copy upper and
13877 lower bound constraints, not only the constant part of them.
13878 * graphite.h (debug_value): Declared.
13879
82567e33
IR
138802009-01-08 Ira Rosen <irar@il.ibm.com>
13881
13882 PR tree-optimization/37194
13883 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 13884 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
13885 outside cost in case of known number of iterations.
13886
7da13f1d
NF
138872009-01-07 Nathan Froyd <froydnj@codesourcery.com>
13888 Alan Modra <amodra@bigpond.net.au>
13889
13890 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
13891 non-word-aligned REG+CONST addressing.
13892
c0f64575
UB
138932009-01-07 Uros Bizjak <ubizjak@gmail.com>
13894
13895 PR target/38706
13896 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
13897 free_after_compilation when outputting a thunk.
13898 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
13899 Do not call free_after_compilation here.
13900
301b6a4e
UB
139012009-01-07 Uros Bizjak <ubizjak@gmail.com>
13902
13903 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
13904 (ix86_valid_target_attribute_inner_p): Ditto.
13905
6a114766
JS
139062009-01-07 Jan Sjodin <jan.sjodin@amd.com>
13907
13908 PR tree-optimization/38492
13909 PR tree-optimization/38498
13910 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
13911 * tree-chrec.h (scev_is_linear_expression): Declared.
13912 * graphite.c (graphite_cannot_represent_loop_niter): New.
13913 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
13914 (graphite_loop_normal_form): Use gcc_assert.
13915 (scan_tree_for_params): Use CASE_CONVERT.
13916 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
13917 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
13918 Use gcc_assert. Discard scops that contain unhandled cases.
13919 (build_scop_conditions): Return a boolean status for unhandled cases.
13920 (strip_mine_profitable_p): Print the loop number, not its depth.
13921 (is_interchange_valid): Pass the depth of the loop nest, don't
13922 recompute it wrongly.
13923 (graphite_trans_bb_block): Same.
13924 (graphite_trans_bb_block): Print tentative of loop blocking.
13925 (graphite_trans_scop_block): Do not print that the loop has been
13926 blocked.
13927 (graphite_transform_loops): Do not handle scops that contain condition
13928 scalar phi nodes.
13929
65b82caa
L
139302009-01-07 H.J. Lu <hongjiu.lu@intel.com>
13931
13932 AVX Programming Reference (December, 2008)
13933 * config/i386/avxintrin.h (_mm256_stream_si256): New.
13934 (_mm256_stream_pd): Likewise.
13935 (_mm256_stream_ps): Likewise.
13936
13937 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
13938 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
13939 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
13940 (bdesc_special_args): Add __builtin_ia32_movntdq256,
13941 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
13942 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
13943 (ix86_expand_special_args_builtin): Likewise.
13944
13945 * config/i386/sse.md (AVXMODEDI): New.
13946 (avx_movnt<mode>): Likewise.
13947 (avx_movnt<mode>): Likewise.
13948 (<sse>_movnt<mode>): Remove AVX support.
13949 (sse2_movntv2di): Likewise.
13950
cef158f9
RG
139512009-01-07 Richard Guenther <rguenther@suse.de>
13952
13953 PR middle-end/38751
13954 * fold-const.c (extract_muldiv): Remove obsolete comment.
13955 (fold_plusminus_mult_expr): Undo MINUS_EXPR
13956 to PLUS_EXPR canonicalization for the canonicalization.
13957
246cb5be
GP
139582009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
13959
13960 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
13961 hosted cross-compilers generating less efficient code.
13962
84b9b872
RS
139632009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
13964
13965 * function.h (rtl_data): Add a dbr_scheduled_p field.
13966 * reorg.c (dbr_schedule): Set it.
13967 (gate_handle_delay_slots): Check it.
13968 * config/mips/mips.c (mips_base_delayed_branch): Delete.
13969 (mips_reorg): Check flag_delayed_branch instead of
13970 mips_base_delayed_branch.
13971 (mips_override_options): Don't set mips_base_delayed_branch
13972 or flag_delayed_branch.
13973
ace984c8
RS
139742009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
13975
13976 PR rtl-optimization/38426.
13977 * ira.c (ira): Set current_function_is_leaf earlier.
13978
7ad7809b
JJ
139792009-01-06 Jakub Jelinek <jakub@redhat.com>
13980
13981 PR rtl-optimization/38722
13982 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
13983 too early, only set a flag and modify after last possible
13984 undo_all point.
13985
c52ec948
JJ
139862009-01-06 Janis Johnson <janis187@us.ibm.com>
13987
13988 PR c/34252
13989 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
13990 * real.c (decimal_single_format): Correct values of emin and emax.
13991 (decimal_double_format): Ditto.
13992 (decimal_quad_format): Ditto.
13993 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
13994 computation of DECnn_MIN and DECnn_MAX for corrected values of
13995 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
13996 __DECnn_MIN__, and adjust its computation for the corrected value
13997 of emin.
13998
300240e1
JH
139992009-01-06 Jan Hubicka <jh@suse.cz>
14000
14001 PR target/38744
435da628 14002 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 14003
271c069e
GP
140042009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
14005
14006 * doc/contrib.texi (Contributors): Slightly adjust the end note.
14007 Add Robert Clark to the list of testers.
14008
64e4c301 140092009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 14010 Kai Tietz <kai.tietz@onevision.com>
64e4c301 14011
435da628
UB
14012 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
14013 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 14014
7650b83e 140152009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 14016 Kai Tietz <kai.tietz@onevision.com>
7650b83e 14017
435da628
UB
14018 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
14019 for w64 ABI.
14020 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
14021 (ix86_nsaved_regs): Count only general purpose regs.
14022 (ix86_nsaved_sseregs): New.
14023 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
14024 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
14025 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
14026 general purpose regs.
7650b83e
JH
14027 (ix86_emit_save_sse_regs_using_mov): New.
14028 (ix86_expand_prologue): Save SSE regs if needed.
14029 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
14030 (ix86_emit_restore_sse_regs_using_mov): New.
14031 (ix86_expand_epilogue): Save SSE regs if needed.
14032
9aa5c1b2 140332009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 14034 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 14035
435da628
UB
14036 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
14037 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
14038 functions when accumulate outgoing args is off.
9aa5c1b2 14039
f7556aae
L
140402009-01-06 H.J. Lu <hongjiu.lu@intel.com>
14041
14042 PR bootstrap/38742
14043 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
14044 before using pseudos_have_intersected_live_ranges_p.
14045
14046 * ira-int.h (ira_assert): Always define.
14047
e47b7d04
L
140482009-01-06 H.J. Lu <hongjiu.lu@intel.com>
14049
14050 AVX Programming Reference (December, 2008)
14051 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
14052 (_mm256_permute2_pd): Likewise.
14053 (_mm_permute2_ps): Likewise.
14054 (_mm256_permute2_ps): Likewise.
14055 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
14056 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
14057
14058 * config/i386/i386.c (ix86_builtins): Remove
14059 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
14060 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
14061 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
14062 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
14063 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
14064 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
14065 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
14066 __builtin_ia32_vpermil2ps256.
14067 (ix86_init_mmx_sse_builtins): Updated.
14068 (ix86_expand_args_builtin): Likewise.
14069
44b86471
JDA
140702009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14071
e47b7d04
L
14072 * pa.c (output_call): Relocate non-jump insns in the delay slot of
14073 long absolute calls when generating PA 2.0 code.
44b86471 14074
311aab06
VM
140752009-01-05 Vladimir Makarov <vmakarov@redhat.com>
14076
14077 PR rtl-optimization/38583
14078 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
14079
14080 * params.def (ira-max-conflict-table-size): New.
14081
14082 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 14083
311aab06 14084 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 14085
311aab06
VM
14086 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
14087 table. Report this. Return result of building.
14088 (ira_build_conflicts): Use ira_conflicts_p. Check result of
14089 building conflict table.
14090
301b6a4e 14091 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 14092 (ira_color): Use ira_conflicts_p.
2ba9daa7 14093
311aab06
VM
14094 * global.c: Include ira.h.
14095 (pseudo_for_reload_consideration_p, build_insn_chain): Use
14096 ira_conflicts_p.
14097
14098 * Makefile.in (global.o): Add ira.h.
2ba9daa7 14099
311aab06
VM
14100 * ira-build.c (mark_all_loops_for_removal,
14101 propagate_some_info_from_allocno): New.
14102 (remove_unnecessary_allocnos): Call
14103 propagate_some_info_from_allocno.
14104 (remove_low_level_allocnos): New.
14105 (remove_unnecessary_regions): Add parameter. Call
14106 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
14107 parameter to remove_unnecessary_regions.
14108 (ira_build): Remove all regions but root if the conflict table was
14109 not built. Update conflict hard regs for allocnos crossing calls.
14110
14111 * ira.c (ira_conflicts_p): New global.
14112 (ira): Define and use ira_conflicts_p.
14113
14114 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
14115 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 14116 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 14117
5641785f
BE
141182009-01-06 Ben Elliston <bje@au.ibm.com>
14119
14120 * gengtype-lex.l (YY_NO_INPUT): Define.
14121
e4e5261f
AP
141222009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
14123
14124 PR c/34911
5641785f
BE
14125 * c-common.c (handle_vector_size_attribute): Also reject
14126 BOOLEAN_TYPE types.
e4e5261f 14127
7b10257f
SP
141282009-01-05 Sebastian Pop <sebastian.pop@amd.com>
14129
14130 PR tree-optimization/38492
14131 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
14132 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
14133 rename_map_elt_info, eq_rename_map_elts,
14134 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
14135 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
14136 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
14137 (sese_build_livein_liveouts): New.
14138 (new_sese, free_sese): New.
14139 (new_scop): Call new_sese.
14140 (free_scop): Call free_sese.
14141 (rename_variables_from_edge, rename_phis_end_scop): Removed.
14142 (register_old_new_names): Renamed register_old_and_new_names.
14143 (register_scop_liveout_renames, add_loop_exit_phis,
14144 insert_loop_close_phis, struct igp,
14145 default_liveout_before_guard, add_guard_exit_phis,
14146 insert_guard_phis, copy_renames): New.
14147 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
14148 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
14149 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
14150 (scop_adjust_phis_for_liveouts): New.
14151 (gloog): Call scop_adjust_phis_for_liveouts.
14152
14153 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 14154 num_ver and livein.
7b10257f
SP
14155 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
14156 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
14157 (struct scop): Added field liveout_renames.
14158 (SCOP_LIVEOUT_RENAMES): New.
14159
9761fcc7
HJ
141602009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
14161
14162 PR tree-optimization/38510
14163 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
14164 (translate_clast): Call recompute_all_dominators before
14165 graphite_verify.
14166 (gloog): Call recompute_all_dominators before graphite_verify.
14167
141682009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 14169 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
14170
14171 PR tree-optimization/38500
14172 * graphite.c (create_sese_edges): Call fix_loop_structure after
14173 splitting blocks.
14174
c95b2534 141752009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
14176
14177 * config.gcc: Add m32r*-*-rtems*.
14178 * config/m32r/rtems.h: New file.
14179
fc0cd180
BE
141802009-01-05 Ben Elliston <bje@au.ibm.com>
14181
14182 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
14183 (.po.pox): Likewise.
14184 (po/gcc.pot): Likewise.
14185
3106d8e5
DM
141862009-01-04 David S. Miller <davem@davemloft.net>
14187
14188 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
14189 (STARTING_FRAME_OFFSET): Always set to zero.
14190
0009b473
RS
141912009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
14192
14193 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
14194 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
14195 fixed-point types, and vectors of the same.
14196
4f24c6d6
RS
141972009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
14198
14199 * config/mips/sync.md (*mb_barrier): Rename to...
14200 (*memory_barrier): ...this.
14201
1df48f5c
JW
142022009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
14203
14204 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 14205 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
14206 and put in alphabetical order. Fix 'target' name and put in order.
14207 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
14208 typos.
14209
1a8c13b3
UB
142102009-01-04 Uros Bizjak <ubizjak@gmail.com>
14211
14212 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
14213 (memory_barrier): Expand as unspec instead of unspec_volatile.
14214 Remove mem:BLK from insn operands. Use Pmode scratch register.
14215 (*memory_barrier): Define as unspec instead of unspec_volatile.
14216 Use (match_dup 0) as input operand.
14217
14218 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
14219 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
14220 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
14221 scratch register. Remove operand 1.
14222 (*stbar): Define as unspec instead of unspec_volatile.
14223 Use (match_dup 0) as input operand, remove (const_int 8).
14224 (*membar): Define as unspec instead of unspec_volatile.
14225 Use (match_dup 0) as input operand, remove input operand 2.
14226
14227 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
14228 (memory_barrier): Expand as unspec instead of unspec_volatile.
14229 Remove mem:BLK from insn operands. Use Pmode scratch register.
14230 (*memory_barrier): Define as unspec instead of unspec_volatile.
14231 Use (match_dup 0) as input operand.
14232
14233 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
14234 Remove mem:BLK from insn operands. Use Pmode scratch register.
14235 Set volatile flag on operand 0.
14236 (*memory_barrier): New insn pattern.
14237
14238 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
14239 insn operands.
14240 (*memory_barrier): Use (match_dup 0) as input operand.
14241
14242 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
14243 Remove mem:BLK from insn operands. Use Pmode scratch register.
14244 Set volatile flag on operand 0.
301b6a4e 14245 (*mb_internal): New insn pattern.
1a8c13b3
UB
14246
14247 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
14248
fb0703f7
SB
142492009-01-04 Steven Bosscher <steven@gcc.gnu.org>
14250
14251 PR middle-end/38586
14252 * function.c (struct temp_slot): Move to the section of the file
14253 that deals with temp slots. Remove field 'address'.
14254 (temp_slot_address_table): New hash table of address -> temp slot.
14255 (struct temp_slot_address_entry): New struct, items for the table.
14256 (temp_slot_address_compute_hash, temp_slot_address_hash,
14257 temp_slot_address_eq, insert_temp_slot_address): Support functions
14258 for the new table.
14259 (find_temp_slot_from_address): Rewrite to use the new hash table.
14260 (remove_unused_temp_slot_addresses): Remove addresses of temp
14261 slots that have been made available.
14262 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
14263 worker function for remove_unused_temp_slot_addresses.
14264 (assign_stack_temp_for_type): Don't clear the temp slot address list.
14265 Add the temp slot address to the address -> temp slot map.
14266 (update_temp_slot_address): Update via insert_temp_slot_address.
14267 (free_temp_slots): Call remove_unused_temp_slot_addresses.
14268 (pop_temp_slots): Likewise.
14269 (init_temp_slots): Allocate the address -> temp slot map, or empty
14270 the map if it is already allocated.
14271 (prepare_function_start): Initialize temp slot processing.
14272
b5a430f3
SB
142732009-01-04 Steven Bosscher <steven@gcc.gnu.org>
14274
14275 PR middle-end/38584
14276 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
14277 Calculate the size of all stack vars assuming no packing of stack
14278 vars will happen, replacing a quadratic algorithm with a linear one.
14279
5d560619
JJ
142802009-01-03 Jakub Jelinek <jakub@redhat.com>
14281
14282 PR target/38707
14283 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
14284 can't be used.
14285
953a7caa
DN
142862009-01-03 Diego Novillo <dnovillo@google.com>
14287
14288 * doc/contrib.texi: Update contributions.
14289
5f26a230
JJ
142902009-01-03 Jakub Jelinek <jakub@redhat.com>
14291
493aa551
JJ
14292 PR c++/38705
14293 * builtins.c (fold_builtin_memory_op): Give up if either operand
14294 is volatile. Set srctype or desttype to non-qualified version
14295 of the other type.
14296
5f26a230
JJ
14297 PR c/38700
14298 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
14299 and FUNCTION_DECLs.
14300
c95b2534 143012009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
14302
14303 PR rtl-optimization/35805
14304 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
14305 problem if fast dce is able to remove any instructions.
14306 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 14307
0b355794
MM
143082009-01-02 Mark Mitchell <mark@codesourcery.com>
14309
14310 PR 33649
14311 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
14312
0cf0d02b
JJ
143132009-01-02 Jakub Jelinek <jakub@redhat.com>
14314
14315 PR middle-end/38690
14316 * tree-flow.h (op_code_prio, op_prio): New prototypes.
14317 * tree-pretty-print.c (op_code_prio): New function.
14318 (op_prio): No longer static. Use op_code_prio.
14319 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
14320 Use op_prio and op_code_prio to determine if () should be
14321 printed around operand(s) or not.
14322
14323 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
14324 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
14325 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
14326 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
14327 pp_character instead of pp_string for single letter printing.
14328
e3606f3b
RS
143292009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
14330
14331 * doc/extend.texi: Fix '#pragma GCC option' typo.
14332
c95b2534 143332009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 14334
a5f061dc
RG
14335 * doc/install.texi (--enable-checking): Mention different
14336 default for stage1.
14337 (--enable-stage1-checking): Document.
00f39bd5 14338
26de0bcb
AP
143392009-01-01 Andrew Pinski <pinskia@gmail.com>
14340
14341 PR middle-end/30142
14342 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
14343 case to be an error.
14344
7a7d8fab
BE
143452009-01-02 Ben Elliston <bje@au.ibm.com>
14346
14347 * config/fp-bit.h (pack_d): Constify argument.
14348 * config/fp-bit.c (makenan): Constify return type. Remove casts.
14349 (isnan): Constify argument.
14350 (isinf): Likewise.
14351 (iszero): Likewise.
14352 (pack_d): Likewise.
14353 (_fpadd_parts): Constify return type.
14354 (_fpmul_parts): Likewise.
14355 (_fpdiv_parts): Likewise.
14356
b295aee2
JJ
143572009-01-01 Jakub Jelinek <jakub@redhat.com>
14358
14359 PR c/36489
14360 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
14361 warn about overwriting initializer with side-effects or
14362 -Woverride-init if !IMPLICIT.
14363 (output_init_element): Likewise. Pass IMPLICIT down to
14364 add_pending_init.
14365 (process_init_element): Add IMPLICIT argument. Pass it down
14366 to output_init_element.
14367 (push_init_element, pop_init_level, set_designator): Adjust
14368 process_init_element callers.
14369 (set_nonincremental_init, set_nonincremental_init_from_string):
14370 Adjust add_pending_init callers.
14371 (output_pending_init_elements): Adjust output_init_element callers.
14372 * c-tree.h (process_init_element): Adjust prototype.
14373 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
14374 process_init_element callers.
ad41bd84
JM
14375
14376\f
14377Copyright (C) 2009 Free Software Foundation, Inc.
14378
14379Copying and distribution of this file, with or without modification,
14380are permitted in any medium without royalty provided the copyright
14381notice and this notice are preserved.