]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
Daily bump.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
e63d4106
RE
12009-06-04 Richard Earnshaw <rearnsha@arm.com>
2
3 PR target/10242
4 * arm.md (arm_addsi3): Don't try to split an add with an
5 eliminable register until after reload has completed.
6
6bc7bc14
ILT
72009-06-03 Ian Lance Taylor <iant@google.com>
8
9 * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
10 * genattrtab.c (write_length_unit_log): Likewise.
11 * genchecksum.c (dosum): Likewise.
12 * gengtype.c (write_rtx_next): Likewise.
13 (finish_root_table, write_roots): Likewise.
14 * gimple.c (gimple_ops_offset_): Likewise.
15 * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
16 * config/arc/arc.c (arc_attribute_table): Likewise.
17 * config/arm/arm.c (arm_attribute_table): Likewise.
18 * config/avr/avr.c (avr_attribute_table): Likewise.
19 * config/crx/crx.c (crx_attribute_table): Likewise.
20 * config/m32r/m32r.c (m32r_attribute_table): Likewise.
21 * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
22 * config/mcore/mcore.c (mcore_attribute_table): Likewise.
23 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
24 * config/sh/sh.c (sh_attribute_table): Likewise.
25 * config/sparc/sparc.c (sparc_attribute_table): Likewise.
26 * config/spu/spu.c (spu_attribute_table): Likewise.
27 * config/v850/v850.c (v850_attribute_table): Likewise.
28
29 * config/alpha/alpha.c (vms_attribute_table): Make static.
30 * config/bfin/bfin.c (bfin_attribute_table): Likewise.
31 * config/h8300/h8300.c (h8300_attribute_table): Likewise.
32 * config/mips/mips.c (mips_attribute_table): Likewise.
33
34 * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
35 $(SYSTEM_H).
36 (cc1-checksum.o): Likewise.
37
19d892fd
SE
382009-06-03 Steve Ellcey <sje@cup.hp.com>
39
40 * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
41
679f3354
JJ
422009-06-03 Jakub Jelinek <jakub@redhat.com>
43
ff35822b
JJ
44 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
45 insn if it is changing sp. Use gen_add3_insn instead of
46 conditionally gen_addsi3 and gen_adddi3.
47 (offset_below_red_zone_p): New static inline function.
48 (rs6000_emit_epilogue): Emit needed epilogue unwind info.
49 Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
50 * config/rs6000/ppc-asm.h: Include auto-host.h.
51 (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
52 CFI_RESTORE): Define.
53 * config/rs6000/crtresxgpr.asm: Add unwind info.
54 * config/rs6000/crtresxfpr.asm: Likewise.
55 * config/rs6000/crtresgpr.asm: Likewise.
56 * config/rs6000/crtresfpr.asm: Likewise.
57 * config/rs6000/crtsavgpr.asm: Likewise.
58 * config/rs6000/crtsavfpr.asm: Likewise.
59
679f3354
JJ
60 * dwarf2out.c (output_cfi_directive): Pass 1 instead of
61 0 to second argument of DWARF2_FRAME_REG_OUT macros.
62
2e94c12d
JB
632009-06-03 Julian Brown <julian@codesourcery.com>
64
65 * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
66 words or less (including TImode) in core registers.
67
3111cce0
RG
682009-06-03 Richard Guenther <rguenther@suse.de>
69
70 PR middle-end/40328
71 * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
72
5e1b50f6
AB
732009-06-03 Andrey Belevantsev <abel@ispras.ru>
74
75 * statistics.c (statistics_counter_event): Do not record event
76 in pass dump if its number == -1.
77 (curr_statistics_hash): Add assert that we never get passes
78 with static number == -1.
79
6f11d690
RG
802009-06-03 Richard Guenther <rguenther@suse.de>
81 Andrey Belevantsev <abel@ispras.ru>
82
83 * cfgexpand.c (discover_nonconstant_array_refs_r): Make only
84 non-BLKmode arrays addressable.
85
88961471
MK
862009-06-03 Maxim Kuvyrkov <maxim@codesourcery.com>
87
88 * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
89 * config/m68k/m68k.h: ... here.
90 * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
91 m68k and fido.
92
9961eb45
MJ
932009-06-03 Martin Jambor <mjambor@suse.cz>
94
95 PR tree-optimization/40323
96 * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
97 assignment.
98
2f2c62a0
RG
992009-06-03 Richard Guenther <rguenther@suse.de>
100
101 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
102 consistently.
103
d6ced3b7
SZ
1042009-06-03 Shujing Zhao <pearly.zhao@oracle.com>
105
106 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
107 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
108 JUMP_TABLE_DATA_P where applicable.
109 * config/sh/sh.c: Ditto.
110 * config/sh/sh.h: Ditto.
111 * config/sh/sh.md: Ditto.
112 * config/sh/symbian.c: Ditto.
113
f3afc8a7
UB
1142009-06-03 Uros Bizjak <ubizjak@gmail.com>
115
116 * config/i386/driver-i386.c (describe_cache): Optimize
117 concatenation of strings. Use snprintf instead of sprintf.
118 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native
119 target when not compiling with GCC.
120
1964788a
KK
1212009-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
122
123 * config/sh/sh.c: Revert last change.
124 (sh_expand_epilogue): Emit a blockage insn before the frame
125 pointer adjustment unconditionally.
126
8633c315
RS
1272009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
128
129 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
130 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
131 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
132 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
133 to COLLECT_GCC_OPTIONS.
134
781a1758
RS
1352009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
136
137 * collect2.c (target_system_root): New variable.
138 (main): Handle --sysroot=.
139 (ignore_library): Strip the sysroot from the library path.
140
dfb636dc
RS
1412009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
142
143 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
144 (collect2.o): Depend on collect2-aix.h.
145 (collect2-aix.o): New rule.
146 * collect2-aix.h: New file.
147 * collect2-aix.c: Likewise.
148 * collect2.c: Include collect2-aix.h. Don't undefine
149 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
150 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
151 Use TARGET_AIX_VERSION instead of _AIX51.
152 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
153 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
154 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
155 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
156 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
157
51136ae8
RS
1582009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
159
160 * collect2.c (ignore_library): Avoid premature post-increment
161 and null deference.
162
7f142d33
RS
1632009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
164
165 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
166 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
167 !CROSS_DIRECTORY_STRUCTURE alternative and use it for
168 CROSS_DIRECTORY_STRUCTURE too.
169 (LINK_LIBG_SPEC): Likewise.
170 (LIB_SPEC): Add %R to sysroot paths.
171 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
172 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
173 * config/rs6000/aix51.h: As for aix43.h.
174 * config/rs6000/aix52.h: Likewise.
175 * config/rs6000/aix53.h: Likewise.
176 * config/rs6000/aix61.h: Likewise.
177 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
178 to the beginning of sysroot paths.
179
9e74b7d2
AO
1802009-06-02 Alexandre Oliva <aoliva@redhat.com>
181
182 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
183 INSN_LISTs that are out of the REG_NOTE range.
184
a9f6ecee
AO
1852009-06-02 Alexandre Oliva <aoliva@redhat.com>
186
187 * loop-unroll.c (struct iv_to_split): Add pointer to next.
188 (struct var_to_expand): Likewise.
189 (struct opt_info): Add head and tail for linked lists of the above.
190 (analyze_insn_to_expand_var): Initialize next.
191 (analyze_iv_to_split_insn): Likewise.
192 (analyze_insns_in_loop): Create linked lists.
193 (allocate_basic_variable): Simplify for use without hash table.
194 (insert_var_expansion_initialization): Likewise, make it type-safer.
195 (combine_var_copies_in_loop_exit): Likewise.
196 (apply_opt_in_copies): Walk lists rather than hash tables.
197 (release_var_copies): Simplified and inlined by hand into...
198 (free_opt_info): ... this function.
199
69596c69
RG
2002009-06-02 Richard Guenther <rguenther@suse.de>
201
202 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
203 for field decls.
204
fe8a7779
AO
2052009-06-02 Alexandre Oliva <aoliva@redhat.com>
206
207 * cfgexpand.c (gimple_expand_cfg): Discard the source location
208 only for builtins that are not overridden.
209
1bcca2c5
AO
2102009-06-02 Alexandre Oliva <aoliva@redhat.com>
211
212 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
213 label string.
214
8588f797
AO
2152009-06-02 Alexandre Oliva <aoliva@redhat.com>
216
217 * df-core.c (df_ref_debug): Honor -fdump-noaddr.
218
45f39d78
AO
2192009-06-02 Alexandre Oliva <aoliva@redhat.com>
220
221 * combine.c (move_deaths): Compare LUIDs within the same BB only.
222
2aa7c49b
AO
2232009-06-02 Alexandre Oliva <aoliva@redhat.com>
224
225 * common.opt (fdump-unnumbered-links): New.
226 * doc/invoke.texi (-fdump-unnumbered-links): Document it.
227 * print-rtl.c (flag_dump_unnumbered_links): New.
228 (print_rtx): Test it.
229
55b2829b
RE
2302009-06-02 Richard Earnshaw <rearnsha@arm.com>
231
232 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
233 push/pop multiple to 8-byte alignment.
e63d4106 234
6c0d7021
JJ
2352009-06-01 Jakub Jelinek <jakub@redhat.com>
236
0aa34d44
JJ
237 * config/i386/i386.c (queued_cfa_restores): New static variable.
238 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
239 functions.
240 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
241 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
242 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
243 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
244 note unconditionally.
245 (ix86_emit_restore_regs_using_mov): Likewise.
246 (ix86_emit_restore_sse_regs_using_mov): Likewise.
247 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
248 it through to ix86_emit_restore_reg_using_pop.
249 (ix86_emit_leave): Add RED_OFFSET argument. Call
250 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note
251 instead of adding REG_CFA_OFFSET note unconditionally.
252 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
253 the above functions. Call ix86_add_queued_cfa_restore_notes when
254 needed.
255
256 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
257 force output of the label even for dwarf2out_do_cfi_asm.
258 (add_fde_cfi): If -g2 and above and cfi might change CFA,
259 force creation of CFI label and chain DW_CFA_set_loc jumping to it
260 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
261 caller.
262 (dwarf2out_stack_adjust, dwarf2out_frame_debug,
263 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
264 dwarf2out_cfi_label callers.
265 * tree.h (dwarf2out_cfi_label): Adjust prototype.
266 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
267 Adjust dwarf2out_cfi_label callers.
268 * config/vax/vax.c (vax_output_function_prologue): Likewise.
269
604a6be9
JJ
270 * config/i386/i386.h (struct machine_cfa_state,
271 struct machine_function): Guard with ifndef USED_FOR_TARGET
272 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
273
df0026a7
JJ
274 PR other/40024
275 * emutls.c (__emutls_get_address): Change arr->size to mean number
276 of allocated arr->data entries instead of # of slots + 1.
277
6c0d7021
JJ
278 PR middle-end/40316
279 * recog.c (peep2_reinit_state): New function.
280 (peephole2_init_state): Use it at the end of a basic block and also
281 when seeing a RTX_FRAME_RELATED_P insn.
282
49df2fb8
SE
2832009-06-01 Steve Ellcey <sje@cup.hp.com>
284
285 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
286 fixuns_truncrfdi2): New.
287 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
288 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
289 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
290 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
291 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
292 *recip_approx): Remove.
293 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
294 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
295 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
296 move to div.md.
297 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
298 setf_exp_rf): New.
299
67165eb3
ILT
3002009-06-01 Ian Lance Taylor <iant@google.com>
301
302 * attribs.c (register_attribute): Use CONST_CAST.
303 * collect2.c (main): Use CONST_CAST2.
304 (scan_prog_file): Likewise.
305 * gcc.c (process_command, main): Likewise.
306 * toplev.c (toplev_main): Likewise.
307
308 * c-typeck.c (handle_warn_cast_qual): New static function,
309 partially broken out of build_c_cast.
310 (build_c_cast): Call handle_warn_cast_qual.
311 * doc/invoke.texi (Warning Options): Document new effect of
312 -Wcast-qual.
313
e74fe492
AH
3142009-06-01 Aldy Hernandez <aldyh@redhat.com>
315
316 * diagnostic.c (diagnostic_build_prefix): Always print columns.
317 (diagnostic_report_current_module): Print columns.
318 * common.opt (flag_show_column): Enable by default.
319
7eba2d1f
LM
3202009-06-01 Luis Machado <luisgpm@br.ibm.com>
321
322 * alias.c (find_base_term): Check for NULL term before returning.
323
ee88d9aa
MK
3242009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
325
326 Revert due to PR40320:
ee88d9aa
MK
327 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
328 * calls.c (emit_library_call_value_1): Don't force_operand for move
329 and push insns.
330
324c9b02 3312009-06-01 Olivier Hainque <hainque@adacore.com>
40d0d9e4 332 Eric Botcazou <ebotcazou@adacore.com>
324c9b02
OH
333
334 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
335 to be processed as a bitfield for constructor output purposes.
336 * output.h (initializer_constant_valid_for_bitfield_p): Declare
337 new function.
338 * varasm.c (oc_local_state): New type, output_constructor
339 local state to support communication with helpers.
340 (oc_outer_state): New type, output_constructor outer state of
341 relevance in recursive calls.
342 (output_constructor_array_range): New output_constructor helper,
343 extracted code for an array range element.
344 (output_constructor_regular_field): New output_constructor helper,
345 extracted code for an element that is not a bitfield.
346 (output_constructor_bitfield): New output_constructor helper,
347 extracted code for a bitfield element. Accept an OUTER state
348 argument for recursive processing. Recurse on record or array
349 CONSTRUCTOR values, possibly past noop conversions.
62295314 350 (initializer_constant_valid_for_bitfield_p): New predicate. Whether
324c9b02
OH
351 VALUE is a valid constant-valued expression for use in a static
352 bit-field initializer.
62295314
OH
353 (output_constructor): Rework to use helpers. Accept and honor an
354 OUTER state argument for recursive calls. Return total size. Be
324c9b02
OH
355 prepared for nested constructors initializing bitfields.
356 (output_constant): Feed OUTER in calls to output_constructor.
357
0980d7fe
MK
3582009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
359
360 * calls.c (emit_library_call_value_1): Don't force_operand for move
361 and push insns.
362
29661412
NC
3632009-06-01 Nick Clifton <nickc@redhat.com>
364
365 * doc/invoke.texi (IA-64 Options): Fix typo.
366
e9dbe7bb
IR
3672009-06-01 Ira Rosen <irar@il.ibm.com>
368
369 PR tree-optimization/39129
370 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
371 printed message.
372 (vect_do_peeling_for_loop_bound): Use
373 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
374 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
375 (vect_loop_versioning): Likewise.
376 (vect_create_cond_for_alias_checks): Fix indentation.
377 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
378 macros.
379 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
380 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
381 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
382 "control flow in loop".
383 (vect_estimate_min_profitable_iters): Use
384 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
385 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
386 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
387 (vect_create_data_ref_ptr): Don't mention array dimension in printing.
388 * tree-vect-stmts.c (vectorizable_store): Replace the check that the
389 statement belongs to a group of strided accesses with the exact code
390 check.
391 (vectorizable_load): Likewise.
392 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
393 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
394
5ac69a80
GP
3952009-06-01 Gerald Pfeifer <gerald@pfeifer.com>
396
397 * config/freebsd-stdint.h: New file.
398 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
399 Add freebsd-stdint.h to tm_file.
400
54b2b460
RE
4012009-06-01 Richard Earnshaw <rearnsha@arm.com>
402
403 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
404 (thumb2_extendhidi2): Likewise.
405
a7ca77cf
ILT
4062009-05-31 Ian Lance Taylor <iant@google.com>
407
f3afc8a7 408 * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
c50d84e3
ILT
409
4102009-05-31 Ian Lance Taylor <iant@google.com>
411
f3afc8a7 412 * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
a7ca77cf
ILT
413 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
414 (ipa-reference.o): Depend upon gt-ipa-reference.h.
415
1aec401e
JM
4162009-05-31 Jason Merrill <jason@redhat.com>
417
418 * tree-pretty-print.c (print_call_name): Take the callee, not the
f3afc8a7 419 call itself. Make non-static. Use dump_function_name for functions.
1aec401e
JM
420 (dump_generic_node): Adjust.
421 * diagnostic.h: Declare print_call_name.
422 * gimple-pretty-print.c (dump_gimple_call): Use it.
423
ed7910bb
KK
4242009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
425
426 * config/sh/sh.md (ashldi3_std): New define_expand.
427 (ashldi3): Use it.
428
47ea8d4e
KK
4292009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
430
431 PR target/40313
432 * config/sh/sh.c: Include debug.h.
433 (sh_expand_epilogue): Emit a blockage insn before the frame
434 pointer adjustment also when dwarf2out_do_frame returns true.
435
405e8b49
RE
4362009-05-31 Richard Earnshaw <rearnsha@arm.com>
437
438 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
439 (thumb2_extendqidi2): New pattern.
440
71ece343
IR
4412009-05-31 Ira Rosen <irar@il.ibm.com>
442
443 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
444 mark phis for renaming.
445 * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
446 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
447 Call mark_sym_for_renaming.
448 * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
f3afc8a7
UB
449 * tree-vect-loop.c (vect_transform_loop): Remove
450 vect_memsyms_to_rename initialization and a call to
451 mark_set_for_renaming.
71ece343 452
b3041944
JJ
4532009-05-31 Jakub Jelinek <jakub@redhat.com>
454
455 PR middle-end/40304
456 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
457 frame related even if !set_cfa && style < 0.
458
a1bda0d7
KT
4592009-05-30 Kai Tietz <kai.tietz@onevision.com>
460
461 * config/i386/mingw-tls.c: New file.
f3afc8a7
UB
462 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
463 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
464 defining _WIN32 but not __CYGWIN__.
a1bda0d7 465
acd26225
KG
4662009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
467
468 * configure.ac: Add MPC support.
469
470 * config.in, configure: Regenerate.
471
cd9c1ca8
RH
4722009-05-29 Richard Henderson <rth@redhat.com>
473
474 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
475 NOTE_INSN_BASIC_BLOCK.
476 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
477 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
478 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
479 to be deleted.
480 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
481 add in_use field.
482 (add_cfi): Disable check redefining cfa away from drap.
483 (lookup_cfa_1): Add remember argument; handle remember/restore.
484 (lookup_cfa): Pass remember argument.
485 (cfa_remember): New.
486 (compute_barrier_args_size_1): Remove sibcall check.
487 (dwarf2out_frame_debug_def_cfa): New.
488 (dwarf2out_frame_debug_adjust_cfa): New.
489 (dwarf2out_frame_debug_cfa_offset): New.
490 (dwarf2out_frame_debug_cfa_register): New.
491 (dwarf2out_frame_debug_cfa_restore): New.
492 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
493 (dwarf2out_begin_epilogue): New.
494 (dwarf2out_frame_debug_restore_state): New.
495 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
496 DW_CFA_restore_state.
497 (output_cfi_directive): Likewise.
498 (convert_cfa_to_fb_loc_list): Likewise.
499 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
500 * dwarf2out.h: Update.
501 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
502 (copy_insn_1): Early out for null.
503 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
504 and dwarf2out_frame_debug_restore_state.
505 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
506 (prologue_insn_hash, epilogue_insn_hash): New.
507 (free_after_compilation): Adjust freeing accordingly.
508 (record_insns): Create hash table if needed; push insns into
509 hash instead of array.
510 (maybe_copy_epilogue_insn): New.
511 (contains): Search hash table instead of array.
512 (sibcall_epilogue_contains): Remove.
513 (thread_prologue_and_epilogue_insns): Split eh_return insns
514 and mark them as epilogues.
515 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
516 scanning in terms of basic blocks.
517 * insn-notes.def (CFA_RESTORE_STATE): New.
518 * jump.c (returnjump_p_1): Accept EH_RETURN.
519 (eh_returnjump_p_1, eh_returnjump_p): New.
520 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
521 CFA_REGISTER, CFA_RESTORE): New.
522 * rtl.def (EH_RETURN): New.
523 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
524
525 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
526 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
527
528 * config/i386/i386.c (gen_push): Update cfa state.
529 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
530 add a CFA_ADJUST_CFA note.
531 (ix86_dwarf_handle_frame_unspec): Remove.
532 (ix86_expand_prologue): Update cfa state.
533 (ix86_emit_restore_reg_using_pop): New.
534 (ix86_emit_restore_regs_using_pop): New.
535 (ix86_emit_leave): New.
536 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
537 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
538 * config/i386/i386.h (struct machine_cfa_state): New.
539 (ix86_cfa_state): New.
540 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
541 (eh_return_internal): Merge from eh_return_<mode>,
542 use eh_return rtx, split w/ epilogue.
543
72b5577d
ILT
5442009-05-29 Ian Lance Taylor <iant@google.com>
545
546 * builtins.c (validate_gimple_arglist): Don't use va_arg with
547 enum type.
548 * calls.c (emit_library_call_value_1): Likewise.
549
550 * c-typeck.c (c_build_va_arg): New function.
551 * c-tree.h (c_build_va_arg): Declare.
552 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
553 instead of build_va_arg.
554
7a2faca1
EB
5552009-05-29 Eric Botcazou <ebotcazou@adacore.com>
556
557 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
558 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
559 (ptr_difference_cost): Use affine combinations to compute it.
560 (difference_cost): Likewise.
561 (get_computation_cost_at): Compute more accurate cost for addresses
562 if the ratio is a multiplier allowed in addresses.
563 For non-addresses, consider that an additional offset or symbol is
564 added only once.
565
725fd454
JJ
5662009-05-29 Jakub Jelinek <jakub@redhat.com>
567
a0987204
JJ
568 * config/i386/i386.c (ix86_decompose_address): Avoid useless
569 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
570
725fd454
JJ
571 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
572 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
573 (prefix_rex): For UNIT_MMX don't imply the prefix by default
574 if MODE_DI.
575 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
576 to 1 for TYPE_SSE{IADD1,CVT1}.
577 (prefix_vex_imm8): Removed.
578 (length_vex): Only pass 1 as second argument to
579 ix86_attr_length_vex_default if prefix_extra is 0.
580 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
581 (length): For prefix vex computation use length_immediate
582 attribute instead of prefix_vex_imm8.
583 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
584 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
585 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
586 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
587 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
588 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
589 a space in between the operands.
590 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
591 if one operand is 0xff and the other one si, di, bp or sp.
592 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
593 other one si, di, bp or sp.
594 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
595 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
596 type and mode attributes.
597 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
598 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
599 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
600 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
601 prefix_data16 attribute iff MODE_DF.
602 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
603 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
604 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
605 constm128_operand in length_immediate computation.
606 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
607 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
608 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
609 length_immediate attribute to 1.
610 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
611 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
612 for certain alternatives.
613 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
614 prefix_data16 attribute if MODE_V1DF.
615 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
616 length_immediate to 1.
617 (set_got_rex64, set_rip_rex64): Remove length attribute, set
618 length_address to 4, set mode attribute to MODE_DI.
619 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
620 (fxam<mode>2_i387): Set length attribute to 4.
621 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
622 *prefetch_3dnow_rex): Override length_address attribute.
623 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
624 attributes.
625 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
626 (constm128_operand): Removed.
627 * config/i386/i386.c (memory_address_length): For
628 disp && !index && !base in 64-bit mode account for SIB byte if
629 print_operand_address can't optimize disp32 into disp32(%rip)
630 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
631 for fs: or gs: segment.
632 (ix86_attr_length_immediate_default): When checking if shortform
633 is possible, truncate immediate to the length of the non-shortened
634 immediate.
635 (ix86_attr_length_address_default): Ignore MEM_P operands
636 with X constraint.
637 (ix86_attr_length_vex_default): Only check for DImode on
638 GENERAL_REG_P operands.
639 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
640 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
641 (sse_cvttps2pi): Clear prefix_rep attribute.
642 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
643 attribute.
644 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
645 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
646 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
647 iff operand 2 is const_int_operand.
648 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
649 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
650 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
651 instead of vex.
652 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
653 prefix_data16.
654 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
655 prefix_data16 attribute for movlpd and movhpd instructions.
656 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
657 length_immediate for shufpd instruction.
658 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
659 (avx_cmpp<avxmodesuffixf2c><mode>3,
660 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
661 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
662 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
f3afc8a7 663 *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
725fd454
JJ
664 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
665 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
666 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
667 prefix_data16 attribute for the first alternative to 1.
668 (*avx_loadlps): Override length_immediate for the first alternative.
669 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
670 attributes for second alternative.
671 (*vec_concatv2sf_sse4_1): Override length_immediate and
672 prefix_data16 attributes for second alternative.
673 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
674 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
675 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
676 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
677 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
678 prefix_data16 and length_immediate to 1.
679 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
680 to 1.
681 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
f3afc8a7 682 prefix_extra attribute for variants that don't have 0f prefix alone.
725fd454
JJ
683 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
684 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
685 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
686 *sse4_1_pextrd): Set length_immediate to 1.
687 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
688 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
689 to 1.
690 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
691 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
692 length_immediate to 1 for second alternative.
693 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
694 prefix_extra and length_immediate attributes for the first
695 alternative.
696 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
697 first alternative.
698 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
699 to 1 for the first and third alternative.
700 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
701 alternative.
702 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
703 attribute.
704 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
705 attribute to 0.
706 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
707 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
708 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
709 *avx_psign<mode>3): Set prefix_extra attribute to 1.
710 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
711 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
712 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
713 ssse3_psign<mode>3): Override prefix_rex attribute.
f3afc8a7 714 (*avx_palignrti): Override prefix_extra and length_immediate to 1.
725fd454
JJ
715 (ssse3_palignrti): Override length_immediate to 1.
716 (ssse3_palignrdi): Override length_immediate to 1, override
717 prefix_rex attribute.
f3afc8a7 718 (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
725fd454
JJ
719 (sse4a_extrqi): Override length_immediate to 2.
720 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
721 (sse4a_insertq): Override prefix_data16 to 0.
722 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
723 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
724 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
725 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
726 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
727 and length_immediate to 1.
728 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
729 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
730 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
731 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
732 and length_immediate to 1.
733 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
734 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
735 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
736 avx_ptest256): Override prefix_extra to 1.
737 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
738 Override prefix_data16 and length_immediate to 1.
739 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
740 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
741 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
742 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
743 prefix_data16 to 0 and prefix_extra to 2.
744 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
745 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
746 attribute.
747 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
748 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
749 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
750 and prefix_extra to 2.
751 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
752 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
753 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
754 avx_vpermilvar<mode>3,
755 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
756 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
757 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
758 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
759 Override prefix_extra to 1.
760 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
761 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
762 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
763 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
764 prefix_extra and length_immediate to 1.
765 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
766 modrm to 0.
767 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
768 to 1 for the first alternative.
769 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
770 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
771 cases.
772 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
773 *movv2sf_internal_avx, *movv2sf_internal): Override
774 prefix_rep attribute for certain alternatives.
775 (*mov<mode>_internal): Override prefix_rep or prefix_data16
776 attributes for certain alternatives.
777 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
778 attributes for certain alternatives.
779 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
780 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
781 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
782 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
783 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
784 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
785 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
786 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
787 length_immediate to 1 if operand 2 is const_int_operand.
788 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
f3afc8a7 789 *vec_extractv2si_1): Set length_immediate attribute to 1.
725fd454
JJ
790 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
791 using old 3DNOW insn rather than SSE/3DNOW_A.
792 (mmx_emms, mmx_femms): Clear modrm attribute.
793
0674b9d0
MJ
7942009-05-29 Martin Jambor <mjambor@suse.cz>
795
796 * tree-sra.c: New implementation of SRA.
797
798 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
799 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
800 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
801 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
802 (SRA_MAX_STRUCTURE_COUNT): Removed.
803 (SRA_FIELD_STRUCTURE_RATIO): Removed.
804 * doc/invoke.texi (sra-max-structure-size): Removed.
805 (sra-field-structure-ratio): Removed.
806
616f21df
JJ
8072009-05-29 Jakub Jelinek <jakub@redhat.com>
808
809 PR middle-end/40291
810 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
811 before expansion.
812
da7ba240
AB
8132009-05-29 Andrey Belevantsev <abel@ispras.ru>
814
815 PR rtl-optimization/40101
816 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
817 seqno. Adjust comment.
818 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
819 inserting bookkeeping before a jump, the jump is not scheduled.
820 When no positive seqno found, provide a value. Add comment.
821
71dcd609
RG
8222009-05-29 Richard Guenther <rguenther@suse.de>
823
824 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
825 short-cutting on the first component.
826
a900ae6b
JJ
8272009-05-29 Jakub Jelinek <jakub@redhat.com>
828
829 PR middle-end/39958
830 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
831 for trees other than decls/types.
832
821bb7f8
RG
8332009-05-29 Richard Guenther <rguenther@suse.de>
834
835 * tree-ssa-operands.c (get_expr_operands): Do not handle
836 INDIRECT_REFs in the handled-component case. Remove
837 unused get_ref_base_and_extent case.
838 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
839 tree_low_cst and host_integerp where possible.
840 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
841 codes for equivalence.
842 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
843
e997fb9c
DB
8442009-05-29 David Billinghurst <billingd@gcc.gnu.org>
845
846 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
847 to tmake_file for i[34567]86-*-cygwin*.
848
58195b74
JJ
8492009-05-29 Jakub Jelinek <jakub@redhat.com>
850
851 PR target/40017
852 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
853 (altivec_categorize_keyword, init_vector_keywords,
854 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
855 similar to bool.
856
055df276
KT
8572009-05-29 Kai Tietz <kai.tietz@onevision.com>
858
859 * tree.c (handle_dll_attribute): Check if node is
860 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
861
f5939ef3
RE
8622009-05-29 Richard Earnshaw <rearnsha@arm.com>
863
864 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
865 component.
866 (thumb2_zero_extendqidi2): Likewise.
867
c185de40
KK
8682009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
869
870 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
871 instead of gen_movrt.
872 * config/sh/sh.md (movrt): Remove.
873
bf3c6caf
SE
8742009-05-28 Steve Ellcey <sje@cup.hp.com>
875
f3afc8a7 876 * doc/invoke.texi (IA-64 Options):
bf3c6caf
SE
877 Add -msdata, -mfused-madd, -mno-inline-float-divide,
878 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
879 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
880 -msched-prefer-non-control-spec-insns,
881 -msched-stop-bits-after-every-cycle,
882 -msched-count-spec-in-critical-path,
883 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
f3afc8a7 884 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
bf3c6caf
SE
885 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
886 and -msched-spec-verbose.
887
8a66e987
JM
8882009-05-28 Joseph Myers <joseph@codesourcery.com>
889
f3afc8a7 890 * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
8a66e987
JM
891 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
892 error if used.
893 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
894
b45d2719
RG
8952009-05-28 Richard Guenther <rguenther@suse.de>
896
897 * tree-ssa-alias.c (ao_ref_init): New function.
898 (ao_ref_base): Likewise.
899 (ao_ref_base_alias_set): Likewise.
900 (ao_ref_alias_set): Likewise.
901 (refs_may_alias_p_1): Change signature.
902 (refs_may_alias_p): Adjust.
903 (refs_anti_dependent_p): Likewise.
904 (refs_output_dependent_p): Likewise.
905 (call_may_clobber_ref_p_1): Change signature.
906 (call_may_clobber_ref_p): Adjust.
907 (stmt_may_clobber_ref_p_1): New function split out from ...
908 (stmt_may_clobber_ref_p): ... here.
909 (maybe_skip_until): Adjust signature.
910 (get_continuation_for_phi): Likewise.
911 (walk_non_aliased_vuses): Likewise.
912 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
913 (ao_ref_init): Declare.
914 (ao_ref_base): Likewise.
915 (ao_ref_alias_set): Likewise.
916 (stmt_may_clobber_ref_p_1): Likewise.
917 (walk_non_aliased_vuses): Adjust.
918 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
919 (get_ref_from_reference_ops): remove.
920 (vn_reference_lookup_2): Adjust signature.
921 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
f3afc8a7 922 (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
b45d2719
RG
923 (vn_reference_lookup): Adjust.
924 (vn_reference_insert): Likewise.
925 (vn_reference_insert_pieces): Adjust signature.
926 (visit_reference_op_call): Adjust.
927 * tree-ssa-pre.c (get_expr_type): Simplify.
928 (phi_translate_1): Adjust.
929 (compute_avail): Likewise.
930 (translate_vuse_through_block): Do not re-build trees.
931 (value_dies_in_block_x): Likewise.
932 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
933 fields.
934 (vn_reference_lookup_pieces): Adjust declaration.
935 (vn_reference_insert_pieces): Likewise.
936
554223b6
BK
9372009-05-28 Benjamin Kosnik <bkoz@redhat.com>
938
939 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
940 with checking disabled.
941
233215fe
DK
9422009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
943
944 PR target/37216
945
946 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
947 macro definition for support of three-operand format aligned
948 .comm directive in assembler on cygwin/pe/mingw target OS.
949 * configure: Regenerate.
950 * config.h: Regenerate.
951
952 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
953 aligned form of .comm directive if -mpe-aligned-commons is in effect.
954 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
955
956 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
957 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
958
24adb18f
IR
9592009-05-28 Ira Rosen <irar@il.ibm.com>
960
961 PR tree-optimization/40254
962 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
963 in analysis of basic blocks.
964
2c5bfdf7
AN
9652009-05-28 Adam Nemet <anemet@caviumnetworks.com>
966
967 PR middle-end/33699
f3afc8a7 968 * target.h (struct gcc_target): Fix indentation. Add const_anchor.
2c5bfdf7
AN
969 * target-def.h (TARGET_CONST_ANCHOR): New macro.
970 (TARGET_INITIALIZER): Use it.
971 * cse.c (CHEAPER): Move it up to the other macros.
972 (insert): Rename this ...
973 (insert_with_costs): ... to this. Add cost parameters. Update
974 function comment.
975 (insert): New function. Call insert_with_costs.
976 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
977 find_reg_offset_for_const, try_const_anchors): New functions.
978 (cse_insn): Call try_const_anchors. Adjust cost of src_related
979 when using a const-anchor. Call insert_const_anchors.
f3afc8a7 980 * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
2c5bfdf7
AN
981 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
982
9e6aced0
AO
9832009-05-28 Alexandre Oliva <aoliva@redhat.com>
984
985 * tree-inline.c (remap_decls): Enable nonlocalized variables
986 when not optimizing.
987
89fbbe4e
AO
9882009-05-28 Alexandre Oliva <aoliva@redhat.com>
989
990 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
991 Simplify other tests involving optimize.
992
e455776a
TT
9932009-05-27 Tom Tromey <tromey@redhat.com>
994
995 * unwind-dw2.c (_Unwind_DebugHook): New function.
996 (uw_install_context): Call _Unwind_DebugHook.
997
cea32bca
TT
9982009-05-27 Tom Tromey <tromey@redhat.com>
999
1000 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
1001
c607156f
ILT
10022009-05-27 Ian Lance Taylor <iant@google.com>
1003
1004 * Makefile.in (LINKER, LINKER_FLAGS): Define.
1005 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
1006 (ALL_LINKERFLAGS): Define.
1007 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
1008 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
1009 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
1010 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
1011 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
1012 $(LINKER_FOR_BUILD).
1013 (build/gcov-iov$(build_exeext)): Likewise.
1014
ec0a1343
JB
10152009-05-27 Julian Brown <julian@codesourcery.com>
1016
1017 * gcse.c (target.h): Include.
1018 (can_assign_to_reg_without_clobbers_p): Check that the target allows
1019 copy of argument to a pseudo register.
1020
ac80ba07
DN
10212009-05-27 Diego Novillo <dnovillo@google.com>
1022
1023 * tree-ssa-live.c (dump_scope_block): Document arguments.
1024 (dump_scope_blocks): Document.
1025 (debug_scope_blocks): New.
1026 * tree-flow.h (debug_scope_blocks): Declare.
1027
d1803a17
DC
10282009-05-21 Denis Chertykov <denisc@overta.ru>
1029
f3afc8a7 1030 * doc/contrib.texi (Contributors): Add myself to the list.
d1803a17 1031
51fb7760 10322009-05-27 Olivier Hainque <hainque@adacore.com>
ceadb728
OH
1033
1034 * expr.c (target_align): New function. Alignment the TARGET of an
1035 assignment may be assume to have.
1036 (highest_pow2_factor_for_target): Use it instead of relying on
1037 immediate tree attributes of TARGET, not necessarily honored when
1038 intermediate bitfields are involved.
1039
634fa334
L
10402009-05-27 H.J. Lu <hongjiu.lu@intel.com>
1041
1042 PR target/40266
1043 * config/i386/driver-i386.c (host_detect_local_cpu): Support
1044 AVX, SSE4, AES, PCLMUL and POPCNT.
1045
65332587
DN
10462009-05-27 Diego Novillo <dnovillo@google.com>
1047
1048 * tree-pretty-print.c (dump_location): New.
1049 (dump_generic_node): Call it.
1050 Factor code to handle BLOCK nodes ...
1051 (dump_block_node): ... here.
1052
3e17e31d
RAE
10532009-05-27 Rafael Avila de Espindola <espindola@google.com>
1054
f3afc8a7
UB
1055 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
1056 with it.
3e17e31d
RAE
1057 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
1058 included.
1059 * gcc-plugin.h: Include config.h and system.h.
1060 (IN_GCC): Define if not defined.
1061
5e370570
HPN
10622009-05-27 Hans-Peter Nilsson <hp@axis.com>
1063
1064 PR middle-end/40249
1065 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
1066 with -fno-inline.
1067
d000f0d9
SZ
10682009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
1069
1070 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
1071 applicable.
1072 * config/m32r/m32r.h: Ditto.
1073 * config/m32r/m32r.md: Ditto.
1074 * config/m32r/predicates.md: Ditto.
1075
82f331ff
AO
10762009-05-27 Alexandre Oliva <aoliva@redhat.com>
1077
1078 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
1079
ae2392a9
BS
10802009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
1081
1082 * doc/plugins.texi
1083 (Loading plugins): typo.
1084 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
1085 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
1086 (Interacting with the GCC Garbage Collector): Added new section.
1087 (Giving information about a plugin): Added new section for
1088 PLUGIN_INFO.
ae2392a9
BS
1089 * ggc.h (ggc_register_root_tab): Added declaration.
1090 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
1091 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
1092 (register_callback): Improved comment in declaration.
f3afc8a7
UB
1093 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
1094 (extra_root_vec) Added static variable for dynamic roots registration.
ae2392a9
BS
1095 (ggc_register_root_tab) Added new routine.
1096 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
1097 PLUGIN_GGC_MARKING event.
1098 * ggc-zone.c: Include plugin.h.
1099 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
1100 * ggc-page.c: Include plugin.h.
1101 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
1102 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
1103 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
1104 (register_callback): check lack of callbacks for
1105 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
1106 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
1107 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
1108 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
1109 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
1110 dependency on plugin.h.
1111 (plugin.o): Added dependency on ggc.h...
1112
f0cfd3a8
RG
11132009-05-26 Richard Guenther <rguenther@suse.de>
1114
1115 PR middle-end/40248
1116 Revert
1117 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
1118 with mismatched comparison modes.
1119
1120 * expr.c (expand_expr_real_1): Expand the operand of a
1121 VIEW_CONVERT_EXPR in its natural mode.
1122
7980bfb8
ILT
11232009-05-26 Ian Lance Taylor <iant@google.com>
1124
1125 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
1126 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
1127 (ALL_COMPILERFLAGS): Define.
1128 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
1129 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
1130 (collect2$(exeext), collect2.o): Likewise.
1131 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
1132 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
1133 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
1134 (libbackend.o, intl.o, cppdefault.o): Likewise.
1135 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
1136 (build/%.o): Use $(COMPILER_FOR_BUILD).
1137 (build/gen%$(build_exeext)): Likewise.
1138 (build/gcov-iov$(build_exeext)): LIkewise.
1139 * config/t-darwin (darwin.o): Use $(COMPILER).
1140 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
1141 * config/t-sol2 (sol2-c.o): Likewise.
1142 (sol2.o): Likewise.
1143 * config/t-vxworks (vxworks.o): Likewise.
1144 * config/x-darwin (host-darwin.o): Likewise.
1145 * config/x-hpux (host-hpux.o): Likewise.
1146 * config/x-linux (host-linux.o): Likewise.
1147 * config/x-solaris (host-solaris.o): Likewise.
1148 * config/alpha/x-alpha (driver-alpha.o): Likewise.
1149 * config/arm/t-arm (arm-c.o): Likewise.
1150 * config/arm/t-pe (pe.o): Likewise.
1151 * config/arm/t-wince-pe (pe.o): Likewise.
1152 * config/i386/t-cygming (winnt.o): Likewise.
1153 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
1154 * config/i386/t-cygwin (cygwin1.o): Likewise.
1155 (cygwin2.o): Likewise.
1156 * config/i386/t-i386 (i386-c.o): Likewise.
1157 * config/i386/t-interix (winnt.o): Likewise.
1158 * config/i386/t-netware (netware.o): Likewise.
1159 * config/i386/t-nwld (nwld.o): Likewise.
1160 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
1161 * config/i386/x-i386 (driver-i386.o): Likewise.
1162 * config/i386/x-cygwin (host-cygwin.o): Likewise.
1163 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
1164 * config/ia64/t-ia64 (ia64-c.o): Likewise.
1165 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
1166 * config/mips/x-native (driver-native.o): Likewise.
1167 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
1168 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
1169 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
1170 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
1171 * config/score/t-score-elf (score7.o): Likewise.
1172 (score3.o): Likewise.
1173 * config/sh/t-sh (sh-c.o): Likewise.
1174 * config/sh/t-symbian (sh-c.o): Likewise.
1175 (symbian.o): Likewise.
1176 * config/spu/t-spu-elf (spu-c.o): Likewise.
1177 * config/v850/t-v850 (v850-c.o): Likewise.
1178 * config/v850/t-v850e (v850-c.o): Likewise.
1179
23977d3c
RG
11802009-05-26 Richard Guenther <rguenther@suse.de>
1181
1182 PR tree-optimization/40122
1183 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
1184 VECTOR_CSTs if possible.
1185 (fold_gimple_assign): Likewise.
1186
3d62b895
RG
11872009-05-26 Richard Guenther <rguenther@suse.de>
1188
1189 PR middle-end/40252
1190 * fold-const.c (fold_binary): Use the correct types for building
1191 rotates.
1192
12346147
RG
11932009-05-26 Richard Guenther <rguenther@suse.de>
1194
1195 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
1196 redundant calls to merge_alias_info.
1197 (bump_vector_ptr): Likewise.
1198 * tree-ssa-copy.c (merge_alias_info): Remove.
1199 (replace_exp_1): Remove call to merge_alias_info.
1200 (propagate_tree_value): Likewise.
1201 (fini_copy_prop): Propagate points-to info.
1202 * tree-flow.h (merge_alias_info): Remove.
1203
807d5e6f
HS
12042009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
1205
1206 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
1207
85057983
JH
12082009-05-25 Jan Hubicka <jh@suse.cz>
1209
1210 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
1211 * cgraph.h (struct inline_summary): New filed self_wize,
1212 size_inlining_benefit, self_time and time_inlining_benefit.
1213 (struct cgraph_global_info): Replace insns by time ans size fields.
1214 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
1215 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
1216 (ipcp_update_callgraph): Do not touch function bodies.
1217 * ipa-inline.c: Include except.h
1218 (MAX_TIME): New constant.
1219 (overall_insns): Remove.
1220 (leaf_node_p): New.
1221 (overall_size, max_benefit): New static variables.
1222 (cgraph_estimate_time_after_inlining): New function.
1223 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
1224 (cgraph_clone_inlined_nodes): Update size.
1225 (cgraph_mark_inline_edge): Update size.
1226 (cgraph_estimate_growth): Use size info.
1227 (cgraph_check_inline_limits): Check size.
1228 (cgraph_default_inline_p): Likewise.
1229 (cgraph_edge_badness): Compute badness based on benefit and size cost.
1230 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
1231 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
1232 and times.
85057983
JH
1233 (cgraph_decide_inlining): Likewise.
1234 (cgraph_decide_inlining_incrementally): Likewise; honor
1235 PARAM_EARLY_INLINING_INSNS.
1236 (likely_eliminated_by_inlining_p): New predicate.
1237 (estimate_function_body_sizes): New function.
1238 (compute_inline_parameters): Use it.
1239 * except.c (must_not_throw_labels): New function.
1240 * except.h (must_not_throw_labels): Declare.
1241 * tree-inline.c (init_inline_once): Kill inlining_weigths
1242 * tree-ssa-structalias.c: Avoid uninitialized warning.
1243 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
1244 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
1245 (PARAM_INLINE_CALL_COST): Remove.
1246 (PARAM_EARLY_INLINING_INSNS): New.
1247
01df5c8a
RG
12482009-05-25 Richard Guenther <rguenther@suse.de>
1249
1250 PR tree-optimization/36327
1251 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
f3afc8a7 1252 callback for reference translation or lookup at the point of may-defs.
01df5c8a
RG
1253 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
1254 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
1255 for union COMPONENT_REFs.
1256 (vn_reference_lookup_3): New callback. Lookup from memset
1257 and CONSTRUCTOR assignment, translate through struct copies.
1258 (vn_reference_lookup_pieces): Make sure to not free the
1259 passed operands array. Adjust walk_non_aliased_vuses call.
1260 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
1261 make sure we do not leak memory.
1262
6b8ed145
RG
12632009-05-25 Richard Guenther <rguenther@suse.de>
1264
1265 * tree-ssa-alias.h (dump_points_to_solution): Declare.
1266 * tree-inline.c (expand_call_inline): Reset the escaped and
1267 callused solutions.
1268 * tree-ssa-structalias.c (pass_build_ealias): New.
1269 * tree-pass.h (pass_build_ealias): Declare.
1270 * passes.c (init_optimization_passes): Add PTA during
1271 early optimizations.
1272 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
1273 and CALLUSED solutions.
1274 (dump_points_to_solution): New function, split out from ...
1275 (dump_points_to_info_for): ... here.
1276 * tree-parloops.c (parallelize_loops): Reset the escaped and
1277 callused solutions.
1278
0adcf178
RO
12792009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1280
1281 PR bootstrap/40027
1282 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
1283 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
1284
12aaf609
IR
12852009-05-25 Ira Rosen <irar@il.ibm.com>
1286
1287 PR tree-optimization/40238
1288 * tree-vect-stmts.c (vect_init_vector): Insert initialization
1289 statements after basic block's labels.
1290 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
1291 to free the allocated memory.
1292
7f9a14e3
KK
12932009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
1294
1295 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
1296 return address with a USE.
1297
b842d478
RG
12982009-05-24 Richard Guenther <rguenther@suse.de>
1299
1300 PR middle-end/40233
1301 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
1302 array type from the main variant of the inner type.
1303
8db7b33f
JBG
13042009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1305
1306 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
1307 definition to bool (from int) to un-break build.
1308 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
1309
cff4e50d
PB
13102009-05-24 Paolo Bonzini <bonzini@gnu.org>
1311
1312 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
1313 discard_stmt_changes): Delete.
1314 * tree-ssa-operands.c (scb_stack): Delete.
1315 (init_ssa_operands): Do not initialize it.
1316 (fini_ssa_operands): Do not free it.
1317 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
1318
1319 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
1320 update_stmt, remove the others. Fix comments.
1321 * tree-dfa.c (optimize_stack_restore): Likewise.
1322 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
1323 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
1324 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
1325 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
1326 Likewise.
1327 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
1328 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
f3afc8a7
UB
1329 (dom_opt_finalize_block): Likewise, adjusting access to
1330 stmts_to_rescan.
cff4e50d
PB
1331 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
1332 (stmts_to_rescan): Change item type to gimple.
1333 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
1334
a70d6342
IR
13352009-05-24 Ira Rosen <irar@il.ibm.com>
1336
1337 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
1338 * tree-pass.h (pass_slp_vectorize): New pass.
1339 * params.h (SLP_MAX_INSNS_IN_BB): Define.
1340 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
1341 * tree-vectorizer.c (timevar.h): Include.
1342 (user_vect_verbosity_level): Declare.
1343 (vect_location): Fix comment.
1344 (vect_set_verbosity_level): Update user_vect_verbosity_level
1345 instead of vect_verbosity_level.
1346 (vect_set_dump_settings): Add an argument. Ignore user defined
1347 verbosity if dump flags require higher level of verbosity. Print to
1348 stderr only for loop vectorization.
1349 (vectorize_loops): Update call to vect_set_dump_settings.
1350 (execute_vect_slp): New function.
1351 (gate_vect_slp): Likewise.
1352 (struct gimple_opt_pass pass_slp_vectorize): New.
1353 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
1354 access its members.
1355 (vec_info_for_bb): New function.
1356 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
1357 (VECTORIZATION_ENABLED): New macro.
1358 (SLP_ENABLED, SLP_DISABLED): Likewise.
1359 (vect_is_simple_use): Add bb_vec_info argument.
1360 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
1361 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
1362 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
1363 vect_schedule_slp, vect_analyze_slp): Likewise.
1364 (vect_analyze_stmt): Add slp_tree argument.
1365 (find_bb_location): Declare.
1366 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
1367 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
1368 (vect_analyze_loop_operations, vect_analyze_loop,
1369 get_initial_def_for_induction, vect_create_epilog_for_reduction,
1370 vect_finalize_reduction, vectorizable_reduction,
1371 vectorizable_live_operation, vect_transform_loop): Likewise.
1372 * tree-data-ref.c (dr_analyze_innermost): Update comment,
1373 skip evolution analysis if analyzing a basic block.
1374 (dr_analyze_indices): Likewise.
1375 (initialize_data_dependence_relation): Skip the test whether the
1376 object is invariant for basic blocks.
1377 (compute_all_dependences): Skip dependence analysis for data
1378 references in basic blocks.
1379 (find_data_references_in_stmt): Don't fail in case of invariant
1380 access in basic block.
1381 (find_data_references_in_bb): New function.
1382 (find_data_references_in_loop): Move code to
782dc37a 1383 find_data_references_in_bb and add a call to it.
a70d6342
IR
1384 (compute_data_dependences_for_bb): New function.
1385 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
1386 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
1387 that STEP is 0.
1388 (vect_analyze_data_ref_dependence): Check for interleaving in case of
1389 unknown dependence in basic block and fail in case of dependence in
1390 basic block.
1391 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
1392 dependence instances from either loop or basic block vectorization
1393 info.
1394 (vect_compute_data_ref_alignment): Check if it is loop vectorization
1395 before calling nested_in_vect_loop_p.
1396 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
1397 dependence instances from either loop or basic block vectorization
1398 info.
1399 (vect_verify_datarefs_alignment): Likewise.
1400 (vect_enhance_data_refs_alignment): Adjust function calls.
1401 (vect_analyze_data_refs_alignment): Likewise.
1402 (vect_analyze_group_access): Fix printing. Skip different checks if
1403 DR_STEP is 0. Keep strided stores either in loop or basic block
1404 vectorization data structure. Fix indentation.
1405 (vect_analyze_data_ref_access): Fix comments, allow zero step in
1406 basic blocks.
1407 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
1408 dependence instances from either loop or basic block vectorization
1409 info.
1410 (vect_analyze_data_refs): Update comment. Call
1411 compute_data_dependences_for_bb to analyze basic blocks.
1412 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
1413 case of loop vectorization. In case of basic block vectorization use
782dc37a 1414 data-ref itself as a base.
a70d6342
IR
1415 (vect_create_data_ref_ptr): In case of basic block vectorization:
1416 don't advance the pointer, add new statements before the current
1417 statement. Adjust function calls.
1418 (vect_supportable_dr_alignment): Support only aligned accesses in
1419 basic block vectorization.
1420 * common.opt (ftree-slp-vectorize): New flag.
1421 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
1422 (vect_pattern_recog_1): Likewise.
1423 * tree-vect-stmts.c (process_use): Likewise.
1424 (vect_init_vector): Add new statements in the beginning of the basic
1425 block in case of basic block SLP.
1426 (vect_get_vec_def_for_operand): Adjust function calls.
1427 (vect_finish_stmt_generation): Likewise.
1428 (vectorizable_call): Add assert that it is loop vectorization, adjust
1429 function calls.
1430 (vectorizable_conversion, vectorizable_assignment): Likewise.
1431 (vectorizable_operation): In case of basic block SLP, take
1432 vectorization factor from statement's type and skip the relevance
1433 check. Adjust function calls.
1434 (vectorizable_type_demotion): Add assert that it is loop
1435 vectorization, adjust function calls.
1436 (vectorizable_type_promotion): Likewise.
1437 (vectorizable_store): Check for outer loop only in case of loop
1438 vectorization. Adjust function calls. For basic blocks, skip the
1439 relevance check and don't advance pointers.
1440 (vectorizable_load): Likewise.
1441 (vectorizable_condition): Add assert that it is loop vectorization,
1442 adjust function calls.
1443 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
1444 that it is not reduction, get vector type, call only supported
782dc37a 1445 functions, skip loop specific parts.
a70d6342
IR
1446 (vect_transform_stmt): Check for outer loop only in case of loop
1447 vectorization.
1448 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
1449 (vect_is_simple_use): Fix comment, add new argument, fix conditions
1450 for external definition.
1451 * passes.c (pass_slp_vectorize): New pass.
1452 * tree-vect-slp.c (find_bb_location): New function.
1453 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
1454 check for patterns only in loops.
1455 (vect_build_slp_tree): Add argument, adjust function calls, fail in
1456 case of multiple types in basic block SLP.
1457 (vect_mark_slp_stmts_relevant): New function.
1458 (vect_supported_load_permutation_p): Fix comment.
1459 (vect_analyze_slp_instance): Add argument. In case of basic block
1460 SLP, take vectorization factor from statement's type, check that
1461 unrolling factor is 1. Adjust function call. Save SLP instance in
1462 either loop or basic block vectorization structure. Return FALSE,
1463 if SLP failed.
1464 (vect_analyze_slp): Add argument. Get strided stores groups from
1465 either loop or basic block vectorization structure. Return FALSE
1466 if basic block SLP failed.
1467 (new_bb_vec_info): New function.
1468 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
1469 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
1470 (vect_schedule_slp): Add argument. Get SLP instances from either
1471 loop or basic block vectorization structure. Set vectorization factor
1472 to be 1 for basic block SLP.
1473 (vect_slp_transform_bb): New function.
1474 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
1475
0676c393
MM
14762009-05-23 Mark Mitchell <mark@codesourcery.com>
1477
1478 * final.c (shorten_branches): Do not align labels for jump tables.
1479 (final_scan_insn): Use JUMP_TABLE_DATA_P.
1480
94324dae
EB
14812009-05-23 Eric Botcazou <ebotcazou@adacore.com>
1482
1483 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
1484 Remove outdated reference to flow.c and fix nits.
1485 * doc/gccint.texi: Tweak RTL description.
1486 * doc/rtl.texi: Likewise.
1487
92bffc14
DC
14882009-05-23 Denis Chertykov <chertykov@gmail.com>
1489
1490 * config/avr/avr.c: Change my email address.
1491 * config/avr/avr.h: Likewise.
1492 * config/avr/avr.md: Likewise.
1493 * config/avr/avr-protos.h: Likewise.
1494 * config/avr/libgcc.S: Likewise.
1495
eec9405e
TS
14962009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
1497
1498 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
1499 (spu_split_load, spu_split_store): Change return type to int.
1500 (spu_split_convert): Declare.
1501 * config/spu/predicates.md (spu_mem_operand): Remove.
1502 (spu_mov_operand): Update.
1503 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
1504 * config/spu/spu.c (regno_aligned_for_load): Remove.
1505 (reg_aligned_for_addr, spu_expand_load): Define.
1506 (spu_expand_extv): Reimplement and handle MEM.
1507 (spu_expand_insv): Handle MEM.
1508 (spu_sched_reorder): Handle insn's with length 0.
1509 (spu_legitimate_address_p): Reimplement.
1510 (store_with_one_insn_p): Return TRUE for any mode with size
1511 larger than 16 bytes.
1512 (address_needs_split): Define.
1513 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
1514 operands.
1515 (spu_convert_move): Define.
782dc37a 1516 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
eec9405e
TS
1517 (spu_split_store): Change all MEM's to TImode.
1518 (spu_init_expanders): Preallocate registers that correspond to
1519 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
1520 mark_reg_pointer.
1521 (spu_split_convert): Define.
1522 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
1523 (_move<mode>, _movdi, _movti): Update predicate and condition.
1524 (load, store): Change to define_split.
1525 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
1526 extend<mode>ti2.
1527 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
1528 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
1529 define_insn_and_split of lshr<mode>3.
1530 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
1531 (<v>ashr<mode>3_imm): Define.
1532 (extv, extzv, insv): Allow MEM operands.
1533 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
1534 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
1535 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
1536 (_spu_convert2): Change to define_insn_and_split and remove the
1537 corresponding define_peephole2.
1538 (stack_protect_set, stack_protect_test, stack_protect_test_si):
1539 Change predicates to memory_operand.
1540
7d31a807
MM
15412009-05-22 Mark Mitchell <mark@codesourcery.com>
1542
1543 * config/arm/thumb2.md: Add 16-bit multiply instructions.
7d31a807 1544
d021d274
MM
15452009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
1546
1547 PR tree-optimization/40219
1548 * tree.c (iterative_hash_expr): Make sure the builtin function is
1549 a normal builtin function and not a front end or back end builtin
1550 before indexing into the built_in_decls array.
1551
4d7a65ea
RG
15522009-05-22 Richard Guenther <rguenther@suse.de>
1553
1554 PR middle-end/38964
1555 * alias.c (write_dependence_p): Do not use TBAA for answering
1556 anti-dependence or output-dependence.
782dc37a 1557 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
4d7a65ea
RG
1558 (emit_pointer_definition): Remove.
1559 (emit_alias_warning): Likewise.
1560 (find_what_var_points_to): Remove TBAA pruning code.
1561 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
1562 violations.
1563 (compute_points_to_sets): Remove code computing the set of
1564 dereferenced pointers.
1565 * tree-data-ref.c (dr_may_alias_p): Properly use the split
1566 oracle for querying anti and output dependencies.
1567 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
1568 if TBAA may be applied.
1569 (refs_anti_dependent_p): New function.
1570 (refs_output_dependent_p): Likewise.
1571 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
1572 (refs_output_dependent_p): Likewise.
1573 * doc/tree-ssa.texi (Memory model): New section.
1574 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
1575 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
1576 * cfgexpand.c (expand_gimple_basic_block): Do not handle
1577 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
1578 * expr.c (expand_expr_real_1): Likewise.
1579 * gimple-low.c (lower_stmt): Likewise.
1580 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
1581 (dump_gimple_cdt): Remove.
1582 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
1583 (gimple_size): Likewise.
1584 (walk_gimple_op): Likewise.
1585 (is_gimple_stmt): Likewise.
1586 (walk_stmt_load_store_addr_ops): Likewise.
1587 (gimple_build_cdt): Remove.
1588 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
1589 * gimple.h (gimple_cdt_new_type): Remove.
1590 (gimple_cdt_new_type_ptr): Likewise.
1591 (gimple_cdt_set_new_type): Likewise.
1592 (gimple_cdt_location): Likewise.
1593 (gimple_cdt_location_ptr): Likewise.
1594 (gimple_cdt_set_location): Likewise.
1595 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
1596 * tree-cfg.c (remove_useless_stmts_1): Do not handle
1597 GIMPLE_CHANGE_DYNAMIC_TYPE.
1598 (verify_types_in_gimple_stmt): Likewise.
1599 * tree-inline.c (estimate_num_insns): Likewise.
1600 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
1601 (copy_decl_to_var): Likewise.
1602 (copy_result_decl_to_var): Likewise.
1603 * tree-pretty-print.c (dump_generic_node): Do not handle
1604 CHANGE_DYNAMIC_TYPE_EXPR.
1605 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
1606 * tree-ssa-operands.c (get_expr_operands): Likewise.
1607 * tree-ssa-structalias.c (struct variable_info): Remove
1608 no_tbaa_pruning member.
1609 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
1610 (unify_nodes): Do not copy it.
1611 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
1612 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
1613 (set_uids_in_ptset): Do not check it.
1614 (find_what_var_points_to): Likewise.
1615 (compute_tbaa_pruning): Remove.
1616 (compute_points_to_sets): Do not call it.
1617 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
1618 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
1619 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
1620 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
1621 (DECL_NO_TBAA_P): Likewise.
1622 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
1623 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
1624 (expand_omp_atomic_pipeline): Do not set it.
1625 * print-tree.c (print_node): Do not dump it.
1626 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
1627 redundant check.
1628
83a6ac60
VM
16292009-05-22 Vladimir Makarov <vmakarov@redhat.com>
1630
1631 PR target/39856
1632 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
1633 for clobber.
1634
fe2978fb
MM
16352009-05-22 Mark Mitchell <mark@codesourcery.com>
1636
1637 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
1638 non-external.
1639
134ef638
BE
16402009-05-22 Ben Elliston <bje@au.ibm.com>
1641
1642 * Makefile.in (bversion.h, s-bversion): New targets.
1643 (TOPLEV_H): Add bversion.h.
1644 * toplev.h: Include "bversion.h".
1645 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
1646 the __format__ attribute only if compiling with the same version
1647 of GCC as the sources (the "build version").
1648
52fc669d
BE
16492009-05-22 Ben Elliston <bje@au.ibm.com>
1650
1651 * c-format.c (handle_format_attribute): Fix comment typo.
1652
583ca921
SE
16532009-05-21 Steve Ellcey <sje@cup.hp.com>
1654
1655 PR target/37846
1656 * config/ia64/ia64.opt (mfused-madd): New.
1657 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
1658 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
1659 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
1660 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
1661 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
1662 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
1663 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
1664 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
1665 instruction if !TARGET_FUSED_MADD.
1666 (fpma, fpms): Remove colon from name.
1667
150e3929
RG
16682009-05-22 Richard Guenther <rguenther@suse.de>
1669
1670 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
1671 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
1672 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
1673 TARGET_MEM_REF.
1674 (create_expression_by_pieces): Only convert if necessary.
1675 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
1676 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
1677
9a2b090c
AN
16782009-05-21 Adam Nemet <anemet@caviumnetworks.com>
1679
1680 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
1681 regular pattern from a template and rename it ...
1682 (*extzv_truncsi_exts): ... to this.
1683
33b92c9d
RG
16842009-05-21 Richard Guenther <rguenther@suse.de>
1685
1686 * cgraph.h (struct cgraph_node): Remove inline_decl member.
1687 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
1688 (cgraph_default_inline_p): Likewise.
1689 (cgraph_decide_inlining_incrementally): Likewise.
1690
cabf85c3
L
16912009-05-21 H.J. Lu <hongjiu.lu@intel.com>
1692 Uros Bizjak <ubizjak@gmail.com>
1693
1694 * config/i386/cpuid.h (bit_MOVBE): New.
1695
1696 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
1697
1698 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
1699 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
1700 (ix86_handle_option): Handle OPT_mmovbe.
1701 (ix86_target_string): Add -mmovbe.
1702 (pta_flags): Add PTA_MOVBE.
1703 (processor_alias_table): Add PTA_MOVBE to "atom".
1704 (override_options): Handle PTA_MOVBE.
1705
1706 * config/i386/i386.h (TARGET_MOVBE): New.
1707
1708 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
1709 (*bswapsi_movbe): New.
1710 (*bswapdi_movbe): Likewise.
1711 (bswapdi2): Renamed to ...
1712 (*bswapdi_1): This.
1713 (bswapdi2): New expander.
1714
1715 * config/i386/i386.opt (mmovbe): New.
1716
1717 * doc/invoke.texi: Document -mmovbe.
1718
9fefa0aa
TG
17192009-05-21 Taras Glek <tglek@mozilla.com>
1720
1721 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
1722 * gcc-plugin.h (plugin_init): Updated signature.
1723 * gcc-plugin.h (plugin_name_args): Moved to this header.
cabf85c3
L
1724 * doc/plugins.texi (plugin_init): Updated documention to reflect
1725 API change.
9fefa0aa
TG
1726 * doc/plugins.texi (plugin_name_args): Added to documention.
1727
1ea9fe56
MM
17282009-05-21 Mark Mitchell <mark@codesourcery.com>
1729
1730 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
1731 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
1732
52f84254
SZ
17332009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
1734
1735 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
1736 JUMP_TABLE_DATA_P predicates where applicable.
1737 * config/i386/predicates.md: Ditto.
1738 * config/i386/sse.md: Ditto.
1739
a952487c
JJ
17402009-05-21 Jakub Jelinek <jakub@redhat.com>
1741
93cac287
JJ
1742 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
1743 operand2 -128 override length_immediate attribute to 1.
1744 * config/i386/predicates.md (constm128_operand): New predicate.
1745
a952487c
JJ
1746 * config/i386/i386.c (memory_address_length): Handle %r12
1747 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
1748 also check REGNO.
1749 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
1750 mode look through optional ZERO_EXTEND and SUBREG.
1751 * config/i386/i386.md (R12_REG): New define_constant.
1752 (prefix_data16): For sse unit set also for MODE_TI insns.
1753 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
1754 insns set if operand 1 is ext_QIreg_operand.
1755 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
1756 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
1757 immediate.
1758 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
1759 mode from MODE_DI to MODE_SI.
1760 (movdi_1_rex64): Override modrm and length_immediate attributes
1761 only for movabs (TYPE_IMOV, alternative 2).
1762 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
1763 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
1764 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
1765 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
1766 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
1767 prefix_rex attribute if DImode.
1768 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
1769 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
1770 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
1771 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
1772 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
1773 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
1774 Likewise. For TYPE_IMOV clear length_immediate attribute.
1775 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
1776 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
1777 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
1778 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
1779 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
1780 or one operand TYPE_ISHIFT.
1781 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
1782 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
1783 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
1784 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
1785 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
1786 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
1787 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
1788 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
1789 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
1790 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
1791 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
1792 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
1793 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
1794 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
1795 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
1796 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
1797 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
1798 set mode attribute, don't override length attribute.
1799 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
1800 to 1.
1801 (return_internal_long): Set length attribute to 2 instead of 1.
1802 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
1803 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
1804 prefix_rex attribute.
782dc37a
UB
1805 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
1806 New predicates.
1807 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
a952487c 1808
64af62c2
RR
18092009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1810
1811 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
1812
c166b898
ILT
18132009-05-20 Ian Lance Taylor <iant@google.com>
1814
1815 * tree.c (build_tree_list_vec_stat): New function.
1816 (ctor_to_vec): New function.
1817 (build_nt_call_vec): New function.
1818 (build_call_array): Change args to be a const pointer.
1819 (build_call_vec): New function.
1820 * tree.h (build_nt_call_vec): Declare.
1821 (build_tree_list_vec_stat): Declare.
1822 (build_tree_list_vec): Define.
1823 (build_call_array): Update declaration.
1824 (build_call_vec): Declare.
1825 (ctor_to_vec): Declare.
1826 * c-common.c (tree_vector_cache): New static variable.
1827 (make_tree_vector): New function.
1828 (release_tree_vector): New function.
1829 (make_tree_vector_single): New function.
1830 (make_tree_vector_copy): New function.
1831 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
1832 (make_tree_vector_single, make_tree_vector_copy): Declare.
1833 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
1834 (c_parser_expr_list): Don't manage cache here, instead call
1835 make_tree_vector.
1836 (c_parser_release_expr_list): Remove static function.
1837 (c_parser_vec_to_tree_list): Remove static function.
1838 (c_parser_attributes): Call build_tree_list_vec instead of
1839 c_parser_vec_to_tree_list. Call release_tree_vector instead of
1840 c_parser_release_expr_list.
1841 (c_parser_postfix_expression_after_primary): Likewise.
1842 (c_parser_objc_keywordexpr): Likewise.
1843
40449a90
SL
18442009-05-20 Sandra Loosemore <sandra@codesourcery.com>
1845
1846 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
1847 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
1848 TARGET_CONVERT_TO_TYPE.
1849 * hooks.c (hook_tree_const_tree_null): Define.
1850 * hooks.h (hook_tree_const_tree_null): Declare.
1851 * target.h (struct gcc_target): Add invalid_parameter_type,
1852 invalid_return_type, promoted_type, and convert_to_type fields.
1853 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
1854 (TARGET_INVALID_RETURN_TYPE): Define.
1855 (TARGET_PROMOTED_TYPE): Define.
1856 (TARGET_CONVERT_TO_TYPE): Define.
1857 (TARGET_INITIALIZER): Update for new fields.
1858 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
1859 (grokparms): Check targetm.invalid_parameter_type.
1860 * c-typeck.c (default_conversion): Check targetm.promoted_type.
1861 * c-convert.c (convert): Check targetm.convert_to_type.
1862
642d97ff
AN
18632009-05-20 Adam Nemet <anemet@caviumnetworks.com>
1864
1865 * config/mips/mips.md (*extenddi_truncate<mode>,
1866 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
1867 defintions.
1868 (*extendhi_truncateqi): New define_insn_and_sptit.
1869
776248b8
JJ
18702009-05-20 Jakub Jelinek <jakub@redhat.com>
1871
1872 PR middle-end/40204
1873 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
782dc37a 1874 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
776248b8 1875
d98e8686
EB
18762009-05-20 Eric Botcazou <ebotcazou@adacore.com>
1877
1878 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
1879 the operand of VIEW_CONVERT_EXPR.
1880
37c50435
L
18812009-05-20 H.J. Lu <hongjiu.lu@intel.com>
1882
1883 * config/i386/driver-i386.c (host_detect_local_cpu): Check
f3afc8a7 1884 extended family and model for Intel processors. Support Intel Atom.
37c50435 1885
dbb6088f
OH
18862009-05-20 Olivier Hainque <hainque@adacore.com>
1887
1888 * gstab.h (stab_code_type): Define, to be used instead of the
1889 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
1890 notice.
1891 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
1892 occurrences by stab_code_type.
1893 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
1894
7ec49257
MJ
18952009-05-20 Martin Jambor <mjambor@suse.cz>
1896
1897 * tree-flow.h (insert_edge_copies_seq): Undeclare.
1898 (sra_insert_before): Likewise.
1899 (sra_insert_after): Likewise.
1900 (sra_init_cache): Likewise.
1901 (sra_type_can_be_decomposed_p): Likewise.
1902 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
1903 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
1904 (sra_insert_before): Likewise.
1905 (sra_insert_after): Likewise.
1906 (sra_init_cache): Likewise.
1907 (insert_edge_copies_seq): Made static and moved upwards.
1908
1909 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
1910 case.
1911
1912 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
1913
1914 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
1915 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
1916 simple copies.
1917
0328ae4d
RG
19182009-05-20 Richard Guenther <rguenther@suse.de>
1919
1920 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
1921 with mismatched comparison modes.
1922
a7994a57 19232009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
782dc37a 1924
a7994a57 1925 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
782dc37a
UB
1926 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
1927 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
1928 with shifts for Thumb2.
1929 (orsi_notsi): New for orn.
1930 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
1931 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
1932 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
1933 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
1934 Don't invert remainder for IOR.
a7994a57 1935
e36dc339
ZD
19362009-05-19 Zdenek Dvorak <ook@ucw.cz>
1937
1938 PR tree-optimization/40087
1939 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
1940 number_of_iterations_ne): Rename never_infinite argument.
1941 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
1942 number_of_iterations_le): Handle pointer-type ivs when
1943 exit_must_be_taken is false.
1944 (number_of_iterations_cond): Do not always assume that
1945 exit_must_be_taken if the control variable is a pointer.
1946
5cfd5d9b
AP
19472009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
1948
1949 * c-typeck.c (build_binary_op): Allow % on integal vectors.
1950 * doc/extend.texi (Vector Extension): Document that % is allowed too.
1951
2f1c7156
L
19522009-05-19 H.J. Lu <hongjiu.lu@intel.com>
1953
1954 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
1955 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
1956
7bb27074
MLI
19572009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
1958
1959 PR c/40172
1960 * c.opt (Wlogical-op): Disabled by default.
1961 * c-opt (c_common_post_options): Do not enable Wlogical-op with
1962 Wextra.
1963 * doc/invoke.texi (Wlogical-op): Likewise.
1964
5aefc6a0
EB
19652009-05-19 Eric Botcazou <ebotcazou@adacore.com>
1966
1967 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
1968 into CASE_CONVERT.
1969 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
1970 Propagate the type of the first operand.
1971 <ASSERT_EXPR>: Simplify.
1972 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
1973 Rewrite using the RHS code as discriminant.
1974 <NOP_EXPR>: Turn into CASE_CONVERT.
1975 <PLUS_EXPR>: Propagate the type of the first operand.
1976
f3a83111
SE
19772009-05-19 Steve Ellcey <sje@cup.hp.com>
1978
1979 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
1980 (ia64_dconst_0_375): New.
1981 * config/ia64/ia64.c (ia64_override_options): Remove
1982 -minline-sqrt-min-latency warning.
1983 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
1984 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
1985 * config/ia64/ia64.md (*sqrt_approx): Remove.
1986 (sqrtsf2): Remove #if 0.
1987 (sqrtsf2_internal_thr): Rewrite and move to div.md.
1988 (sqrtdf): Remove assert.
1989 (sqrtdf2_internal_thr): Rewrite and move to div.md.
1990 (sqrtxf2): Remove #if 0.
1991 (sqrtxf2_internal_thr): Rewrite and move to div.md.
1992 * div.md (sqrt_approx_rf): New.
1993 (sqrtsf2_internal_thr): New implementation.
1994 (sqrtsf2_internal_lat): New.
1995 (sqrtdf2_internal_thr: New implementation.
1996 (sqrtxf2_internal): New implementation.
1997
1ffc7157
FXC
19982009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
1999 Hans-Peter Nilsson <hp@axis.com>
2000
2001 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
2002 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
2003 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
2004 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
2005 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
2006 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
2007 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
2008 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
2009 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
2010 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
2011 * c-common.c: ...from here.
2012
db91d9ef
MLI
20132009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
2014
f3afc8a7 2015 * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
db91d9ef 2016
bbb9d91f
KG
20172009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2018
2019 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
2020
ce883f54
BE
20212009-05-19 Ben Elliston <bje@au.ibm.com>
2022
2023 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
2024 assignments with memcpy calls.
2025 (add_fdes): Likewise.
2026 (binary_search_unencoded_fdes): Likewise.
2027 (linear_search_fdes): Eliminate type puns.
2028
377f099a
RG
20292009-05-19 Richard Guenther <rguenther@suse.de>
2030
2031 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
2032 not falsely claim to have propagated into all uses.
2033
848bc769
BE
20342009-05-19 Ben Elliston <bje@au.ibm.com>
2035
2036 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
2037 version to v3.0.
2038
1bb99877
KK
20392009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
2040
2041 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
2042 * config/sh/sh.c (sh_legitimate_address_p): Make static.
2043 (TARGET_LEGITIMATE_ADDRESS_P): New.
2044 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2045 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
2046
82725547
DS
20472009-05-18 Dodji Seketeli <dodji@redhat.com>
2048
2049 PR debug/40109
2050 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
2051 child of the containing namespace's DIE.
2052
f6a1e430
AN
20532009-05-18 Adam Nemet <anemet@caviumnetworks.com>
2054
2055 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
2056 *zero_extendhi_truncqi): Move after the zero_extend patterns.
2057 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
2058 extend patterns.
2059
6a90d232
L
20602009-05-18 H.J. Lu <hongjiu.lu@intel.com>
2061
2062 PR target/39942
2063 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
2064 gen_align with gen_pad.
2065 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
2066 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
2067
2068 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
2069 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
2070
2071 * config/i386/i386.md (align): Renamed to ...
2072 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
2073 ASM_OUTPUT_MAX_SKIP_PAD.
2074
c4406f74
AS
20752009-05-18 Andreas Schwab <schwab@linux-m68k.org>
2076
06555043
AS
2077 * config.gcc: Fix variable syntax.
2078
c4406f74
AS
2079 PR target/39531
2080 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
2081 before calling exact_log2.
2082 (output_iorsi3): Likewise.
2083 (output_xorsi3): Likewise.
2084
99052692
KK
20852009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
2086
2087 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
2088 for the none zero constant operand except for EQ and NE
2089 comprisons even when the first operand is R0.
2090
f4aa3848
AK
20912009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
2092
2093 * config/s390/2064.md: Remove trailing whitespaces.
2094 * config/s390/2084.md: Likewise.
2095 * config/s390/constraints.md: Likewise.
2096 * config/s390/fixdfdi.h: Likewise.
2097 * config/s390/libgcc-glibc.ver: Likewise.
2098 * config/s390/s390-modes.def: Likewise.
2099 * config/s390/s390-protos.h: Likewise.
2100 * config/s390/s390.c: Likewise.
2101 * config/s390/s390.h: Likewise.
2102 * config/s390/s390.md: Likewise.
2103 * config/s390/tpf-unwind.h: Likewise.
2104
ab7256e4
MK
21052009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
2106
2107 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
2108
75df395f
MK
21092009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
2110
2111 M68K TLS support.
2112 * configure.ac (m68k-*-*): Check if binutils support TLS.
2113 * configure: Regenerate.
2114 * config/m68k/predicates.md (symbolic_operand): Extend comment.
2115 * config/m68k/constraints.md (Cu): New constraint.
2116 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
2117 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
2118 (movsi): Handle TLS symbols.
2119 (addsi3_5200): Handle XTLS symbols, indent.
2120 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
2121 (m68k_tls_reference_p): Declare.
2122 (m68k_legitimize_address): Declare.
2123 (m68k_unwrap_symbol): Declare.
2124 * config/m68k/m68k.opt (mxtls): New option.
2125 * config/m68k/m68k.c (ggc.h): Include.
2126 (m68k_output_dwarf_dtprel): Implement hook.
2127 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
2128 (m68k_expand_prologue): Load GOT pointer when function needs it.
2129 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
2130 (m68k_legitimate_constant_address_p): Same.
2131 (m68k_decompose_address): Handle TLS references.
2132 (m68k_get_gp): New static function.
2133 (enum m68k_reloc): New contants.
2134 (TLS_RELOC_P): New macro.
2135 (m68k_wrap_symbol): New static function.
2136 (m68k_unwrap_symbol): New function.
2137 (m68k_final_prescan_insn_1): New static function.
2138 (m68k_final_prescan_insn): New function.
2139 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
2140 functions.
2141 (legitimize_pic_address): Handle TLS references..
2142 (m68k_tls_get_addr, m68k_get_tls_get_addr)
2143 (m68k_libcall_value_in_a0_p)
2144 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
2145 (m68k_call_m68k_read_tp): Helper variables and functions for ...
2146 (m68k_legitimize_tls_address): Handle TLS references.
2147 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
2148 New functions.
2149 (m68k_legitimize_address): Handle TLS symbols.
2150 (m68k_get_reloc_decoration): New static function.
2151 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
2152 UNSPEC_RELOC32.
2153 (m68k_output_dwarf_dtprel): Implement hook.
2154 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
2155 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
2156 m68k_call_* routines.
2157 (sched_attr_op_type): Handle TLS symbols.
2158 (gt-m68k.h): Include.
2159 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
2160 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
2161
8b75fc9b
MJ
21622009-05-18 Martin Jambor <mjambor@suse.cz>
2163
2164 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
2165 (visit_store_addr_for_mod_analysis): New function.
2166 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
2167 (determine_cst_member_ptr): Use gimple_assign_single_p.
2168 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
2169 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
2170 operands. Don't check number of operands of a NOP_EXPR.
2171
f133d4a2
EF
21722009-05-18 Eric Fisher <joefoxreal@gmail.com>
2173
2174 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
2175
ae8af500
L
21762009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
2177
2178 PR c/40172
2179 * c-common.c (warn_logical_operator): Don't warn if one of
2180 expression isn't always true or false.
2181
25e8fde8
KT
21822009-05-17 Kai Tietz <kai.tietz@onevision.com>
2183
ae8af500
L
2184 * config/i386/biarch32.h: New file.
2185 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
25e8fde8 2186
ef67af22
AN
21872009-05-17 Adam Nemet <anemet@caviumnetworks.com>
2188
2189 * config/mips/mips.md (*zero_extend<mode>_trunchi,
2190 *zero_extend<mode>_truncqi): Merge these into ...
2191 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
2192 Name the pattern following this as *zero_extendhi_truncqi.
2193
e2d87023
BL
21942009-05-16 Brad Lucier <lucier@math.purdue.edu>
2195
2196 PR middle-end/39301
2197 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
2198 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
2199 (output_info): Make field HOST_WIDEST_INT.
2200 (print_statistics): Use HOST_WIDEST_INT_PRINT.
2201 (dump_bitmat_statistics): Same.
2202
428ddbf0
FXC
22032009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
2204
2205 * config.gcc (use_gcc_stdint): Set to wrap.
2206 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
2207 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
2208 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
2209 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
2210 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
2211 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
2212 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
2213 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
2214
1ab8a8c2
JM
22152009-05-16 Joseph Myers <joseph@codesourcery.com>
2216
2217 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
2218 tune_64.
2219 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
2220 Move definitions earlier.
2221 (OPT_ARCH64, OPT_ARCH32): Define.
2222 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
2223 and tune_64.
2224
70544f44
RE
22252009-05-16 Richard Earnshaw <rearnsha@arm.com>
2226
2227 PR target/40153
2228 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
2229 implies.
2230
6241ded1
RE
22312009-05-16 Richard Earnshaw <rearnsha@arm.com>
2232
2233 * arm.md (movdi2): Copy non-reg values to DImode registers.
2234
a99c6711
JJ
22352009-05-16 Jakub Jelinek <jakub@redhat.com>
2236
40a8f07a
JJ
2237 PR target/39942
2238 * final.c (label_to_max_skip): New function.
2239 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
2240 CODE_LABEL_NUMBER <= max_labelno.
2241 * output.h (label_to_max_skip): New prototype.
2242 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
2243 (ix86_avoid_jump_mispredicts): ... this. Don't define if
2244 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
2245 Handle CODE_LABELs with >= 16 byte alignment or with
2246 max_skip == (1 << align) - 1.
2247 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
2248 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
2249
a99c6711
JJ
2250 PR target/39942
2251 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
2252 .p2align 3 if MAX_SKIP is smaller than 7.
2253 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
2254
7e5487a2
ILT
22552009-05-15 Ian Lance Taylor <iant@google.com>
2256
2257 * alias.c (struct alias_set_entry_d): Rename from struct
2258 alias_set_entry. Change all uses.
2259 * except.c (struct call_site_record_d): Rename from struct
2260 call_site_record. Change all uses.
2261 * except.h (struct eh_region_d): Rename from struct eh_region.
2262 Change all uses.
2263 * gcse.c (struct hash_table_d): Rename from struct hash_table.
2264 Change all uses.
2265 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
2266 ivtype_map_elt. Change all uses.
2267 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
2268 Change all uses.
2269 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
2270 * graphite.h (struct name_tree_d): Rename from struct name_tree.
2271 Change all uses.
2272 (struct sese_d): Rename from struct sese. Change all uses.
782dc37a
UB
2273 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
2274 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
7e5487a2
ILT
2275 * optabs.h (struct optab_d): Rename from struct optab. Change all
2276 uses.
2277 (struct convert_optab_d): Rename from struct convert_optab.
2278 Change all uses.
2279 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
2280 ipa_opt_pass. Change all uses.
2281 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
2282 all uses.
2283
2284 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
2285 defined as a typedef.
2286 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
2287 defined as a tag.
2288
a243fb4a
MLI
22892009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
2290
2291 PR 16302
2292 * fold-const.c (make_range,build_range_check,merge_ranges): Move
2293 declaration to...
2294 (merge_ranges): Returns bool.
2295 * tree.h (make_range): .. to here.
2296 (build_range_check): Likewise.
2297 (merge_ranges): Likewise. Renamed from merge_ranges.
2298 * c-typeck.c (parser_build_binary_op): Update calls to
2299 warn_logical_operator.
2300 * c-common.c (warn_logical_operator): Add new warning.
2301 * c-common.h (warn_logical_operator): Update declaration.
2302
1b53c5f3
MLI
23032009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
2304
782dc37a 2305 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
1b53c5f3 2306
c128599a
KG
23072009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2308
f9bab007
KG
2309 * doc/install.texi: Document MPC requirements, flags etc.
2310
c128599a
KG
2311 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
2312 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
2313 Evaluate constant arguments.
2314 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
2315 (fold_builtin_1): Likewise, also evaluate constant arguments.
2316 Remove superfluous break.
2317 (do_mpc_ckconv): New.
2318 * real.h: Include mpc.h.
2319 * toplev.c (print_version): Output MPC version info if available.
2320
d33e4b70
SL
23212009-05-15 Sandra Loosemore <sandra@codesourcery.com>
2322
782dc37a 2323 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
d33e4b70 2324
a02ab464
L
23252009-05-15 H.J. Lu <hongjiu.lu@intel.com>
2326
2327 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
2328 only once.
2329
796bda22
JH
23302009-05-15 Jan Hubicka <jh@suse.cz>
2331
2332 * doc/invoke.texi (max-early-inliner-iterations): New flag.
2333 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
2334 (try_inline): Fix return value.
2335 (cgraph_decide_inlining_incrementally): Honor new value.
2336 (cgraph_early_inlining): Handle indirect inlining.
2337 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
2338
d88e5c37
JH
23392009-05-15 Jan Hubicka <jh@suse.cz>
2340
2341 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
2342 * cgraphunit.c (cgraph_finalize_function): Set it.
2343 (cgraph_expand_function): Use it.
2344
ae63687c
SL
23452009-05-15 Sandra Loosemore <sandra@codesourcery.com>
2346
2347 * real.c (encode_ieee_half): Define.
2348 (decode_ieee_half): Define.
2349 (ieee_half_format): Define.
2350 (arm_half_format): Define.
2351 * real.h (ieee_half_format): Declare.
2352 (arm_half_format): Declare.
2353
1bd74ad9
SL
23542009-05-15 Sandra Loosemore <sandra@codesourcery.com>
2355
2356 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
2357 swapped, and reversed optabs exist before trying to use them.
2358
dc34db56
PB
23592009-05-15 Paul Brook <paul@codesourcery.com>
2360 Sandra Loosemore <sandra@codesourcery.com>
2361
dc34db56
PB
2362 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
2363 loads. Allow PRE_DEC.
2364 (output_move_neon): Handle PRE_DEC.
2365 (arm_print_operand): Add 'A' for neon structure loads.
2366 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
2367 * config/arm/neon.md (neon_mov): Update comment.
2368 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
2369 calls.
2370 (Um): New constraint.
2371
1d405d7b
JH
23722009-05-15 Jan Hubicka <jh@suse.cz>
2373
2374 Revert the following patch until testsuite fallout is fixed:
2375 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2376 * cgraph.h (struct inline_summary): New filed self_wize,
2377 size_inlining_benefit, self_time and time_inlining_benefit.
2378 (struct cgraph_global_info): Replace insns by time ans size fields.
2379 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2380 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2381 (ipcp_update_callgraph): Do not touch function bodies.
2382 * ipa-inline.c: Include except.h
782dc37a 2383 (MAX_TIME): New constant.
1d405d7b
JH
2384 (overall_insns): Remove
2385 (overall_size, max_benefit): New static variables.
2386 (cgraph_estimate_time_after_inlining): New function.
2387 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2388 (cgraph_clone_inlined_nodes): Update size.
2389 (cgraph_mark_inline_edge): Update size.
2390 (cgraph_estimate_growth): Use size info.
2391 (cgraph_check_inline_limits): Check size.
2392 (cgraph_default_inline_p): Likewise.
2393 (cgraph_edge_badness): Compute badness based on benefit and size cost.
2394 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
2395 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
2396 and times.
1d405d7b 2397 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
2398 (cgraph_decide_inlining_incrementally): Likewise; honor
2399 PARAM_EARLY_INLINING_INSNS.
1d405d7b
JH
2400 (likely_eliminated_by_inlining_p): New predicate.
2401 (estimate_function_body_sizes): New function.
2402 (compute_inline_parameters): Use it.
2403 * except.c (must_not_throw_labels): New function.
2404 * except.h (must_not_throw_labels): Declare.
2405 * tree-inline.c (init_inline_once): Kill inlining_weigths
2406 * tree-ssa-structalias.c: Avoid uninitialized warning.
2407 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2408 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2409 (PARAM_INLINE_CALL_COST): Remove.
2410 (PARAM_EARLY_INLINING_INSNS): New.
2411
7ffa47ca
RG
24122009-05-15 Richard Guenther <rguenther@suse.de>
2413
2414 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
2415 not TODO_update_ssa.
2416
828552ed
RG
24172009-05-15 Richard Guenther <rguenther@suse.de>
2418
2419 PR tree-optimization/39999
2420 * gimple.h (gimple_expr_type): Use the expression type looking
2421 through useless conversions.
2422 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
2423 (vn_nary_op_insert_stmt): Likewise.
2424 (simplify_binary_expression): Likewise.
2425
248fc9f3
RG
24262009-05-15 Richard Guenther <rguenther@suse.de>
2427
2428 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
2429 New options, enabled by default.
2430 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
2431 Document.
2432 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
2433 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
2434 * tree-ssa-structalias.c (gate_tree_pta): New function.
2435 (pass_build_alias): Use it.
2436
16b29cc4
JM
24372009-05-15 Joseph Myers <joseph@codesourcery.com>
2438
2439 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
2440 recurse on an invariant address if a conversion from a pointer
2441 type to a wider integer type is involved.
2442
125cae84
JH
24432009-05-15 Jan Hubicka <jh@suse.cz>
2444
2445 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2446 * cgraph.h (struct inline_summary): New filed self_wize,
2447 size_inlining_benefit, self_time and time_inlining_benefit.
2448 (struct cgraph_global_info): Replace insns by time ans size fields.
2449 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2450 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2451 (ipcp_update_callgraph): Do not touch function bodies.
2452 * ipa-inline.c: Include except.h
782dc37a 2453 (MAX_TIME): New constant.
125cae84
JH
2454 (overall_insns): Remove
2455 (overall_size, max_benefit): New static variables.
2456 (cgraph_estimate_time_after_inlining): New function.
2457 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2458 (cgraph_clone_inlined_nodes): Update size.
2459 (cgraph_mark_inline_edge): Update size.
2460 (cgraph_estimate_growth): Use size info.
2461 (cgraph_check_inline_limits): Check size.
2462 (cgraph_default_inline_p): Likewise.
2463 (cgraph_edge_badness): Compute badness based on benefit and size cost.
2464 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
2465 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
2466 and times.
125cae84 2467 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
2468 (cgraph_decide_inlining_incrementally): Likewise; honor
2469 PARAM_EARLY_INLINING_INSNS.
125cae84
JH
2470 (likely_eliminated_by_inlining_p): New predicate.
2471 (estimate_function_body_sizes): New function.
2472 (compute_inline_parameters): Use it.
2473 * except.c (must_not_throw_labels): New function.
2474 * except.h (must_not_throw_labels): Declare.
2475 * tree-inline.c (init_inline_once): Kill inlining_weigths
2476 * tree-ssa-structalias.c: Avoid uninitialized warning.
2477 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2478 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2479 (PARAM_INLINE_CALL_COST): Remove.
2480 (PARAM_EARLY_INLINING_INSNS): New.
2481 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
2482 (inline-call-cost): Remove.
2483 (early-inlining-insns): New.
2484
84fb43a1
EB
24852009-05-15 Eric Botcazou <ebotcazou@adacore.com>
2486
2487 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
2488 for bounds.
2489 (print_int_cst_bounds_in_octal_p): Likewise.
2490 (dbxout_type): Adjust calls to above functions. Be prepared to deal
2491 with subtypes.
2492 * dwarf2out.c (base_type_die): Likewise.
2493 (is_subrange_type): Delete.
2494 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
2495 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
f3afc8a7
UB
2496 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
2497 if the destination type is boolean.
84fb43a1
EB
2498 (build_range_check): Do not special-case subtypes.
2499 (fold_sign_changed_comparison): Likewise.
2500 (fold_unary): Likewise.
2501 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
2502 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
2503 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
f3afc8a7
UB
2504 * tree.c (subrange_type_for_debug_p): New predicate based on the
2505 former is_subrange_type.
84fb43a1
EB
2506 * tree.h (subrange_type_for_debug_p): Declare.
2507 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
2508 (convert_affine_scev): Remove call to above function.
2509 (chrec_convert_aggressive): Likewise.
2510 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
2511 false for conversions involving subtypes.
2512 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
2513 (vrp_val_min): Likewise.
2514 (needs_overflow_infinity): Likewise.
2515 (extract_range_from_unary_expr): Likewise.
2516
331d9186
PB
25172009-05-15 Paolo Bonzini <bonzini@gnu.org>
2518
e9351712
L
2519 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
2520 * config/frv/frv.c: Likewise.
2521 * config/s390/s390.c: Likewise.
2522 * config/sparc/sparc.h: Likewise.
2523 * config/i386/i386.h: Likewise.
2524 * config/i386/i386.c: Likewise.
2525 * config/crx/crx.c: Likewise.
2526 * config/m68hc11/m68hc11.h: Likewise.
2527 * config/iq2000/iq2000.c: Likewise.
2528 * config/mn10300/mn10300.h: Likewise.
2529 * config/mn10300/mn10300.c: Likewise.
2530 * config/m68k/m68k.c: Likewise.
2531 * config/rs6000/rs6000.c: Likewise.
2532 * config/rs6000/xcoff.h: Likewise.
2533 * config/rs6000/linux64.h: Likewise.
2534 * config/rs6000/sysv4.h: Likewise.
2535 * config/score/score3.c: Likewise.
2536 * config/score/score7.c: Likewise.
2537 * config/score/score.c: Likewise.
2538 * config/arm/arm.md: Likewise.
2539 * config/mips/mips.c: Likewise.
2540 * config/mips/mips.md: Likewise.
2541 * config/bfin/bfin.h: Likewise.
2542 * config/pa/pa.c: Likewise.
2543 * config/pa/constraints.md: Likewise.
2544
2545 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
2546 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
2547 * config/pdp11/pdp11.h: Use memory_address_p instead.
331d9186 2548
09639a83
ILT
25492009-05-14 Ian Lance Taylor <iant@google.com>
2550
2551 * passes.c (finish_optimization_passes): Change i to int.
2552 * plugin.c (plugins_active_p): Change event to int.
2553 (dump_active_plugins): Likewise.
2554 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
2555 Add cast.
2556 * tree.c (tree_range_check_failed): Change c to unsigned int.
2557 (omp_clause_range_check_failed): Likewise.
2558 (build_common_builtin_nodes): Change mode to int. Add cast.
2559 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
2560 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
2561
2562 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
2563 ++ or -- with a variable of enum type.
2564
c04a56bf
SB
25652009-05-14 Steven Bosscher <steven@gcc.gnu.org>
2566
2567 PR driver/40144
2568 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
2569
237ee620
SB
25702009-05-14 Steven Bosscher <steven@gcc.gnu.org>
2571
2572 * store-motion.c: Do not include params.h
2573 * Makefile.in: Fix dependencies for various files.
2574
1154c4fa
SB
25752009-05-14 Steven Bosscher <steven@gcc.gnu.org>
2576
2577 * auto-inc-dec.c: Fix pass description, remove apparent
2578 accidental duplication.
2579
61c27353
L
25802009-05-14 H.J. Lu <hongjiu.lu@intel.com>
2581
2582 PR middle-end/40147
2583 * ipa-utils.h (memory_identifier_string): Moved to ...
2584 * tree.h (memory_identifier_string): Here. Add GTY(()).
2585
c6c3dba9
PB
25862009-05-14 Paolo Bonzini <bonzini@gnu.org>
2587
2588 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
2589 in the former documentation of...
2590 (GO_IF_LEGITIMATE_ADDRESS): ... this.
2591 * ira-conflicts.c (get_dup_num): Use address_operand.
2592 * targhooks.c (default_legitimate_address_p): New.
2593 * targhooks.h (default_legitimate_address_p): New.
2594 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
2595 Call hook.
2596 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
2597 * target.h (struct target): Add legitimate_address_p.
2598 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
2599 (TARGET_INITIALIZER): Include it.
2600
2601 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2602 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
2603 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
2604 (TARGET_LEGITIMATE_ADDRESS_P): New.
2605
2606 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2607 (REG_OK_STRICT_P): Delete.
2608 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
2609 (frv_legitimate_address_p_1): ... this.
2610 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
2611 (frv_legitimate_address_p_1): ... the renamed old
2612 frv_legitimate_address_p.
2613 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
2614 (TARGET_LEGITIMATE_ADDRESS_P): New.
2615
2616 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2617 * config/s390/s390-protos.h (legitimate_address_p): Remove.
2618 * config/s390/s390.c (legitimate_address_p): Rename to...
2619 (s390_legitimate_address_p): ... this, make static.
2620 (legitimize_address): Adjust call.
2621 (TARGET_LEGITIMATE_ADDRESS_P): New.
2622 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
2623
2624 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2625 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
2626 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
2627 (TARGET_LEGITIMATE_ADDRESS_P): New.
2628
2629 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2630 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
2631 * config/spu/spu.c (spu_legitimate_address): Rename to...
2632 (spu_legitimate_address_p): ... this, make static.
2633 (TARGET_LEGITIMATE_ADDRESS_P): New.
2634
2635 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2636 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
2637 * config/sparc/sparc.c (legitimate_address_p): Rename to...
2638 (sparc_legitimate_address_p): ... this, make static and return bool.
2639 (legitimize_address): Adjust call.
2640 (TARGET_LEGITIMATE_ADDRESS_P): New.
2641
2642 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2643 * config/i386/i386-protos.h (legitimate_address_p): Remove.
2644 * config/i386/i386.c (legitimate_address_p): Rename to...
2645 (ix86_legitimate_address_p): ... this, make static.
2646 (constant_address_p): Move after it, adjust call.
2647 (TARGET_LEGITIMATE_ADDRESS_P): New.
2648
2649 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2650 * config/avr/avr-protos.h (legitimate_address_p): Remove.
2651 * config/avr/avr.c (legitimate_address_p): Rename to...
2652 (avr_legitimate_address_p): ... this, make static.
2653 (legitimize_address): Adjust call.
2654 (TARGET_LEGITIMATE_ADDRESS_P): New.
2655
2656 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2657 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
2658 * config/crx/crx.c (crx_legitimate_address_p): Make static.
2659 (TARGET_LEGITIMATE_ADDRESS_P): New.
2660
2661 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2662 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
2663 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
2664 (TARGET_LEGITIMATE_ADDRESS_P): New.
2665
2666 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2667 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
2668 Remove.
2669 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
2670 Make static.
2671 (TARGET_LEGITIMATE_ADDRESS_P): New.
2672
2673 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2674 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
2675 Remove.
2676 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
2677 Rename to...
2678 (m68hc11_legitimate_address_p): ... this, make static.
2679 (go_if_legitimate_address_internal): Rename to...
2680 (m68hc11_legitimate_address_p_1): ... this.
2681 (legitimize_address): Adjust call.
2682 (TARGET_LEGITIMATE_ADDRESS_P): New.
2683
2684 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
782dc37a
UB
2685 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
2686 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
c6c3dba9
PB
2687 (TARGET_LEGITIMATE_ADDRESS_P): New.
2688
2689 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2690 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
2691 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
2692 (mn10300_legitimate_address_p): ... this, make static.
2693 (TARGET_LEGITIMATE_ADDRESS_P): New.
2694
2695 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2696 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
2697 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
2698 (TARGET_LEGITIMATE_ADDRESS_P): New.
2699
2700 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2701 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
2702 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
2703 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2704 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
2705 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
2706 (rs6000_legitimate_address_p): ... this, make static.
2707 (TARGET_LEGITIMATE_ADDRESS_P): New.
2708 (REG_MODE_OK_FOR_BASE_P): Delete.
2709 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
2710
2711 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2712 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
2713 Delete.
2714 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
2715 static, adjust types.
2716 (TARGET_LEGITIMATE_ADDRESS_P): New.
2717
2718 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2719 * config/score/score.c (score_address_p): Rename to...
2720 (score_legitimate_address_p): ... this.
2721 (TARGET_LEGITIMATE_ADDRESS_P): New.
2722 * config/score/score3.c (score3_address_p): Rename to...
2723 (score3_legitimate_address_p): ... this.
2724 * config/score/score7.c (score7_address_p): Rename to...
2725 (score7_legitimate_address_p): ... this.
2726
2727 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
2728 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
2729 GO_IF_LEGITIMATE_ADDRESS): Delete.
2730 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
2731 thumb2_legitimate_address_p): Delete.
2732 (arm_legitimate_address_p): Rename to...
2733 (arm_legitimate_address_outer_p): ... this.
2734 * config/arm/constraints.md ("Uq"): Adjust call.
2735 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
f3afc8a7
UB
2736 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
2737 to...
c6c3dba9 2738 (arm_legitimate_address_outer_p): ... this.
f3afc8a7
UB
2739 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
2740 static.
c6c3dba9
PB
2741 (TARGET_LEGITIMATE_ADDRESS_P): New.
2742
2743 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2744 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
2745 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
2746 (TARGET_LEGITIMATE_ADDRESS_P): New.
2747
2748 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2749 * config/vax/vax-protos.h (legitimate_address_p): Remove.
2750 * config/vax/vax.c (legitimate_address_p): Rename to...
2751 (vax_legitimate_address_p): ... this, make static.
2752 (TARGET_LEGITIMATE_ADDRESS_P): New.
2753
2754 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2755 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
2756 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
2757 (TARGET_LEGITIMATE_ADDRESS_P): New.
2758
2759 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2760 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
2761 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
2762 (mmix_legitimate_address_p): ... this, make static.
2763 (TARGET_LEGITIMATE_ADDRESS_P): New.
2764
2765 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2766 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
2767 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
2768 (TARGET_LEGITIMATE_ADDRESS_P): New.
2769
3bd0d9c8
PB
27702009-05-14 Paolo Bonzini <bonzini@gnu.org>
2771
2772 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
2773 of MODE_COMPLEX_INT.
2774
fe049033
RO
27752009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2776
2777 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
2778 LCT_NORMAL in function call.
2779 * mips-tdump.c (print_file_desc): Add cast to enum type.
2780 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
2781 (mark_stabs): Add casts to enum types.
2782 (parse_stabs_common): Add casts to enum types.
16f7ad42 2783
b0907a6c
AN
27842009-05-13 Adam Nemet <anemet@caviumnetworks.com>
2785
2786 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
2787 Check for invalid values of LETTER.
2788
d1c8e08a
TG
27892009-05-13 Taras Glek <tglek@mozilla.com>
2790
f3afc8a7
UB
2791 * attribs.c (register_attribute): moved out attribute registration
2792 into register_attribute.
2793 * doc/plugins.texi: Documented register_attribute and
2794 PLUGIN_ATTRIBUTES.
16f7ad42
TG
2795 * gcc-plugin.h: Added forward decl for register_attribute.
2796 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
2797 * plugin.c (register_callback, invoke_plugin_callbacks): Added
2798 PLUGIN_ATTRIBUTES boilerplate.
d1c8e08a 2799
4ed7f970
DK
28002009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
2801
2802 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
2803 values even in sentinel and empty entries.
2804 (ms_printf_flag_specs): Likewise.
2805 (ms_scanf_flag_specs): Likewise.
2806 (ms_strftime_flag_specs): Likewise.
2807 (ms_print_char_table): Likewise.
2808 (ms_scan_char_table): Likewise.
2809 (ms_time_char_table): Likewise.
2810
3d8fa148
DK
28112009-05-13 Doug Kwan <dougkwan@google.com>
2812
2813 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
2814
f06257d3
AN
28152009-05-13 Adam Nemet <anemet@caviumnetworks.com>
2816
2817 * config/mips/mips.md (store): Add attributes for QI and HI.
2818 Update comment.
2819 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
2820 (truncdi<mode>2): ... this new pattern.
2821
fb201767
BH
28222009-05-13 Brad Hards <bradh@kde.org>
2823
2824 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
2825
c7bda60e 28262009-05-14 Jakub Jelinek <jakub@redhat.com>
efc3527a
BE
2827 Ben Elliston <bje@au.ibm.com>
2828
2829 PR middle-end/40035
2830 * dse.c (check_mem_read_rtx): Guard against width == -1.
2831
ce985b43
MM
28322009-05-13 Michael Matz <matz@suse.de>
2833
2834 PR middle-end/39976
2835 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
2836 (trivially_conflicts_p): New function.
2837 (insert_backedge_copies): Use it.
2838
7de1d221
JJ
28392009-05-13 Janis Johnson <janis187@us.ibm.com>
2840
2841 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
2842 (handle_stdc_pragma): Use new enum constant names.
2843 (handle_pragma_float_const_decimal64): Ditto.
2844
bfefafc6
ILT
28452009-05-13 Ian Lance Taylor <iant@google.com>
2846
2847 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
2848 tree.def.
2849
286c4fcb
NS
28502009-05-13 Nathan Sidwell <nathan@codesourcery.com>
2851
2852 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
2853 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
2854 multilibs.
2855 * config/m68k/m68k.h (FL_UCLINUX): Define.
2856
ebaa6ea7
JH
28572009-05-13 Jan Hubicka <jh@suse.cz>
2858
2859 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
2860
2b703e1a
KK
28612009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
2862
2863 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
2864 unless -fschedule-insns is specified.
2865
c3537723
KK
28662009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
2867
2868 PR target/39561
2869 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
2870 TARGET_EXPAND_CBRANCHDI4.
2871 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
2872 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
2873 (cmpeqdi): Fix comment.
2874
cdeed45a
KK
28752009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
2876
2877 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
2878 (sh_legitimate_address_p): Likewise.
2879 * config/sh/sh.c (sh_legitimate_index_p): New.
2880 (sh_legitimate_address_p): Likewise.
2881 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
2882 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
2883 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
2884 (MAYBE_BASE_REGISTER_RTX_P): New macro.
2885 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
2886 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
2887 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
2888 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
2889 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
2890
02f0b13a
JH
28912009-05-12 Jan Hubicka <jh@suse.cz>
2892
2893 * tree-inline.c (estimate_operator_cost): Add operands;
2894 when division happens by constant, it is cheap.
2895 (estimate_num_insns): Loads and stores are not having cost of 0;
2896 EH magic stuff is cheap; when computing runtime cost of switch,
2897 use log2 base of amount of its cases; builtin_expect has cost of 0;
2898 compute cost for moving return value of call.
2899 (init_inline_once): Initialize time_based flags.
2900 * tree-inline.h (eni_weights_d): Add time_based flag.
2901
ecb7f6de
PB
29022009-05-12 Paolo Bonzini <bonzini@gnu.org>
2903
2904 * df-core.c: Update head documentation.
2905
c24151ce
MM
29062009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
2907
2908 PR bootstrap/40118
2909 * rs6000.c (rs6000_generate_compare): Use op1b instead of
2910 shadowing exisiting variable op1.
2911
fbdf817d
UB
29122009-05-12 Uros Bizjak <ubizjak@gmail.com>
2913
704bf7c8 2914 PR target/37179
fbdf817d
UB
2915 * config/i386/driver-i386.c (processor_signatures): New enum.
2916 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
2917 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
2918 processor signature to detect geode processor.
2919
5e8d1826
PB
29202009-05-12 Paolo Bonzini <bonzini@gnu.org>
2921
2922 Revert:
2923
2924 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
2925
2926 * optabs.c (prepare_cmp_insn): Temporarily disable test that
2927 causes spurious differences between trunk and cond-optab branch.
2928
f90b7a5a
PB
29292009-05-12 Paolo Bonzini <bonzini@gnu.org>
2930
fbdf817d
UB
2931 * dojump.c (compare_from_rtx): Delete.
2932 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
2933 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
f90b7a5a
PB
2934 if the comparison does not satisfy the predicate; test predicates for
2935 operands 2 and 3 of a cstore pattern. Don't try cstore optab
2936 further if one existing pattern fails.
fbdf817d 2937 * expr.h (compare_from_rtx): Delete.
f90b7a5a 2938 (prepare_operand): Declare it.
fbdf817d 2939 * optabs.c: Change "lib call" to "libcall" throughout.
f90b7a5a 2940 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
fbdf817d
UB
2941 HAVE_conditional_trap, emit_cmp_insn): Delete.
2942 (can_compare_p): Delete cmp_optab case.
f90b7a5a 2943 (prepare_float_lib_cmp): Return an rtx and a machine mode.
fbdf817d
UB
2944 Accept other parameters by value.
2945 (prepare_operand): Make non-static.
2946 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
2947 other parameters by value. Try to widen operands here based on
2948 an optab_methods argument and looking at cbranch_optab.
2949 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
2950 loop. Use cbranch_optab directly.
2951 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
2952 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
2953 assertion.
2954 (emit_conditional_move, emit_conditional_add): Inline what's needed
2955 of compare_from_rtx, using new prepare_cmp_insn for the rest.
2956 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
2957 with COMPARE. Move cmov_optab and cstore_optab above
2958 with cbranch_optab, move cmp_optab down with ucmp_optab,
2959 remove tst_otpab. Do not initialize trap_rtx.
2960 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
f90b7a5a
PB
2961 for trap code. Do not check HAVE_conditional_trap. Use
2962 prepare_cmp_insn. Accept no predicate for operand 3.
fbdf817d
UB
2963 * optabs.h (OTI_cmp): Mark as used only for libcalls.
2964 (OTI_ctrap, ctrap_optab): New.
2965 (tst_optab): Delete.
2966 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
2967 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
2968 with lookup of ctrap_optab.
f3afc8a7
UB
2969 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
2970 Delete.
fbdf817d
UB
2971 (ctrap_optab): New.
2972
2973 * combine.c (combine_simplify_rtx, simplify_set): Do not
2974 special case comparing against zero for cc0 machines.
f90b7a5a
PB
2975 * simplify-rtx.c (simplify_binary_operation_1): Never remove
2976 COMPARE on cc0 machines.
2977 (simplify_relational_operation): Return a new expression when
2978 a COMPARE could be removed.
fbdf817d
UB
2979 * final.c (final_scan_insn): Compare cc_status values
2980 against LHS of a (compare FOO (const_int 0)) cc0 source.
2981 Also check if cc_status.value is the full compare.
f90b7a5a 2982
fbdf817d
UB
2983 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
2984 (cstoreMM4): Document.
f90b7a5a 2985 (conditional_trap): Document ctrapMM4 instead.
fbdf817d 2986 (sync_compare_and_swapMM): Refer to cbranchcc4.
f90b7a5a
PB
2987 (Dependent Patterns): Eliminate obsolete information referring to
2988 the old jump optimization phase.
fbdf817d 2989 (Canonicalization): Include cbranchcc4 case, omit canonicalization
f90b7a5a
PB
2990 of compares with 0 on cc0 machines.
2991 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
2992 avoiding references to cc0. Remove text about storing operands
2993 in cmpMM.
2994 * doc/tm.texi (Condition Codes): Include blurb on different
2995 condition code representations, separate into subsections for
2996 CC0, MODE_CC and conditional execution.
2997
fbdf817d
UB
2998 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
2999 alpha_emit_setcc): Accept operands and a machine mode.
3000 * config/alpha/alpha.c (alpha_emit_conditional_branch):
3001 Get code/op0/op1 from operands, use machine mode argument
3002 instead of alpha_compare.fp_p. Emit the branch here.
3003 (alpha_emit_setcc): Likewise, and return boolean.
3004 (alpha_emit_conditional_move): Likewise. Assert that
3005 cmp_op_mode == cmp_mode, and simplify accordingly.
3006 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
3007 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
3008 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
3009 Delete.
3010 (stack probe test): Use cbranchdi4.
3011 * config/alpha/predicates.md (alpha_cbranch_operator): New.
3012
3013 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
3014 * config/arc/arc.h (movsicc, movsfcc): Use it.
3015 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
3016 (cbranchsi4, cstoresi4): New.
3017 (cmpsi, bCC and sCC expanders): Remove.
3018
3019 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
3020 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
3021 * config/arm/predicates.md (arm_comparison_operator): Only include
3022 floating-point operators if there is a hardware floating-point unit.
3023 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
3024 deferring to cbranch_cc and cstore_cc respectively.
3025 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
3026 cbranch_cc, cstore_cc): New.
3027 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
f90b7a5a 3028 arm_compare_op1.
fbdf817d
UB
3029 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
3030
3031 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
3032 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
3033 as an argument.
3034 (adjust_insn_length): Adjust calls.
3035 (avr_reorg): Handle (compare (foo) (const_int 0)).
3036 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
3037 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
3038 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
3039 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
3040 (bCC): Remove.
3041 (cbranchqi4, cbranchhi4, cbranchsi4): New.
f90b7a5a
PB
3042 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
3043
fbdf817d
UB
3044 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
3045 (cbranchsi4, cstorebi4, cstoresi4): New.
f90b7a5a 3046 (movbisi): This insn is duplicate, split it to zero_extend.
fbdf817d
UB
3047 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
3048 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
3049 (bfin_optimize_loop): Use cbranch expander.
3050 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
3051 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
3052 (bfin_bimode_comparison_operator): ... this.
3053 (bfin_direct_comparison_operator): New.
f90b7a5a 3054
fbdf817d
UB
3055 * config/cris/cris.c (cris_normal_notice_update_cc): Look
3056 inside (compare FOO (const_int 0)).
3057 (cris_rtx_costs): Handle ZERO_EXTRACT.
3058 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
3059 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
3060 (*tstdi_v32): Delete.
3061 (*cmpdi_non_v32): Add M alternative for operand 1.
3062 (cmpsi, cmp<mode>): Make private.
3063 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
3064 with COMPARE.
3065 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
3066
3067 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
3068 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
3069 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
f90b7a5a
PB
3070 (cc_reg_operand): New.
3071 (any_cond): Delete.
fbdf817d
UB
3072 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
3073 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
3074 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
3075 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
3076 crx_expand_scond): Delete.
3077
3078 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
3079 (cbranchsi4): New.
3080 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
3081 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
3082
3083 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
3084 cstoresi4, cstoresf4, cstoredf4): New.
3085 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
3086 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
3087 Receive the entire operands array.
3088 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
3089 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
3090 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
3091 Get test/op0/op1 from the operands array.
3092 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
3093
3094 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
3095 (h8300_expand_store): New.
3096 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
3097 (const_int 0)).
3098 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
3099 (h8300_expand_store): New.
3100 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
3101 or do not try to produce (set (cc0) REG).
3102 (peepholes): Wrap arguments with COMPARE. Add a peephole to
3103 change a compare into a move to a scratch register. Disable some
3104 peepholes when comparing with zero.
3105 (tstsi, tsthi, tstsi, cmpqi): Make private.
3106 (cmphi): Delete.
3107 (bCC, sCC): Delete.
3108 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
3109 cstoresi4): New.
f90b7a5a
PB
3110
3111 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
3112 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
3113 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
3114 (ix86_emit_i387_log1p): Use cbranchxf2.
3115 (ix86_expand_setcc): Return void.
3116 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
3117 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
3118 cmp<MODEF>, cmpcc): Remove.
fbdf817d
UB
3119 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
3120 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
3121 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
f90b7a5a
PB
3122 (sCC and bCC expanders): Remove.
3123 (stack_protect_test): Use cbranchcc4.
3124
fbdf817d
UB
3125 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
3126 Delete.
3127 (ia64_expand_compare): Accept three rtx by reference and return void.
3128 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
3129 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
3130 from *expr. Update *expr with the BImode comparison to do.
3131 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
3132 cmptf, bCC, sCC, conditional_trap): Delete.
3133 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
3134 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
3135 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
3136 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
3137 * config/ia64/predicates.md (ia64_cbranch_operator): New.
3138
3139 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
3140 type of last argument.
3141 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
3142 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
3143 use machine mode argument instead of branch_type. Remove dead
3144 code for floating-point comparisons.
3145 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
3146 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
3147 Remove.
3148 (cbranchsi4, cstoresi4): New.
3149 * config/iq2000/predicates.md (reg_or_const_operand): New.
3150
3151 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
3152 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
3153 (b<code>_op): Rewrite to...
3154 (bcc_op): ... this, using match_operator.
3155 (s<code>_op): Rewrite to...
3156 (scc_op): ... this, using match_operator.
3157 (s<code>_24_op): Rewrite to...
3158 (scc_op_24): ... this, using match_operator.
3159 (s<code>_<mode>): Rewrite to...
3160 (cstore<mode>4): ... this, using match_operator.
3161 (s<code>_<mode>_24): Rewrite to...
3162 (cstore<mode>4_24): ... this, using match_operator.
3163 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
3164 m32c_unpend_compare, m32c_expand_scc): Delete.
3165 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
3166 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
3167 (m32c_expand_movcc): Change NE to EQ if necessary.
3168 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
3169
3170 * config/m32r/m32r-protos.h (gen_cond_store): New.
3171 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
3172 (gen_cond_store): New, from sCC patterns.
3173 (m32r_expand_block_move): Use cbranchsi4.
3174 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
3175 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
3176 (cbranchsi4, cstoresi4): New.
3177
3178 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
3179 Delete.
3180 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
f90b7a5a 3181 (m68hc11_notice_update_cc): Look into a compare with 0.
fbdf817d
UB
3182 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
3183 Delete.
3184 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
3185 cmphi, cmpqi, bCC): Delete.
3186 (cbranchsi4, cbranchhi4, cbranchqi4): New.
3187 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
3188 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
3189 sets with COMPARE.
3190
3191 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
3192 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
3193 * config/m68k/constraints.md (H): New.
3194 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
3195 the define_insn below.
3196 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
3197 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
3198 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
3199 patterns): Wrap RHS with COMPARE.
3200 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
3201 (*cmpdi_internal): Name this pattern.
3202 (cmpdi): Change to define_insn.
3203 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
3204 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
3205 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
3206 predicate.
3207 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
3208 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
3209 (conditional_trap): Change to...
3210 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
3211 (*conditional_trap): Use the ordered_comparison_operator and
3212 const1_operand predicates.
3213 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
3214 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
3215 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
3216 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
3217
3218 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
3219 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
3220 (mcore_gen_compare): New.
3221 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
3222 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
3223 (mcore_gen_compare): ... this.
3224 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
3225 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
3226 (stack probe pattern): Use cbranchsi4.
3227
3228 * config/mips/predicates.md (mips_cstore_operator): New.
3229 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
3230 * config/mips/mips.md (any_cond): Delete.
3231 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
3232 always succeed.
3233 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
3234 fixuns_truncsfdi2): Use cbranch patterns.
3235 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
3236 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
3237 Adjust call to mips_expand_conditional_branch.
3238 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
3239 cstore<GPR:mode>4.
3240 * config/mips/mips-protos.h (mips_expand_conditional_branch,
3241 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
3242 * config/mips/mips.c (cmp_operands): Delete.
3243 (mips_emit_compare): Get comparison operands from *op0/*op1.
3244 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
3245 that it succeeds. Use op0/op1 instead of cmp_operands.
3246 (mips_expand_conditional_branch, mips_expand_conditional_move,
3247 mips_expand_conditional_trap): Likewise.
3248 (mips_block_move_loop): Use cbranch patterns.
3249 * config/mips/mips.h (cmp_operands): Delete.
3250
3251 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
3252 (mmix_gen_compare_reg): Just return a register in the right CC mode.
3253 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
3254 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
3255 (*cmpcc_folded): Rename to...
3256 (*cmpdi_folded): this.
3257 (*cmpcc): Rename to...
3258 (*cmps): ... this.
3259 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
3260 (bCC): Remove.
3261 (cbranchdi4): New.
3262 (cbranchdf4): New. Handle invalid comparisons here.
3263 * config/mmix/predicates.md (float_comparison_operator): New.
3264
3265 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
3266 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
3267 * config/mn10300/mn10300.md (tst): Delete.
3268 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
3269 Name these patterns and wrap RHS in a compare.
3270 (*cmpsi): Make this pattern private. Include tst.
3271 (*cmpsf): Make this pattern private.
3272 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
3273 (compare with zero peepholes): Likewise.
3274 (bCC): Remove.
3275 (cbranchsi4, cbranchsf4): New.
3276 (casesi): Use cbranchsi4.
3277
3278 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
3279 hppa_branch_type): Delete.
3280 (return_addr_rtx): Use cbranchsi4.
3281 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
3282 Emit CCFPmode comparison here.
3283 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
3284 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
3285 hppa_branch_type): Delete.
3286 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
3287 (movsicc, movdicc): Remove references to hppa_compare_op0,
3288 hppa_compare_op1 and compare_from_rtx.
3289 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
3290 (casesi): Use cbranchsi4.
3291
3292 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
3293 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
3294 * config/pdp11/pdp11.md (register_or_const0_operand): New.
3295 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
3296 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
3297 (bCC): Delete.
3298 (cbranchdf4, cbranchhi4, cbranchqi4): New.
3299 (*branch, *branch_inverted): New.
3300
3301 * config/picochip/picochip.md (cbranchhi4): Use
3302 ordered_comparison_operator.
3303 (cmphi, bCC): Remove.
3304
3305 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
3306 (trap_comparison_operator): Delete.
3307 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
3308 rs6000_emit_cbranch): Accept mode and operands.
3309 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
3310 rs6000_compare_fp_p): Delete.
3311 (rs6000_generate_compare): Accept mode and comparison. Extract code
3312 and op0/op1 from there. Replace references to rs6000_compare_op0
3313 and rs6000_compare_op1.
3314 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
3315 extract result from passed operands.
3316 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
3317 extract loc from passed operands.
3318 (rs6000_emit_cmove): Likewise.
3319 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
3320 rs6000_compare_fp_p): Delete.
3321 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
3322 (cbranch<GPR>4, cbranch<FP>4): New.
3323 (cstore<mode>4): New. Consolidate here all choices about when to use
3324 portable or specialized sCC sequences.
3325 (stack_protect_test): Use cbranchsi4.
3326 (conditional_trap): Replace with ctrap<GPR>4.
3327 (conditional trap insn): Replace trap_comparison_operator with
3328 ordered_comparison_operator.
3329
3330 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
3331 (s390_emit_prologue): Use ctrap.
3332 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
3333 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
3334 New predicates replacing...
3335 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
3336 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
3337 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
3338 (add<mode>cc): Do not use s390_compare_op0/op1.
3339 (s<code>): Change to...
3340 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
3341 (seq): Change to...
3342 (cstorecc4): ... this. Handle EQ or NE equally.
3343 (*sne): Un-privatize for use in cstorecc4.
3344 (b<code>): Change to...
3345 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
3346 (conditional_trap): Replace with...
3347 (ctrap<GPR>4, ctrap<FP>4): ... these.
3348 (stack_protect): Use cbranchcc4.
3349
3350 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
3351 * config/score/score-protos.h (score_gen_cmp): Delete.
3352 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
3353 (score_block_move-loop): Use cbranchsi4.
3354 * config/score/score.md (cbranchsi4): New.
3355 (cmpsi, bCC): Delete.
3356 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
3357 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
3358 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
3359 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
3360 * config/score/score3.h (score3_gen_cmp): Delete.
3361 * config/score/score7.h (score7_gen_cmp): Delete.
3362
3363 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
3364 (sh_emit_scc_to_t): ... this. Return void.
3365 (from_compare): Rename to...
3366 (sh_emit_compare_and_branch): ... this.
3367 (sh_emit_compare_and_set): New.
3368 (sh_expand_t_scc): Accept operands.
3369 * config/sh/predicates.md (sh_float_comparison_operator): New.
3370 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
3371 (prepare_scc_operands): Rename to...
3372 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
3373 arguments.
3374 (sh_emit_cheap_store_flag): New.
f90b7a5a 3375 (sh_emit_set_t_insn): New.
fbdf817d
UB
3376 (from_compare): Rename to...
3377 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
3378 handling of TARGET_SH2E floating point to avoid recursive call.
3379 Generate branch here.
3380 (sh_emit_compare_and_set): New.
3381 (sh_expand_t_scc): Get op0/op1 from arguments.
3382 (sh_emit_cheap_store_flag): New.
3383 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
3384 cases.
f90b7a5a 3385 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
fbdf817d
UB
3386 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
3387 (movsicc, movdicc): Do nothing when it recreated operands from
3388 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
3389 prepare_scc_operands (now sh_emit_scc_to_t).
3390 (udivdi3): Use cstoresi4.
3391 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
3392 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
3393 (cbranchint4_media, cbranchfp4_media): New.
3394 (casesi): Use cbranchdi4.
3395 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
3396 Delete.
3397 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
3398 (movnegt): Remove second operand.
3399 (cbranchsf4, cbranchdf4): New.
3400 (stack_protect): Use cbranchdi4/cbranchsi4.
3401
3402 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
3403 (gen_compare_reg): Accept comparison, extract part of it to...
3404 (gen_compare_reg_1): ... this.
3405 (gen_compare_operator): Delete.
3406 (gen_v9_scc): Accept separate destination, comparison code and arms.
3407 Do not use sparc_compare_op0/sparc_compare_op1.
3408 (emit_scc_insn, emit_conditional_branch_insn): New.
3409 (emit_v9_brxx): Make static. Remove useless assertion.
3410 (sparc_emit_float_lib_cmp): Return RTL instead of calling
3411 emit_cmp_insn.
3412 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
3413 * config/sparc/sparc-protos.h (gen_compare_reg,
f90b7a5a
PB
3414 sparc_emit_float_lib_cmp): Adjust prototype.
3415 (emit_scc_insn, emit_conditional_branch_insn): New.
3416 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
fbdf817d
UB
3417 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
3418 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
3419 iterators to the top.
3420 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
3421 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
f90b7a5a 3422 snedi_special_trunc): Delete.
fbdf817d 3423 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
f90b7a5a 3424 and snedi_special_trunc.
fbdf817d
UB
3425 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
3426 cbranchdi4, cbranch<F:mode>4): New.
3427 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
3428 here. Use gen_compare_reg instead of gen_compare_operator.
3429 (conditional_trap): Replace with...
3430 (ctrapsi4, ctrapdi4): ... this.
3431 (stack_protect_test): Use cbranchcc4.
3432
3433 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
3434 argument to rtx.
3435 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
3436 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
3437 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
3438 from operands[0] or operands[3] depending on is_set.
3439 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
3440 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
3441 cmpdf, bCC), sCC: Remove.
3442 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
3443 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
3444 cstoredf4): New.
3445 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
3446 spu_emit_branch_or_set.
3447
3448 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
3449 Add two arguments.
3450 * config/stormy16/stormy16.h (xstormy16_compare_op0,
3451 xstormy16_compare_op1): Delete.
3452 * config/stormy16/stormy16.c (xstormy16_compare_op0,
3453 xstormy16_compare_op1): Delete.
3454 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
3455 Adjust calls.
3456 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
3457 (cmphi, cmpsi, bCC): Remove.
3458
3459 * config/v850/v850.md (tstsi, cmpsi): Fold into...
3460 (*cmpsi): ... this one.
3461 (cbranchsi4, cstoresi4): New.
3462 (bCC expanders): Delete.
3463 (sCC insns): Fold into...
3464 (*setcc): ... this one.
3465 (casesi): Do not use gen_cmpsi and gen_bgtu.
f90b7a5a
PB
3466 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
3467 (movsicc): Simplify.
3468 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
3469
fbdf817d
UB
3470 * config/vax/vax-protos.h (cond_name): New.
3471 (vax_output_conditional_branch): Remove.
3472 * config/vax/vax.c (cond_name): New.
3473 (vax_output_conditional_branch): Remove.
3474 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
3475 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
3476 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
3477 (bit<VAXint>): Wrap source with (compare).
3478 (b<code> and following unnamed pattern): Rename to *branch and
3479 *branch_reversed. Change macroization to match_operator.
3480 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
3481
3482 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
3483 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
3484 Change last argument to machine_mode.
3485 (xtensa_expand_scc): Add machine_mode argument.
3486 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
3487 (gen_conditional_move, xtensa_expand_conditional_branch,
3488 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
3489 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
3490 Adjust operand numbers.
3491 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
3492 Delete.
3493 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
3494 (cmpsi, cmpsf, b<code>, s<code>): Delete.
3495 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
f90b7a5a 3496
16670495
PB
34972009-05-12 Paolo Bonzini <bonzini@gnu.org>
3498
3499 * optabs.c (prepare_cmp_insn): Temporarily disable test that
3500 causes spurious differences between trunk and cond-optab branch.
3501
4a4a4e99
AO
35022009-05-12 Alexandre Oliva <aoliva@redhat.com>
3503
3504 PR target/37137
3505 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
3506
72b9acff
AO
35072009-05-12 Alexandre Oliva <aoliva@redhat.com>
3508
3509 * tree.c (iterative_hash_pointer): Delete.
3510 (iterative_hash_expr): Short-circuit handling of NULL pointer.
3511 Hash UIDs and versions of SSA names. Don't special-case built-in
3512 function declarations.
3513
b7dd69ac
ILT
35142009-05-11 Ian Lance Taylor <iant@google.com>
3515
3516 PR bootstrap/40103
3517 * graphite.c: Force -Wc++-compat to only be a warning before
3518 #including "cloog/cloog.h".
3519
ed102b70
MJ
35202009-05-11 Martin Jambor <mjambor@suse.cz>
3521
3522 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
3523
08f1af2e
JH
35242009-05-11 Jan Hubicka <jh@suse.cz>
3525
3526 * tree-ssa-loop-ivcanon.c: Include target.h
3527 (struct loop_size): new structure.
3528 (constant_after_peeling): New predicate.
3529 (tree_estimate_loop_size): New function.
3530 (estimated_unrolled_size): Rewrite for new estimates.
3531 (try_unroll_loop_completely): Use new estimates.
3532 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
3533
a7d39bd3
AP
35342009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
3535
3536 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
3537 libcpp interface change.
3538 (spu_macro_to_expand): Likewise.
3539
f5a1f0d0
PB
35402009-05-11 Paolo Bonzini <bonzini@gnu.org>
3541
3542 PR tree-optimization/40026
3543 * gimplify.c (gimplify_init_constructor): Change initial conditional
3544 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
3545 optimize_compound_literals_in_ctor.
3546
c260f01f
NS
35472009-05-11 Nathan Sidwell <nathan@codesourcery.com>
3548
3549 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
3550 New devices.
3551 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
3552
df398a37
L
35532009-05-11 H.J. Lu <hongjiu.lu@intel.com>
3554
3555 * tree-vect-data-refs.c (vect_analyze_group_access): Use
3556 HOST_WIDE_INT for gap.
3557
4da39468
IR
35582009-05-11 Ira Rosen <irar@il.ibm.com>
3559
3560 PR tree-optimization/40074
3561 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
3562 account in group size and step comparison.
3563
4effdf02
RG
35642009-05-11 Richard Guenther <rguenther@suse.de>
3565
3566 * passes.c (init_optimization_passes): Strip now incorrect comment.
3567 (execute_function_todo): Do not set PROP_alias.
3568 * tree-pass.h (PROP_alias): Remove.
3569 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
3570 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
3571 * tree-nrv.c (pass_return_slot): Likewise.
3572 * tree-object-size.c (pass_object_sizes): Likewise.
3573 * tree-ssa-dom.c (pass_dominator): Likewise.
3574 (pass_phi_only_cprop): Likewise.
3575 * tree-ssa-dse.c (pass_dse): Likewise.
3576 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
3577 (pass_cselim): Likewise.
3578 * tree-ssa-pre.c (pass_pre): Likewise.
3579 (pass_fre): Likewise.
3580 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
3581 * tree-ssa-sink.c (pass_sink_code): Likewise.
3582 * tree-stdarg.c (pass_stdarg): Likewise.
3583 * tree-tailcall.c (pass_tail_calls): Likewise.
3584 * tree-vrp.c (pass_vrp): Likewise.
3585
24b97832
ILT
35862009-05-10 Ian Lance Taylor <iant@google.com>
3587
3588 * basic-block.h (enum profile_status): Break out of struct
3589 control_flow_graph.
3590 * cgraph.h (struct inline_summary): Break out of struct
3591 cgraph_local_info.
3592 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
3593 of struct cgraph_order_sort.
fbdf817d 3594 * combine.c (enum undo_kind): New enum, broken out of struct undo.
24b97832
ILT
3595 * cse.c (struct branch_path): Break out of struct
3596 cse_basic_block_data.
3597 * except.h (enum eh_region_type): Break out of struct eh_region.
3598 * gcc.c (enum add_del): Break out of struct modify_target.
fbdf817d 3599 * genrecog.c (enum decision_type): Break out of struct decision_test.
24b97832
ILT
3600 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
3601 ggc_pch_data.
fbdf817d
UB
3602 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
3603 * regmove.c (enum match_use): New enum, broken out of struct match.
24b97832
ILT
3604 * sched-int.h (enum post_call_group): New enum, broken out of
3605 struct deps.
3606 (struct deps_reg): Break out of struct deps.
3607 * target.h (struct asm_int_op): Break out of struct gcc_target.
3608 * tree-eh.c (struct goto_queue_node): Break out of struct
3609 leh_tf_state.
3610 * tree-inline.h (enum copy_body_cge_which): Break out of
3611 copy_body_data.
3612 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
3613
3614 * c-decl.c (in_struct, struct_types): New static variables.
3615 (pushtag): Add loc parameter. Change all callers.
3616 (lookup_tag): Add ploc parameter. Change all callers.
3617 (check_compound_literal_type): New function.
3618 (parser_xref_tag): Add loc parameter. Change all callers. If
3619 -Wc++-compat, warn about struct/union/enum types defined within a
3620 struct or union.
3621 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
3622 and loc parameters. Change all callers. Change error calls to
3623 error_at, using loc. For a redefinition, if the location of the
3624 original definition is known, report it. Set in_struct and
fbdf817d 3625 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
24b97832
ILT
3626 (finish_struct): Add new parameters enclosing_in_struct and
3627 enclosing_struct_types. Change all callers. Set
3628 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
3629 in the struct. If in a struct, add this struct to struct_types.
3630 (start_enum): Add loc parameter. Change all callers. Use
3631 error_at for errors, using loc. For a redefinition, if the
3632 location of the original definition is known, report it. If in a
3633 struct, add this enum type to struct_types. If -Wc++-compat warn
3634 if in sizeof, typeof, or alignof.
fbdf817d
UB
3635 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
3636 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
24b97832
ILT
3637 (c_parser_enum_specifier): Get enum location for start_enum.
3638 (c_parser_struct_or_union_specifier): Get struct location for
3639 start_struct. Save in_struct and struct_types status between
3640 start_struct and finish_struct.
3641 (c_parser_cast_expression): Get location of cast.
3642 (c_parser_alignof_expression): Get location of type.
3643 (c_parser_postfix_expression): Likewise.
3644 (c_parser_postfix_expression_after_paren_type): Add type_loc
fbdf817d
UB
3645 parameter. Change all callers. Call check_compound_literal_type.
3646 Use type_loc for error about variable size type.
3647 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
3648 of an enum constant from an enum type defined in a struct or union.
24b97832
ILT
3649 (c_cast_expr): Add loc parameter. Change all callers. If
3650 -Wc++-compat, warn about defining a type in a cast.
3651 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
3652 (start_enum, start_struct, finish_struct): Update declarations.
3653 (parser_xref_tag, c_cast_expr): Update declarations.
3654 (check_compound_literal_type): Declare.
3655
7a2738fa
BE
36562009-05-11 Ben Elliston <bje@au.ibm.com>
3657
3658 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
3659 for recent libcpp interface change.
3660 (rs6000_macro_to_expand): Likewise.
3661
af618949
MM
36622009-05-10 Michael Matz <matz@suse.de>
3663
3664 PR target/40031
3665 * config/arm/arm.c (require_pic_register): Emit on entry edge,
3666 not at entry of function.
3667
b7d7a473
RG
36682009-05-10 Richard Guenther <rguenther@suse.de>
3669
3670 PR tree-optimization/40081
3671 Revert
3672 * tree-sra.c (instantiate_element): Instantiate scalar replacements
3673 using the main variant of the element type. Do not fiddle with
3674 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
3675
3676 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
3677 structs with volatile fields.
3678
078c3644
JH
36792009-05-10 Jan Hubicka <jh@suse.cz>
3680
3681 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
fbdf817d
UB
3682 (estimate_move_cost): Assert that it does not get called for
3683 VOID_TYPE_P.
078c3644
JH
3684 (estimate_num_insns): Skip VOID types in argument handling.
3685 (optimize_inline_calls): Delete unreachable blocks and verify that
3686 callgraph is valid.
3687
39ff5a96
JH
36882009-05-10 Jan Hubicka <jh@suse.cz>
3689
3690 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
3691 * cgraph.c (cgraph_mark_address_taken_node): New function.
3692 (dump_cgraph_node): Dump new flag.
3693 * cgraph.h (struct cgraph_node): Add address_taken.
3694 (cgraph_mark_address_taken_node): New function.
39ff5a96
JH
3695 * ipa.c (cgraph_postorder): Prioritize functions with address taken
3696 since new direct calls can be born.
3697
9a0c6187
JM
36982009-05-10 Joseph Myers <joseph@codesourcery.com>
3699
3700 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
3701 tok->val.node.node.
3702
4b685e14
JH
37032009-05-10 Jan Hubicka <jh@suse.cz>
3704
3705 PR middle-end/40084
fb0be169
EB
3706 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
3707 argument; rewrite.
4b685e14
JH
3708 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
3709 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
3710 * tree-inline.c (copy_bb): Set frequency correctly.
fb0be169
EB
3711 (fold_marked_statements): Update call to
3712 cgraph_update_edges_for_call_stmt.
4b685e14 3713
29d08eba
JM
37142009-05-10 Joseph Myers <joseph@codesourcery.com>
3715
3716 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
3717 identifiers in diagnostics.
3718 * config/arm/arm.c (arm_handle_fndecl_attribute,
3719 arm_handle_isr_attribute): Likewise.
3720 * config/avr/avr.c (avr_handle_progmem_attribute,
782dc37a 3721 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
29d08eba
JM
3722 * config/bfin/bfin.c (handle_int_attribute,
3723 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
3724 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
3725 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
3726 Likewise.
3727 * config/darwin.c (darwin_handle_kext_attribute,
3728 darwin_handle_weak_import_attribute): Likewise.
3729 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
3730 h8300_handle_eightbit_data_attribute,
3731 h8300_handle_tiny_data_attribute): Likewise.
3732 * config/i386/i386.c (ix86_handle_cconv_attribute,
782dc37a 3733 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
29d08eba
JM
3734 * config/i386/winnt.c (ix86_handle_shared_attribute,
3735 ix86_handle_selectany_attribute): Likewise.
3736 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
3737 * config/m32c/m32c.c (function_vector_handler): Likewise.
3738 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
3739 m68hc11_handle_fntype_attribute): Likewise.
3740 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
3741 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
3742 * config/mips/mips.c (mips_insert_attributes,
3743 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
3744 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
3745 rs6000_handle_struct_attribute): Likewise.
3746 * config/sh/sh.c (sh_insert_attributes,
3747 sh_handle_resbank_handler_attribute,
3748 sh_handle_interrupt_handler_attribute,
3749 sh2a_handle_function_vector_handler_attribute,
3750 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
3751 Likewise.
3752 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
3753 * config/spu/spu.c (spu_handle_fndecl_attribute,
3754 spu_handle_vector_attribute): Likewise.
3755 * config/stormy16/stormy16.c
3756 (xstormy16_handle_interrupt_attribute): Likewise.
3757 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
3758 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
3759
f41c4af3
JM
37602009-05-10 Joseph Myers <joseph@codesourcery.com>
3761
782dc37a 3762 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
f41c4af3
JM
3763 (pp_translate_identifiers): New.
3764 (pp_identifier): Only conditionally translate identifier to locale
3765 character set.
3766 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
3767 (pp_base_tree_identifier): Only conditionally translate identifier
3768 to locale character set.
3769 * c-pretty-print.c (M_): Define.
3770 (pp_c_type_specifier, pp_c_primary_expression): Mark English
3771 fragments for conditional translation with M_.
3772 * tree-pretty-print.c (maybe_init_pretty_print): Disable
3773 identifier translation.
3774
896d7dbd
RG
37752009-05-10 Richard Guenther <rguenther@suse.de>
3776
3777 PR tree-optimization/40081
3778 * tree-sra.c (instantiate_element): Instantiate scalar replacements
3779 using the main variant of the element type. Do not fiddle with
3780 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
3781
9a23acef
JH
37822009-05-09 Jan Hubicka <jh@suse.cz>
3783
3784 PR middle-end/40080
3785 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
3786 indirect calls; verify cgraph afterwards.
3787
d563610d
JH
37882009-05-09 Jan Hubicka <jh@suse.cz>
3789
3790 PR bootstrap/40082
3791 * ipa.c (update_inlined_to_pointer): New function.
3792 (cgraph_remove_unreachable_nodes): Use it.
3793
f08a18d0
JH
37942009-05-09 Jan Hubicka <jh@suse.cz>
3795
3796 * tree-eh.c (struct leh_state): Remove prev_try.
3797 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
3798 not track prev_try.
3799 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
3800 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
3801 remove_eh_handler_and_replace, foreach_reachable_handler,
3802 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
3803 * except.h (struct eh_region): Remove eh_region_u_cleanup.
3804 (gen_eh_region_cleanup): Update prototype.
3805
0afd7219
JH
38062009-05-09 Jan Hubicka <jh@suse.cz>
3807
3808 PR middle-end/40043
3809 * except.c (copy_eh_region): Always set prev_try.
3810 (redirect_eh_edge_to_label): Find outer try.
3811 (foreach_reachable_handler): When looking for prev try
3812 handle case where previous try is not going to be taken.
3813
ad6c0864
MM
38142009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
3815
3816 PR tree-optimization/40049
3817 * tree-vect-stmts.c (vectorizable_operation): If the machine has
3818 only vector/vector shifts, convert the type of the constant to the
3819 appropriate type to avoid building incorrect trees, which
3820 eventually have problems with garbage collection.
3821
c94f9067
JM
38222009-05-08 Joseph Myers <joseph@codesourcery.com>
3823
3824 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
3825 -1 for complex floating-point types if honoring signed zeros.
3826
9187e02d
JH
38272009-05-08 Jan Hubicka <jh@suse.cz>
3828
20acb8a2
EB
3829 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
3830 argument; handle correctly when profile is absent.
9187e02d
JH
3831 (build_cgraph_edges): Update.
3832 (rebuild_cgraph_edges): Update.
20acb8a2
EB
3833 * cgraph.c: Do not include varray.h.
3834 (cgraph_set_call_stmt_including_clones): New function.
3835 (cgraph_create_edge_including_clones): Likewise
3836 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
9187e02d
JH
3837 (cgraph_update_edges_for_call_stmt): Handle clones.
3838 (cgraph_remove_node): Handle clone tree.
3839 (cgraph_remove_node_and_inline_clones): New function.
3840 (dump_cgraph_node): Dump clone tree.
3841 (cgraph_clone_node): Handle clone tree.
20acb8a2 3842 (clone_function_name): Bring here from tree-inline.c.
9187e02d 3843 (cgraph_create_virtual_clone): New function.
20acb8a2
EB
3844 * cgraph.h (ipa_replace_map): Move here from ipa.h.
3845 (cgraph_clone_info): New function.
9187e02d 3846 (strut cgraph_node): Add clone_info and new clone tree pointers.
20acb8a2
EB
3847 (cgraph_remove_node_and_inline_clones,
3848 cgraph_set_call_stmt_including_clones,
3849 cgraph_create_edge_including_clones,
3850 cgraph_create_virtual_clone): Declare.
9187e02d
JH
3851 (cgraph_function_versioning): Use VEC argument.
3852 (compute_call_stmt_bb_frequency): Update prototype.
3853 (cgraph_materialize_all_clones): New function.
3854 * ipa-cp.c (ipcp_update_cloned_node): Remove.
3855 (ipcp_create_replace_map): Update to VECtors.
3856 (ipcp_update_callgraph): Use virtual clones.
3857 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
3858 (ipcp_update_profiling): Do not update local profiling.
3859 (ipcp_insert_stage): Use VECtors and virtual clones.
3860 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
3861 (clone_of_p): New function.
3862 (cgraph_preserve_function_body_p): Use clone tree.
3863 (cgraph_optimize): Materialize clones.
3864 (cgraph_function_versioning): Update for VECtors.
3865 (save_inline_function_body): Use clone tree.
20acb8a2
EB
3866 (cgraph_materialize_clone): New function.
3867 (cgraph_materialize_all_clones): Likewise.
9187e02d
JH
3868 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
3869 * ipa.c: Include gimple.h.
3870 (cgraph_remove_unreachable_nodes): Use clone tree.
20acb8a2
EB
3871 * ipa-prop.c (ipa_note_param_call): Update call to
3872 compute_call_stmt_bb_frequencycall.
9187e02d 3873 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
20acb8a2 3874 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
9187e02d
JH
3875 (copy_bb): Handle updating of clone tree; add new edge when new call
3876 appears.
3877 (expand_call_inline): Be strict about every call having edge.
3878 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
3879 (delete_unreachable_blocks_update_callgraph): New function.
20acb8a2
EB
3880 (tree_function_versioning): Use VECtors; always remove unreachable
3881 blocks and fold conditionals.
3882 * tree-inline.h: Do not include varray.h.
9187e02d
JH
3883 (tree_function_versioning): Remove.
3884 * Makefile.in (GTFILES): Remove tree-inline.c
3885 * passes.c (do_per_function): Do only functions having body.
20acb8a2
EB
3886 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
3887 tree.
9187e02d 3888
9b86d6bb
L
38892009-05-08 H.J. Lu <hongjiu.lu@intel.com>
3890 Andrew Morrow <acm@google.com>
3891
3892 PR c/36892
3893 * c-common.c (c_common_attribute_table): Permit deprecated
3894 attribute to take an optional argument.
3895 (handle_deprecated_attribute): If the optional argument to
3896 __attribute__((deprecated)) is not a string ignore the attribute
3897 and emit a warning.
3898
3899 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
3900 * c-typeck.c (build_component_ref): Likewise.
3901 (build_external_ref): Likewise.
3902
3903 * toplev.c (warn_deprecated_use): Add an attribute argument.
3904 Emit the message associated with __attribute__((deprecated)).
3905
3906 * toplev.h (warn_deprecated_use): Updated.
3907
3908 * doc/extend.texi: Document new optional parameter to
3909 __attribute__((deprecated))
3910
82ad047f
ME
39112009-05-08 Michael Eager <eager@eagercon.com>
3912
3913 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
3914 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
3915
788d3075
RG
39162009-05-08 Richard Guenther <rguenther@suse.de>
3917
3918 PR tree-optimization/40062
3919 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
3920 Avoid exponential behavior.
3921
00952e97
PB
39222009-05-08 Paolo Bonzini <bonzini@gnu.org>
3923
3924 PR rtl-optimization/33928
3925 PR 26854
3926 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
3927 process_uses, build_single_def_use_links): New.
3928 (update_df): Update use_def_ref.
3929 (forward_propagate_into): Use get_def_for_use instead of use-def
3930 chains.
3931 (fwprop_init): Call build_single_def_use_links and let it initialize
3932 dataflow.
3933 (fwprop_done): Free use_def_ref.
3934 (fwprop_addr): Eliminate duplicate call to df_set_flags.
3935 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
3936 df_rd_simulate_one_insn): New.
3937 (df_rd_bb_local_compute_process_def): Update head comment.
3938 (df_chain_create_bb): Use the new RD simulation functions.
3939 * df.h (df_rd_simulate_artificial_defs_at_top,
3940 df_rd_simulate_one_insn): New.
3941 * opts.c (decode_options): Enable fwprop at -O1.
3942 * doc/invoke.texi (-fforward-propagate): Document this.
3943
2ca862e9
JM
39442009-05-08 Joseph Myers <joseph@codesourcery.com>
3945
3946 PR c/24581
3947 * c-typeck.c (build_binary_op): Handle arithmetic between one real
3948 and one complex operand specially.
3949 * tree-complex.c (some_nonzerop): Do not identify a real value as
3950 zero if flag_signed_zeros.
3951
3e807ffc
PB
39522009-05-08 Paolo Bonzini <bonzini@gnu.org>
3953
3954 PR rtl-optimization/33928
7925c06c 3955 * loop-invariant.c (record_use): Fix && vs. || mishap.
3e807ffc 3956
1bfdbb29
PB
39572009-05-08 Paolo Bonzini <bonzini@gnu.org>
3958
3959 PR rtl-optimization/33928
e913423f
EB
3960 * loop-invariant.c (struct use): Add addr_use_p.
3961 (struct def): Add n_addr_uses.
3962 (struct invariant): Add cheap_address.
3963 (create_new_invariant): Set cheap_address.
3964 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
3965 (record_uses): Pass df_ref to record_use.
3966 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
3967 used only as such.
1bfdbb29 3968
702cb2a0
KK
39692009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
3970
3971 * config/sh/sh.c: Do not include c-pragma.h.
3972
5e8df753
AP
39732009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
3974
3975 * config/spu/spu.c: Remove include of c-common.h.
3976
6ec637a4
JJ
39772009-05-07 Janis Johnson <janis187@us.ibm.com>
3978
3979 PR c/39037
3980 * c-common.h (mark_valid_location_for_stdc_pragma,
3981 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
3982 clear_float_const_decimal64, float_const_decimal64_p): New.
3983 * c.opt (Wunsuffixed-float-constants): New.
3984 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
3985 unsuffixed float constant, handle new warning.
3986 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
3987 * c-decl.c (c_scope): New flag float_const_decimal64.
3988 (set_float_const_decimal64, clear_float_const_decimal64,
3989 float_const_decimal64_p): New.
3990 (push_scope): Set new flag.
3991 * c-parser.c (c_parser_translation_unit): Mark when it's valid
3992 to use STDC pragmas.
3993 (c_parser_external_declaration): Ditto.
3994 (c_parser_compound_statement_nostart): Ditto.
3995 * c-pragma.c (valid_location_for_stdc_pragma,
3996 mark_valid_location_for_stdc_pragma,
3997 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
3998 handle_pragma_float_const_decimal64): New.
3999 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
4000 * cp/semantics.c (valid_location_for_stdc_pragma_p,
4001 set_float_const_decimal64, clear_float_const_decimal64,
4002 float_const_decimal64_p): New dummy functions.
4003 * doc/extend.texi (Decimal Float): Remove statement that the
4004 pragma, and suffix for double constants, are not supported.
4005 * doc/invoke.texi (Warning Options): List new option.
4006 (-Wunsuffixed-float-constants): New.
4007
45b9b2e9
SB
40082009-05-08 Steven Bosscher <steven@gcc.gnu.org>
4009
4010 * config/i386/i386.c: Do not include c-common.h.
4011
e71da632
MH
40122009-05-07 Mark Heffernan <meheff@google.com>
4013
4014 * doc/invoke.texi (Debugging Options): Document change of debugging
4015 dump location.
e913423f 4016 * opts.c (decode_options): Make dump_base_name relative to
e71da632
MH
4017 aux_base_name directory.
4018
fe4c7bc6
HS
40192009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
4020
4021 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
4022 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
4023
3b3e44eb
RAE
40242009-05-07 Rafael Avila de Espindola <espindola@google.com>
4025
4026 * Makefile.in (install-plugin): Simplify a bit.
4027
fac41238
PB
40282009-05-07 Paolo Bonzini <bonzini@gnu.org>
4029
4030 * Makefile.in (OBJS-common): Add regcprop.o.
4031 (regcprop.o): New.
4032 * timevar.def (TV_CPROP_REGISTERS): New.
4033 * regrename.c (regrename_optimize): Return 0.
4034 (rest_of_handle_regrename): Delete.
4035 (pass_rename_registers): Point to regrename_optimize.
4036 (struct value_data_entry, struct value_data,
4037 kill_value_one_regno, kill_value_regno, kill_value,
4038 set_value_regno, init_value_data, kill_clobbered_value,
4039 kill_set_value, kill_autoinc_value, copy_value,
4040 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
4041 replace_oldest_value_reg, replace_oldest_value_addr,
4042 replace_oldest_value_mem, copyprop_hardreg_forward_1,
4043 debug_value_data, validate_value_data): Move...
4044 * regcprop.c: ... here.
4045 (rest_of_handle_cprop): Delete.
4046 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
4047
472e0df9
JJ
40482009-05-07 Jakub Jelinek <jakub@redhat.com>
4049
4050 PR middle-end/40057
4051 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
4052 GEN_INT for 1 << bitnum.
4053 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
4054 build_int_cst_type.
4055
0d50d55a
UB
40562009-05-07 Uros Bizjak <ubizjak@gmail.com>
4057
4058 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
7925c06c 4059 Remove wrong description of "nand" operation.
0d50d55a 4060
22f597f1
RG
40612009-05-06 Richard Guenther <rguenther@suse.de>
4062 Adam Nemet <anemet@caviumnetworks.com>
4063
4064 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
4065 comment. Add that if LHS is not a gimple register, then RHS1 has
4066 to be a single object (GIMPLE_SINGLE_RHS).
4067
641cac0b
AN
40682009-05-06 Adam Nemet <anemet@caviumnetworks.com>
4069
4070 * expr.c (get_def_for_expr): Move it up in the file.
4071 (store_field): When expanding a bit-field store, look at the
4072 defining gimple stmt for the masking conversion.
4073
5a5c6435
JJ
40742009-05-06 Janis Johnson <janis187@us.ibm.com>
4075
4076 PR middle-end/39986
4077 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
4078 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
4079 32-bit memcpy into long.
4080
96474f36
JJ
40812009-05-06 Jakub Jelinek <jakub@redhat.com>
4082
4083 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
4084 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
4085 new_reg_loc_descr.
4086 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
4087 instead of appending DW_OP_deref*.
4088
529ff441
MM
40892009-05-06 Michael Matz <matz@suse.de>
4090
4091 PR middle-end/40021
4092 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
4093 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
4094
9419a9fd
RAE
40952009-05-06 Rafael Avila de Espindola <espindola@google.com>
4096
4097 * Makefile.in (install-plugin): Fix srcdir handling.
4098
fff1894c
AB
40992009-05-06 Andrey Belevantsev <abel@ispras.ru>
4100
4101 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
4102 when processing for not_regs_needed bitmap.
4103 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
4104 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
4105 handling it for rhs.
4106
700ae70c
L
41072009-05-06 H.J. Lu <hongjiu.lu@intel.com>
4108
ab3426a7 4109 * config/i386/i386.md (unnamed inc/dec peephole): Use
aa016ff7 4110 optimize_insn_for_size_p instead of optimize_size.
700ae70c
L
4111 * config/i386/predicates.md (incdec_operand): Likewise.
4112 (aligned_operand): Likewise.
4113 * config/i386/sse.md (divv8sf3): Likewise.
4114 (sqrtv8sf2): Likewise.
4115
67341fb5
L
41162009-05-06 H.J. Lu <hongjiu.lu@intel.com>
4117
4118 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
4119
4120 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
4121
87946f42
L
41222009-05-06 H.J. Lu <hongjiu.lu@intel.com>
4123
4124 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
4125 ssemodesuffixf2c with avxmodesuffixf2c.
4126
1202aec1
JM
41272009-05-06 Joseph Myers <joseph@codesourcery.com>
4128
4129 PR c/40032
aa016ff7 4130 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1202aec1 4131
6e57a01d
JJ
41322009-05-05 Jakub Jelinek <jakub@redhat.com>
4133
4134 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
4135 (struct tree_base): Adjust spacing for 8 bit boundaries.
4136 (struct tree_decl_common): Add decl_by_reference_flag bit.
4137 (DECL_BY_REFERENCE): Adjust.
4138 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
4139 print DECL_BY_REFERENCE bit.
4140 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
4141 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
4142 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
4143 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
4144 unconditionally.
4145
32f579f6
JJ
4146 PR middle-end/39666
4147 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
4148 range of the type, but default label is missing, add it with one
4149 of the existing labels instead of adding a new label for it.
4150
617ab743
JM
41512009-05-05 Joseph Myers <joseph@codesourcery.com>
4152
4153 * dwarf.h: Remove.
4154
bf016de8
RAE
41552009-05-05 Rafael Avila de Espindola <espindola@google.com>
4156
4157 * Makefile.in (enable_plugin, plugin_includedir): New.
4158 (install): Depend on install-plugin.
4159 (PLUGIN_HEADERS): New.
4160 (install-plugin): New.
4161 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
4162
7f8fdb9f
RG
41632009-05-05 Richard Guenther <rguenther@suse.de>
4164
4165 PR tree-optimization/40022
4166 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
4167 the only vuse.
4168 (phivn_valid_p): Fix tuplification error, simplify.
4169 (phiprop_insert_phi): Add dumps.
4170 (propagate_with_phi): Simplify.
4171
8d972839
RG
41722009-05-05 Richard Guenther <rguenther@suse.de>
4173
4174 PR middle-end/40023
aa016ff7 4175 * builtins.c (gimplify_va_arg_expr): Properly build the address.
8d972839 4176
66ba9b0b
SZ
41772009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
4178
4179 * tree.h (strip_float_extensions): Remove duplicate declaration.
aa016ff7
UB
4180 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
4181 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
4182 block_ultimate_origin): Rearrange the declarations line to match the
4183 comment that indicates the .c file which the functions are defined.
4184 (dwarf2out_*, set_decl_rtl): Add comment.
4185 (get_base_address): Adjust comment.
4186 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
4187 declarations line and add comment.
4188 (is_builtin_name): Add blank after function name, for clarity.
66ba9b0b 4189
4f1e4960
JM
41902009-05-04 Joseph Myers <joseph@codesourcery.com>
4191
4192 * attribs.c (decl_attributes): Use %qE for identifiers in
4193 diagnostics.
4194 * cgraphunit.c (verify_cgraph_node): Translate function names to
4195 locale character set in diagnostics.
4196 * coverage.c (get_coverage_counts): Use %qE for identifiers in
4197 diagnostics.
4198 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
4199 Document that functions are named in UTF-8.
4200 * expr.c (expand_expr_real_1): Translate function names to locale
4201 character set in diagnostics.
4202 * gimplify.c (omp_notice_variable, omp_is_private,
4203 gimplify_scan_omp_clauses): Use %qE for identifiers in
4204 diagnostics.
4205 * langhooks.c (lhd_print_error_function): Translate function names
4206 to locale character set.
4207 * langhooks.h (decl_printable_name): Document that return value is
4208 in internal character set.
4209 * stmt.c: Include pretty-print.h
4210 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
4211 diagnostics.
4212 (resolve_operand_name_1): Translate named operand name to locale
4213 character set.
4214 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
4215 diagnostics.
4216 * toplev.c (announce_function): Translate function names to locale
4217 character set.
4218 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
4219 (default_tree_printer): Use pp_identifier or translate identifiers
4220 to locale character set. Mark "<anonymous>" for translation.
4221 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
4222 for identifiers in diagnostics.
4223 * tree.c (handle_dll_attribute): Use %qE for identifiers in
4224 diagnostics.
4225 * varasm.c (output_constructor): Use %qE for identifiers in
4226 diagnostics.
4227
40540e68
RAE
42282009-05-04 Rafael Avila de Espindola <espindola@google.com>
4229
4230 * configure.ac: use ` ` instead of $()
4231 * configure: Regenerate.
4232
33fc884c
BE
42332009-05-05 Ben Elliston <bje@au.ibm.com>
4234
4235 * config/pa/linux-atomic.c: Eliminate conditional include of
4236 errno.h on non-LP64 systems to simplify build requirements.
4237
88388a52
JM
42382009-05-04 Joseph Myers <joseph@codesourcery.com>
4239
4240 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
4241 diagnostics.
4242 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
4243 and pass value to identifier_to_locale.
4244 (warn_variable_length_array): Make name a tree.
4245 (grokdeclarator): Separate diagnostic texts for named and unnamed
4246 declarators. Use %qE for named declarators.
4247 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
4248 diagnostics.
4249 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
4250 identifiers in diagnostics.
4251 * c-typeck.c (push_member_name, start_init): Pass identifiers to
4252 identifier_to_locale. Mark "anonymous" strings for translation.
4253
960c5c79
ME
42542009-05-04 Michael Eager <eager@eagercon.com>
4255
4256 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
aa016ff7 4257 address for DImode/DFmode only if double-precision FP regs.
960c5c79 4258
d083fbba
ME
42592009-05-04 Michael Eager <eager@eagercon.com>
4260
4261 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
4262 TARGET_SINGLE_FLOAT check.
4263
c3ba8d32
ME
42642009-05-04 Michael Eager <eager@eagercon.com>
4265
4266 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
4267
edce9f18
ME
42682009-05-04 Michael Eager <eager@eagercon.com>
4269
4270 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
4271 * config/rs6000/t-xilinx: New
4272
506d7b68
PB
42732009-05-04 Paolo Bonzini <bonzini@gnu.org>
4274
e913423f 4275 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
506d7b68
PB
4276 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
4277 * gcc/explow.c (memory_address): Use target hook.
4278 * gcc/targhooks.c (default_legitimize_address): New.
4279 * gcc/targhooks.h (default_legitimize_address): New.
4280 * gcc/target.h (legitimize_address): New.
4281 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
4282 (TARGET_INITIALIZER): Include it.
4283 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
4284
4285 * config/bfin/bfin-protos.h (legitimize_address): Remove.
4286 * config/bfin/bfin.c (legitimize_address): Remove.
4287 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
aa016ff7
UB
4288 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
4289 Remove.
506d7b68
PB
4290 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
4291 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
4292
4293 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
4294 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
4295 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
4296 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
4297 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
4298 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
4299 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
4300 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
4301 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
4302 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
4303 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
4304 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
4305 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
4306 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
4307 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
4308 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
4309 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
4310 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
4311 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
4312 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
4313 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
4314 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
4315 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
4316
4317 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
4318 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
4319 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
4320 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
4321 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
4322 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
4323 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
4324 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
4325 (thumb_legitimize_address): Delete.
4326 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
4327 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
4328 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
4329 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
4330 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
aa016ff7
UB
4331 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
4332 Delete.
4333 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
4334 Delete.
506d7b68
PB
4335
4336 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
4337 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
4338 * config/m32r/m32r.c (m32r_legitimize_address): New.
4339 * config/m68k/m68k.c (m68k_legitimize_address): New.
4340 * config/score/score.c (score_legitimize_address): Standardize.
4341 * config/score/score3.c (score3_legitimize_address): Standardize.
4342 * config/score/score3.h (score3_legitimize_address): Adjust.
4343 * config/score/score7.c (score7_legitimize_address): Standardize.
4344 * config/score/score7.h (score7_legitimize_address): Adjust.
4345 * config/sh/sh.c (sh_legitimize_address): New.
4346 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
4347
4348 * gcc/config/s390/s390.c (legitimize_address): Rename to...
4349 (s390_legitimize_address): ... this.
4350 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
4351 (sparc_legitimize_address): ... this.
4352 * gcc/config/i386/i386.c (legitimize_address): Rename to...
4353 (ix86_legitimize_address): ... this.
4354 * gcc/config/avr/avr.c (legitimize_address): Rename to...
4355 (avr_legitimize_address): ... this.
4356 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
4357 (mn10300_legitimize_address): ... this.
4358 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
4359 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
4360 (alpha_expand_mov): Adjust call.
4361
4362 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
4363 * config/spu/spu.c (spu_legitimize_address): Likewise.
4364 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
4365 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
4366
a3af5087
JM
43672009-05-04 Joseph Myers <joseph@codesourcery.com>
4368
4369 * intl.c (locale_encoding, locale_utf8): New.
4370 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
4371 * intl.h (locale_encoding, locale_utf8): Declare.
4372 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
4373 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
4374 New.
4375 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
4376 argument.
4377 (pp_tree_identifier): Define to call pp_base_tree_identifier.
4378 (pp_base_tree_identifier): Declare as function.
4379 (identifier_to_locale): Declare.
4380 * Makefile.in (pretty-print.o): Update dependencies.
aa016ff7 4381 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
a3af5087 4382
ea5cd5f1
RG
43832009-05-04 Richard Guenther <rguenther@suse.de>
4384
4385 PR middle-end/40015
4386 * builtins.c (fold_builtin_memory_op): Do not decay to element
4387 type if the size matches the whole array.
4388
ddc2690a
KH
43892009-05-04 Kazu Hirata <kazu@codesourcery.com>
4390
4391 * expmed.c (synth_mult): When trying out a shift, pass the result
4392 of a signed shift.
4393
ef268d34
KH
43942009-05-04 Kazu Hirata <kazu@codesourcery.com>
4395
4396 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
4397 (shiftsub1_cost): New.
4398 (init_expmed): Compute shiftsub1_cost.
4399 (synth_mult): Optimize multiplications by constants of the form
4400 -(2^^m-1) for some constant positive integer m.
4401
255d3827
RG
44022009-05-03 Richard Guenther <rguenther@suse.de>
4403
4404 PR c/39983
4405 * c-typeck.c (array_to_pointer_conversion): Do not built
4406 ADDR_EXPRs of arrays of pointer-to-element type.
4407 * c-gimplify.c (c_gimplify_expr): Revert change fixing
4408 up wrong ADDR_EXPRs after-the-fact.
4409 * c-common.c (strict_aliasing_warning): Strip pointer
4410 conversions for obtaining the original type.
4411 * builtins.c (fold_builtin_memset): Handle array types.
4412 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
4413 and array types
4414
16c33770
RG
44152009-05-03 Richard Guenther <rguenther@suse.de>
4416
4417 PR middle-end/23329
4418 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
4419 Do not lose casts from array types with unknown extent to array
4420 types with known extent.
4421 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
4422 alias set compatibility.
4423
62a67c94
MLI
44242009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
4425
4426 * flags.h (extra_warnings): Delete.
4427 * toplev.c (process_options): Handle Wuninitialized here.
4428 * opts.c (extra_warnings): Delete.
4429 (set_Wextra): Delete.
4430 (common_handle_option): -Wextra can be handled automatically.
4431 * c-opts.c (c_common_handle_option): Delete obsolete code.
4432 (c_common_post_options): Simplify comment.
4433 * common.opt (W): Add Var.
4434 (Wextra): Add Var.
4435 (Wuninitialized): Initialize to -1.
4436
8c7926c4
AN
44372009-05-03 Adam Nemet <anemet@caviumnetworks.com>
4438 Richard Guenther <rguenther@suse.de>
4439
4440 * expr.c (get_def_for_expr): New function.
4441 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
4442 SSA rather than trees.
4443 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
4444 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
4445
fa5da7de
JM
44462009-05-03 Joseph Myers <joseph@codesourcery.com>
4447
4448 * c-common.c (reswords): Add _Imaginary.
4449 * c-common.c (enum rid): Add RID_IMAGINARY.
4450
2ddd5020
PB
44512009-05-03 Paolo Bonzini <bonzini@gnu.org>
4452
4453 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
4454 Patch by Richard Guenther.
4455
aea88c05
AS
44562009-05-03 Anatoly Sokolov <aesok@post.ru>
4457
4458 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
4459 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
4460 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
4461 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
4462 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
4463 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
4464 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
4465 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
4466 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
4467 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
4468 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
4469 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
4470 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
4471 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
4472 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
4473 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
4474 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
4475 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
4476
85e59f3a
RG
44772009-05-02 Richard Guenther <rguenther@suse.de>
4478
4479 PR tree-optimization/39940
4480 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
4481 doing so.
4482
4636b850
RG
44832009-05-02 Richard Guenther <rguenther@suse.de>
4484
4485 PR middle-end/40001
4486 * tree-ssa.c (execute_update_addresses_taken): Properly check
4487 if we can mark a variable DECL_GIMPLE_REG_P.
4488 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
4489 back to the end of the function.
4490 (is_gimple_reg_type): Remove complex type special casing.
4491 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
4492 if not optimizing.
4493
5e10cb5a
BE
44942009-05-02 Ben Elliston <bje@au.ibm.com>
4495
4496 * doc/collect2.texi (Collect2): Document search path behaviour
4497 when configured with --with-ld.
4498
048bf48b
JH
44992009-05-02 Jan Hubicka <jh@suse.cz>
4500
4501 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
4502 parameter; update callers.
aa016ff7
UB
4503 (coalesce_cost_edge): EH edges are costier because they needs
4504 splitting even if not critical and even more costier when there are
4505 multiple EH predecestors.
048bf48b 4506
d5c5f9ab
JH
45072009-05-02 Jan Hubicka <jh@suse.cz>
4508
4509 * except.c (remove_eh_handler_and_replace): Handle updating after
4510 removing TRY blocks.
4511
2ed1959a
EB
45122009-05-02 Eric Botcazou <ebotcazou@adacore.com>
4513
4514 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
4515
d363a7e7
SB
45162009-05-02 Steven Bosscher <steven@gcc.gnu.org>
4517
4518 * varasm.c: Do not include c-pragma.h.
4519 * attribs.c: Do not incude c-common.h.
4520
9c3d55b4
MM
45212009-05-01 Michael Matz <matz@suse.de>
4522
4523 * calls.c (initialize_argument_information): Handle SSA names like
4524 decls with a non MEM_P DECL_RTL.
4525
ea264ca5
SB
45262009-05-01 Steven Bosscher <steven@gcc.gnu.org>
4527
4528 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
4529 * ipa-utils.c: Likewise.
4530 * ipa-type-escape.c: Likewise.
4531 * cgraphunit.c Do not include c-common.h.
4532 * ipa-pure-const.c: Likewise.
4533 * tree-if-conv.c: Likewise.
4534 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
4535 * ipa-struct-reorg.c: Likewise.
4536 * tree-nomudflap.c: Likewise.
4537 * tree-ssa-structalias.c: Likewise.
4538
6c5d4d1a
SB
45392009-05-01 Steven Bosscher <steven@gcc.gnu.org>
4540
4541 * store-motion.c: Many cleanups to make this pass a first-class
4542 citizen instead of an appendix to gcse load motion. Add TODO list
4543 to make this pass faster/cleaner/better.
4544
4545 (struct ls_expr): Post gcse.c-split cleanups.
4546 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
4547 "stores" field to "avail_stores".
4548 (pre_ldst_mems): Rename to store_motion_mems.
4549 (pre_ldst_table): Rename to store_motion_mems_table.
4550 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
4551 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
4552 (ldst_entry): Rename to st_expr_entry, update users.
4553 (free_ldst_entry): Rename to free_st_expr_entry, update users.
4554 (free_ldst_mems): Rename to free_store_motion_mems, update users.
aa016ff7
UB
4555 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
4556 update caller.
6c5d4d1a
SB
4557 (first_ls_expr): Rename to first_st_expr, update users.
4558 (next_ls_expr): Rename to next_st_expr, update users.
4559 (print_ldst_list): Rename to print_store_motion_mems. Print names of
4560 fields properly for store motion instead of names inherited from load
4561 motion in gcse.c.
4562 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
4563 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
4564 are done with it.
4565
4566 (ae_kill): Rename to st_kill, update users.
4567 (ae_gen): Rename to st_avloc, update users.
4568 (transp): Rename to st_transp, update users.
4569 (pre_insert_map): Rename to st_insert_map, update users.
4570 (pre_delete_map): Rename to st_delete_map, update users.
4571 (insert_store, build_store_vectors, free_store_memory,
4572 one_store_motion_pass): Update for abovementioned changes.
4573
4574 (gcse_subst_count, gcse_create_count): Remove.
4575 (one_store_motion_pass): New statistics counters "n_stores_deleted"
4576 and "n_stores_created", local variables.
4577
4578 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
4579 use for_each_rtx.
4580
4581 (regvec, compute_store_table_current_insn): Remove.
4582 (reg_set_info, reg_clear_last_set): Remove.
4583 (compute_store_table): Use DF caches instead of local dataflow
4584 solvers.
4585
b02cec6e
JM
45862009-05-01 Joseph Myers <joseph@codesourcery.com>
4587
4588 * c-objc-common.c (c_tree_printer): Print identifiers with
4589 pp_identifier, not pp_string. Mark "({anonymous})" for
4590 translation.
4591 * c-pretty-print.c (pp_c_ws_string): New.
4592 (pp_c_cv_qualifier, pp_c_type_specifier,
4593 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
4594 pp_c_storage_class_specifier, pp_c_function_specifier,
4595 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
4596 pp_c_primary_expression, pp_c_postfix_expression,
4597 pp_c_unary_expression, pp_c_shift_expression,
4598 pp_c_relational_expression, pp_c_equality_expression,
4599 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
4600 use pp_string and pp_c_ws_string in place of pp_identifier and
4601 pp_c_identifier for non-identifiers. Mark English strings for
4602 translation.
4603 * c-pretty-print.h (pp_c_ws_string): Declare.
4604
cd533689
PP
46052009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
4606 Roland McGrath <roland@redhat.com>
4607
aa016ff7 4608 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
cd533689
PP
4609 (ENABLE_LD_BUILDID): New configuration option.
4610 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
4611 (LINK_BUILDID_SPEC): New macro.
4612 (init_spec): If defined, prepend it between LINK_EH_SPEC and
4613 link_spec.
4614 * doc/install.texi: Document --enable-linker-build-id option.
4615 * configure: Rebuild.
4616 * config.in: Rebuild.
4617
ba6adec4
AN
46182009-04-30 Adam Nemet <anemet@caviumnetworks.com>
4619
4620 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
4621 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
4622 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
4623 MIPS_GP_SAVE_AREA_SIZE.
4624 * config/mips/mips.c (struct mips_frame_info): Update comment
4625 before arg_pointer_offset and hard_frame_pointer_offset.
4626 (mips_compute_frame_info): Update diagram before function: to
4627 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
4628 indicate the position of frame_pointer_rtx with -fstack-protector and
4629 to show args_size. Don't allocate cprestore area for leaf functions
4630 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
4631 cprestore_size.
4632 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
4633
48f5b722
MM
46342009-04-30 Michael Matz <matz@suse.de>
4635
ba6adec4
AN
4636 PR tree-optimization/39955
4637 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 4638
b65d6744
DK
46392009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
4640
4641 * ira.c (setup_cover_and_important_classes): Use safe macro
4642 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
4643 directly.
4644 * genpreds.c (write_tm_preds_h): Output suitable definition of
4645 REG_CLASS_FOR_CONSTRAINT.
4646
f136c8ae
RAE
46472009-04-30 Rafael Avila de Espindola <espindola@google.com>
4648
4649 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
4650 instead of an int.
4651 * bitmap.c (bitmap_descriptor): Likewise.
4652 * ggc-common.c (loc_descriptor): Likewise.
4653 * varray.c (varray_descriptor): Likewise.
4654 * vec.c (vec_descriptor): Likewise.
4655
43fcece8 46562009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
4657
4658 * Makefile.in (dce.o): Add $(EXCEPT_H).
4659 * dce.c: Include except.h and delete redundant vector definitions.
4660 (deletable_insn_p): Return false for non-call insns that can throw
4661 if DF is running.
4662
df35c271
SB
46632009-04-30 Steven Bosscher <steven@gcc.gnu.org>
4664
4665 * gcse.c (ae_gen): Remove.
4666 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
4667 and make non-static function to make it available in store-motion.c.
4668 Update call sites with search-and-replace.
4669 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
4670 extract_mentioned_regs, extract_mentioned_regs_helper,
4671 find_moveable_store, compute_store_table, load_kills_store, find_loads,
4672 store_killed_in_insn, store_killed_after, store_killed_before,
4673 build_store_vectors, insert_insn_start_basic_block, insert-store,
4674 remove_reachable_equiv_notes, replace_store_insn, delete_store,
4675 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
4676 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
4677 * store-motion.c: ...new file. Also copy data structures from gcse.c
4678 and clean up to remove parts not used by store motion.
4679 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
4680 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
4681
f711a87a
RR
46822009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4683
4684 PR target/38571
4685 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
4686 when optimizing for size.
4687
fa5ed76e
HPN
46882009-04-30 Hans-Peter Nilsson <hp@axis.com>
4689
4690 * gcse.c (gcse_constant_p): Fix typo in last change.
4691
0acbbdb0
RAE
46922009-04-30 Rafael Avila de Espindola <espindola@google.com>
4693
4694 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
4695
82f5c05d
AK
46962009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
4697
4698 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
4699
6d8f135b
JW
47002009-04-29 James E. Wilson <wilson@codesourcery.com>
4701
4702 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
4703 CONST_HIGH_PART result.
4704
c21ca196
AS
47052009-04-29 Anatoly Sokolov <aesok@post.ru>
4706
4707 * config/avr/avr.c (initial_elimination_offset): Rename to
4708 avr_initial_elimination_offset.
4709 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
4710 change return type to bool.
4711 (avr_can_eliminate): New function.
4712 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
4713 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
4714 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
0d50d55a 4715 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
c21ca196
AS
4716 avr_initial_elimination_offset.
4717 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
4718 (avr_initial_elimination_offset): Define.
4719
2a34bece 47202009-04-29 Eric Botcazou <ebotcazou@adacore.com>
aa016ff7 4721 Steven Bosscher <steven@gcc.gnu.org>
2a34bece
EB
4722
4723 PR rtl-optimization/39938
4724 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
4725 * cfgrtl.c: Include insn-attr.h.
4726 (rest_of_pass_free_cfg): New function.
4727 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
4728 * resource.c (init_resource_info): Remove call to df_analyze.
4729
5dc7911e
RG
47302009-04-29 Richard Guenther <rguenther@suse.de>
4731
4732 PR target/39943
4733 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
4734 allow conversion to signed integers.
4735
1fe479fd
RG
47362009-04-29 Richard Guenther <rguenther@suse.de>
4737
4738 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
4739 shifts of floating point vectors if the shift amount is
4740 a constant multiple of the element size.
4741
8e001680
AK
47422009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
4743 Michael Matz <matz@suse.de>
4744
4745 PR middle-end/39927
4746 PR bootstrap/39929
4747 * tree-outof-ssa.c (emit_partition_copy): New function.
4748 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
4749 insert_part_to_rtx_on_edge): Perform the partition base var
4750 copy using emit_partition_copy.
4751 (insert_value_copy_on_edge): Convert constants to the right mode.
4752 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
4753 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
4754
e50e3081
BS
47552009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
4756
4757 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
4758 scan backwards to try to find a constant to initialize it.
4759
4e5d521b
BS
4760 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
4761 insn before the loop_end instruction, don't look past labels.
4762
7c90021d
RG
47632009-04-29 Richard Guenther <rguenther@suse.de>
4764
4765 PR middle-end/39937
4766 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
4767 loose type conversions.
4768 (forward_propagate_addr_expr): Fix tuplification bug. Remove
4769 stmts only if there are no uses of its definition.
4770
97a988bc
BS
47712009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
4772
4773 * config/bfin/bfin.h (splitting_loops): Declare.
4774 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
4775 Reorder bit definitions to be ascending.
4776 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
4777 * config/bfin/bfin.c (splitting_loops): New variable.
4778 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
4779 (struct loop_info): Remove members INIT and LOOP_INIT.
4780 (bfin_optimize_loop): Don't set them. Reorder the code that generates
aa016ff7
UB
4781 the LSETUP sequence. Allow LC to be loaded from any register, but
4782 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
97a988bc
BS
4783 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
4784 set to 1.
4785 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
4786 of reload_completed.
aa016ff7 4787
97a988bc
BS
4788 From Jie Zhang:
4789 * config/bfin/bfin.md (movsi_insn): Refine constraints.
4790
0c463e16
RAE
47912009-04-29 Rafael Avila de Espindola <espindola@google.com>
4792
4793 * Makefile.in (PLUGIN_VERSION_H): New.
4794 (OBJS-common): Remove plugin-version.o.
4795 (plugin.o): Depend on (PLUGIN_VERSION_H).
4796 (plugin-version.o): Remove.
4797 * configure: Regenerate
4798 * configure.ac: Create plugin-version.h.
4799 * gcc-plugin.h (plugin_gcc_version): Remove.
4800 (plugin_default_version_check): Change signature.
4801 * plugin-version.c: Remove.
4802 * plugin.c: Include plugin-version.h.
4803 (str_plugin_gcc_version_name): Remove.
4804 (try_init_one_plugin): Pass gcc version to plugin_init.
4805 (plugin_default_version_check): Both gcc and plugin versions are now
4806 arguments.
4807
307e7eab
BS
48082009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
4809
4810 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
4811 problematic last insns. Test for TYPE_CALL rather than CALL_P.
aa016ff7
UB
4812 Remove special case testing for last insn of inner loops. Don't fail
4813 if the loop ends with a jump, emit an extra nop instead.
307e7eab 4814
c5d96723
BS
4815 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
4816 DREGS rather than comparing directly. Remove code that tries to
4817 account for latencies.
4818
de0b4ad5
RG
48192009-04-29 Richard Guenther <rguenther@suse.de>
4820
4821 PR tree-optimization/39941
4822 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
4823 eliminating an indirect call.
4824
3a19701a
RG
48252009-04-29 Richard Guenther <rguenther@suse.de>
4826
4827 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
4828 parameter. Allow invariants as base if !require_lvalue.
4829 (verify_gimple_assign_single): Adjust.
4830
a0a31d1e
BS
48312009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
4832
4833 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
4834 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
aa016ff7
UB
4835 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
4836 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
a0a31d1e
BS
4837 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
4838 a VEC_SELECT.
aa016ff7
UB
4839 * config/bfin/bfin.c (bfin_expand_builtin,
4840 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
a0a31d1e 4841
795bd26a
RG
48422009-04-28 Richard Guenther <rguenther@suse.de>
4843
4844 * tree-vect-loop.c (get_initial_def_for_induction): Use
4845 correct types for pointer increment.
4846
04be270f
KG
48472009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4848
4849 * toplev.c (print_version): Update GMP version string calculation.
4850
e1a3b85c
EB
48512009-04-28 Eric Botcazou <ebotcazou@adacore.com>
4852
4853 PR rtl-optimization/39938
4854 * resource.c (init_resource_info): Add call to df_analyze.
4855
8224166e
UB
48562009-04-28 Uros Bizjak <ubizjak@gmail.com>
4857
4858 * config/alpha/alpha.md (usegp): Cast the result of
4859 alpha_find_lo_sum_using_gp to enum attr_usegp.
4860 * config/alpha/alpha.c (override_options): Remove end-of-structure
4861 marker element from cpu_table. Use array size of cpu_table to handle
4862 -mcpu and -mtune options.
4863 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
4864
c5f0fe67
JM
48652009-04-28 Joseph Myers <joseph@codesourcery.com>
4866
4867 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
4868 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
4869 tune_32 and tune_64.
4870 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
4871 support on PowerPC.
4872 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
4873 * config/rs6000/option-defaults.h: ... here. New file.
4874 (OPT_64, OPT_32): Define.
4875 (MASK_64BIT): Define to 0 if not already defined.
4876 (OPT_ARCH64, OPT_ARCH32): Define.
4877 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
4878 and tune_64.
4879
0c48a567
RR
48802009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4881
4882 * config/arm/arm.c (arm_override_options): Emit error on using
4883 fpa with AAPCS.
4884
f1028b9d
UB
48852009-04-28 Uros Bizjak <ubizjak@gmail.com>
4886
4887 PR rtl-optimization/39914
4888 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
4889 registers for allocnos created from user-defined variables only
4890 when not optimizing.
4891
e0dd989a
RG
48922009-04-28 Richard Guenther <rguenther@suse.de>
4893
4894 PR middle-end/39937
4895 * fold-const.c (fold_binary): Use distribute_real_division only
4896 on float types.
4897
9a17c91d
SE
48982009-04-28 Steve Ellcey <sje@cup.hp.com>
4899
4900 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
4901 add hpux-stdint.h to tm_file.
4902 (hppa[12]*-*-hpux11*): Ditto.
4903 (ia64*-*-hpux*): Ditto.
4904 * config/hpux-stdint.h: New.
60839f5d 4905 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 4906 __STDC_EXT__ for all compiles.
60839f5d
EB
4907 * config/pa/pa-hpux.h: Ditto.
4908 * config/pa/pa-hpux10.h: Ditto.
4909 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 4910
af04e659
CM
49112009-04-28 Catherine Moore <clm@codesourcery.com>
4912
4913 * debug.h (set_name): Add comment.
4914
04ef80ce
AP
49152009-04-28 Andrew Pinski <pinskia@gmail.com>
4916
4917 PR target/39929
4918 * config/darwin.c (machopic_gen_offset): Check
4919 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
4920 * config/arm/arm.c (require_pic_register): Likewise.
4921
65ad77af
PB
49222009-04-28 Paolo Bonzini <bonzini@gnu.org>
4923
8224166e
UB
4924 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
4925 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
4926 m32c_promote_prototypes): Delete.
65ad77af 4927
1b15a008
MM
49282009-04-28 Michael Matz <matz@suse.de>
4929
4930 PR middle-end/39922
4931 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
4932 constants.
4933
7569a6cc
RG
49342009-04-28 Richard Guenther <rguenther@suse.de>
4935
f1028b9d 4936 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 4937
ead204d9
RR
49382009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4939
4940 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
4941 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
4942 * config/arm/arm-tune.md: Regenerate.
4943
f2c45f08 49442009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 4945
f2c45f08
AM
4946 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
4947 block if there are complex incoming edges.
4948 (sel_merge_blocks): Remove useless assert.
4949 (sel_redirect_edge_and_branch): Check that edge was redirected.
4950 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
4951 (sel_find_rgns): Delete declaration.
4952 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
4953 the region when it is not a preheader.
4954
7a00d767
UB
49552009-04-28 Uros Bizjak <ubizjak@gmail.com>
4956
4957 PR c/39323
4958 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
4959
448ee662
RG
49602009-04-28 Richard Guenther <rguenther@suse.de>
4961
4962 * tree.h (SSA_NAME_VALUE): Remove.
4963 (struct tree_ssa_name): Remove value_handle member.
4964 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
4965 array for jump threading.
4966 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
4967 SSA_NAME_VALUEs.
4968 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
4969 * tree-flow.h (threadedge_initialize_values): Declare.
4970 (threadedge_finalize_values): Likewise.
4971 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
4972 (SSA_NAME_VALUE): Define.
4973 (threadedge_initialize_values): New function.
4974 (threadedge_finalize_values): Likewise.
4975 * tree-ssa-dom.c (ssa_name_values): New global variable.
4976 (SSA_NAME_VALUE): Define.
f1028b9d 4977 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 4978
8644a673
IR
49792009-04-28 Ira Rosen <irar@il.ibm.com>
4980
4981 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
4982 Use REPORT_VECTORIZED_LOCATIONS instead
4983 REPORT_VECTORIZED_LOOPS.
4984 * tree-vectorizer.c (vect_verbosity_level): Make static.
4985 (vect_loop_location): Rename to vect_location.
4986 (vect_set_verbosity_level): Update comment.
4987 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
4988 and vect_location.
4989 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
4990 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
4991 instead REPORT_UNVECTORIZED_LOOPS.
fbdf817d
UB
4992 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
4993 and vect_loop_def to vect_external_def and vect_internal_def.
8644a673 4994 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7a00d767 4995 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
4996 REPORT_UNVECTORIZED_LOCATIONS.
4997 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
4998 and vect_used_in_loop and to vect_unused_in_scope and
4999 vect_used_in_scope.
5000 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
5001 (vect_verbosity_level): Remove declaration.
5002 (vect_analyze_operations): Likewise.
5003 (vect_analyze_stmt): Declare.
5004 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
5005 REPORT_UNVECTORIZED_LOCATIONS.
5006 (vect_get_loop_niters): Fix indentation.
5007 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
5008 (vect_analyze_loop_operations): New function.
5009 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
5010 vect_analyze_operations.
5011 (vect_is_simple_reduction): Use new names.
5012 (vectorizable_live_operation, vect_transform_loop): Likewise.
fbdf817d
UB
5013 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
5014 to specify whether the data references can be a part of interleaving
5015 chain.
8644a673
IR
5016 (vect_analyze_data_ref_dependence): Use new names.
5017 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
5018 (vect_create_addr_base_for_vector_ref): Remove redundant code.
5019 * tree-vect-patterns.c (widened_name_p): Use new names.
5020 (vect_recog_dot_prod_pattern): Likewise.
5021 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
5022 (process_use, vect_mark_stmts_to_be_vectorized,
5023 vect_model_simple_cost, vect_model_store_cost,
5024 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
5025 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
5026 vectorizable_operation, vectorizable_type_demotion,
5027 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
5028 vectorizable_condition): Likewise.
5029 (vect_analyze_operations): Split into vect_analyze_loop_operations
5030 and ...
5031 (vect_analyze_stmt): ... new function.
5032 (new_stmt_vec_info): Use new names.
5033 (vect_is_simple_use): Use new names and fix comment.
5034 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
5035 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
5036
b91322f2
UB
50372009-04-28 Uros Bizjak <ubizjak@gmail.com>
5038
5039 PR target/39911
5040 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
5041 and integer modes for x87 operands. Do not ICE for unsupported size,
5042 generate error instead. Generate error for unsupported operand types.
5043 ['z']: Do not handle HImode memory operands specially. Warning
5044 for floating-point operands. Fallthru to 'Z' for unsupported operand
5045 types. Do not ICE for unsupported size, generate error instead.
5046 (output_387_binary_op): Use %Z to output operands.
5047 (output_fp_compare): Ditto.
5048 (output_387_reg_move): Ditto.
5049
b2ed71b6
BE
50502009-04-28 Ben Elliston <bje@au.ibm.com>
5051
5052 PR c++/35652
5053 Revert:
5054
5055 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5056
5057 * builtins.c (c_strlen): Do not warn here.
5058 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
5059 * c-common.c (pointer_int_sum): Take an explicit location.
5060 Warn about offsets out of bounds.
5061 * c-common.h (pointer_int_sum): Adjust declaration.
5062
81f40b79
ILT
50632009-04-27 Ian Lance Taylor <iant@google.com>
5064
5065 * collect2.c (is_ctor_dtor): Change type of ret field in struct
5066 names to symkind.
5067 * dce.c (run_fast_df_dce): Change type of old_flags to int.
5068 * df-core.c (df_set_flags): Change return type to int. Change
5069 type of old_flags to int.
5070 (df_clear_flags): Likewise.
5071 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
5072 (df_get_conditional_uses): Likewise.
5073 * df.h (df_set_flags, df_clear_flags): Update declarations.
5074 * dwarf2out.c (struct indirect_string_node): Change type of form
5075 field to enum dwarf_form.
5076 (AT_string_form): Change return type to enum dwarf_form.
5077 * fixed-value.c (fixed_compare): Add cast to enum type.
5078 * fwprop.c (update_df): Change 0 to VOIDmode.
5079 * gensupport.c: Change 0 to UNKNOWN.
5080 * gimple.h (gimple_cond_code): Add cast to enum type.
5081 * haifa-sched.c (reemit_notes): Add cast to enum type.
5082 * hooks.c (hook_int_void_no_regs): Remove function.
5083 * hooks.h (hook_int_void_no_regs): Remove declaration.
5084 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 5085 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
5086 * real.c (real_arithmetic): Add cast to enum type.
5087 (real_compare): Likewise.
5088 * target.h (struct gcc_target): Change return type of
5089 branch_target_register_class to enum reg_class.
5090 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
5091 default_branch_target_register_class.
7a00d767 5092 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 5093 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 5094 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
5095 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
5096 cast to int.
5097 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
5098 ERROR_MARK.
5099 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
5100 vect_uninitialized_def. Change 0 to ERROR_MARK.
5101 * tree-vect-stmts.c (supportable_widening_operation): Don't
5102 initialize icode1 and icode2.
7a00d767 5103 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
5104 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
5105 and to STD_C89.
5106 (cmn_err_flag_specs): Change 0 to STD_C89.
5107 (cmn_err_char_table): Likewise.
5108 * config/arm/arm.c (get_arm_condition_code): Change type of code
5109 to enum arm_cond_code.
5110 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
5111 (IWMMXT_BUILTIN2): Likewise.
5112 (neon_builtin_type_bits): Don't define typedef.
5113 (neon_builtin_datum): Change type of bits field to int.
5114 (arm_expand_neon_args): Add cast to enum type.
5115 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
5116 TLS_MODEL_NONE.
5117 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
5118 casts to enum type.
5119 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
5120 MIPS_FP_COND_f.
5121 * config/mips/mips.md (jal_macro): Return enum constant.
5122 (single_insn): Likewise.
5123 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
5124 CODE_FOR_nothing.
5125 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
5126 casts to enum type.
5127 * config/s390/s390.c (s390_tune_flags): Change type to int.
5128 (s390_arch_flags): Likewise.
7a00d767 5129 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
5130 * config/s390/s390.h (s390_tune_flags): Update declaration.
5131 (s390_arch_flags): Likewise.
5132 * config/sh/sh.c (prepare_move_operands): Compare
5133 tls_symbolic_operand result with enum constant.
5134 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
5135 (sh_expand_prologue): Add cast to enum type.
5136 (sh_expand_epilogue): Likewise.
5137 (tls_symbolic_operand): Change return type to enum tls_model.
5138 (fpscr_set_from_mem): Add cast to enum type.
5139 (legitimize_pic_address): Compare tls_symbolic_operand result with
5140 enum constant.
5141 (sh_target_reg_class): Change return type to enum reg_class.
5142 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
5143 PROCESSOR_xxx.
7a00d767
UB
5144 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
5145 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
5146 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
5147 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
5148 (delayed_branch, tls_call_delay): Likewise.
5149 (eligible_for_sibcall_delay): Likewise.
5150 (eligible_for_return_delay): Likewise.
5151 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
5152 (spu_expand_builtin_1): Likewise.
5153
5154 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
5155 for all types of conversions.
5156 (output_init_element): Issue -Wc++-compat warning if needed when
5157 initializing a bitfield with enum type.
5158 * c-parser.c (c_parser_expression): Set original_type to
5159 original_type of right hand operand of comman operator.
5160
e4ae5e77
RW
51612009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5162
5163 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
5164 grammar nits.
7a00d767 5165 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
5166 * doc/cpp.texi (Standard Predefined Macros)
5167 (Implementation-defined behavior): Likewise.
7a00d767 5168 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
5169 * doc/gimple.texi (GIMPLE Exception Handling)
5170 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 5171 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
5172 * doc/invoke.texi (Warning Options, Optimize Options)
5173 (AVR Options, Darwin Options): Likewise.
5174 (Optimize Options): Reformulate -fwhole-program description.
5175 * doc/loop.texi (Lambda): Likewise.
5176 * doc/md.texi (Output Template, Define Constraints)
5177 (Standard Names, Insn Splitting): Likewise.
5178 * doc/options.texi (Option properties): Likewise.
5179 * doc/passes.texi (Tree-SSA passes): Likewise.
5180 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
5181 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
5182 (File Names and DBX): Likewise.
5183 * doc/trouble.texi (Incompatibilities): Likewise.
5184
1883802f 51852009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
5186
5187 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
5188 instruction is correct.
5189
1883802f 51902009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
5191
5192 Allow non-constant arguments to conversion intrinsics.
5193 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
5194 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
5195 * spu.c (print_operand): Handle 'v' and 'w'.
5196 (exp2_immediate_p, spu_gen_exp2): Define.
5197 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
5198 spu_convtf_1): Update parameter descriptions.
7a00d767 5199 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
5200 * constraints.md ('v', 'w'): New.
5201 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
5202 Remove.
5203 (i2f, I2F): New define_mode_attr.
5204 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
5205 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
5206 fixuns_truncv4sfv4si2): Update to use mode attribute.
5207 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
5208 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
5209 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
5210 patterns for combine.
5211
5f39ad47
SB
52122009-04-27 Steven Bosscher <steven@gcc.gnu.org>
5213
5214 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
5215 (cprop, hoist, pre, store_motion): New debug counters.
5216 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
5217 is not an RTL pass anymore.
5218 (pass_profiling): Remove extern decl for pass removed in 2005.
5219 (pass_gcse, pass_jump_bypass): Remove.
5220 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
5221 to 0 for clean state.
5222 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
5223 * cse.c (gate_handle_cse_after_global_opts,
5224 rest_of_handle_cse_after_global_opts): New functions.
5225 (pass_cse_after_global_opts): New pass, does local CSE.
5226 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
5227 (TV_CPROP): New timevar.
5228 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
5229 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
5230 (gcse_main, recompute_all_luids): Remove.
5231 (compute_hash_table_work): Call max_reg_num instead of reading
5232 max_gcse_regno.
5233 (cprop_jump): Don't set run_jump_opt_after_gcse.
5234 (constprop_register): Always allow to alter jumps.
5235 (cprop_insn): Likewise.
5236 (do_local_cprop): Likewise.
5237 (local_cprop_pass): Likewise. Return non-zero if something changed.
5238 (cprop): Remove function, fold interesting bits into one_cprop_pass.
5239 (find_implicit_sets): Add note about missed optimization opportunity.
5240 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
5241 pass_rtl_cprop execute function.
5242 Don't bother tracking the pass number, each pass gets its own dumpfile
5243 now anyway.
5244 Always allow to alter jumpsand bypass jumps.
5245 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
5246 will just find no suitable set.
5247 (pre_edge_insert): Fix dumping, this function is for PRE only.
5248 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
5249 pass_rtl_pre execute function.
5250 (hoist_code): Return non-zero if something changed. Keep track of
5251 substitutions and insertions for statistics gathering similar to PRE.
5252 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
5253 called from the pass_rtl_hoist execute function. Show pass statistics.
5254 (compute_store_table): Use max_reg_num directly instead of using the
5255 formerly global max_gcse_regno.
5256 (build_store_vectors): Likewise.
5257 (replace_store_insn): Fix dumping.
5258 (store_motion): Rename to ...
5259 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
5260 pass, called from the pass_rtl_store_motion execute function. Keep
5261 track of substitutions and insertions for statistics gathering similar
5262 to PRE.
5263 (bypass_jumps): Remove, fold interesting bits into ...
5264 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
5265 from the pass_rtl_cprop execute function.
5266 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
5267 pass_jump_bypass): Remove.
5268 (gate_handle_gcse, rest_of_handle_gcse): Remove.
5269 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
5270 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
5271 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
5272 (gate_rtl_store_motion, execute_rtl_store_motion,
5273 pass_rtl_store_motion): New.
5274 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
5275 make it clear that -fcse-skip-blocks is a no-op for backward compat.
5276 * passes.c (init_optimization_passes): Remove pass_gcse and
5277 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
5278 and cse_after_global_opts in place of pass_gcse. Schedule cprop
5279 instead of pass_jump_bypass.
5280
c685de4a
RG
52812009-04-27 Richard Guenther <rguenther@suse.de>
5282
5283 PR middle-end/39928
5284 * gimplify.c (gimplify_expr): If we are required to create
5285 a temporary make sure it ends up as register.
5286
72d41f29
L
52872009-04-27 H.J. Lu <hongjiu.lu@intel.com>
5288
5289 PR target/39903
5290 * config/i386/i386.c (construct_container): Don't call
5291 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
5292 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
5293
e97809c6
MM
52942009-04-27 Michael Matz <matz@suse.de>
5295
5296 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
5297 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
5298 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
5299 (dump_replaceable_exprs): Take a bitmap.
5300 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
5301 array.
5302 (expand_gimple_basic_block): Likewise.
5303 * tree-ssa-ter.c (struct temp_expr_table_d): Make
5304 replaceable_expressions member a bitmap.
5305 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
5306 (mark_replaceable): Likewise.
5307 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
5308 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
5309
211ca15c
RG
53102009-04-27 Richard Guenther <rguenther@suse.de>
5311
5312 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
5313 (verify_stmts): Dispatch to gimple/type verification code.
5314 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
5315 issue with call argument types.
5316
fca5f3d1
MM
53172009-04-27 Michael Matz <matz@suse.de>
5318
5319 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
5320 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
5321 to above.
5322
a1fa3e79 53232009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 5324 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
5325
5326 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
5327 a label's basic block.
5328 (mark_target_live_regs): Tidy and rework obsolete comments.
5329 Change back DF problem to LIVE. If a label starts a basic block,
5330 assume that all registers that used to be live then still are.
5331 (init_resource_info): If a label starts a basic block, set its
5332 BLOCK_FOR_INSN accordingly.
5333 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
5334
33b223c0
RG
53352009-04-27 Richard Guenther <rguenther@suse.de>
5336
5337 * tree-flow-inline.h (function_ann): Remove.
5338 (get_function_ann): Likewise.
5339 * tree-dfa.c (create_function_ann): Remove.
5340 * tree-flow.h (struct static_var_ann_d): Remove.
5341 (struct function_ann_d): Likewise.
5342 (union tree_ann_d): Remove fdecl member.
5343 (function_ann_t): Remove.
5344 (function_ann, get_function_ann, create_function_ann): Remove
5345 declarations.
5346
e3136fa2
UB
53472009-04-27 Uros Bizjak <ubizjak@gmail.com>
5348
5349 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
5350
f87c9042
JH
53512009-04-27 Jan Hubicka <jh@suse.cz>
5352
5353 * ipa-pure-const.c (struct funct_state_d): New fields
5354 state_previously_known, looping_previously_known; remove
5355 state_set_in_source.
5356 (analyze_function): Use new fields.
5357 (propagate): Avoid assumption that state_set_in_source imply
5358 nonlooping.
5359
5360 * tree-ssa-loop-niter.c (finite_loop_p): New function.
5361 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
5362 * cfgloop.h (finite_loop_p): Declare.
5363
33abd718
MM
53642009-04-26 Michael Matz <matz@suse.de>
5365
e3136fa2 5366 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 5367
ddc34084
MM
53682009-04-26 Michael Matz <matz@suse.de>
5369
5370 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
5371 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
5372 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
5373 pass_mark_used_blocks): Remove.
5374 * tree-optimize.c (pass_free_datastructures,
5375 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
5376 * passes.c (init_optimization_passes): Don't call
5377 pass_mark_used_blocks, remove dead code.
5378
1fec7ed4
L
53792009-04-26 H.J. Lu <hongjiu.lu@intel.com>
5380
5381 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
5382 * tree-ssa-live.h (register_ssa_partition): Likewise.
5383
4e3825db
MM
53842009-04-26 Michael Matz <matz@suse.de>
5385
5386 Expand from SSA.
5387 * builtins.c (fold_builtin_next_arg): Handle SSA names.
5388 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
5389 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
5390 SSA names.
5391 (compare_pairs): Swap cost comparison.
5392 (coalesce_ssa_name): Don't use change_partition_var.
5393 * tree-nrv.c (struct nrv_data): Add modified member.
5394 (finalize_nrv_r): Set it.
5395 (tree_nrv): Use it to update statements.
5396 (pass_nrv): Require PROP_ssa.
5397 * tree-mudflap.c (mf_decl_cache_locals,
5398 mf_build_check_statement_for): Use make_rename_temp.
5399 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
5400 * alias.c (find_base_decl): Handle SSA names.
5401 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
5402 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
5403 * rtl.h (set_reg_attrs_for_parm): Declare.
5404 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
5405 to "optimized", remove unused locals at finish.
5406 (execute_free_datastructures): Make global, call
5407 delete_tree_cfg_annotations.
5408 (execute_free_cfg_annotations): Don't call
5409 delete_tree_cfg_annotations.
5410
5411 * ssaexpand.h: New file.
5412 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 5413 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
5414 (expand_expr_real_1): Expand SSA names.
5415 * cfgexpand.c (toplevel): Include ssaexpand.h.
5416 (SA): New global variable.
5417 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
5418 (SSAVAR): New macro.
5419 (set_rtl): New helper function.
5420 (add_stack_var): Deal with SSA names, use set_rtl.
5421 (expand_one_stack_var_at): Likewise.
5422 (expand_one_stack_var): Deal with SSA names.
5423 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
5424 before unique numbers.
5425 (expand_stack_vars): Use set_rtl.
5426 (expand_one_var): Accept SSA names, add asserts for them, feed them
5427 to above subroutines.
5428 (expand_used_vars): Expand all partitions (without default defs),
5429 then only the local decls (ignoring those expanded already).
5430 (expand_gimple_cond): Remove edges when jumpif() expands an
5431 unconditional jump.
5432 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
5433 or remove abnormal edges. Ignore insns setting the LHS of a TERed
5434 SSA name.
5435 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
5436 members of SA; deal with PARM_DECL partitions here; expand
5437 all PHI nodes, free tree datastructures and SA. Commit instructions
5438 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
5439 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
5440 info and statements at start, collect garbage at finish.
5441 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
5442 (VAR_ANN_PARTITION) Remove.
5443 (change_partition_var): Don't declare.
5444 (partition_to_var): Always return SSA names.
5445 (var_to_partition): Only accept SSA names.
5446 (register_ssa_partition): Only check argument.
5447 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
5448 member.
5449 (delete_var_map): Don't free it.
5450 (var_union): Only accept SSA names, simplify.
5451 (partition_view_init): Mark only useful SSA names as used.
5452 (partition_view_fini): Only deal with SSA names.
5453 (change_partition_var): Remove.
5454 (dump_var_map): Use ssa_name instead of partition_to_var member.
5455 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
5456 basic blocks.
5457 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
5458 (struct _elim_graph): New member const_dests; nodes member vector of
5459 ints.
5460 (set_location_for_edge): New static helper.
5461 (create_temp): Remove.
5462 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 5463 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
5464 (new_elim_graph): Allocate const_dests member.
5465 (clean_elim_graph): Truncate const_dests member.
5466 (delete_elim_graph): Free const_dests member.
5467 (elim_graph_size): Adapt to new type of nodes member.
5468 (elim_graph_add_node): Likewise.
5469 (eliminate_name): Likewise.
5470 (eliminate_build): Don't take basic block argument, deal only with
5471 partition numbers, not variables.
5472 (get_temp_reg): New static helper.
5473 (elim_create): Use it, deal with RTL temporaries instead of trees.
5474 (eliminate_phi): Adjust all calls to new signature.
5475 (assign_vars, replace_use_variable, replace_def_variable): Remove.
5476 (rewrite_trees): Only do checking.
5477 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
5478 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
5479 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
5480 contains_tree_r, MAX_STMTS_IN_LATCH,
5481 process_single_block_loop_latch, analyze_edges_for_bb,
5482 perform_edge_inserts): Remove.
5483 (expand_phi_nodes): New global function.
5484 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
5485 functions, initialize new parameter, remember partitions having a
5486 default def.
5487 (finish_out_of_ssa): New global function.
5488 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
5489 don't reset in_ssa_p here, don't disable TER when mudflap.
5490 (pass_del_ssa): Remove.
5491 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
5492 partition members.
5493 (execute_free_datastructures): Declare.
5494 * Makefile.in (SSAEXPAND_H): New variable.
5495 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
5496 * basic-block.h (commit_one_edge_insertion): Declare.
5497 * passes.c (init_optimization_passes): Move pass_nrv and
5498 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
5499 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
5500 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
5501 (redirect_branch_edge): Deal with super block when expanding, split
5502 out jump patching itself into ...
5503 (patch_jump_insn): ... here, new static helper.
5504
17c665a9
MM
55052009-04-26 Michael Matz <matz@suse.de>
5506
5507 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
5508 beyond num_ssa_names.
5509 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
5510 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
5511
92061771
JJ
55122009-04-26 Jakub Jelinek <jakub@redhat.com>
5513
ce372372
JJ
5514 PR inline-asm/39543
5515 * fwprop.c (forward_propagate_asm): New function.
5516 (forward_propagate_and_simplify): Propagate also into __asm, if it
5517 doesn't increase the number of referenced registers.
5518
92061771
JJ
5519 PR c/39889
5520 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
5521
55222009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
5523
5524 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
5525 note_nonlocal_vla_type for nonlocal VLAs.
5526 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
5527 contains_remapped_vars, remap_vla_decls): New functions.
5528 (convert_nonlocal_reference_stmt): If not optimizing, call
5529 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
5530 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
5531 if it wasn't found in var_map.
5532 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
5533 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
5534 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
5535 declare_vars.
5536 * gimplify.c (nonlocal_vlas): New variable.
5537 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
5538 referenced VLAs.
5539 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 5540
4561e242
JJ
5541 * dwarf2out.c (loc_descr_plus_const): New function.
5542 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
5543 mem_loc_descriptor, loc_descriptor_from_tree_1,
5544 descr_info_loc, gen_variable_die): Use it.
5545
a9548ddf
JJ
5546 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
5547 !TREE_STATIC VAR_DECLs.
5548 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
5549 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
5550 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
5551 DECL_BY_REFERENCE is valid.
5552 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
5553 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
5554 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
5555 Copy DECL_BY_REFERENCE.
5556 (struct nesting_copy_body_data): New type.
5557 (nesting_copy_decl): New function.
5558 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
5559 if they have variable length.
5560
10555d08
MM
55612009-04-26 Michael Matz <matz@suse.de>
5562
5563 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
5564 mark new temporaries for renaming.
5565
e11187cc
JM
55662009-04-26 Joseph Myers <joseph@codesourcery.com>
5567
5568 PR c/39581
5569 * c-decl.c (global_bindings_p): Return negative value.
5570 (c_variable_size): New. Based on variable_size from
5571 stor-layout.c.
5572 (grokdeclarator): Call c_variable_size not variable_size.
5573
f6a51d31
UB
55742009-04-26 Uros Bizjak <ubizjak@gmail.com>
5575
5576 * config/i386/i386.c (print_operand) ['z']: Fix typo.
5577
4b97723d
KT
55782009-04-26 Kai Tietz <kai.tietz@onevision.com>
5579
5580 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
5581 Redefine it to just use mingw/include.
5582 (ASM_SPEC): Rules for -m32 and -m64.
5583 (LINK_SPEC): Use Likewise.
5584 (SPEC_32): New define.
5585 (SPEC_64): Likewise.
5586 (SUB_LINK_SPEC): Likewise.
5587 (MULTILIB_DEFAULTS): New define.
5588 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
5589 Add multilib options.
5590 (MULTILIB_DIRNAMES): Likewise.
5591 (MULTILIB_OSDIRNAMES): Likewise.
5592 (LIBGCC): Likewise.
5593 (INSTALL_LIBGCC): Likewise.
5594
991d6621
JM
55952009-04-26 Joseph Myers <joseph@codesourcery.com>
5596
5597 PR c/39556
5598 * c-tree.h (enum c_inline_static_type): New.
5599 (record_inline_static): Declare.
5600 * c-decl.c (struct c_inline_static, c_inline_statics,
5601 record_inline_static, check_inline_statics): New.
5602 (pop_file_scope): Call check_inline_statics.
5603 (start_decl): Call record_inline_static instead of pedwarning
5604 directly for static in inline function.
5605 * c-typeck.c (build_external_ref): Call record_inline_static
5606 instead of pedwarning directly for static referenced in inline
5607 function.
5608
4a81774c
SB
56092009-04-26 Steven Bosscher <steven@gcc.gnu.org>
5610
5611 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
5612 not new but only being rescanned.
5613 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
5614 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
5615 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
5616 record_set_info, compute_set, grealloc): Remove.
5617 (recompute_all_luids): New function.
5618 (gcse_main): Don't compute sets, and don't do related memory
5619 allocations/free-ing. If something changed before the end of the
5620 pass, update LUIDs using recompute_all_luids.
5621 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
5622 (free_gcse_mem): Don't free it either.
5623 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
5624 Use the df insn LUIDs.
5625 (load_killed_in_block): Likewise.
5626 (compute_hash_table_work): Don't compute reg_set_in_block.
5627 (compute_transp): Use DF_REG_DEF_CHAINs.
5628 (local_cprop_pass): Don't use compute_sets and related functions.
5629 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
5630 Use get_max_uid() instead of max_cuid.
5631 (insert_insn_end_basic_block, pre_insert_copy_insn,
5632 update_ld_motion_stores): Don't try to
5633 keep reg_set tables up to date.
5634 (pre_insert_copies): Use df insn LUIDs.
5635 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
5636 (reg_set_info): Don't use extra bitmap argument.
5637 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
5638 information to compute regs_set_in_block.
5639 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
5640 (bypass_jumps): Don't use compute_sets and friends.
5641
e8f99a9d
RW
56422009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5643
5644 PR testsuite/39710
5645 * opts.c (undocumented_msg): Do not leave blank even with
5646 ENABLE_CHECKING.
5647
6895bac8
JM
56482009-04-25 Joseph Myers <joseph@codesourcery.com>
5649
5650 * c-decl.c (build_enumerator): Allow values folding to integer
5651 constants but not integer constant expressions with a pedwarn if
5652 pedantic.
5653
24070fcb
JM
56542009-04-25 Joseph Myers <joseph@codesourcery.com>
5655
5656 PR c/39582
5657 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
5658 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
5659 type is an integer constant.
5660
d6d89aa1
UB
56612009-04-25 Uros Bizjak <ubizjak@gmail.com>
5662
5663 PR target/39897
5664 * config/i386/i386.c (print_operand) ['z']: Revert handling of
5665 HImode operands.
5666
92f6fd0b
JM
56672009-04-25 Joseph Myers <joseph@codesourcery.com>
5668
5669 PR c/39564
5670 * c-decl.c (grokdeclarator): Diagnose declarations of functions
5671 with variably modified return type and no storage class
5672 specifiers, except for the case of nested functions. Distinguish
5673 extern declarations of functions with variably modified return
5674 types from those of objects with variably modified types.
5675
a3710436
JH
56762009-04-25 Jan Hubicka <jh@suse.cz>
5677
5678 * tree.c (list_equal_p): New function.
5679 * tree.h (list_equal_p): Declare.
5680 * coretypes.h (edge_def, edge, const_edge, basic_block_def
5681 basic_block_def, basic_block, const_basic_block): New.
5682 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
5683 (redirect_eh_edge): New function.
5684 (make_eh_edge_update_phi): EH edges are not abnormal.
5685 * except.c: Include tree-flow.h.
5686 (list_match): New function.
5687 (eh_region_replaceable_by_p): New function.
5688 (replace_region): New function.
5689 (hash_type_list): New function.
5690 (hash_eh_region): New function.
5691 (eh_regions_equal_p): New function.
5692 (merge_peers): New function.
5693 (remove_unreachable_regions): Verify EH tree when checking;
5694 merge peers.
5695 (copy_eh_region_1): New function.
5696 (copy_eh_region): New function.
5697 (push_reachable_handler): New function.
5698 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
5699 regions without label but with live RESX.
5700 * except.h (redirect_eh_edge_to_label): New.
5701 * tree-flow.h (redirect_eh_edge): New.
5702 * coretypes.h (edge_def, edge, const_edge, basic_block_def
5703 basic_block_def, basic_block, const_basic_block): Remove.
5704 * Makefile.in (except.o): Add dependency on tree-flow.h
5705 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
5706 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
5707 Remove.
5708
3764d512
EB
57092009-04-25 Eric Botcazou <ebotcazou@adacore.com>
5710
5711 PR bootstrap/39645
5712 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
5713 on the destination of memcpy.
5714
1c62e8f2
PB
57152009-04-25 Paolo Bonzini <bonzini@gnu.org>
5716
5717 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
5718 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
5719 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
5720
496a4ef5
JH
57212009-04-25 Jan Hubicka <jh@suse.cz>
5722
5723 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
5724 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
5725 to be reached by different label than left.
5726 (update_eh_edges): Update comment; remove edge_to_remove if possible
5727 and return true if suceeded.
5728 (cleanup_empty_eh): Accept sharing map; handle shared regions.
5729 (cleanup_eh): Compute sharing map.
5730 * except.c (remove_eh_handler_and_replace): Add argument if we should
5731 update regions.
5732 (remove_unreachable_regions): Update for label sharing.
5733 (label_to_region_map): Likewise.
5734 (get_next_region_sharing_label): New function.
5735 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
5736 prev_try pointers.
5737 (remove_eh_handler): Update.
5738 (remove_eh_region_and_replace_by_outer_of): New function.
5739 * except.h (struct eh_region): Add next_region_sharing_label.
5740 (remove_eh_region_and_replace_by_outer_of,
5741 get_next_region_sharing_label): Declare.
5742 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
5743
57442009-04-25 Jan Hubicka <jh@suse.cz>
5745
5746 * tree-cfg.c (split_critical_edges): Split also edges where we can't
5747 insert code even if they are not critical.
5748
57492009-04-25 Jan Hubicka <jh@suse.cz>
5750
5751 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
5752 (gimple_can_remove_branch_p): EH edges won't remove branch by
5753 redirection.
5754 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
5755 updating of non-abnormal EH edges.
5756 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
5757 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
5758 (split_critical_edges): Split also edges where emitting code on them
5759 will lead to splitting later.
5760
a3a5e3d1
UB
57612009-04-25 Uros Bizjak <ubizjak@gmail.com>
5762 H.J. Lu <hongjiu.lu@intel.com>
5763
5764 PR target/39590
5765 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
5766 the configured assembler supports fildq and fistpq mnemonics.
5767 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
5768 * configure: Regenerated.
5769 * config.in: Ditto.
5770
5771 * config/i386/i386.c (print_operand): Handle 'Z'.
5772 ['z']: Remove handling of special fild/fist suffixes.
5773 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
5774 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
5775 suffix of fild insn.
5776 (*floatsi<mode>2_vector_mixed): Ditto.
5777 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
5778 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
5779 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
5780 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
5781 * config/i386/gas.h (GAS_MNEMONICS): Remove.
5782
23750d7f
BE
57832009-04-25 Ben Elliston <bje@au.ibm.com>
5784
5785 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
5786 the source of a set operation.
5787
e6ff3083
AS
57882009-04-25 Anatoly Sokolov <aesok@post.ru>
5789
5790 * target.h (struct gcc_target): Add case_values_threshold field.
5791 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
5792 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
5793 * targhooks.c (default_case_values_threshold): New function.
5794 * targhooks.h (default_case_values_threshold): Declare function.
5795 * stmt.c (expand_case): Use case_values_threshold target hook.
5796 * expr.h (case_values_threshold): Remove declartation.
5797 * expr.c (case_values_threshold): Remove function.
5798 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
5799
5800 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
5801 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
5802 (avr_case_values_threshold): Declare as static.
5803 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
5804
5805 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
5806 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
5807 (mn10300_case_values_threshold): New function.
5808
569c72fc
L
58092009-04-24 H.J. Lu <hongjiu.lu@intel.com>
5810
5811 * ira.c (setup_cover_and_important_classes): Add enum cast.
5812
ff3cb468
VM
58132009-04-24 Vladimir Makarov <vmakarov@redhat.com>
5814
5815 * genpreds.c (write_enum_constraint_num): Output definition of
5816 CONSTRAINT_NUM_DEFINED_P macro.
5817 * ira.c (setup_cover_and_important_classes): Use
5818 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
5819
4f7be849
DD
58202009-04-24 DJ Delorie <dj@redhat.com>
5821
5822 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
5823 __SH2A_SINGLE_ONLY__ also.
5824
735b94a7
SE
58252009-04-24 Steve Ellcey <sje@cup.hp.com>
5826
5827 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
5828 (movdf_internal): Ditto.
5829 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
5830 SFmode and DFmode constants.
5831 (ia64_print_operand): Add 'G' format for printing
5832 floating point constants.
5833
77a30264
RG
58342009-04-24 Richard Guenther <rguenther@suse.de>
5835
5836 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
5837 from unsigned additions.
5838
2b6da65c
JM
58392009-04-24 Joseph Myers <joseph@codesourcery.com>
5840
5841 * c-typeck.c (set_init_index): Allow array designators that are
5842 not integer constant expressions with a pedwarn if pedantic.
5843
f5a17c43
BS
58442009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
5845
5846 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
5847 zero if no overlap in nonzero bits between the operands.
5848
32e8bb8e
ILT
58492009-04-24 Ian Lance Taylor <iant@google.com>
5850
5851 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
5852 (record_dead_and_set_regs): Likewise.
5853 * df.h (struct df_mw_hardreg): Change flags field to int.
5854 (struct df_base_ref): Likewise.
5855 (struct df): Change changeable_flags field to int.
5856 * df-scan.c (df_defs_record): Change clobber_flags to int.
5857 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
5858 constants rather than #define macros.
5859 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
5860 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
5861 (enum dwarf_calling_convention): Likewise.
5862 (enum dwarf_line_number_x_ops): Likewise.
5863 (enum dwarf_call_frame_info): Likewise.
5864 (enum dwarf_source_language): Likewise.
5865 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
5866 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
5867 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
5868 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
5869 * genrecog.c (maybe_both_true_2): Change c to int.
5870 (write_switch): Likewise. Add cast to enum type.
5871 * gimplify.c (gimplify_omp_for): Handle return values from
5872 gimplify_expr using MIN rather than bitwise or.
5873 (gimplify_expr): Add cast to enum type.
5874 * ipa-prop.c (update_jump_functions_after_inlining): Change
5875 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
5876 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
5877 Add casts to enum type.
32e8bb8e
ILT
5878 (setup_cover_and_important_classes): Change cl to int. Add casts
5879 to enum type.
5880 (setup_class_translate): Change cl and mode to int.
5881 (ira_init_once): Change mode to int.
5882 (free_register_move_costs): Likewise.
5883 (setup_prohibited_mode_move_regs): Add casts to enum type.
5884 * langhooks.c (add_builtin_function_common): Rework assertion that
5885 value fits bitfield.
5886 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
5887 * omega.c (omega_do_elimination): Avoid math on enum types.
5888 * optabs.c (expand_vec_shift_expr): Remove casts to int.
5889 * opts.c (set_debug_level): Change 2 to enum constant. Use new
5890 int local to handle integral_argment value.
5891 * regmove.c (try_auto_increment): Change PUT_MODE to
5892 PUT_REG_NOTE_KIND.
5893 * reload.c (push_secondary_reload): Add casts to enum type.
5894 (secondary_reload_class, find_valid_class): Likewise.
5895 * reload1.c (emit_input_reload_insns): Likewise.
5896 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
5897 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
5898 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
5899 constant.
5900 * tree.c (build_common_builtin_nodes): Add casts to enum type.
5901 * tree-complex.c (complex_lattice_t): Typedef to int rather than
5902 enum type.
5903 (expand_complex_libcall): Add casts to enum type.
5904 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
5905 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
5906 with ERROR_MARK, not NUM_TREE_CODES.
5907 (vect_create_epilog_for_reduction): Likewise.
5908 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 5909 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
5910 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
5911 enum machine_mode.
5912 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
5913 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 5914 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
5915 * var-tracking.c (get_init_value): Change return type to enum
5916 var_init_status.
5917 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
5918 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
5919 arm_fp_model.
5920 (arm_override_options): Add casts to enum type.
5921 (arm_emit_tls_decoration): Likewise.
5922 * config/i386/i386.c (ix86_function_specific_restore): Add casts
5923 to enum type.
5924 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
5925 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
5926 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
5927 enum type.
5928 * config/s390/s390.c (code_for_builtin_64): Change to array of
5929 enum insn_code.
5930 (code_for_builtin_31): Likewise.
5931 (s390_expand_builtin): Change code_for_builtin to enum insn_code
5932 const *.
5933 * config/sparc/sparc.c (sparc_override_options): Change value
5934 field in struct code_model to enum cmodel. In initializer change
5935 0 to NULL and add cast to enum type.
5936
5937 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
5938 Change all callers. Issue a -Wc++-compat warning using
5939 lhs_origtype if necessary.
5940 (convert_for_assignment): Issue -Wc++-compat warnings about
5941 invalid conversions to enum type on assignment.
5942 * c-common.h (build_modify_expr): Update declaration.
5943
ac4fc08a
NC
59442009-04-24 Nick Clifton <nickc@redhat.com>
5945
5946 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
5947 (function_arg_advance): Likewise.
5948 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
5949 5th alternative.
5950
f22e891a
AK
59512009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
5952
5953 * config/s390/constraints.md ('I', 'J'): Fix condition.
5954
ad58aabe
DN
59552009-04-24 Diego Novillo <dnovillo@google.com>
5956
5957 * gengtype-parse.c (parse_error): Add newline after message.
5958
879a4a01
L
59592009-04-24 H.J. Lu <hongjiu.lu@intel.com>
5960
5961 * config/i386/sse.md (avxmodesuffixs): Removed.
5962 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
5963 (*avx_pinsr<ssevecsize>): This.
5964
f63426af
BS
59652009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
5966
5967 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
5968 follow chains of regs with a single definition, and allow expressions
5969 that are function_invariant_p.
ce72fe6c 5970 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 5971
30349c74
PB
59722009-04-24 Paolo Bonzini <bonzini@gnu.org>
5973
5974 PR middle-end/39867
5975 * fold-const.c (fold_cond_expr_with_comparison): When folding
5976 > and >= to MAX, make sure the MAX uses the same type as the
5977 comparison's operands.
5978
8d8256c1
NC
59792009-04-24 Nick Clifton <nickc@redhat.com>
5980
5981 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
5982 addressing for DImode accesses.
5983 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 5984 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 5985
6216f94e
JJ
59862009-04-24 Jakub Jelinek <jakub@redhat.com>
5987
5988 PR rtl-optimization/39794
5989 * alias.c (canon_true_dependence): Add x_addr argument.
5990 * rtl.h (canon_true_dependence): Adjust prototype.
5991 * cse.c (check_dependence): Adjust canon_true_dependence callers.
5992 * cselib.c (cselib_invalidate_mem): Likewise.
5993 * gcse.c (compute_transp): Likewise.
5994 * dse.c (scan_reads_nospill): Likewise.
5995 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
5996 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
5997 canon_base_addr of the group, plus optional offset.
5998 (struct group_info): Rename canon_base_mem to
5999 canon_base_addr.
6000 (get_group_info): Set canon_base_addr to canon_rtx of base, not
6001 canon_rtx of base_mem.
6002
6de7a512
PB
60032009-04-23 Paolo Bonzini <bonzini@gnu.org>
6004
6005 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
6006 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
6007
4a3a2376
UW
60082009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6009
6010 * config/spu/spu-builtins.h: Delete file.
6011
6012 * config/spu/spu.h (enum spu_builtin_type): Move here from
6013 spu-builtins.h.
6014 (struct spu_builtin_description): Likewise. Add GTY marker.
6015 Do not use enum spu_function_code or enum insn_code.
6016 (spu_builtins): Add extern declaration.
6017
6018 * config/spu/spu.c: Do not include "spu-builtins.h".
6019 (enum spu_function_code, enum spu_builtin_type_index,
6020 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
6021 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
6022 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
6023 unsigned_V2DI_type_node): Move here from spu-builtins.h.
6024 (spu_builtin_types): Make static. Add GTY marker.
6025 (spu_builtins): Add extern declaration with GTY marker.
6026 Include "gt-spu.h".
6027
6028 * config/spu/spu-c.c: Do not include "spu-builtins.h".
6029 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
6030 Check programmatically whether all parameters are scalar.
6031
6032 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
6033
bbaba73f
EB
60342009-04-23 Eric Botcazou <ebotcazou@adacore.com>
6035
6036 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
6037 assignment from the constructor either if the target is volatile.
6038
ee93c1c6
DJ
60392009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
6040
6041 * config/arm/arm.md (insv): Do not share operands[0].
6042
b2f21330
NS
60432009-04-23 Nathan Sidwell <nathan@codesourcery.com>
6044
6045 * config/vxlib-tls.c (active_tls_threads): Delete.
6046 (delete_hook_installed): New.
6047 (tls_delete_hook): Don't delete the delete hook.
6048 (tls_destructor): Delete it here.
6049 (__gthread_set_specific): Adjust installing the delete hook.
6050 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
6051 __gthread_leave_tsd_dtor_context.
6052
4782dfa7
RAE
60532009-04-23 Rafael Avila de Espindola <espindola@google.com>
6054
6055 * c-format.c (gcc_tdiag_char_table): Add support for %E.
6056
bf758008
UB
60572009-04-23 Uros Bizjak <ubizjak@gmail.com>
6058
6059 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
6060 enum type.
6061 (alpha_rtx_costs): Ditto.
6062 (emit_unlikely_jump): Use add_reg_note.
6063 (emit_frame_store_1): Ditto.
6064 (alpha_expand_prologue): Ditto.
6065 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
6066 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
6067
7323a100
NC
60682009-04-23 Nick Clifton <nickc@redhat.com>
6069
6070 * config/v850/v850.md (epilogue): Remove suppressed code.
6071 (return): Rename to return_simple and remove test of frame size.
6072 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
6073 to gen_return_simple.
6074
360032ba
JY
60752009-04-22 Jing Yu <jingyu@google.com>
6076
6077 PR testsuite/39781
6078 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
6079
53650abe
AP
60802009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
6081
6082 PR C/31499
6083 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
6084 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
6085 value is a VECTOR_CST, the element type is the element type of the
6086 vector.
6087
89043e8a
DD
60882009-04-22 DJ Delorie <dj@redhat.com>
6089
6090 * config/m32c/m32c.h: Update GTY annotations to new syntax.
6091
023f059b
JJ
60922009-04-22 Jakub Jelinek <jakub@redhat.com>
6093
6094 * alias.c (find_base_term): Move around LO_SUM case, so that
6095 CONST falls through into PLUS/MINUS handling.
6096
2c0eba5a
JJ
6097 PR c/39855
6098 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
6099 into 0, use omit_one_operand.
6100
9a461028
BE
61012009-04-23 Ben Elliston <bje@au.ibm.com>
6102
6103 * config/rs6000/linux-unwind.h (get_regs): Remove type
6104 puns. Change the type of `pc' to an array of unsigned ints and
6105 update all users. Constify frame24.
6106
653e2568
DD
61072009-04-22 DJ Delorie <dj@redhat.com>
6108
6109 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
6110 declarations before code.
6111 (current_function_special_page_vector): Likewise.
6112 (m32c_expand_insv): Silence a warning.
6113
60839f5d 61142009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
6115
6116 * alias.c: Update GTY annotations to new syntax.
6117 * basic-block.h: Likewise.
6118 * bitmap.h: Likewise.
6119 * c-common.h: Likewise.
6120 * c-decl.c: Likewise.
6121 * c-parser.c: Likewise.
6122 * c-pragma.c: Likewise.
6123 * c-tree.h: Likewise.
6124 * cfgloop.h: Likewise.
6125 * cgraph.h: Likewise.
6126 * config/alpha/alpha.c: Likewise.
6127 * config/arm/arm.h: Likewise.
6128 * config/avr/avr.h: Likewise.
6129 * config/bfin/bfin.c: Likewise.
6130 * config/cris/cris.c: Likewise.
6131 * config/darwin.c: Likewise.
6132 * config/frv/frv.c: Likewise.
6133 * config/i386/i386.c: Likewise.
6134 * config/i386/i386.h: Likewise.
6135 * config/i386/winnt.c: Likewise.
6136 * config/ia64/ia64.h: Likewise.
6137 * config/iq2000/iq2000.c: Likewise.
6138 * config/mips/mips.c: Likewise.
6139 * config/mmix/mmix.h: Likewise.
6140 * config/pa/pa.c: Likewise.
6141 * config/pa/pa.h: Likewise.
6142 * config/rs6000/rs6000.c: Likewise.
6143 * config/s390/s390.c: Likewise.
6144 * config/sparc/sparc.c: Likewise.
6145 * config/xtensa/xtensa.c: Likewise.
6146 * cselib.h: Likewise.
6147 * dbxout.c: Likewise.
6148 * dwarf2out.c: Likewise.
6149 * except.c: Likewise.
6150 * except.h: Likewise.
6151 * fixed-value.h: Likewise.
6152 * function.c: Likewise.
6153 * function.h: Likewise.
6154 * gimple.h: Likewise.
6155 * integrate.c: Likewise.
6156 * optabs.c: Likewise.
6157 * output.h: Likewise.
6158 * real.h: Likewise.
6159 * rtl.h: Likewise.
6160 * stringpool.c: Likewise.
6161 * tree-data-ref.c: Likewise.
6162 * tree-flow.h: Likewise.
6163 * tree-scalar-evolution.c: Likewise.
6164 * tree-ssa-address.c: Likewise.
6165 * tree-ssa-alias.h: Likewise.
6166 * tree-ssa-operands.h: Likewise.
6167 * tree.c: Likewise.
6168 * tree.h: Likewise.
6169 * varasm.c: Likewise.
6170 * varray.h: Likewise.
6171 * vec.h: Likewise.
bf758008 6172 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
6173 * doc/gty.texi: Update GTY documentation to new syntax.
6174 * gengtype-lex.l: Enforce attribute-like syntax for GTY
6175 annotations on structs.
6176 * gengtype-parse.c: Likewise.
6177
a123d175
MH
61782009-04-22 Mark Heffernan <meheff@google.com>
6179
bf758008 6180 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 6181
4c7c486a
KH
61822009-04-22 Kazu Hirata <kazu@codesourcery.com>
6183
6184 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
6185 where appropriate.
6186
6e782a29
KH
61872009-04-22 Kazu Hirata <kazu@codesourcery.com>
6188
6189 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
6190 the same as a PLUS without a shift. Increase the cost of a
6191 CONST_INT in MULT.
6192
38d2336a
MLI
61932009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6194
6195 * Makefile.in: Update dependencies.
bf758008 6196 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
6197 * errors.h: Remove bogus comment about compatibility.
6198 (warning): Update declaration.
6199 * genautomata.c: Update all calls to warning.
6200 * gimple.c: Do not include errors.h. Include toplev.h.
6201 * tree-ssa-structalias.c: Do not include errors.h.
6202 * omega.c: Likewise.
6203 * tree-ssa-reassoc.c: Likewise.
6204 * config/spu/spu-c.c: Likewise.
6205 * config/spu/t-spu-elf: Update dependencies.
6206
aea4deba
RG
62072009-04-22 Richard Guenther <rguenther@suse.de>
6208
6209 PR tree-optimization/39824
6210 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
6211 make sure the types are compatible.
6212
cfc93532
MLI
62132009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6214
6215 PR c++/14875
6216 * c-common.c (c_parse_error): Take a token_flags parameter.
6217 Use token_type for the token type instead.
6218 Pass token_flags to cpp_type2name.
6219 * c-common.h (c_parse_error): Update declaration.
6220 * c-parser.c (c_parser_error): Pass 0 as token flags.
6221
8632d02a
AB
62222009-04-22 Andrey Belevantsev <abel@ispras.ru>
6223
6224 PR rtl-optimization/39580
6225 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
6226
4c33221c
UW
62272009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6228
6229 * function.c (expand_function_end): Do not emit a jump to the "naked"
6230 return label for fall-through returns.
6231 * except.c (sjlj_emit_function_exit): Always place the call to the
6232 unregister function at the location installed by expand_function_end.
6233
9925bce0
RG
62342009-04-22 Richard Guenther <rguenther@suse.de>
6235
6236 PR tree-optimization/39845
6237 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
6238 (gen_inbound_check): Likewise.
6239
24a40b35
NS
62402009-04-22 Nathan Sidwell <nathan@codesourcery.com>
6241
6242 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
6243 padding for PPC.
6244 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
6245 * config/vxlib.c (__gthread_once): Add race guard for PPC.
6246
6c34a092
PB
62472009-04-22 Paolo Bonzini <bonzini@gnu.org>
6248
6249 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
6250 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
6251 shift counts to avoid out-of-bounds array accesses.
6252
baa48dfa
PB
62532009-04-22 Paolo Bonzini <bonzini@gnu.org>
6254
6255 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
6256 (Pmode): Move above.
6257
7d83f4f5
UB
62582009-04-22 Uros Bizjak <ubizjak@gmail.com>
6259
6260 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
6261 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
6262 GET_CODE macro. Use IN_RANGE macro where appropriate.
6263 * config/alpha/alpha.h: Ditto.
6264 * config/alpha/alpha.md: Ditto.
6265 * config/alpha/constraints.md: Ditto.
6266 * config/alpha/predicates.md: Ditto.
6267
3ad606bc
PB
62682009-04-22 Paolo Bonzini <bonzini@gnu.org>
6269
6270 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
6271 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6272 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6273 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6274 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6275 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6276 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6277 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6278 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6279 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6280 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6281 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6282 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6283 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6284 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6285 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6286 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6287 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6288 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6289 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6290 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6291 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6292 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6293 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6294 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6295 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6296 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6297
3cabd6d1
LB
62982009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
6299
6300 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
6301 references from comments.
6302 * cfgbuild.c: (count_basic_blocks): Delete.
6303 (find_basic_blocks_1): Delete.
6304 (find_basic_blocks): Delete.
6305 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 6306 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
6307 * except.h (finish_eh_generation): Delete.
6308 * basic-block.h (find_basic_blocks): Delete.
6309 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
6310
270d1bcd
DK
63112009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
6312
6313 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
6314 (sdbout_parms): Likewise.
6315
b757d36f
KK
63162009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
6317
6318 * config/sh/sh.c (prepare_cbranch_operands): Use
6319 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
6320 (expand_cbranchdi4): Likewise.
6321 (from_compare): Add cast to enum type.
6322 (expand_cbranchsi4): Use add_reg_note.
6323 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
6324 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
6325 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
6326 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
6327 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
6328 instead of CODE_FOR_nothing.
6329 (cbranchdi4): Likewise. Fix the order of arguments for
6330 gen_rtx_fmt_ee.
6331 (push_fpscr): Use add_reg_note.
6332 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
6333 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
6334
ad41bd84
JM
63352009-04-21 Joseph Myers <joseph@codesourcery.com>
6336
6337 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
6338 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
6339 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
6340 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
6341 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
6342 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
6343 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
6344 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
6345 config/alpha/x-vms, config/arc/t-arc,
6346 config/arm/README-interworking, config/arm/arm-c.c,
6347 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
6348 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
6349 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
6350 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
6351 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
6352 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
6353 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
6354 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
6355 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
6356 config/cris/t-elfmulti, config/crx/t-crx,
6357 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
6358 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
6359 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
6360 config/h8300/t-h8300, config/i386/athlon.md,
6361 config/i386/darwin-libgcc.10.4.ver,
6362 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
6363 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
6364 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
6365 config/i386/t-linux64, config/i386/t-nwld,
6366 config/i386/t-rtems-i386, config/i386/t-sol2-10,
6367 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
6368 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
6369 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
6370 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
6371 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
6372 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
6373 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
6374 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
6375 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
6376 config/m68k/t-uclinux, config/mcore/t-mcore,
6377 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
6378 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
6379 config/mips/crtn.asm, config/mips/irix-crti.asm,
6380 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
6381 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
6382 config/mips/mips-fixed.md, config/mips/sb1.md,
6383 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
6384 config/mips/t-iris6, config/mips/t-isa3264,
6385 config/mips/t-libgcc-mips16, config/mips/t-linux64,
6386 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
6387 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
6388 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
6389 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
6390 config/mn10300/t-linux, config/mn10300/t-mn10300,
6391 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
6392 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
6393 config/picochip/libgccExtras/clzsi2.asm,
6394 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
6395 config/rs6000/darwin-libgcc.10.4.ver,
6396 config/rs6000/darwin-libgcc.10.5.ver,
6397 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
6398 config/rs6000/t-aix43, config/rs6000/t-aix52,
6399 config/rs6000/t-darwin, config/rs6000/t-fprules,
6400 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
6401 config/rs6000/t-lynx, config/rs6000/t-netbsd,
6402 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
6403 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
6404 config/rs6000/t-rtems, config/rs6000/t-spe,
6405 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
6406 config/score/t-score-elf, config/sh/divcost-analysis,
6407 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
6408 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
6409 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
6410 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
6411 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
6412 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
6413 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
6414 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
6415 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
6416 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
6417 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
6418 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
6419 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
6420 limitx.h, version.c, xcoff.h: Add copyright and license notices.
6421 * config/h8300/genmova.sh: Include copyright and license notices
6422 in generated output.
6423 * config/h8300/mova.md: Regenerate.
6424 * doc/install.texi2html: Include word "Copyright" in copyright
6425 notice and use name "Free Software Foundation, Inc.".
6426 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
6427 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
6428 ChangeLog-2007, ChangeLog-2008: Correct dates.
6429
ca80e52b
EB
64302009-04-21 Eric Botcazou <ebotcazou@adacore.com>
6431
6432 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
6433 NE_EXPR operations as well.
6434 * c-parser.c (c_parser_condition): Do not set location information on
6435 the condition.
6436 (c_parser_conditional_expression): Likewise.
6437 (c_parser_binary_expression): Set location information on operators.
6438 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
6439 TRUTH_NOT_EXPR has been folded.
6440 * fold-const.c (fold_truth_not_expr): Copy location information from
6441 the incoming expression to the outgoing one.
6442 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
6443 recursive calls on the LHS of the operator but pass that of the
6444 operator to recursive calls on the RHS of the operator. Set it
6445 on the COND_EXPR.
6446 (shortcut_cond_expr): Set the locus of the operator on the second
6447 COND_EXPR and that of the expression on the first in degenerate cases.
6448 Pass the locus of the expression to calls to shortcut_cond_r.
6449 Set the locus of the 'then' block on the associated jump, if any.
6450 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
6451 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
6452 expression to call to gimplify_boolean_expr.
6453
35091630
KT
64542009-04-21 Kai Tietz <kai.tietz@onevision.com>
6455
6456 * config.gcc: Add additional configuration for
6457 i686-w64-mingw* and x86_64-w64-mingw* triplet.
6458 * config/i386/mingw-w64.h: New mingw-w64 specific header.
6459 (CPP_SPEC): Redefine for allowing -municode option.
6460 (STARTFILE_SPEC): Likewise.
6461 * config/i386/t-mingw-w64: New.
6462 * config/i386/mingw-w64.opt: New.
6463 (municode): Add new target option.
6464 * doc/invoke.texi (municode): Add documentation for new option.
6465
0267afc4
ILT
64662009-04-21 Ian Lance Taylor <iant@google.com>
6467
6468 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6469 Correct test for number of arguments.
6470 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
6471
2ba9daa7
AS
64722009-04-21 Andreas Schwab <schwab@linux-m68k.org>
6473
6474 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
6475 argument of emit_library_call.
6476
ad8a1ac0
RG
64772009-04-21 Richard Guenther <rguenther@suse.de>
6478
6479 PR middle-end/39829
6480 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
6481 inside VIEW_CONVERT_EXPRs.
6482
7156c8ab
MJ
64832009-04-21 Martin Jambor <mjambor@suse.cz>
6484
6485 * tree-switch-conversion.c (build_constructors): Split a long line.
6486 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
6487 (build_one_array): Create assigns of constants if possible, do not
6488 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
6489 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
6490 make_rename_temp. Do not call mark_symbols_for_renaming, call
6491 update_stmt.
6492 (gen_def_assigns): Do not call mark_symbols_for_renaming or
6493 find_new_referenced_vars, call update_stmt.
6494 (gen_inbound_check): Use create_tmp_var and create ssa names manually
6495 instead of calling make_rename_temp. Do not call
6496 find_new_referenced_vars or mark_symbols_for_renaming, call
6497 update_stmt.
6498
2970ccb3
RG
64992009-04-21 Richard Guenther <rguenther@suse.de>
6500
6501 PR tree-optimization/39827
7d83f4f5 6502 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
6503 (tree_ssa_phiprop): Pass the correct array size.
6504
47f402d1
UB
65052009-04-21 Uros Bizjak <ubizjak@gmail.com>
6506
6507 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
6508
1e4ae551
MLI
65092009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
6510
6511 PR 16202
6512 * c-typeck.c (lvalue_p): Move declaration ...
6513 * c-common.h (lvalue_p): ... to here.
6514 * c-common.c (candidate_equal_p): New.
6515 (add_tlist): Use it.
6516 (merge_tlist): Use it.
6517 (warn_for_collisions_1): Likewise.
6518 (warning_candidate_p): Accept more candidates.
6519 (verify_tree): A warning candidate can be an expression. Use
6520 candidate_equal_p.
6521
244609a6
BE
65222009-04-21 Ben Elliston <bje@au.ibm.com>
6523
6524 PR target/5267
6525 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
6526 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
6527 options. Remove -mcall-solaris documentation.
6528
9c650d90
MLI
65292009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6530
6531 PR c++/13358
6532 * doc/invoke.texi (-Wlong-long): Update description.
6533 * c-lex (interpret_integer): Only warn if there was no previous
6534 overflow and -Wlong-long is enabled.
6535 * c-decl.c (declspecs_add_type): Drop redundant flags.
6536 * c.opt (Wlong-long): Init to -1.
6537 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
6538 and front-end warn_long_long. Wlong-long only depends on other
6539 flags if it is uninitialized.
6540 * c-parser.c (disable_extension_diagnostics): warn_long_long is
6541 the same for CPP and FE.
6542 (restore_extension_diagnostics): Likewise.
6543
bbbbb16a
ILT
65442009-04-20 Ian Lance Taylor <iant@google.com>
6545
6546 Fix enum conversions which are invalid in C++:
47f402d1
UB
6547 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
6548 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
6549 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
6550 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 6551 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 6552 (dbxout_parms): Likewise.
47f402d1 6553 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
6554 (df_clear_flags): Likewise.
6555 * df-problems.c (df_rd_bb_local_compute_process_def): Change
6556 top_flag parameter to int.
6557 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
6558 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
6559 Remove cast.
bbbbb16a
ILT
6560 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
6561 (df_ref_create_structure, df_def_record_1): Likewise.
6562 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
6563 (df_notes_rescan): Change 0 to VOIDmode in function call.
6564 (df_get_call_refs, df_insn_refs_collect): Likewise.
6565 (df_bb_regs_collect): Likewise.
6566 (df_entry_block_defs_collect): Likewise.
6567 (df_exit_block_uses_collect): Likewise.
6568 * df.h: Update declarations.
6569 * double-int.c (double_int_divmod): Add cast to enum type.
6570 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
6571 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
6572 (based_loc_descr): Likewise.
6573 (loc_descriptor_from_tree_1): Change first_op and second_op to
6574 enum dwarf_location_atom. Add cast to enum type.
6575 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 6576 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
6577 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
6578 (do_store_flag): Likewise.
6579 * fixed-value.h (struct fixed_value): Change mode to enum
6580 machine_mode.
47f402d1 6581 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
6582 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
6583 function call.
6584 (insert_insn_decl, insert_decl, insert_state): Likewise.
6585 (automata_list_finish): Likewise.
6586 * genrecog.c (process_define_predicate): Add cast to enum type.
6587 * gensupport.c (init_predicate_table): Add cast to enum type.
6588 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
6589 function call.
6590 (gimple_build_call_1, gimple_build_label): Likewise.
6591 (gimple_build_goto, gimple_build_asm_1): Likewise.
6592 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 6593 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
6594 (enum fallback): Rename from enum fallback_t.
6595 (fallback_t): Typedef as int.
6596 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
6597 GSI_SAME_STMT in function call.
6598 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
6599 enum type.
6600 (setup_reg_class_relations): Likewise.
47f402d1 6601 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
6602 (setup_prohibited_class_mode_regs): Add cast to enum type.
6603 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 6604 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
6605 (record_address_regs): Change i to enum reg_class.
6606 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
6607 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
6608 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
6609 (GET_MODE_2XWIDER_MODE): Likewise.
6610 (GET_CLASS_NARROWEST_MODE): Likewise.
6611 * omp-low.c (expand_omp_for): Add cast to enum type.
6612 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
6613 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
6614 * postreload.c (reload_cse_simplify_operands): Change rclass local
6615 to enum reg_class.
6616 * predict.c (combine_predictions_for_insn): Change best_predictor
6617 and predictor to enum br_predictor.
6618 (combine_predictions_for_bb): Likewise.
6619 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
6620 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 6621 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
6622 * reginfo.c (init_move_cost): Add casts to enum type.
6623 (init_reg_sets_1, init_fake_stack_mems): Likewise.
6624 * regmove.c (regclass_compatible_p): Change class0 and class1 to
6625 enum reg_class.
6626 * reload.c (find_valid_class): Add casts to enum type.
6627 (push_reload): Change 0 to NO_REGS in function call.
6628 (find_reloads): Change this_alternative to array of enum
6629 reg_class. Remove some now-unnecessary casts.
6630 (make_memloc): Change 0 to VOIDmode in function call.
6631 * reload1.c (reload): Change 0 to VOIDmode in function call.
6632 (eliminate_regs_1, elimination_effects): Likewise.
6633 (eliminate_regs_in_insn): Likewise.
6634 (emit_input_reload_insns): Add cast to enum type.
6635 (delete_output_reload): Change 0 to VOIDmode in function call.
6636 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
6637 to enum type in function call.
6638 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
6639 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 6640 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
6641 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
6642 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
6643 (dump_function): Likewise.
6644 * tree-dump.h: Update declarations.
6645 * tree-pass.h: Update declarations.
6646 * varasm.c (assemble_integer): Change mclass to enum mode_class.
6647 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
6648 enum type.
6649 (arm_rtx_costs_1): Correct parenthesization.
6650 (arm_rtx_costs): Add casts to enum type.
6651 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
6652 (vfp_emit_fstmd): Use add_rg_note.
6653 (emit_multi_reg_push, emit_sfm): Likewise.
6654 (thumb_set_frame_pointer): Likewise.
6655 (arm_expand_prologue): Likewise.
6656 (arm_regno_class): Change return type to enum reg_class.
6657 (thumb1_expand_prologue): Use add_reg_note.
6658 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
6659 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
6660 in function call.
6661 * config/arm/gentune.sh: Add cast to enum type.
6662 * config/arm/arm-tune.md: Rebuild.
6663 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
6664 (ix86_split_fp_branch, predict_jump): Likewise.
6665 (ix86_expand_multi_arg_builtin): Change sub_code from enum
6666 insn_code to enum rtx_code.
6667 (ix86_builtin_vectorized_function): Add cast to enum type.
6668 * config/i386/i386.md (truncdfsf2): Change slot to enum
6669 ix86_stack_slot.
6670 (truncxf<mode>2, isinf<mode>2): Likewise.
6671 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
6672 enum type.
6673 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
6674 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
6675 (insert_bundle_state): Change 1 to INSERT in function call.
6676 (ia64_add_bundle_selector_before): Likewise.
6677 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
6678 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
6679 (restore_stack_nonlocal): Likewise.
6680 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
6681 function call.
6682 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
6683 function call.
6684 (mips_rtx_costs): Likewise.
6685 (mips_override_options): Add casts to enum type.
6686 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
6687 in function call.
6688 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
6689 (store_reg, set_reg_plus_d): Likewise.
6690 (hppa_expand_prologue, hppa_profile_hook): Likewise.
6691 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
6692 cast to enum type.
6693 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
6694 function call.
6695 (emit_unlikely_jump): Use add_reg_note.
6696 (rs6000_emit_allocate_stack): Likewise.
6697 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
6698 (output_toc): Change 1 to INSERT in function call.
6699 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
6700 (rs6000_initialize_trampoline): Likewise.
6701 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
6702 function call.
6703 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
6704 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
6705 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
6706 (save_gprs): Use add_reg_note.
6707 (s390_emit_prologue): Likewise.
47f402d1 6708 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
6709 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
6710 (sparc_fold_builtin): Add cast to enum type.
6711 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
6712 enum insn_code.
6713 (spu_expand_prologue): Use add_reg_note.
47f402d1 6714 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
6715
67162009-04-20 Ian Lance Taylor <iant@google.com>
6717
6718 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
6719 (c_parser_postfix_expression_after_primary): Get VEC for list of
6720 arguments. Get original types of arguments. Call
6721 build_function_call_vec.
6722 (cached_expr_list_1, cached_expr_list_2): New static variables.
6723 (c_parser_expr_list): Change return type to VEC *. Add
6724 p_orig_types parameter. Change all callers.
6725 (c_parser_release_expr): New static function.
6726 (c_parser_vec_to_tree_list): New static function.
6727 * c-typeck.c (build_function_call): Rewrite to build a VEC and
6728 call build_function_call_vec.
6729 (build_function_call_vec): New function, based on old
6730 build_function_call.
6731 (convert_arguments): Remove nargs and argarray parameters. Change
6732 values to a VEC. Add origtypes parameter.
47f402d1 6733 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
6734 (convert_for_assignment): Add origtype parameter. Change all
6735 callers. If warn_cxx_compat, check for conversion to an enum
6736 type when calling a function.
6737 (store_init_value): Add origtype parameter. Change all callers.
6738 (digest_init): Likewise.
6739 (struct init_node): Add origtype field.
6740 (add_pending_init): Add origtype parameter. Change all callers.
6741 (output_init_element): Likewise.
6742 (output_pending_init_elements): Pass origtype from init_node to
6743 output_init_element.
f28a61ab 6744 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
6745 output_init_element.
6746 (c_finish_return): Add origtype parameter. Change all callers.
6747 * c-common.c (sync_resolve_size): Change params to VEC *. Change
6748 caller.
6749 (sync_resolve_params): Likewise.
47f402d1 6750 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 6751 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 6752 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
6753 * c-decl.c (finish_decl): Add origtype parameter. Change all
6754 callers. Call build_function_call_vec rather than
6755 build_function_call for cleanup.
6756 * c-tree.h: Update declarations.
6757 * c-common.h: Update declarations.
6758 * stub-objc.c (objc_rewrite_function_call): Change parameter from
6759 params to first_param.
6760 * target.h (struct gcc_target): Change resolve_overloaded_builtin
6761 params parameter from tree to void *.
6762 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6763 Change arglist parameter to have type void *, and to be a pointer
6764 to a VEC.
6765 * config/rs6000/rs6000-protos.h
6766 (altivec_resolve_overloaded_builtin): Update declaration.
6767 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
6768 fnargs parameter to have type void *, and to be a pointer to a
6769 VEC. Call build_function_call_vec instead of
6770 build_function_call.
47f402d1 6771 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 6772
6ff078d4 67732009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 6774 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
6775 H.J. Lu <hongjiu.lu@intel.com>
6776
6777 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
6778
6779 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
6780 (IX86_LEA_PRIORITY): Likewise.
6781 (distance_non_agu_define): New function.
6782 (distance_agu_use): Likewise.
6783 (ix86_lea_for_add_ok): Likewise.
6784 (ix86_dep_by_shift_count): Likewise.
6785
6786 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
6787 should split for LEA.
6788
6789 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
6790 function.
6791 (ix86_dep_by_shift_count): Likewise.
6792
87a5b4cc
RG
67932009-04-20 Richard Guenther <rguenther@suse.de>
6794
6795 * expr.c (handled_component_p): Move ...
6796 * tree.h (handled_component_p): ... here.
6797 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
6798 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
6799 and REALPART_EXPR to be in one group.
6800
438c239d
RG
68012009-04-20 Richard Guenther <rguenther@suse.de>
6802
6803 * basic-block.h (get_all_dominated_blocks): Declare.
6804 * dominance.c (get_all_dominated_blocks): New function.
6805 * tree-cfg.c (get_all_dominated_blocks): Remove.
6806 (remove_edge_and_dominated_blocks): Adjust.
6807 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
6808 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
6809 instead of recursing.
6810
fed5ae11
DK
68112009-04-20 Doug Kwan <dougkwan@google.com>
6812
6813 * cgraph.h (cgraph_node_ptr): New type for vector functions.
6814 (struct cgraph_node_set_def): New type.
6815 (cgraph_node_set) New type. Also declare vector functions.
6816 (struct cgraph_node_set_element_def): New type.
6817 (cgraph_node_set_element): Ditto.
6818 (cgraph_node_set_iterator): New iterator type.
6819 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
6820 cgraph_node_set_remove, dump_cgraph_node_set,
6821 debug_cgraph_node_set): New prototypes.
6822 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
6823 cgraph_node_set_size): New inlines.
6824 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
6825 including cgraph.h.
6826 (struct ipa_opt_pass): Add struct cgraph_node_set_def
6827 argument to function 'write_summary'.
6828 * ipa.c: Include ggc.h.
6829 (hash_cgraph_node_set_element,
6830 eq_cgraph_node_set_element, cgraph_node_set_new,
6831 cgraph_node_set_add, cgraph_node_set_remove,
6832 cgraph_node_set_find, dump_cgraph_node_set,
6833 debug_cgraph_node_set): New functions.
6834 * Makefile.in (ipa.o): Add dependency on GGC_H.
6835
c4551b28
IR
68362009-04-20 Ira Rosen <irar@il.ibm.com>
6837
6838 PR tree-optimization/39675
2ba9daa7 6839 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
6840 check of the return code of vect_schedule_slp. Check that
6841 stmt_vec_info still exists for the statement, before checking its
6842 vectorization type.
c4551b28 6843
21a495fb
MM
68442009-04-20 Michael Matz <matz@suse.de>
6845
6846 * Makefile.in (generated_files): Take out $(simple_generated_c).
6847
8e208874
DK
68482009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
6849
6850 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
6851 (UINTPTR_TYPE): Likewise.
6852
a45e580b
JM
68532009-04-19 Joseph Myers <joseph@codesourcery.com>
6854
6855 PR c/37481
6856 * c-typeck.c (digest_init): Check for initializing an array with a
6857 string literal.
6858
20845d35
JM
68592009-04-19 Joseph Myers <joseph@codesourcery.com>
6860
6861 PR c/19771
6862 * c-semantics.c (pop_stmt_list): Propagate
6863 STATEMENT_LIST_HAS_LABEL to parent statement list.
6864
28143fdd
AN
68652009-04-19 Adam Nemet <anemet@caviumnetworks.com>
6866
6867 * config/mips/mips.h (mips_tune_attr): New macro.
6868 * config/mips/mips.md (cpu): Use it.
6869
da377db9
JM
68702009-04-19 Joseph Myers <joseph@codesourcery.com>
6871
6872 PR c/38243
6873 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
6874 declaring a tag.
6875
3baf459d
DN
68762009-04-19 Diego Novillo <dnovillo@google.com>
6877
6878 * toplev.c (compile_file): Move call to coverage_finish ...
6879 * cgraphunit.c (ipa_passes): ... here.
6880 Call cgraph_process_new_functions.
6881 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
6882 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
6883
b6fa5b01
JH
68842009-04-19 Jan Hubicka <jh@suse.cz>
6885
47f402d1
UB
6886 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
6887 cfun.
b6fa5b01
JH
6888 (dump_cgraph_node): Dump can throw external flag.
6889 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
6890
ca409efd
MLI
68912009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
6892
6893 PR c/32061
6894 PR c++/36954
6895 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
6896 * common.opt (Wlogical-op): Move from here...
6897 * c.opt (Wlogical-op): ... to here.
6898 * c-typeck.c (parser_build_binary_op): Update call to
6899 warn_logical_operator.
6900 * c-opts.c (c_common_post_options): Enable warn_logical_op with
6901 extra_warnings.
6902 * c-common.c (warn_logical_op): Update.
6903 * c-common.h (warn_logical_op): Update declaration.
6904
9db4cdd3
EB
69052009-04-19 Eric Botcazou <ebotcazou@adacore.com>
6906
6907 * tree.c (protected_set_expr_location): Fix formatting.
6908
f37acdf9
JM
69092009-04-18 Joseph Myers <joseph@codesourcery.com>
6910
6911 PR c/27676
6912 * c-typeck.c (readonly_warning): new.
6913 (build_unary_op, build_modify_expr): Use readonly_warning for
6914 storing into something readonly but not const-qualified.
6915
2b4b7036
JM
69162009-04-18 Joseph Myers <joseph@codesourcery.com>
6917
6918 PR c/22367
6919 * c-typeck.c (build_unary_op): Check for taking address of
6920 expression of type void.
6921
3ce62965
JM
69222009-04-18 Joseph Myers <joseph@codesourcery.com>
6923
6924 PR c/35210
6925 * c-typeck.c (build_function_call): Check for calling a function
6926 with qualified void return types. Call require_complete_type when
6927 generating a trap.
6928
2505c5ed
JH
69292009-04-18 Jan Hubicka <jh@suse.cz>
6930
6931 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
6932 Set nothrow flag.
6933 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
6934 can_throw_external flag.
6935 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
6936 * ipa-pure-const.c (ignore_edge): New function.
6937 (propagate): Compute order for NOTHROW computation; set NOTHROWs
6938 only over can_throw_external edges.
6939 (local_pure_const): Add nothrow flag.
6940 * ipa-utils.c (searchc): Add ignore_edge callback.
6941 (ipa_utils_reduced_inorder): Add ignore_edge callback.
6942 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
6943 (set_nothrow_function_flags): Update cgraph.
6944 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
6945
2586ba4b
RG
69462009-04-18 Richard Guenther <rguenther@suse.de>
6947
6948 PR middle-end/39804
6949 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
6950 (fold_stmt): ... this and ...
6951 (fold_stmt_inplace): ... this.
6952 (fold_stmt_1): Fold references in calls and asms.
6953 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
6954
1eefab17
KH
69552009-04-18 Kazu Hirata <kazu@codesourcery.com>
6956
6957 * tree-vrp.c (ssa_name_nonzero_p): Remove.
6958 * tree.h: Remove the prototype for ssa_name_nonzero_p.
6959
aa424b01
KH
69602009-04-18 Kazu Hirata <kazu@codesourcery.com>
6961
6962 * tree.c (function_args_count): Remove.
6963 * tree.h: Remove the prototype for function_args_count.
6964
613a896b
KH
69652009-04-18 Kazu Hirata <kazu@codesourcery.com>
6966
6967 * tree-iterator.c (expr_only): Remove.
6968 * tree.h: Remove the prototype for expr_only.
6969
579e694c
KH
69702009-04-18 Kazu Hirata <kazu@codesourcery.com>
6971
6972 * reginfo.c (cannot_change_mode_set_regs): Remove.
6973 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
6974
ee7e3ad3
AS
69752009-04-08 Anatoly Sokolov <aesok@post.ru>
6976
6977 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
6978 whether operands 0 and 1 overlaps.
6979
92ef7fb1
MLI
69802009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
6981
6982 PR middle-end/36902
6983 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
6984 pointer. Use warning_at instead of warning.
6985 (search_for_addr_array): Likewise.
6986 (check_array_bounds): Likewise.
6987 (check_all_array_refs): Check that the incoming edge is not in the
6988 list of edges to be removed.
6989 (check_all_array_refs): Avoid the temporal pointer.
6990 (vrp_visit_cond_stmt): Fix typo.
6991 (simplify_switch_using_ranges): Handle the case where the switch
6992 index is an integer constant.
6993
0e097268
AN
69942009-04-18 Adam Nemet <anemet@caviumnetworks.com>
6995
6996 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
6997
c782f1dd
KH
69982009-04-18 Kazu Hirata <kazu@codesourcery.com>
6999
7000 * doc/extend.texi, doc/invoke.texi: Fix typos.
7001
668fb0e8
CC
70022009-04-17 Cary Coutant <ccoutant@google.com>
7003
7004 * tree-flow-inline.h (get_lineno): Fix inverted test.
7005
4d4014c1
DN
70062009-04-17 Diego Novillo <dnovillo@google.com>
7007
7008 * tree-ssa-pre.c (create_expression_by_pieces): Remove
7009 assertion for AVAIL_OUT.
7010
2984e1b6
MF
70112009-04-17 Mike Frysinger <vapier@gentoo.org>
7012
7013 PR target/38627
7014 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
7015 * config/sh/linux-atomic.asm: Likewise.
7016
9994a182
DN
70172009-04-17 Diego Novillo <dnovillo@google.com>
7018
7019 * except.c (debug_eh_tree): New.
7020 (struct eh_region, struct eh_status): Move ...
7021 * except.h: ... here.
7022 (add_type_for_runtime): Declare extern.
7023 (lookup_type_for_runtime): Likewise.
7024 (debug_eh_tree): Declare.
7025 * Makefile.in (GTFILES): List except.h before except.c
7026
07485407
DN
70272009-04-17 Diego Novillo <dnovillo@google.com>
7028
47f402d1 7029 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
7030 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
7031 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
7032 (find_vars_r): ... here.
7033 * tree-flow.h (find_referenced_vars_in): Declare.
7034 * tree-ssa-pre.c (create_expression_by_pieces): Assert
7035 that AVAIL_OUT exists for BLOCK.
7036 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
7037 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
7038 (tree-parloops.o): Likewise.
7039
4e53d196
SB
70402009-04-17 Simon Baldwin <simonb@google.com>
7041
7042 * toplev.c (default_tree_printer): Add handling for %E format.
7043
413d3aa8
DN
70442009-04-17 Diego Novillo <dnovillo@google.com>
7045
47f402d1
UB
7046 * tree-pretty-print.c (dump_generic_node): Add break after
7047 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
7048 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
7049 FUNCTION_TYPE together. Call print_struct_decl when printing
7050 structures and TDF_SLIM is not given.
413d3aa8
DN
7051 (print_struct_decl): Fix logic for detecting recursion.
7052
5a691e98
RAE
70532009-04-17 Rafael Avila de Espindola <espindola@google.com>
7054
7055 PR 31567
7056 * gcc.c (create_at_file): New.
7057 (compile_input_file_p): New.
7058 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
7059 * main.c (main): Update call to toplev_main.
7060 * toplev.c (toplev_main): Change signature. Call expandargv.
7061 * toplev.h (toplev_main): Change signature.
7062
9eacf7a6
EB
70632009-04-17 Eric Botcazou <ebotcazou@adacore.com>
7064
7065 * dwarf2out.c (field_byte_offset): Use the type size as the field size
7066 if the latter is not constant.
7067
58298177
DE
70682009-04-17 David Edelsohn <edelsohn@gnu.org>
7069
7070 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
7071
5b4c43d7
EB
70722009-04-17 Eric Botcazou <ebotcazou@adacore.com>
7073
7074 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
7075 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
7076
b51605c4
RG
70772009-04-17 Richard Guenther <rguenther@suse.de>
7078
7079 * tree-ssa-structalias.c (get_constraint_for_component_ref):
7080 Handle component references view-converting an invariant address.
7081
9e3be889
AN
70822009-04-17 Adam Nemet <anemet@caviumnetworks.com>
7083
7084 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
7085 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
7086 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
7087 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
7088 Use @deftypevr rather than @deftypevar.
7089
7c3e9dc3
RG
70902009-04-17 Richard Guenther <rguenther@suse.de>
7091
47f402d1 7092 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
7093 (get_prop_source_stmt): Likewise.
7094 (can_propagate_from): Likewise.
7095
aca600aa
AS
70962009-04-17 Andrew Stubbs <ams@codesourcery.com>
7097
7098 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
7099 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
7100 (--with-multilib-list): Add default value.
7101 * configure: Regenerate.
7102 * Makefile.in (TM_ENDIAN_CONFIG): Define.
7103 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
7104 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
7105 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
7106 Don't add default cpu to multilib list unnecessarily, but do enable
7107 the relevant compiler option..
7108 Add support for --with-multilib-list=<blank> and
7109 --with-multilib-list=!<somelib> to supress unwanted multilibs.
7110 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
7111 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
7112 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
7113 TM_MULTILIB_CONFIG.
7114 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
7115 (MULTILIB_OSDIRNAMES): New variable.
7116 * config/sh/t-1e: Delete file.
7117 * config/sh/t-mlib-sh1: Delete file.
7118 * config/sh/t-mlib-sh2: Delete file.
7119 * config/sh/t-mlib-sh2a: Delete file.
7120 * config/sh/t-mlib-sh2a-nofpu: Delete file.
7121 * config/sh/t-mlib-sh2a-single: Delete file.
7122 * config/sh/t-mlib-sh2a-single-only: Delete file.
7123 * config/sh/t-mlib-sh2e: Delete file.
7124 * config/sh/t-mlib-sh3e: Delete file.
7125 * config/sh/t-mlib-sh4: Delete file.
7126 * config/sh/t-mlib-sh4-nofpu: Delete file.
7127 * config/sh/t-mlib-sh4-single: Delete file.
7128 * config/sh/t-mlib-sh4-single-only: Delete file.
7129 * config/sh/t-mlib-sh4a: Delete file.
7130 * config/sh/t-mlib-sh4a-nofpu: Delete file.
7131 * config/sh/t-mlib-sh4a-single: Delete file.
7132 * config/sh/t-mlib-sh4a-single-only: Delete file.
7133 * config/sh/t-mlib-sh4al: Delete file.
7134 * config/sh/t-mlib-sh5-32media: Delete file.
7135 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
7136 * config/sh/t-mlib-sh5-64media: Delete file.
7137 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
7138 * config/sh/t-mlib-sh5-compact: Delete file.
7139 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
7140 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
7141 * doc/install.texi (Options specification): Add
7142 --with-multilib-list and --with-endian.
7143
cf8aba7f
RAE
71442009-04-17 Rafael Avila de Espindola <espindola@google.com>
7145
7146 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
7147 REVISION_c.
7148 (OBJS-common): Add plugin-version.o.
7149 (plugin-version.o): New.
7150 * gcc-plugin.h (plugin_gcc_version): New.
7151 (plugin_default_version_check): New.
7152 (plugin_init_func, plugin_init): Add version argument.
7153 * plugin-version.c: New.
7154 * plugin.c (str_plugin_gcc_version_name): New.
7155 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
7156 pass it to the init function.
7157 (plugin_default_version_check): New.
7158
61e20b90
RG
71592009-04-17 Richard Guenther <rguenther@suse.de>
7160
7161 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
7162 for decl-vs-decl disambiguation.
7163
90c6fd8a
AK
71642009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
7165
7166 * config/s390/s390.h (s390_tune_attr): New macro definition.
7167 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
7168
9fe9fe04
RG
71692009-04-17 Richard Guenther <rguenther@suse.de>
7170
7171 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
7172 (fold_stmt_r): Likewise.
7173 (maybe_fold_reference): New function.
7174 (fold_gimple_assign): Handle cases fold_stmt_r did.
7175 (fold_stmt): Do not use fold_stmt_r.
7176 (fold_stmt_inplace): Likewise.
7177
7e673273
RG
71782009-04-17 Richard Guenther <rguenther@suse.de>
7179
7180 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
7181 (record_equivalences_from_stmt): Remove useless checks and
7182 simplifications.
7183 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
7184 the type is already suitable.
7185
fabf2749
PB
71862009-04-17 Paolo Bonzini <bonzini@gnu.org>
7187
7188 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
7189
68f7b061
UB
71902009-04-17 Uros Bizjak <ubizjak@gmail.com>
7191
7192 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
7193 (CMPtype): Define as __gcc_CMPtype.
7194
532bfb0a
AJ
71952009-04-17 Aurelien Jarno <aurelien@aurel32.net>
7196
7197 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
7198 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
7199
e3ac77ff
RG
72002009-04-17 Richard Guenther <rguenther@suse.de>
7201
7202 PR tree-optimization/39746
7203 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
7204 special-casing for builtins and static variable use/def.
7205 (call_may_clobber_ref_p_1): Likewise.
7206
7072a650
ILT
72072009-04-16 Ian Lance Taylor <iant@google.com>
7208
7209 * df.h: Include "timevar.h".
7210 (struct df_problem): Change tv_id field to timevar_id_t.
7211 * tree-pass.h: Include "timevar.h".
7212 (struct opt_pass): Change tv_id field to timevar_id_t.
7213 * timevar.h (timevar_id_t): Define TV_NONE.
7214 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
7215 TV_NONE rather than tv_id != 0.
7216 (execute_one_pass): Likewise.
7217 * Makefile.in (DF_H): Add $(TIMEVAR_H).
7218 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
7219 dependencies to $(TREE_PASS_H).
7220 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
7221 to TV_NONE.
7222 (pass_branch_target_load_optimize2): Likewise.
7223 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
7224 (pass_outof_cfg_layout_mode): Likewise.
7225 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
7226 (pass_rebuild_cgraph_edges): Likewise.
7227 (pass_remove_cgraph_callee_edges): Likewise.
7228 * df-core.c (pass_df_initialize_opt): Likewise.
7229 (pass_df_initialize_no_opt): Likewise.
7230 (pass_df_finish): Likewise.
7231 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
7232 * except.c (pass_set_nothrow_function_flags): Likewise.
7233 (pass_convert_to_eh_region_ranges): Likewise.
7234 * final.c (pass_compute_alignments): Likewise.
7235 * function.c (pass_instantiate_virtual_regs): Likewise.
7236 (pass_init_function): Likewise.
7237 (pass_leaf_regs): Likewise.
7238 (pass_match_asm_constraints): Likewise.
7239 * gimple-low.c (pass_lower_cf): Likewise.
7240 (pass_mark_used_blocks): Likewise.
7241 * init-regs.c (pass_initialize_regs): Likewise.
7242 * integrate.c (pass_initial_value_sets): Likewise.
7243 * ira.c (pass_ira): Likewise.
7244 * jump.c (pass_cleanup_barriers): Likewise.
7245 * omp-low.c (pass_expand_omp): Likewise.
7246 (pass_lower_omp): Likewise.
7247 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
7248 * recog.c (pass_split_all_insns): Likewise.
7249 (pass_split_after_reload): Likewise.
7250 (pass_split_before_regstack): Likewise.
7251 (pass_split_before_sched2): Likewise.
7252 (pass_split_for_shorten_branches): Likewise.
7253 * reginfo.c (pass_reginfo_init): Likewise.
7254 (pass_subregs_of_mode_init): Likewise.
7255 (pass_subregs_of_mode_finish): Likewise.
7256 * passes.c (pass_postreload): Likewise.
7257 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
7258 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
7259 (pass_warn_function_return): Likewise.
7260 (pass_warn_function_noreturn): Likewise.
7261 * tree-complex.c (pass_lower_complex): Likewise.
7262 (pass_lower_complex_O0): Likewise.
7263 * tree-if-conv.c (pass_if_conversion): Likewise.
7264 * tree-into-ssa.c (pass_build_ssa): Likewise.
7265 * tree-mudflap.c (pass_mudflap_1): Likewise.
7266 (pass_mudflap_2): Likewise.
7267 * tree-nomudflap.c (pass_mudflap_1): Likewise.
7268 (pass_mudflap_2): Likewise.
7269 * tree-nrv.c (pass_return_slot): Likewise.
7270 * tree-object-size.c (pass_object_sizes): Likewise.
7271 * tree-optimize.c (pass_all_optimizations): Likewise.
7272 (pass_early_local_passes): Likewise.
7273 (pass_all_early_optimizations): Likewise.
7274 (pass_cleanup_cfg): Likewise.
7275 (pass_cleanup_cfg_post_optimizing): Likewise.
7276 (pass_free_datastructures): Likewise.
7277 (pass_free_cfg_annotations): Likewise.
7278 (pass_fixup_cfg): Likewise.
7279 (pass_init_datastructures): Likewise.
7280 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
7281 (pass_late_warn_uninitialized): Likewise.
7282 (pass_update_address_taken): Likewise.
7283 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
7284 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
7285 (pass_cse_sincos): Likewise.
7286 (pass_convert_to_rsqrt): Likewise.
7287 * tree-ssa-structalias.c (pass_build_alias): Likewise.
7288 * tree-stdarg.c (pass_stdarg): Likewise.
7289 * tree-tailcall.c (pass_tail_recursion): Likewise.
7290 (pass_tail_calls): Likewise.
7291 * tree-vect-generic.c (pass_lower_vector): Likewise.
7292 (pass_lower_vector_ssa): Likewise.
7293 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
7294
0051ef59
JM
72952009-04-16 Joseph Myers <joseph@codesourcery.com>
7296
7297 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
7298 XLR entry.
7299 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
7300 Handle -march=xlr.
7301 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
7302 logical and signext.
7303
b3f8558a
KK
73042009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
7305
7306 PR target/39767
7307 * config/sh/predicates.md (arith_operand): Check if the operand
7308 of TRUNCATE is a REG.
7309
f57597d9
KH
73102009-04-16 Kazu Hirata <kazu@codesourcery.com>
7311
7312 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
7313 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
7314
b172d063
KH
73152009-04-16 Kazu Hirata <kazu@codesourcery.com>
7316
7317 * tree-iterator.c (tsi_split_statement_list_after,
7318 tsi_split_statement_list_before): Remove.
7319 * tree-iterator.h: Remove the prototypes for
532bfb0a 7320 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 7321
78fe4f1f
KH
73222009-04-16 Kazu Hirata <kazu@codesourcery.com>
7323
7324 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
7325 * tree-ssa-propagate.h: Remove the prototype for
7326 stmt_makes_single_load.
7327
43dd3201
KH
73282009-04-16 Kazu Hirata <kazu@codesourcery.com>
7329
7330 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
7331 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
7332
4252a4aa
KH
73332009-04-16 Kazu Hirata <kazu@codesourcery.com>
7334
7335 * tree-iterator.c (EXPR_LAST_BODY): Remove.
7336
bfb69968
KH
73372009-04-16 Kazu Hirata <kazu@codesourcery.com>
7338
7339 * except.c (eh_region_outer_p): Remove.
7340 * except.h: Remove the prototype for eh_region_outer_p.
7341
c7db7fa5
KH
73422009-04-16 Kazu Hirata <kazu@codesourcery.com>
7343
7344 * function.c (current_function_assembler_name): Remove.
7345 * function.h: Remove the prototype for
7346 current_function_assembler_name.
7347
efc0b2bd
ILT
73482009-04-16 Ian Lance Taylor <iant@google.com>
7349
532bfb0a 7350 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
7351 (add_reg_note): Call alloc_reg_note.
7352 * rtl.h (alloc_reg_note): Declare.
7353 * combine.c (try_combine): Use alloc_reg_note.
7354 (recog_for_combine, move_deaths): Likewise.
7355 (distribute_notes): Use alloc_reg_note and add_reg_note.
7356 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
7357 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
7358 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
7359
6080348f
VM
73602009-04-16 Vladimir Makarov <vmakarov@redhat.com>
7361
7362 PR rtl-optimization/39762
7363 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
7364 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 7365 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 7366
6080348f
VM
7367 * ira-conflicts.c (process_regs_for_copy): Use function
7368 ira_get_register_move_cost instead of global
7369 ira_register_move_cost.
7370
7371 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
7372 color_pass, move_spill_restore, update_curr_costs): Ditto.
7373
7374 * ira-lives.c (process_single_reg_class_operands): Ditto.
7375
7376 * ira-emit.c (emit_move_list): Ditto.
7377
7378 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
7379 (record_reg_classes): Ditto. Use functions
7380 ira_get_register_move_cost and ira_get_may_move_cost instead of
7381 global vars ira_register_move_cost, ira_may_move_out_cost and
7382 ira_may_move_in_cost.
7383 (record_address_regs): Don't call ira_init_register_move_cost.
7384 Use function ira_get_may_move_cost instead of global
7385 ira_may_move_in_cost.
7386 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 7387 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 7388 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 7389
646bea10
RG
73902009-04-16 Richard Guenther <rguenther@suse.de>
7391
7392 * tree-cfg.c (verify_gimple_assign_binary):
7393 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
7394 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
7395 (create_general_new_stmt): Note that this function is broken.
7396
02e819ff
RAE
73972009-04-16 Rafael Avila de Espindola <espindola@google.com>
7398
7399 * common.opt (fhelp): Add Var(help_flag).
7400 * gcc-plugin.h (plugin_info): Add help.
7401 * plugin.c (plugin_name_args): Add help.
7402 (register_plugin_info): Set plugin->help.
7403 (print_help_one_plugin): New.
7404 (print_plugins_help): New.
7405 * plugin.h (print_plugins_help): New.
7406 * toplev.c (toplev_main): Call print_plugins_help if needed.
7407
ccacdf06
RG
74082009-04-16 Richard Guenther <rguenther@suse.de>
7409
7410 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
7411 (gimple_ior_addresses_taken_1): New function.
7412 (gimple_ior_addresses_taken): Likewise.
7413 * gimple.h (struct gimple_statement_with_ops_base): Remove
7414 addresses_taken member.
7415 (gimple_ior_addresses_taken): Declare.
7416 (gimple_addresses_taken, gimple_addresses_taken_ptr,
7417 gimple_set_addresses_taken): Remove.
7418 * ipa-reference.c (mark_address): New function.
7419 (scan_stmt_for_static_refs): Use it for marking addresses taken.
7420 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
7421 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
7422 (gimple_add_to_addresses_taken): Remove.
7423 (get_tmr_operands): Call mark_address_taken.
7424 (get_asm_expr_operands): Likewise.
7425 (get_expr_operands): Likewise.
7426 (build_ssa_operands): Do not clear the addresses_taken bitmap.
7427 (free_stmt_operands): Do not free it.
7428 * tree-ssa.c (delete_tree_ssa): Likewise.
7429 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
7430
346ef3fa
RG
74312009-04-16 Richard Guenther <rguenther@suse.de>
7432
7433 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
7434 (walk_stmt_load_store_ops): Likewise.
7435 * gimple.c (get_base_loadstore): New function.
7436 (walk_stmt_load_store_addr_ops): Likewise.
7437 (walk_stmt_load_store_ops): Likewise.
7438 * ipa-pure-const.c (check_op): Simplify.
7439 (check_load, check_store): New functions.
7440 (check_stmt): Use walk_stmt_load_store_ops.
7441 * ipa-reference.c (mark_load): Adjust signature.
7442 (mark_store): Likewise.
7443 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
7444
44e9f006
RAE
74452009-04-16 Rafael Avila de Espindola <espindola@google.com>
7446
7447 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
7448 (plugin_info): New.
7449 * opts.c (common_handle_option): Don't call print_version.
7450 * plugin.c (plugin_name_args): Add version.
7451 (register_plugin_info): New.
7452 (register_callback): Handle PLUGIN_INFO.
7453 (try_init_one_plugin): New.
7454 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
7455 if failed to init.
7456 (finalize_one_plugin): New.
7457 (finalize_plugins): New.
7458 (print_one_plugin): New.
7459 (print_plugins_versions): New.
7460 * plugin.h (print_plugins_versions): New.
7461 (finalize_plugins): New.
7462 * toplev.c (compile_file): Don't call initialize_plugins.
7463 (print_version): Call print_plugins_versions.
7464 (toplev_main): Call initialize_plugins. Print version if needed.
7465 Call finalize_plugins.
7466
41fd0f9b
RAE
74672009-04-16 Rafael Avila de Espindola <espindola@google.com>
7468
7469 * common.opt (fversion): New.
7470 * gcc.c (print_version): New.
7471 (process_command): Don't print the version. Just set print_version.
7472 (main): Print version. Call subprocesses if print_version and
7473 verbose_flag are set.
7474 * opts.c (common_handle_option): Handle OPT_fversion.
7475
550918ca 74762009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 7477 Ira Rosen <irar@il.ibm.com>
550918ca
RG
7478
7479 PR tree-optimization/39698
7480 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
7481 type of the reduction variable. Only generate the def if
7482 it is needed.
7483
7484 * omp-low.c (expand_omp_for_generic): When converting to a pointer
7485 make sure to first convert to an integer of the same precision.
7486 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
7487 the type of the evolution correctly in computing the new
7488 induction variable base.
7489
54634841
RG
74902009-04-16 Richard Guenther <rguenther@suse.de>
7491
7492 PR middle-end/39625
7493 * tree-cfg.c (make_blocks): Split statements with to-be
7494 abnormal SSA names on the lhs.
7495
b6fc2cdb
PB
74962009-04-16 Paolo Bonzini <bonzini@gnu.org>
7497
7498 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
7499 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
7500 * c-typeck.c (really_start_incremental_init): Likewise.
7501 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
7502 (TARGET_INITIALIZER): Remove it.
7503 * target.h (struct target): Remove vector_opaque_p.
7504 * tree.c (build_opaque_vector_type): New.
7505 * tree.h (TYPE_VECTOR_OPAQUE): New.
7506 (build_opaque_vector_type): Declare.
7507 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
7508 * config/rs6000/rs6000.c (build_opaque_vector_type,
7509 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
7510 (rs6000_init_builtins): Use build_opaque_vector_type for
7511 opaque_V4SI_type_node.
7512
a417cdd9
CM
75132009-04-15 Catherine Moore <clm@codesourcery.com>
7514
532bfb0a
AJ
7515 * debug.h (set_name): Declare.
7516 * dwarf2out.c (dwarf2out_set_name): Declare.
7517 (dwarf2_debug_hooks): Add set_name.
7518 (find_AT_string): New.
7519 (add_AT_string): Call find_AT_string.
7520 (dwarf2out_set_name): New.
7521 * cp/decl.c (grokdeclarator): Call set_name.
7522 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
7523 * debug.c (do_nothing_debug_hooks): Likewise.
7524 * dbxout.c (dbx_debug_hooks): Likewise.
7525 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 7526
60839f5d 75272009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 7528
532bfb0a
AJ
7529 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
7530 reg for single-precision FPU.
7531 * config/rs6000/rs6000.md (movsi_internal1): Only for
7532 !TARGET_SINGLE_FPU.
7533 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
7534 single-precision FP regs.
7535
ada39f0b
RG
75362009-04-15 Richard Guenther <rguenther@suse.de>
7537
7538 * omp-low.c (lower_rec_input_clauses): Build correct address
7539 expressions.
7540 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 7541 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
7542 (generate_memset_zero): Fix types.
7543 * tree-profile.c (prepare_instrumented_value): Correctly
7544 widen a pointer.
7545
6866c6e8
ILT
75462009-04-15 Ian Lance Taylor <iant@google.com>
7547
7548 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
7549 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
7550 for -Wall and for -Wc++-compat.
7551 (c_common_post_options): For C++, set warn_enum_compare if not
7552 already set.
7553 * c-tree.h (struct c_expr): Add field original_type.
7554 (build_external_ref): Update declaration.
7555 * c-parser.c (c_parser_braced_init): Set original_type.
7556 (c_parser_initelt): Likewise.
7557 (c_parser_expr_no_commas): Likewise.
7558 (c_parser_conditional_expression): Likewise.
7559 (c_parser_cast_expression): Likewise.
7560 (c_parser_unary_expression): Likewise. Pull setting of
7561 original_code to top of function.
7562 (c_parser_sizeof_expression): Set original_type.
7563 (c_parser_alignof_expression): Likewise.
7564 (c_parser_postfix_expression): Likewise. Pull setting of
7565 original_code to top of function.
532bfb0a 7566 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
7567 (c_parser_postfix_expression_after_primary): Likewise.
7568 (c_parser_expression): Likewise.
7569 * c-typeck.c (build_external_ref): Add type parameter. Change all
7570 callers.
7571 (c_expr_sizeof_expr): Set original_type field.
7572 (parser_build_unary_op): Likewise.
7573 (parser_build_binary_op): Likewise. Optionally warn about
7574 comparisons of enums of different types.
7575 (digest_init): Set original_type field.
7576 (really_start_incremental_init): Likewise.
7577 (push_init_level, pop_init_level): Likewise.
7578 * doc/invoke.texi (Warning Options): -Wenum-compare now
7579 supported in C.
7580
f116fecf
RG
75812009-04-15 Richard Guenther <rguenther@suse.de>
7582
7583 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
7584 out a necessary conversion.
7585 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
7586 names we didn't value number.
7587 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
7588
25e20805
RG
75892009-04-15 Richard Guenther <rguenther@suse.de>
7590
7591 PR tree-optimization/39764
7592 * tree-ssa-ccp.c (get_value): Canonicalize value with
7593 canonicalize_float_value.
7594
90cc3676
JH
75952009-04-15 Jan Hubicka <jh@suse.cz>
7596
7597 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
7598 Wrong version of patch.
7599
6d14c006
JH
76002009-04-15 Jan Hubicka <jh@suse.cz>
7601
7602 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
7603
5afaa917
NS
76042009-04-15 Nathan Sidwell <nathan@codesourcery.com>
7605
7606 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
7607 our distinct integral and vector types.
7608
3b482fca
RAE
76092009-04-15 Rafael Avila de Espindola <espindola@google.com>
7610
7611 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
7612 * init.c (build_vtbl_address): Remove call to assemble_external.
7613
6cd1d2e2
DJ
76142009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
7615
7616 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
7617 output for other floating point modes.
7618
dab71827
DN
76192009-04-14 Diego Novillo <dnovillo@google.com>
7620
7621 * diagnostic.c (diagnostic_report_diagnostic): Do not
7622 warn about loaded plugins for DK_ERROR and DK_WARNING.
7623 * c-decl.c (declspecs_add_type): Move call to
7624 invoke_plugin_callbacks ...
7625 * c-parser.c (c_parser_declspecs): ... here.
7626 * plugin.c (dump_active_plugins): Tidy output.
7627
68a607d8
DN
76282009-04-14 Diego Novillo <dnovillo@google.com>
7629 Le-Chun Wu <lcwu@google.com>
7630
7631 * configure.ac: Add --enable-plugin support.
7632 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
7633 * Makefile.in (PLUGIN_H): Define.
7634 Export ENABLE_PLUGIN and GMPINC to site.exp.
7635 Add PLUGINLIBS to link command.
7636 Add/modify dependencies for plugin.o and files including plugin.h.
7637 (plugin.o): New.
7638 * config.in: Regenerate.
2ba9daa7 7639
68a607d8
DN
7640 * opts.c (common_handle_option): Handle OPT_fplugin_ and
7641 OPT_fplugin_arg_.
7642
76432009-04-14 Le-Chun Wu <lcwu@google.com>
7644
7645 * tree-pass.h (register_one_dump_file): Add a prototype for
7646 register_one_dump_file.
7647 * toplev.c (compile_file): Call initialize_plugins.
7648 (do_compile): Call invoke_plugin_callbacks.
7649 (toplev_main): Call invoke_plugin_callbacks.
7650 * common.opt: Add -fplugin= and -fplugin-arg-.
7651 * gcc-plugin.h: New public header file for plugins to include.
7652 * plugin.c: New source file.
7653 * plugin.h: New internal header file.
7654 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 7655
68a607d8
DN
7656 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
7657
76582009-04-14 Diego Novillo <dnovillo@google.com>
7659
7660 * doc/plugins.texi: New.
7661 * doc/gccint.texi: Add reference to Plugins chapter.
7662 * doc/invoke.texi: Document -fplugin and -fplugin-arg
7663 * diagnostic.c (diagnostic_report_diagnostic): Warn about
7664 loaded plugins, if any.
7665 * timevar.def (TV_PLUGIN_INIT): Define.
7666 (TV_PLUGIN_RUN): Define.
7667 * plugin.c: Include timevar.h
7668 (plugins_active_p): New.
7669 (dump_active_plugins): New.
7670 (debug_active_plugins): New.
7671
50617257
JM
76722009-04-14 Joseph Myers <joseph@codesourcery.com>
7673
7674 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
7675 library paths.
7676 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
7677
b32f6fff
KH
76782009-04-14 Kazu Hirata <kazu@codesourcery.com>
7679
7680 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
7681 the same as a minus without a shift.
7682
85d04fa2
NC
76832009-04-14 Nick Clifton <nickc@redhat.com>
7684
7685 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
7686 comparisons with small integers will always produce a short
7687 branch.
7688
e495a0c8
RAE
76892009-04-14 Rafael Avila de Espindola <espindola@google.com>
7690
7691 Merge:
e495a0c8
RAE
7692 2008-12-19 Diego Novillo <dnovillo@google.com>
7693
532bfb0a 7694 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 7695
ad41bd84 76962009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
7697
7698 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
7699 verification.
7700 (verify_gimple_assign_binary): Likewise. Handle shifts and
7701 rotates correctly.
7702 (verify_gimple_phi): Print the mismatched argument position.
7703 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
7704 Fix types.
7705 (vect_update_init_of_dr): Likewise.
7706 * matrix-reorg.c (transform_access_sites): Do what the
7707 comment suggests.
7708 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
7709
60839f5d 77102009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
7711
7712 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
7713 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
7714 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 7715 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
7716 remove duplicate config
7717
b0e2d008
DR
77182009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
7719
7720 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
7721 file_name:line_number type locator of the call site.
2ba9daa7 7722
1244a8b7
VM
77232009-04-13 Vladimir Makarov <vmakarov@redhat.com>
7724
7725 * genautomata.c: Put blank after comma.
7726 (automaton_decls): New.
7727 (struct unit_usage): Add comments to member next.
7728 (store_alt_unit_usage): Keep the list ordered.
7729 (unit_present_on_list_p, equal_alternatives_p): New.
7730 (check_regexp_units_distribution): Check units distribution
7731 correctness correctly.
7732 (main): Don't write automata if error is found. Return correct
7733 exit code.
2ba9daa7 7734
1244a8b7
VM
7735 * config/m68k/cf.md (cfv4_ds): Remove.
7736 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
7737 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
7738
7739 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
7740 power4-load-ext, power4-store, power4-store-update,
7741 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
7742 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
7743 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
7744 power4-sqrt, power4-isync): Modify reservation to make correct
7745 unit distribution to automata.
7746
7747 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
7748 power5-store-update, power5-two, power5-three, power5-lmul,
7749 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 7750
f7dd1864
AN
77512009-04-13 Adam Nemet <anemet@caviumnetworks.com>
7752
7753 * except.c (pass_set_nothrow_function_flags): Set name and add
7754 TODO_dump_func.
7755 (set_nothrow_function_flags): Mention in the dump file when
7756 changing a function to nothrow.
7757
59a1171f
OS
77582009-04-13 Ozkan Sezer <sezeroz@gmail.com>
7759
7760 PR/39066
7761 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
7762 instead of unsigned long.
7763
934c2060
RR
77642009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7765
f7dd1864
AN
7766 * config/arm/arm.c (return_used_this_function): Remove.
7767 (arm_output_function_prologue): Remove use of
934c2060 7768 return_used_this_function.
f7dd1864 7769 (output_return_instruction): Replace use of
934c2060
RR
7770 return_used_this_function
7771 by cfun->machine->return_used_this_function.
f7dd1864
AN
7772 (arm_output_epilogue): Likewise.
7773 (arm_output_function_epilogue): Likewise.
7774 (thumb_unexpanded_epilogue): Likewise.
7775 * config/arm/arm.h (struct machine_function):
934c2060 7776 New member return_used_this_function.
f7dd1864 7777
ae5cc016
MM
77782009-04-12 Mark Mitchell <mark@codesourcery.com>
7779
7780 * doc/install.texi: Correct description of default directory for
7781 --with-gxx-include-dir.
7782
a0ce68df 77832009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
7784
7785 * fold-const.c (build_range_check): Properly deal with enumeral and
7786 boolean base types.
7787
3906a4a1
SB
77882009-04-12 Steven Bosscher <steven@gcc.gnu.org>
7789
7790 * doc/invoke.texi (max_gcse_passes): Remove documentation.
7791 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
7792 * params.h (MAX_GCSE_PASSES): Remove.
7793 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
7794 in sequence. Remove ability to run multiple passes.
7795 (bypass_jumps): Report run as third CPROP pass.
7796
efaadb93
AN
77972009-04-12 Adam Nemet <anemet@caviumnetworks.com>
7798
7799 PR middle-end/39651
7800 * except.c (can_throw_external): Look at each insn in a SEQUENCE
7801 when deciding whether the whole SEQUENCE can throw.
7802
4c48007b
UB
78032009-04-12 Uros Bizjak <ubizjak@gmail.com>
7804
7805 PR target/39740
7806 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
7807 offseted label references.
7808
b4104018
JH
78092009-04-11 Jan Hubicka <jh@suse.cz>
7810
7811 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
7812
32848948
RG
78132009-04-11 Richard Guenther <rguenther@suse.de>
7814
7815 PR middle-end/39732
7816 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
7817 return variables as TREE_ADDRESSABLE.
7818
8810712e
RG
78192009-04-11 Richard Guenther <rguenther@suse.de>
7820
7821 PR tree-optimization/39713
7822 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
7823 reference trees have SSA_NAME operands.
7824
fa78c0c1
RG
78252009-04-11 Richard Guenther <rguenther@suse.de>
7826
7827 PR c/39712
7828 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
7829 address expressions.
7830
4d722130
DK
78312009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
7832
7833 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
7834 match changes in Cygwin 1.7
7835 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
7836 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
7837
567a90f5
PB
78382009-04-10 Paolo Bonzini <bonzini@gnu.org>
7839
7840 PR tree-optimization/39701
7841 * doc/invoke.texi (Optimization Options): Document change in
7842 meaning and initialization of -fdelete-null-pointer-checks.
7843
1ad2f450
L
78442009-04-10 H.J. Lu <hongjiu.lu@intel.com>
7845
7846 PR middle-end/39701
7847 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
7848
7849 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
7850 here.
7851
7852 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
7853
1afc5373
CF
78542009-04-10 Chao-ying Fu <fu@mips.com>
7855
7856 * doc/tm.texi (Instruction Output): Document
7857 TARGET_ASM_FINAL_POSTSCAN_INSN.
7858 * target.h (final_postscan_insn): New field in asm_out.
7859 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
7860 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
7861 * final.c (final_scan_insn): Call
7862 targetm.asm_out.final_postscan_insn after outputting
7863 an asm macro and a normal instruction.
7864
7865 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
7866 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
7867 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
7868 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
7869 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
7870
4d35e75c
PB
78712009-04-10 Paolo Bonzini <bonzini@gnu.org>
7872
7873 PR middle-end/39701
1ad2f450
L
7874 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
7875 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 7876
62c49b83
L
78772009-04-10 H.J. Lu <hongjiu.lu@intel.com>
7878
7879 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
7880
80558628
L
78812009-04-09 H.J. Lu <hongjiu.lu@intel.com>
7882
7883 PR target/39678
7884 * config/i386/i386.c (classify_argument): Handle SCmode with
7885 (bit_offset % 64) != 0.
7886
8c70d28b
SL
78872009-04-09 Sandra Loosemore <sandra@codesourcery.com>
7888
7889 * doc/invoke.texi (Optimize Options): Add cross-reference to
7890 -Q --help=optimizers examples.
7891
e1ff19bf
BE
78922009-04-10 Ben Elliston <bje@au.ibm.com>
7893
7894 PR target/36800
7895 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
7896 regalign for the reg == fpr and TDmode case.
7897
52daca75
DA
78982009-04-09 David Ayers <ayers@fsfe.org>
7899
7900 PR objc/29200
7901 * objc/objc-act.c (warn_with_method): Remove helper function.
7902 (check_duplicates): Call warning and inform directly.
7903 (really_start_method): Likewise.
7904
b45f0e58
PB
79052009-04-09 Paolo Bonzini <bonzini@gnu.org>
7906
7907 * expmed.c (expand_divmod): Always use a comparison for a division
7908 by a large unsigned integer.
7909
1ad2f450
L
7910 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
7911 for things others than variables or functions as nonzero.
b45f0e58 7912
748086b7
JJ
79132009-04-09 Nick Clifton <nickc@redhat.com>
7914
7915 * unwind-compat.c: Change copyright header to refer to version
7916 3 of the GNU General Public License with version 3.1 of the
7917 GCC Runtime Library Exception and to point readers at the
7a715bba 7918 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
7919 * config/alpha/crtfastmath.c: Likewise.
7920 * config/alpha/linux-unwind.h: Likewise.
7921 * config/alpha/qrnnd.asm: Likewise.
7922 * config/alpha/vms-crt0-64.c: Likewise.
7923 * config/alpha/vms-crt0.c: Likewise.
7924 * config/alpha/vms-dwarf2.asm: Likewise.
7925 * config/alpha/vms-dwarf2eh.asm: Likewise.
7926 * config/alpha/vms-psxcrt0-64.c: Likewise.
7927 * config/alpha/vms-psxcrt0.c: Likewise.
7928 * config/alpha/vms_tramp.asm: Likewise.
7929 * config/arc/initfini.c: Likewise.
7930 * config/arc/lib1funcs.asm: Likewise.
7931 * config/arm/bpabi-v6m.S: Likewise.
7932 * config/arm/bpabi.S: Likewise.
7933 * config/arm/bpabi.c: Likewise.
7934 * config/arm/crti.asm: Likewise.
7935 * config/arm/crtn.asm: Likewise.
7936 * config/arm/ieee754-df.S: Likewise.
7937 * config/arm/ieee754-sf.S: Likewise.
7938 * config/arm/lib1funcs.asm: Likewise.
7939 * config/arm/libunwind.S: Likewise.
7940 * config/arm/linux-atomic.c: Likewise.
7941 * config/arm/mmintrin.h: Likewise.
7942 * config/arm/pr-support.c: Likewise.
7943 * config/arm/unaligned-funcs.c: Likewise.
7944 * config/arm/unwind-arm.c: Likewise.
7945 * config/arm/unwind-arm.h: Likewise.
7946 * config/avr/libgcc.S: Likewise.
7947 * config/bfin/crti.s: Likewise.
7948 * config/bfin/crtlibid.s: Likewise.
7949 * config/bfin/crtn.s: Likewise.
7950 * config/bfin/lib1funcs.asm: Likewise.
7951 * config/bfin/linux-unwind.h: Likewise.
7952 * config/cris/arit.c: Likewise.
7953 * config/cris/cris_abi_symbol.c: Likewise.
7954 * config/darwin-64.c: Likewise.
7955 * config/darwin-crt2.c: Likewise.
7956 * config/darwin-crt3.c: Likewise.
7957 * config/darwin.h: Likewise.
7958 * config/dbxelf.h: Likewise.
7959 * config/dfp-bit.c: Likewise.
7960 * config/dfp-bit.h: Likewise.
7961 * config/elfos.h: Likewise.
7962 * config/fixed-bit.c: Likewise.
7963 * config/fixed-bit.h: Likewise.
7964 * config/fp-bit.c: Likewise.
7965 * config/fp-bit.h: Likewise.
7966 * config/fr30/crti.asm: Likewise.
7967 * config/fr30/crtn.asm: Likewise.
7968 * config/fr30/lib1funcs.asm: Likewise.
7969 * config/freebsd-spec.h: Likewise.
7970 * config/frv/cmovd.c: Likewise.
7971 * config/frv/cmovh.c: Likewise.
7972 * config/frv/cmovw.c: Likewise.
7973 * config/frv/frvbegin.c: Likewise.
7974 * config/frv/frvend.c: Likewise.
7975 * config/frv/lib1funcs.asm: Likewise.
7976 * config/glibc-stdint.h: Likewise.
7977 * config/h8300/clzhi2.c: Likewise.
7978 * config/h8300/crti.asm: Likewise.
7979 * config/h8300/crtn.asm: Likewise.
7980 * config/h8300/ctzhi2.c: Likewise.
7981 * config/h8300/fixunssfsi.c: Likewise.
7982 * config/h8300/lib1funcs.asm: Likewise.
7983 * config/h8300/parityhi2.c: Likewise.
7984 * config/h8300/popcounthi2.c: Likewise.
7985 * config/i386/ammintrin.h: Likewise.
7986 * config/i386/att.h: Likewise.
7987 * config/i386/avxintrin.h: Likewise.
7988 * config/i386/biarch64.h: Likewise.
7989 * config/i386/bmmintrin.h: Likewise.
7990 * config/i386/cpuid.h: Likewise.
7991 * config/i386/cross-stdarg.h: Likewise.
7992 * config/i386/crtfastmath.c: Likewise.
7993 * config/i386/crtprec.c: Likewise.
7994 * config/i386/cygming-crtbegin.c: Likewise.
7995 * config/i386/cygming-crtend.c: Likewise.
7996 * config/i386/cygwin.asm: Likewise.
7997 * config/i386/emmintrin.h: Likewise.
7998 * config/i386/gmm_malloc.h: Likewise.
7999 * config/i386/gthr-win32.c: Likewise.
8000 * config/i386/i386.h: Likewise.
8001 * config/i386/immintrin.h: Likewise.
8002 * config/i386/linux-unwind.h: Likewise.
8003 * config/i386/linux64.h: Likewise.
8004 * config/i386/mm3dnow.h: Likewise.
8005 * config/i386/mmintrin-common.h: Likewise.
8006 * config/i386/mmintrin.h: Likewise.
8007 * config/i386/nmmintrin.h: Likewise.
8008 * config/i386/pmm_malloc.h: Likewise.
8009 * config/i386/pmmintrin.h: Likewise.
8010 * config/i386/smmintrin.h: Likewise.
8011 * config/i386/sol2-c1.asm: Likewise.
8012 * config/i386/sol2-ci.asm: Likewise.
8013 * config/i386/sol2-cn.asm: Likewise.
8014 * config/i386/sol2-gc1.asm: Likewise.
8015 * config/i386/tmmintrin.h: Likewise.
8016 * config/i386/unix.h: Likewise.
8017 * config/i386/w32-unwind.h: Likewise.
8018 * config/i386/wmmintrin.h: Likewise.
8019 * config/i386/x86-64.h: Likewise.
8020 * config/i386/x86intrin.h: Likewise.
8021 * config/i386/xmmintrin.h: Likewise.
8022 * config/ia64/crtbegin.asm: Likewise.
8023 * config/ia64/crtend.asm: Likewise.
8024 * config/ia64/crtfastmath.c: Likewise.
8025 * config/ia64/crti.asm: Likewise.
8026 * config/ia64/crtn.asm: Likewise.
8027 * config/ia64/fde-glibc.c: Likewise.
8028 * config/ia64/lib1funcs.asm: Likewise.
8029 * config/ia64/linux-unwind.h: Likewise.
8030 * config/ia64/quadlib.c: Likewise.
8031 * config/ia64/unwind-ia64.c: Likewise.
8032 * config/linux.h: Likewise.
8033 * config/m32c/m32c-lib1.S: Likewise.
8034 * config/m32c/m32c-lib2-trapv.c: Likewise.
8035 * config/m32c/m32c-lib2.c: Likewise.
8036 * config/m32r/initfini.c: Likewise.
8037 * config/m68hc11/larith.asm: Likewise.
8038 * config/m68hc11/m68hc11-crt0.S: Likewise.
8039 * config/m68k/cf.md: Likewise.
8040 * config/m68k/crti.s: Likewise.
8041 * config/m68k/crtn.s: Likewise.
8042 * config/m68k/lb1sf68.asm: Likewise.
8043 * config/m68k/linux-unwind.h: Likewise.
8044 * config/mcore/crti.asm: Likewise.
8045 * config/mcore/crtn.asm: Likewise.
8046 * config/mcore/lib1.asm: Likewise.
8047 * config/mips/linux-unwind.h: Likewise.
8048 * config/mips/loongson.h: Likewise.
8049 * config/mips/mips16.S: Likewise.
8050 * config/mmix/crti.asm: Likewise.
8051 * config/mmix/crtn.asm: Likewise.
8052 * config/pa/fptr.c: Likewise.
8053 * config/pa/hpux-unwind.h: Likewise.
8054 * config/pa/lib2funcs.asm: Likewise.
8055 * config/pa/linux-atomic.c: Likewise.
8056 * config/pa/linux-unwind.h: Likewise.
8057 * config/pa/milli64.S: Likewise.
8058 * config/pa/quadlib.c: Likewise.
8059 * config/pa/stublib.c: Likewise.
8060 * config/picochip/libgccExtras/adddi3.asm: Likewise.
8061 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
8062 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
8063 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
8064 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
8065 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
8066 * config/picochip/libgccExtras/divmod15.asm: Likewise.
8067 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
8068 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
8069 * config/picochip/libgccExtras/longjmp.asm: Likewise.
8070 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
8071 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
8072 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
8073 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
8074 * config/picochip/libgccExtras/setjmp.asm: Likewise.
8075 * config/picochip/libgccExtras/subdi3.asm: Likewise.
8076 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
8077 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
8078 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
8079 * config/rs6000/750cl.h: Likewise.
8080 * config/rs6000/altivec.h: Likewise.
8081 * config/rs6000/biarch64.h: Likewise.
8082 * config/rs6000/crtresfpr.asm: Likewise.
8083 * config/rs6000/crtresgpr.asm: Likewise.
8084 * config/rs6000/crtresxfpr.asm: Likewise.
8085 * config/rs6000/crtresxgpr.asm: Likewise.
8086 * config/rs6000/crtsavfpr.asm: Likewise.
8087 * config/rs6000/crtsavgpr.asm: Likewise.
8088 * config/rs6000/darwin-asm.h: Likewise.
8089 * config/rs6000/darwin-fallback.c: Likewise.
8090 * config/rs6000/darwin-fpsave.asm: Likewise.
8091 * config/rs6000/darwin-ldouble.c: Likewise.
8092 * config/rs6000/darwin-tramp.asm: Likewise.
8093 * config/rs6000/darwin-unwind.h: Likewise.
8094 * config/rs6000/darwin-vecsave.asm: Likewise.
8095 * config/rs6000/darwin-world.asm: Likewise.
8096 * config/rs6000/e500crtres32gpr.asm: Likewise.
8097 * config/rs6000/e500crtres64gpr.asm: Likewise.
8098 * config/rs6000/e500crtres64gprctr.asm: Likewise.
8099 * config/rs6000/e500crtrest32gpr.asm: Likewise.
8100 * config/rs6000/e500crtrest64gpr.asm: Likewise.
8101 * config/rs6000/e500crtresx32gpr.asm: Likewise.
8102 * config/rs6000/e500crtresx64gpr.asm: Likewise.
8103 * config/rs6000/e500crtsav32gpr.asm: Likewise.
8104 * config/rs6000/e500crtsav64gpr.asm: Likewise.
8105 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
8106 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
8107 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
8108 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
8109 * config/rs6000/eabi-ci.asm: Likewise.
8110 * config/rs6000/eabi-cn.asm: Likewise.
8111 * config/rs6000/eabi.asm: Likewise.
8112 * config/rs6000/linux-unwind.h: Likewise.
8113 * config/rs6000/linux64.h: Likewise.
8114 * config/rs6000/paired.h: Likewise.
8115 * config/rs6000/paired.md: Likewise.
8116 * config/rs6000/ppc64-fp.c: Likewise.
8117 * config/rs6000/ppu_intrinsics.h: Likewise.
8118 * config/rs6000/rs6000.h: Likewise.
8119 * config/rs6000/si2vmx.h: Likewise.
8120 * config/rs6000/sol-ci.asm: Likewise.
8121 * config/rs6000/sol-cn.asm: Likewise.
8122 * config/rs6000/spe.h: Likewise.
8123 * config/rs6000/spu2vmx.h: Likewise.
8124 * config/rs6000/sysv4.h: Likewise.
8125 * config/rs6000/tramp.asm: Likewise.
8126 * config/rs6000/vec_types.h: Likewise.
8127 * config/s390/linux-unwind.h: Likewise.
8128 * config/s390/tpf-unwind.h: Likewise.
8129 * config/score/crti.asm: Likewise.
8130 * config/score/crtn.asm: Likewise.
8131 * config/sh/crt1.asm: Likewise.
8132 * config/sh/crti.asm: Likewise.
8133 * config/sh/crtn.asm: Likewise.
8134 * config/sh/divtab-sh4-300.c: Likewise.
8135 * config/sh/divtab-sh4.c: Likewise.
8136 * config/sh/divtab.c: Likewise.
8137 * config/sh/lib1funcs-4-300.asm: Likewise.
8138 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
8139 * config/sh/lib1funcs.asm: Likewise.
8140 * config/sh/lib1funcs.h: Likewise.
8141 * config/sh/linux-atomic.asm: Likewise.
8142 * config/sh/linux-unwind.h: Likewise.
8143 * config/sh/shmedia.h: Likewise.
8144 * config/sh/sshmedia.h: Likewise.
8145 * config/sh/ushmedia.h: Likewise.
8146 * config/sparc/crtfastmath.c: Likewise.
8147 * config/sparc/linux-unwind.h: Likewise.
8148 * config/sparc/sol2-c1.asm: Likewise.
8149 * config/sparc/sol2-ci.asm: Likewise.
8150 * config/sparc/sol2-cn.asm: Likewise.
8151 * config/spu/divmodti4.c: Likewise.
8152 * config/spu/divv2df3.c: Likewise.
8153 * config/spu/float_disf.c: Likewise.
8154 * config/spu/float_unsdidf.c: Likewise.
8155 * config/spu/float_unsdisf.c: Likewise.
8156 * config/spu/float_unssidf.c: Likewise.
8157 * config/spu/mfc_multi_tag_release.c: Likewise.
8158 * config/spu/mfc_multi_tag_reserve.c: Likewise.
8159 * config/spu/mfc_tag_release.c: Likewise.
8160 * config/spu/mfc_tag_reserve.c: Likewise.
8161 * config/spu/mfc_tag_table.c: Likewise.
8162 * config/spu/multi3.c: Likewise.
8163 * config/spu/spu_internals.h: Likewise.
8164 * config/spu/spu_intrinsics.h: Likewise.
8165 * config/spu/spu_mfcio.h: Likewise.
8166 * config/spu/vec_types.h: Likewise.
8167 * config/spu/vmx2spu.h: Likewise.
8168 * config/stormy16/stormy16-lib2.c: Likewise.
8169 * config/svr4.h: Likewise.
8170 * config/sync.c: Likewise.
8171 * config/v850/lib1funcs.asm: Likewise.
8172 * config/vxlib-tls.c: Likewise.
8173 * config/vxlib.c: Likewise.
8174 * config/vxworks-dummy.h: Likewise.
8175 * config/xtensa/crti.asm: Likewise.
8176 * config/xtensa/crtn.asm: Likewise.
8177 * config/xtensa/ieee754-df.S: Likewise.
8178 * config/xtensa/ieee754-sf.S: Likewise.
8179 * config/xtensa/lib1funcs.asm: Likewise.
8180 * config/xtensa/lib2funcs.S: Likewise.
8181 * config/xtensa/linux-unwind.h: Likewise.
8182 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
8183 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
8184 * coretypes.h: Likewise.
8185 * crtstuff.c: Likewise.
8186 * defaults.h: Likewise.
8187 * dwarf2.h: Likewise.
8188 * emutls.c: Likewise.
8189 * gbl-ctors.h: Likewise.
8190 * gcov-io.h: Likewise.
8191 * ginclude/float.h: Likewise.
8192 * ginclude/iso646.h: Likewise.
8193 * ginclude/stdarg.h: Likewise.
8194 * ginclude/stdbool.h: Likewise.
8195 * ginclude/stddef.h: Likewise.
8196 * ginclude/stdfix.h: Likewise.
8197 * ginclude/stdint-gcc.h: Likewise.
8198 * ginclude/tgmath.h: Likewise.
8199 * gthr-aix.h: Likewise.
8200 * gthr-dce.h: Likewise.
8201 * gthr-gnat.c: Likewise.
8202 * gthr-gnat.h: Likewise.
8203 * gthr-lynx.h: Likewise.
8204 * gthr-mipssde.h: Likewise.
8205 * gthr-nks.h: Likewise.
8206 * gthr-posix.c: Likewise.
8207 * gthr-posix.h: Likewise.
8208 * gthr-posix95.h: Likewise.
8209 * gthr-rtems.h: Likewise.
8210 * gthr-single.h: Likewise.
8211 * gthr-solaris.h: Likewise.
8212 * gthr-tpf.h: Likewise.
8213 * gthr-vxworks.h: Likewise.
8214 * gthr-win32.h: Likewise.
8215 * gthr.h: Likewise.
8216 * libgcc2.c: Likewise.
8217 * libgcc2.h: Likewise.
8218 * libgcov.c: Likewise.
8219 * tsystem.h: Likewise.
8220 * typeclass.h: Likewise.
8221 * unwind-c.c: Likewise.
8222 * unwind-compat.h: Likewise.
8223 * unwind-dw2-fde-compat.c: Likewise.
8224 * unwind-dw2-fde-darwin.c: Likewise.
8225 * unwind-dw2-fde-glibc.c: Likewise.
8226 * unwind-dw2-fde.c: Likewise.
8227 * unwind-dw2-fde.h: Likewise.
8228 * unwind-dw2.c: Likewise.
8229 * unwind-dw2.h: Likewise.
8230 * unwind-generic.h: Likewise.
8231 * unwind-pe.h: Likewise.
8232 * unwind-sjlj.c: Likewise.
8233 * unwind.inc: Likewise.
8234 * config/arm/neon-gen.ml: Change generated copyright header to
8235 refer to version 3 of the GNU General Public License with
8236 version 3.1 of the GCC Runtime Library Exception and to point
8237 readers at the COPYING3 and COPYING3.RUNTIME files and the
8238 FSF's license web page.
8239 * config/arm/arm_neon.h: Regenerate.
8240
82412009-04-09 Jakub Jelinek <jakub@redhat.com>
8242
8243 * config/cris/cris.md: Change copyright header to refer to version
8244 3 of the GNU General Public License.
8245 * doc/install.texi2html: Change copyright header to refer to version
8246 3 of the GNU General Public License and to point readers at the
8247 COPYING3 file and the FSF's license web page.
8248 * config/vax/linux.h: Likewise.
8249
4a77c72b
PB
82502009-04-09 Paolo Bonzini <bonzini@gnu.org>
8251
1ad2f450
L
8252 * config/i386/i386.md (cmpcc): New.
8253 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
8254 (sync_compare_and_swap_cc*): Delete.
8255
8256 * config/s390/s390.c (s390_compare_emitted): Remove.
8257 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
8258 s390_compare_emitted used to be handled. Assert that modes match.
8259 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
8260 refer to sync_compare_and_swap_ccsi.
8261 * config/s390/s390.h (s390_compare_emitted): Remove.
8262 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
8263 instead of s390_compare_emitted.
8264 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
8265 instead of s390_compare_emitted.
8266 * config/s390/s390.md (cmpcc): New.
8267 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
8268 CC_REGNUM, do not pretend it's set.
8269 (sync_compare_and_swap_cc*): Delete.
8270 * config/s390/predicates.md (cc_reg_operand): New.
8271
8272 * expr.c (sync_compare_and_swap_cc): Delete.
8273 * optabs.h (sync_compare_and_swap_cc): Delete.
8274 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
8275 is being used with can_compare_p.
8276 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
8277 (find_cc_set): New.
8278 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
8279 look for a MODE_CC set instead. Use emit_store_flag.
8280 (expand_compare_and_swap_loop): Likewise, with some additional
8281 complication to avoid a force_reg when useless. Use
8282 emit_cmp_and_jump_insns.
8283 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
8284 * doc/md.texi (sync_compare_and_swap_cc): Merge with
8285 sync_compare_and_swap documentation.
4a77c72b 8286
0c0efb33
JH
82872009-04-09 Jan Hubicka <jh@suse.cz>
8288
8289 * except.c (find_prev_try): Break out from ....
8290 (duplicate_eh_regions): ... here; properly update prev_try pointers
8291 when duplication part of tree.
8292 (dump_eh_tree): Improve dumping.
8293 (verify_eh_region): New.
8294 (verify_eh_tree): Use it.
8295
22a65a54
RG
82962009-04-06 Richard Guenther <rguenther@suse.de>
8297
8298 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
8299 &ARRAY addresses by adjusting their types and prepending
8300 a conversion.
8301 * tree-cfg.c (verify_gimple_assign_single): Verify that
8302 addresses are correct.
8303
f76968e6
RG
83042009-04-09 Richard Guenther <rguenther@suse.de>
8305
8306 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
8307 indices into an array reference if possible.
8308 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
8309 Fold POINTER_PLUS_EXPR statements with invariant address.
8310
c90c5fb5
AM
83112009-04-09 Alan Modra <amodra@bigpond.net.au>
8312
8313 PR target/39634
8314 * config.gcc (powerpc64-*-linux*): Always build biarch.
8315
17cede2e
JM
83162009-04-09 Joseph Myers <joseph@codesourcery.com>
8317
8318 PR c/39613
8319 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
8320 it and pedwarn if this results in an INTEGER_CST.
8321
a3337ea2
KG
83222009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8323
8324 * doc/install.texi: Update minimum GMP version. Remove obsolete
8325 text in MPFR section.
8326
ce9ba79b
JJ
83272009-04-08 Jakub Jelinek <jakub@redhat.com>
8328
8329 * dwarf2out.c (class_scope_p): New static inline.
8330 (class_or_namespace_scope_p): Use it.
8331 (gen_variable_die): Use DW_TAG_member tag for static data member
8332 declarations instead of DW_TAG_variable.
8333
4f0ae266
JJ
8334 PR middle-end/39573
8335 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
8336 variables.
8337
d27f0ddc
RG
83382009-04-08 Richard Guenther <rguenther@suse.de>
8339
8340 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
8341 valueize random data.
8342
557cc596
DE
83432009-04-08 David Edelsohn <edelsohn@gnu.org>
8344
8345 * config.gcc (aix tm_file): Add aix-stdint.h.
8346 (aix tm clause use_gcc_stdint): Set to wrap.
8347 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 8348
75ccc1e7
RG
83492009-04-08 Richard Guenther <rguenther@suse.de>
8350
8351 PR middle-end/36291
8352 * tree-dfa.c (add_referenced_var): Do not recurse into
8353 global initializers.
8354 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
8355 exposed variables.
8356 (fold_const_aggregate_ref): Likewise.
8357
c6963675
PB
83582009-04-08 Paolo Bonzini <bonzini@gnu.org>
8359
6c44cf79
L
8360 * recog.c (ordered_comparison_operator): New.
8361 * gensupport.c (std_preds): Add it.
c6963675
PB
8362 * doc/md.texi (Machine-Independent Predicates): Document it.
8363
6d07ad98
JH
83642009-04-08 Jan Hubicka <jh@suse.cz>
8365
8366 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
8367 * function.h (rtl_eh): Remove exception_handler_label_map.
8368 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
8369 remove_exception_handler_label, for_each_eh_label_1): Remove.
8370 (rtl_remove_unreachable_regions): Remove.
8371 (convert_from_eh_region_ranges): Do not remove unreachable regions.
8372 (find_exception_handler_labels): Don't build the hashtable.
8373 (maybe_remove_eh_handler): Remove.
8374 (for_each_eh_label): Rewrite to walk the tree.
8375 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
8376 * except.h (maybe_remove_eh_handler): Remove.
8377 * passes.c (init_optimization_passes): Schedule second EH cleanup
8378 before out-of-ssa.
8379 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
8380 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
8381
7ddf71e3
PB
83822009-04-08 Paolo Bonzini <bonzini@gnu.org>
8383
8384 * genoutput.c (validate_optab_operands): New.
8385 (gen_insn, gen_expand): Call it.
8386
8387 * genflags.c (gen_insn): Detect misused iterators.
8388 (main): Pass line_no to gen_insn, exit with status 1 on error.
8389
8390 * genextract.c (line_no): Make global.
8391 (VEC_safe_set_locstr): Change assertion to error message.
8392 (main): Exit with status 1 on error.
8393
4d84fe7c
JM
83942009-04-08 Joseph Myers <joseph@codesourcery.com>
8395
8396 PR c/39614
8397 PR c/39673
8398 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
8399 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
8400 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
8401 * c-convert.c (convert): Do not call fold on results of conversion
8402 functions when the result is a C_MAYBE_CONST_EXPR.
8403 * c-parser.c (c_parser_postfix_expression): Do not fold condition
8404 of __builtin_choose_expr.
8405 * c-typeck.c (remove_c_maybe_const_expr): New.
8406 (build_unary_op, build_conditional_expr, build_compound_expr,
8407 build_binary_op, c_objc_common_truthvalue_conversion): Call
8408 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
8409 integer operands.
8410
60839f5d 84112009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 8412
2ba9daa7 8413 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 8414 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 8415
8e481a2c
DS
84162009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
8417
8418 PR bootstrap/39660
8419 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
8420 mix declarations and code.
8421
ee618c17
BE
84222009-04-08 Ben Elliston <bje@au.ibm.com>
8423
8424 * gcc.c: Replace `CC' with `GCC' throughout.
8425
f2a758a2
L
84262009-04-07 H.J. Lu <hongjiu.lu@intel.com>
8427
8428 * doc/invoke.texi: Document Atom support.
8429
6ea2bd47
JM
84302009-04-07 Jason Merrill <jason@redhat.com>
8431
8432 PR c++/25185
8433 * c-common.h, c-common.c: Add flag_pretty_templates.
8434 * c-opts.c (c_common_handle_option): Set it.
8435 * c.opt: Add -fno-pretty-templates.
8436 * doc/invoke.texi (C++ Dialect Options): Likewise.
8437
fcb82ab0
UB
84382009-04-07 Uros Bizjak <ubizjak@gmail.com>
8439
8440 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
8441 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
8442 (ia64_expand_builtin): Likewise.
8443
dc5e7298
MJ
84442009-04-07 Martin Jambor <mjambor@suse.cz>
8445
8446 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
8447 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
8448 ADDR_EXPRS are include too.
8449
0609b355
RG
84502009-04-07 Richard Guenther <rguenther@suse.de>
8451
8452 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
8453 decls are only used if passes as parameters or if they are
8454 local statics and the call is not to a builtin.
8455 (call_may_clobber_ref_p_1): Likewise.
8456
d8e535fa
PB
84572009-04-07 Paolo Bonzini <bonzini@gnu.org>
8458
8459 * expr.c (do_store_flag): Remove last argument. Simplify code
8460 to avoid duplication of tests already done by can_compare_p.
8461 (expand_expr_real_1): Adjust caller.
8462
c3c64f50
PB
84632009-04-07 Paolo Bonzini <bonzini@gnu.org>
8464
fcb82ab0
UB
8465 * optabs.c (can_compare_p): Test the predicate of a
8466 cbranch and cstore pattern.
c3c64f50 8467
9a53bc17
PB
84682009-04-07 Paolo Bonzini <bonzini@gnu.org>
8469
fcb82ab0
UB
8470 * expr.c (convert_move): Use emit_store_flag instead of
8471 "emulating" it.
9a53bc17 8472
67b8f1c1
PB
84732009-04-07 Paolo Bonzini <bonzini@gnu.org>
8474
fcb82ab0
UB
8475 * config/i386/i386.c (ix86_compare_emitted): Remove.
8476 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
8477 ix86_compare_op0 like ix86_compare_emitted used to be handled.
8478 * config/i386/i386.h (ix86_compare_emitted): Remove.
8479 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
8480 instead of ix86_compare_emitted.
8481 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 8482
44509946
AS
84832009-04-07 Andrew Stubbs <ams@codesourcery.com>
8484
8485 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
8486 Add t-sysroot-suffix to tmake_file.
8487 * config/print-sysroot-suffix.sh: New file.
8488 * config/t-sysroot-suffix: New file.
8489
ca22d882
BE
84902009-04-07 Ben Elliston <bje@au.ibm.com>
8491
8492 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
8493 as the latter produces a warning when the target does not support
8494 infinity.
8495
95aac11b
BE
84962009-04-07 Ben Elliston <bje@au.ibm.com>
8497
8498 * dfp.c: Replace type punning assignments with memcpy throughout.
8499 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 8500
633dd061
AM
85012009-04-07 Alan Modra <amodra@bigpond.net.au>
8502
8503 PR target/39634
8504 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
8505 Include soft-fp/t-softfp after rs6000/t-linux64.
8506
fe0a25ec
EB
85072009-04-06 Eric Botcazou <ebotcazou@adacore.com>
8508
8509 * stor-layout.c (set_sizetype): Use the full precision of their
8510 machine mode for bitsize types.
8511
0c011bc3
L
85122009-04-06 H.J. Lu <hongjiu.lu@intel.com>
8513
8514 * config/i386/i386.md: Revert 2 accidental checkins.
8515
b6837b94 85162009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 8517 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
8518 H.J. Lu <hongjiu.lu@intel.com>
8519
8520 Atom pipeline model, tuning and insn selection.
8521 * config.gcc (atom): Add atom config options and target.
8522
8523 * config/i386/atom.md: New.
8524
8525 * config/i386/i386.c (atom_cost): New cost.
8526 (m_ATOM): New macro flag.
8527 (initial_ix86_tune_features): Set m_ATOM.
8528 (x86_accumulate_outgoing_args): Likewise.
8529 (x86_arch_always_fancy_math_387): Likewise.
8530 (processor_target): Add Atom cost.
8531 (cpu_names): Add Atom cpu name.
8532 (override_options): Set Atom ISA.
8533 (ix86_issue_rate): New case PROCESSOR_ATOM.
8534 (ix86_adjust_cost): Likewise.
8535
8536 * config/i386/i386.h (TARGET_ATOM): New target macro.
8537 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
8538 (TARGET_OPT_AGU): New target option.
8539 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
8540 (processor_type): Add PROCESSOR_ATOM.
8541
8542 * config/i386/i386.md (cpu): Add new value "atom".
8543 (use_carry, movu): New attr.
8544 (atom.md): Include atom.md.
8545 (adddi3_carry_rex64): Set attr "use_carry".
8546 (addqi3_carry): Likewise.
8547 (addhi3_carry): Likewise.
8548 (addsi3_carry): Likewise.
8549 (*addsi3_carry_zext): Likewise.
8550 (subdi3_carry_rex64): Likewise.
8551 (subqi3_carry): Likewise.
8552 (subhi3_carry): Likewise.
8553 (subsi3_carry): Likewise.
8554 (x86_movdicc_0_m1_rex64): Likewise.
8555 (*x86_movdicc_0_m1_se): Likewise.
8556 (x86_movsicc_0_m1): Likewise.
8557 (*x86_movsicc_0_m1_se): Likewise.
8558 (*adddi_1_rex64): Emit add insn as much as possible.
8559 (*addsi_1): Likewise.
8560 (return_internal): Set atom_unit.
8561 (return_internal_long): Likewise.
8562 (return_pop_internal): Likewise.
8563 (*rcpsf2_sse): Set atom_sse_attr attr.
8564 (*qrt<mode>2_sse): Likewise.
8565 (*prefetch_sse): Likewise.
8566
8567 * config/i386/i386-c.c (ix86_target_macros_internal): New case
8568 PROCESSOR_ATOM.
8569 (ix86_target_macros_internal): Likewise.
8570
8571 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
8572 (*prefetch_sse_rex): Likewise.
8573 (sse_rcpv4sf2): Likewise.
8574 (sse_vmrcpv4sf2): Likewise.
8575 (sse_sqrtv4sf2): Likewise.
8576 (<sse>_vmsqrt<mode>2): Likewise.
8577 (sse_ldmxcsr): Likewise.
8578 (sse_stmxcsr): Likewise.
8579 (*sse_sfence): Likewise.
8580 (sse2_clflush): Likewise.
8581 (*sse2_mfence): Likewise.
8582 (*sse2_lfence): Likewise.
8583 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
8584 (<sse>_movup<ssemodesuffixf2c>): Likewise.
8585 (avx_movdqu<avxmodesuffix>): Likewise.
8586 (avx_lddqu<avxmodesuffix>): Likewise.
8587 (sse2_movntv2di): Change attr "type" to "ssemov".
8588 (sse2_movntsi): Likewise.
8589 (rsqrtv8sf2): Change attr "type" to "sseadd".
8590 (sse3_addsubv2df3): Set attr "atom_unit".
8591 (sse3_h<plusminus_insn>v4sf3): Likewise.
8592 (*sse2_pmaddwd): Likewise.
8593 (*vec_extractv2di_1_rex64): Likewise.
8594 (*vec_extractv2di_1_avx): Likewise.
8595 (sse2_psadbw): Likewise.
8596 (ssse3_phaddwv8hi3): Likewise.
8597 (ssse3_phaddwv4hi3): Likewise.
8598 (ssse3_phadddv4si3): Likewise.
8599 (ssse3_phadddv2si3): Likewise.
8600 (ssse3_phaddswv8hi3): Likewise.
8601 (ssse3_phaddswv4hi3): Likewise.
8602 (ssse3_phsubwv8hi3): Likewise.
8603 (ssse3_phsubwv4hi3): Likewise.
8604 (ssse3_phsubdv4si3): Likewise.
8605 (ssse3_phsubdv2si3): Likewise.
8606 (ssse3_phsubswv8hi3): Likewise.
8607 (ssse3_phsubswv4hi3): Likewise.
8608 (ssse3_pmaddubsw128): Likewise.
8609 (sse3_pmaddubsw: Likewise.
8610 (ssse3_palignrti): Likewise.
8611 (ssse3_palignrdi): Likewise.
8612
53e350d3
GP
86132009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
8614
8615 * doc/install.texi (Specific): Fix two cross-references to MinGW.
8616
439ef907
RG
86172009-04-06 Richard Guenther <rguenther@suse.de>
8618
8619 PR tree-optimization/28868
8620 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
8621 of which PHI results we inserted.
8622 (insert_into_preds_of_block): Record inserted PHIs.
8623 (eliminate): Eliminate redundant PHI nodes.
8624 (init_pre): Init inserted_phi_names.
8625
4bad83f5
RG
86262009-04-06 Richard Guenther <rguenther@suse.de>
8627
8628 PR tree-optimization/39643
8629 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
8630 IMAGPART_EXPRs of complex constants.
8631 (execute_fold_all_builtins): If we folded a call queue
8632 TODO_update_address_taken.
8633
570c4247
JH
86342009-04-06 Jan Hubicka <jh@suse.cz>
8635
8636 PR middle-end/39659
8637 * except.c (remove_unreachable_regions): Propagate may_contain_throw
8638 flag.
8639
a460d7a1
AS
86402009-04-06 Andrew Stubbs <ams@codesourcery.com>
8641
8642 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
8643 delay slot.
8644 (ic_invalidate_array): Likewise.
8645
60839f5d 86462009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
8647
8648 * calls.c (emit_library_call_value_1): Fix a problem with parameter
8649 alignment for library calls.
8650
7d253f6e
DS
86512009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
8652
8653 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
8654 (mingw32 tm clause use_gcc_stdint): Set to wrap.
8655 * config/i386/mingw-stdint.h: New file.
8656
941c3614
RB
86572009-04-05 Richard Guenther <rguenther@suse.de>
8658
8659 PR tree-optimization/39648
8660 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
8661 our &A vs. &A[0] IL deficiencies.
8662
12633413
JH
86632009-04-04 Jan Hubicka <jh@suse.cz>
8664
941c3614
RB
8665 * except.c (sjlj_find_directly_reachable_regions): Be ready for
8666 removed toplevel regions.
12633413
JH
8667 (sjlj_mark_call_sites): Likewise.
8668
bb2aaded
DK
86692009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
8670
8671 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
8672 (cygwin tm clause use_gcc_stdint): Set to wrap.
8673 * config/i386/cygwin-stdint.h: New file.
8674
86290011
RG
86752009-04-04 Richard Guenther <rguenther@suse.de>
8676
8677 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
8678 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
8679 single-argument PHIs if we are in loop-closed SSA form.
8680 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
8681 for the pre-condition.
8682 (slpeel_tree_peel_loop_to_edge): Likewise.
8683 (vect_build_loop_niters): Take an optional sequence to append stmts.
8684 (vect_generate_tmps_on_preheader): Likewise.
8685 (vect_do_peeling_for_loop_bound): Take extra guards for the
8686 pre-condition.
8687 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
8688 the cost model check.
8689 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 8690 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
8691 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
8692 (vect_do_peeling_for_loop_bound): Likewise.
8693 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
8694 loop bound only record extra pre-conditions, do not apply loop
8695 versioning.
8696
5eeeac64
RG
86972009-04-04 Richard Guenther <rguenther@suse.de>
8698
8699 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
8700 renaming code.
8701
1ff7d06b
JH
87022009-04-04 Jan Hubicka <jh@suse.cz>
8703
8704 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
8705 last_basic_block for size of bb->index indexed array.
8706 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
8707 compute_out, link_btr_uses, build_btr_def_use_webs,
8708 build_btr_def_use_webs, migrate_btr_defs): Likewise.
8709
14925fcd
JH
87102009-04-04 Jan Hubicka <jh@suse.cz>
8711
8712 * except.c (remove_eh_handler_and_replace): Break out from ...
8713 (remove_eh_handler): ... here.
8714 (bring_to_root): New function.
8715 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
8716 handled ones, bring others to root of tree.
8717
4e6d1743
JH
87182009-04-04 Jan Hubicka <jh@suse.cz>
8719
4cb735f7
JH
8720 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
8721 (all_phis_safe_to_merge): New function.
8722 (update_info): New structure.
8723 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
8724 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 8725
c6803d43
RG
87262009-04-04 Richard Guenther <rguenther@suse.de>
8727
8728 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
8729 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
8730 (append_vuse): Likewise.
8731
54f5943c
JJ
87322009-04-04 Jakub Jelinek <jakub@redhat.com>
8733
8734 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
8735 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
8736 instead of REG_UNSAVED for DW_CFA_undefined.
8737 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
8738 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
8739 outermost frame.
8740
aad2bccb
RE
87412009-04-04 Richard Earnshaw <rearnsha@arm.com>
8742
8743 PR target/39501
8744 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
8745 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
8746 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
8747
aa7069aa
RG
87482009-04-04 Richard Guenther <rguenther@suse.de>
8749
8750 PR tree-optimization/8781
8751 PR tree-optimization/37892
8752 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
8753 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
8754 (valueize_refs): Call it for *& valueizations.
8755 (shared_reference_ops_from_ref): Rename to ...
8756 (valueize_shared_reference_ops_from_ref): ... this and valueize.
8757 (shared_reference_ops_from_call): Rename to ...
8758 (valueize_shared_reference_ops_from_call): ... this and valueize.
8759 (vn_reference_lookup): Update.
8760 (visit_reference_op_call): Likewise.
8761 * tree-ssa-pre.c (phi_translate_1): Fold *&.
8762 (eliminate): Value-replace the call address in call statements.
8763
cd15ad3e
RG
87642009-04-04 Richard Guenther <rguenther@suse.de>
8765
8766 PR tree-optimization/39636
8767 * tree-ssa-forwprop.c
8768 (forward_propagate_addr_into_variable_array_index): Check for
8769 GIMPLE_ASSIGN before accessing the rhs code.
8770
462f3262
JM
87712009-04-03 Jason Merrill <jason@redhat.com>
8772
8773 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
8774
6adb807e
SE
87752009-04-03 Steve Ellcey <sje@cup.hp.com>
8776
8777 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
8778 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
8779 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
8780 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
8781 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
8782 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
8783 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
8784 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
8785 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
8786 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
8787 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
8788 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
8789 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
8790 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
8791 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
8792 Use fr_reg_or_fp01_operand instead of fr_register_operand
8793
8794 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
8795 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
8796 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
8797
174b3107
VM
87982009-04-03 Vladimir Makarov <vmakarov@redhat.com>
8799
b844e5d8
L
8800 PR rtl-optimization/39607
8801 PR rtl-optimization/39631
7a715bba
UB
8802
8803 Revert:
2ba9daa7 8804
174b3107
VM
8805 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
8806 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
8807 instead of DF_LR_OUT.
8808 * ira-lives.c (process_bb_node_lives): Ditto.
8809 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
8810 instead of DF_LR_{OUT,IN}.
8811 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
8812 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
8813
535b544a
SB
88142009-04-03 Steven Bosscher <steven@gcc.gnu.org>
8815
8816 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
8817 (execute_lower_omp): Always run but take the short way out if -fopenmp
8818 is not given.
8819 (gate_lower_omp): Remove, forcing the pass manager to always run the
8820 pass and always set PROP_gimple_lomp.
8821 (pass_lower_omp): Remove gate function.
8822 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
8823 PROP_trees. Instead, require it.
8824 * ipa-cp.c (pass_ipa_cp): Likewise.
8825 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
8826 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
8827 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
8828 and PROP_gimple_leh.
8829
5006671f
RG
88302009-04-03 Richard Guenther <rguenther@suse.de>
8831
8832 PR middle-end/13146
8833 PR tree-optimization/23940
8834 PR tree-optimization/33237
8835 PR middle-end/33974
8836 PR middle-end/34093
8837 PR tree-optimization/36201
8838 PR tree-optimization/36230
8839 PR tree-optimization/38049
8840 PR tree-optimization/38207
8841 PR tree-optimization/38230
8842 PR tree-optimization/38301
8843 PR tree-optimization/38585
8844 PR middle-end/38895
8845 PR tree-optimization/38985
8846 PR tree-optimization/39299
8847 * tree-ssa-structalias.h: Remove.
8848 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
8849 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
8850 (struct vuse_element_d): Remove.
8851 (struct vuse_vec_d): Likewise.
8852 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
8853 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
8854 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
8855 VUSE_ELEMENT_VAR): Likewise.
8856 (struct voptype_d): Likewise.
8857 (NUM_VOP_FREE_BUCKETS): Likewise.
8858 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
8859 (struct stmt_operands_d): Remove.
8860 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
8861 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
8862 VDEF_NUM, VDEF_VECT): Likewise.
8863 (copy_virtual_operands): Remove.
8864 (operand_build_cmp): Likewise.
8865 (create_ssa_artificial_load_stmt): Likewise.
8866 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
8867 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
8868 vuse_index and mayuse_index members. Pack and move done and iter_type
8869 members to the front.
8870 (SSA_OP_VMAYUSE): Remove.
8871 (SSA_OP_VIRTUAL_USES): Adjust.
8872 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
8873 (unlink_stmt_vdef): Declare.
8874 (add_to_addressable_set): Remove.
8875 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
8876 (vrp_visit_stmt): Likewise.
8877 * doc/tree-ssa.texi (Alias analysis): Update.
8878 * doc/invoke.texi (max-aliased-vops): Remove docs.
8879 (avg-aliased-vops): Likewise.
8880 * tree-into-ssa.c (syms_to_rename): Remove.
8881 (need_to_update_vops_p): Likewise.
8882 (need_to_initialize_update_ssa_p): Rename to ...
8883 (update_ssa_initialized_fn): ... this. Track function we are
8884 initialized for.
8885 (symbol_marked_for_renaming): Simplify.
8886 (add_new_name_mapping): Do not set need_to_update_vops_p.
8887 (dump_currdefs): Use SYMS_TO_RENAME.
8888 (rewrite_update_stmt): Always walk all uses/defs.
8889 (dump_update_ssa): Adjust.
8890 (init_update_ssa): Take function argument. Track what we are
8891 initialized for.
8892 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
8893 (create_new_def_for): Initialize for cfun, assert we are initialized
8894 for cfun.
8895 (mark_sym_for_renaming): Simplify.
8896 (mark_set_for_renaming): Do not initialize update-ssa.
8897 (need_ssa_update_p): Simplify. Take function argument.
8898 (name_mappings_registered_p): Assert we ask for the correct function.
8899 (name_registered_for_update_p): Likewise.
8900 (ssa_names_to_replace): Likewise.
8901 (release_ssa_name_after_update_ssa): Likewise.
8902 (update_ssa): Likewise. Use SYMS_TO_RENAME.
8903 (dump_decl_set): Do not print a newline.
8904 (debug_decl_set): Do it here.
8905 (dump_update_ssa): And here.
8906 * tree-ssa-loop-im.c (move_computations): Adjust.
8907 (movement_possibility): Likewise.
8908 (determine_max_movement): Likewise.
8909 (gather_mem_refs_stmt): Likewise.
8910 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
8911 or NAME_MEMORY_TAG.
8912 * tree-complex.c (update_all_vops): Remove.
8913 (expand_complex_move): Adjust.
8914 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
8915 Simplify test for memory referencing statement. Exclude
8916 non-invariant ADDR_EXPRs.
8917 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
8918 * tree-loop-distribution.c (generate_memset_zero): Adjust.
8919 (rdg_flag_uses): Likewise.
8920 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
8921 related code.
8922 (tree_optimize_tail_calls_1): Also split the
8923 edge from the entry block if we have degenerate PHI nodes in
8924 the first basic block.
8925 * tree.c (init_ttree): Remove memory-tag related code.
8926 (tree_code_size): Likewise.
8927 (tree_node_structure): Likewise.
8928 (build7_stat): Re-write to be build6_stat.
8929 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
8930 (SSA_VAR_P): Adjust.
8931 (struct tree_memory_tag): Remove.
8932 (struct tree_memory_partition_tag): Likewise.
8933 (union tree_node): Adjust.
8934 (build7): Re-write to be build6.
8935 * tree-pass.h (pass_reset_cc_flags): Remove.
8936 (TODO_update_address_taken): New flag.
8937 (pass_simple_dse): Remove.
8938 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
8939 * params.h (MAX_ALIASED_VOPS): Remove.
8940 (AVG_ALIASED_VOPS): Likewise.
8941 * omp-low.c (expand_omp_taskreg): Update SSA form.
8942 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
8943 aliases the lhs in a copy stmt.
8944 * tree-ssa-dse.c (struct address_walk_data): Remove.
8945 (memory_ssa_name_same): Likewise.
8946 (memory_address_same): Likewise.
8947 (get_kill_of_stmt_lhs): Likewise.
8948 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
8949 unused stores. Look through PHI nodes into post-dominated regions.
8950 (dse_optimize_stmt): Simplify. Properly remove stores.
8951 (tree_ssa_dse): Compute dominators.
8952 (execute_simple_dse): Remove.
8953 (pass_simple_dse): Likewise.
8954 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
8955 gimple_loaded_syms and gimple_stored_syms computation.
8956 * toplev.c (dump_memory_report): Dump alias and pta stats.
8957 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
8958 (vn_reference_eq): Likewise.
8959 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
8960 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
8961 valueize_vuses): Remove.
8962 (get_def_ref_stmt_vuses): Simplify. Rename to ...
8963 (get_def_ref_stmt_vuse): ... this.
8964 (vn_reference_lookup_2): New function.
8965 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
8966 walking equivalent vuses. Simplify.
8967 (vn_reference_lookup): Likewise.
8968 (vn_reference_insert): Likewise.
8969 (vn_reference_insert_pieces): Likewise.
8970 (visit_reference_op_call): Simplify.
8971 (visit_reference_op_load): Likewise.
8972 (visit_reference_op_store): Likewise.
8973 (init_scc_vn): Remove shared_lookup_vuses initialization.
8974 (free_scc_vn): Remove shared_lookup_vuses freeing.
8975 (sort_vuses, sort_vuses_heap): Remove.
8976 (get_ref_from_reference_ops): Export.
8977 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
8978 vector with single vuse pointer.
8979 (vn_reference_lookup_pieces, vn_reference_lookup,
8980 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
8981 (shared_vuses_from_stmt): Remove.
8982 (get_ref_from_reference_ops): Declare.
8983 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
8984 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
8985 memory-tag related code.
8986 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
8987 (likely_value): Add comment, skip static-chain of call statements.
8988 (surely_varying_stmt_p): Adjust.
8989 (gimplify_and_update_call_from_tree): Likewise.
8990 (execute_fold_all_builtins): Do not rebuild alias info.
8991 (gimplify_and_update_call_from_tree): Properly update VOPs.
8992 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
8993 (copy_ref_info): Remove memory-tag related code.
8994 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
8995 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
8996 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
8997 computation.
8998 * tree-ssa-dom.c (gimple_p): Remove typedef.
8999 (eliminate_redundant_computations): Adjust.
9000 (record_equivalences_from_stmt): Likewise.
9001 (avail_expr_hash): Likewise.
9002 (avail_expr_eq): Likewise.
7a715bba 9003 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
9004 (stmt_makes_single_load): Likewise.
9005 (stmt_makes_single_store): Likewise.
9006 * tree-ssa-alias.c: Rewrite completely.
9007 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
9008 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
9009 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
9010 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
9011 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
9012 Remove public functions.
9013 (pass_reset_cc_flags): Remove.
9014 (pass_build_alias): Move ...
9015 * tree-ssa-structalias.c (pass_build_alias): ... here.
9016 * tree-ssa-alias.c (may_be_aliased): Move ...
9017 * tree-flow-inline.h (may_be_aliased): ... here.
9018 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
9019 count_uses_and_derefs): Move ...
9020 * gimple.c: ... here.
9021 * gimple.h (count_uses_and_derefs): Declare.
9022 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
9023 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
9024 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
9025 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
9026 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
9027 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
9028 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
9029 New functions.
9030 * tree-dfa.c (refs_may_alias_p): Move ...
9031 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
9032 * tree-ssa-alias.h: New file.
9033 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
9034 (statement_sink_location): Likewise.
9035 * opts.c (decode_options): Do not adjust max-aliased-vops or
9036 avg-aliased-vops values.
9037 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
9038 (TV_CALL_CLOBBER): Likewise.
9039 (TV_FLOW_SENSITIVE): Likewise.
9040 (TV_FLOW_INSENSITIVE): Likewise.
9041 (TV_MEMORY_PARTITIONING): Likewise.
9042 (TV_ALIAS_STMT_WALK): New timevar.
9043 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
9044 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
9045 (get_address_description): Remove memory-tag related code.
9046 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
9047 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
9048 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
9049 and immediate uses in statements. Document.
9050 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
9051 (dump_symbols): Remove.
9052 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
9053 * alias.c (get_deref_alias_set): New function split out from ...
9054 (get_alias_set): ... here.
9055 * alias.h (get_deref_alias_set): Declare.
9056 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
9057 type parameter. Remove restrict pointer handling. Create a
9058 ref-all pointer in case type-based alias sets do not conflict.
9059 (vect_analyze_data_refs): Remove SMT related code.
9060 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
9061 (vectorizable_load): Likewise.
9062 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
9063 (DR_SYMBOL_TAG, DR_VOPS): Remove.
9064 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
9065 Ignore vops and SMTs.
9066 (dr_analyze_alias): Likewise..
9067 (free_data_ref): Likewise.
9068 (create_data_ref): Likewise.
9069 (analyze_all_data_dependences): Likewise.
9070 (get_references_in_stmt): Adjust.
9071 * tree-flow-inline.h (gimple_aliases_computed_p,
9072 gimple_addressable_vars, gimple_call_clobbered_vars,
9073 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
9074 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
9075 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
9076 gimple_mem_ref_stats): Remove.
9077 (gimple_vop): New function.
9078 (op_iter_next_use): Remove vuses and mayuses cases.
9079 (op_iter_next_def): Remove vdefs case.
9080 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
9081 (clear_and_done_ssa_iter): Do not set removed fields.
9082 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
9083 Assert we are not iterating over vuses or vdefs if not also
9084 iterating over uses or defs.
9085 (op_iter_init_use): Likewise.
9086 (op_iter_init_def): Likewise.
9087 (op_iter_next_vdef): Remove.
9088 (op_iter_next_mustdef): Likewise.
9089 (op_iter_init_vdef): Likewise.
9090 (compare_ssa_operands_equal): Likewise.
9091 (link_use_stmts_after): Handle vuse operand.
9092 (is_call_used): Use is_call_clobbered.
9093 (is_call_clobbered): Global variables are always call clobbered,
9094 query the call-clobbers bitmap.
9095 (mark_call_clobbered): Ignore global variables.
9096 (clear_call_clobbered): Likewise.
9097 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
9098 virtual operands sanity check.
9099 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
9100 Remove.
9101 (TARGET_MEM_REF): Remove TMR_TAG operand.
9102 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
9103 Remove call-clobber related code.
9104 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
9105 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
9106 partitions or escape reason.
9107 (get_single_def_stmt, get_single_def_stmt_from_phi,
9108 get_single_def_stmt_with_phi): Remove.
9109 (dump_referenced_vars): Tidy.
9110 (get_ref_base_and_extent): Allow bare decls.
9111 (collect_dfa_stats): Adjust.
9112 * graphite.c (rename_variables_in_stmt): Adjust.
9113 (graphite_copy_stmts_from_block): Likewise.
9114 (translate_clast): Likewise.
9115 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
9116 (EXPR_DIES): New.
9117 (translate_vuse_through_block): Use the oracle.
9118 (phi_translate_1): Adjust.
9119 (value_dies_in_block_x): Use the oracle. Cache the outcome
9120 in EXPR_DIES.
9121 (valid_in_sets): Check if the VUSE for
9122 a REFERENCE is available.
9123 (eliminate): Do not remove stmts during elimination,
9124 instead queue and remove them afterwards.
9125 (do_pre): Do not rebuild alias info.
9126 (pass_pre): Run TODO_rebuild_alias before PRE.
9127 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
9128 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
9129 (mark_all_v_defs_stmt): Remove.
9130 (mark_all_v_defs_seq): Adjust.
9131 (sra_replace): Likewise.
9132 (scalarize_use): Likewise.
9133 (scalarize_copy): Likewise.
9134 (scalarize_init): Likewise.
9135 (scalarize_ldst): Likewise.
9136 (todoflags): Remove.
9137 (tree_sra): Do not rebuild alias info.
9138 (tree_sra_early): Adjust.
9139 (pass_sra): Run TODO_update_address_taken before SRA.
9140 * tree-predcom.c (set_alias_info): Remove.
9141 (prepare_initializers_chain): Do not call it.
9142 (mark_virtual_ops_for_renaming): Adjust.
9143 (mark_virtual_ops_for_renaming_list): Remove.
9144 (initialize_root_vars): Adjust.
9145 (initialize_root_vars_lm): Likewise.
9146 (prepare_initializers_chain): Likewise.
9147 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
9148 (may_propagate_copy_into_stmt): Likewise.
9149 (merge_alias_info): Do nothing for now.
9150 (propagate_tree_value_into_stmt): Adjust.
9151 (stmt_may_generate_copy): Likewise.
9152 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
9153 not mark symbols for renaming.
9154 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
9155 with the same statement, make sure to update the new pointed-to one.
9156 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
9157 call statements, do not mark symbols for renaming.
9158 (mark_operand_necessary): Dump something.
9159 (ref_may_be_aliased): New function.
9160 (mark_aliased_reaching_defs_necessary_1): New helper function.
9161 (mark_aliased_reaching_defs_necessary): Likewise.
9162 (mark_all_reaching_defs_necessary_1): Likewise.
9163 (mark_all_reaching_defs_necessary): Likewise.
9164 (propagate_necessity): Do not process virtual PHIs. For
9165 non-aliased loads mark all reaching definitions as necessary.
9166 For aliased loads and stores mark the immediate dominating
9167 aliased clobbers as necessary.
9168 (visited): New global static.
9169 (perform_tree_ssa_dce): Free visited bitmap after propagating
9170 necessity.
9171 (remove_dead_phis): Perform simple dead virtual PHI removal.
9172 (remove_dead_stmt): Properly unlink virtual operands when
9173 removing stores.
9174 (eliminate_unnecessary_stmts): Schedule PHI removal after
9175 stmt removal.
9176 * tree-ssa-ter.c (is_replaceable_p): Adjust.
9177 (process_replaceable): Likewise.
9178 (find_replaceable_in_bb): Likewise.
9179 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
9180 based on the single gimple vop.
9181 (verify_flow_insensitive_alias_info): Remove.
9182 (verify_flow_sensitive_alias_info): Likewise.
9183 (verify_call_clobbering): Likewise.
9184 (verify_memory_partitions): Likewise.
9185 (verify_alias_info): Likewise.
9186 (verify_ssa): Adjust..
9187 (execute_update_addresses_taken): Export. Update SSA
9188 manually. Optimize only when optimizing. Use a local bitmap.
9189 (pass_update_address_taken): Remove TODO_update_ssa, add
9190 TODO_dump_func.
9191 (pass_update_address_taken): Just use TODO_update_address_taken.
9192 (init_tree_ssa): Do not initialize addressable_vars.
9193 (verify_ssa): Verify new VUSE / VDEF properties.
9194 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
9195 Do not call verify_alias_info.
9196 (delete_tree_ssa): Clear the VUSE, VDEF operands.
9197 Do not free the loaded and stored syms bitmaps. Reset the escaped
9198 and callused solutions. Do not free addressable_vars.
9199 Remove memory-tag related code.
9200 (warn_uninitialized_var): Aliases are always available.
9201 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
9202 * lambda-code.c (can_put_in_inner_loop): Adjust.
9203 (can_put_after_inner_loop): Likewise.
9204 (perfect_nestify): Likewise.
9205 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
9206 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
9207 (vectorizable_conversion): Do not mark symbols for renaming.
9208 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
9209 (expand_call_inline): Unlink the calls virtual operands before
9210 replacing it.
9211 (tree_function_versioning): Do not call update_ssa if we are not
9212 updating clones. Simplify.
9213 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
9214 (propagate_with_phi): Likewise..
9215 * tree-outof-ssa.c (create_temp): Remove memory tag and call
9216 clobber code. Assert we are not aliased or global.
9217 * tree-flow.h: Include tree-ssa-alias.h
9218 (enum escape_type): Remove.
9219 (struct mem_sym_stats_d): Likewise.
9220 (struct mem_ref_stats_d): Likewise.
9221 (struct gimple_df): Add vop member. Remove global_var,
9222 call_clobbered_vars, call_used_vars, addressable_vars,
9223 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
9224 escaped and callused members.
9225 (struct ptr_info_def): Remove all members, add points-to solution
9226 member pt.
9227 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
9228 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
9229 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
9230 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
9231 (tree-ssa-alias.o): Likewise.
9232 (toplev.o): Add tree-ssa-alias.h
9233 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
9234 * gimple.c (gimple_set_bb): Fix off-by-one error.
9235 (is_gimple_reg): Do not handle memory tags.
9236 (gimple_copy): Also copy virtual operands.
9237 Delay updating the statement. Do not reset loaded and stored syms.
9238 (gimple_set_stored_syms): Remove.
9239 (gimple_set_loaded_syms): Likewise.
9240 (gimple_call_copy_skip_args): Copy the virtual operands
9241 and mark the new statement modified.
9242 * tree-ssa-structalias.c (may_alias_p): Remove.
9243 (set_uids_in_ptset): Take the alias set to prune with as
9244 parameter. Fold in the alias test of may_alias_p.
9245 (compute_points_to_sets): Compute whether a ptr is dereferenced
9246 in a local sbitmap.
9247 (process_constraint): Deal with &ANYTHING on the lhs, reject all
9248 other ADDRESSOF constraints on the lhs.
9249 (get_constraint_for_component_ref): Assert that we don't get
9250 ADDRESSOF constraints from the base of the reference.
9251 Properly generate UNKNOWN_OFFSET for DEREF if needed.
9252 (struct variable_info): Remove collapsed_to member.
9253 (get_varinfo_fc): Remove.
9254 (new_var_info): Do not set collapsed_to.
9255 (dump_constraint): Do not follow cycles.
9256 (dump_constraint_graph): Likewise.
9257 (build_pred_graph): Likewise.
9258 (build_succ_graph): Likewise.
9259 (rewrite_constraints): Likewise.
9260 (do_simple_structure_copy): Remove.
9261 (do_rhs_deref_structure_copy): Remove.
9262 (do_lhs_deref_structure_copy): Remove.
9263 (collapse_rest_of_var): Remove.
9264 (do_structure_copy): Re-implement.
9265 (pta_stats): New global variable.
9266 (dump_pta_stats): New function.
9267 (struct constraint_expr): Make offset signed.
9268 (UNKNOWN_OFFSET): Define special value.
9269 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
9270 (solution_set_expand): New helper function split out from ...
9271 (do_sd_constraint): ... here.
9272 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
9273 (do_ds_constraint): Likewise.
9274 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
9275 and CALLUSED = *CALLUSED.
9276 (set_union_with_increment): Make inc argument signed.
9277 (type_safe): Remove.
9278 (get_constraint_for_ptr_offset): Handle unknown and negative
9279 constant offsets.
9280 (first_vi_for_offset): Handle offsets before start. Bail
9281 out early for offsets beyond the variable extent.
9282 (first_or_preceding_vi_for_offset): New function.
9283 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
9284 Together with ESCAPED = *ESCAPED this properly computes reachability.
9285 (find_what_var_points_to): New function.
9286 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
9287 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
9288 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
9289 pt_solutions_intersect): New functions.
9290 (compute_call_used_vars): Remove.
9291 (compute_may_aliases): New main entry into PTA computation.
9292 * gimple.h (gimple_p): New typedef.
9293 (struct gimple_statement_base): Remove references_memory_p.
9294 (struct gimple_statement_with_memory_ops_base): Remove
9295 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
9296 members.
9297 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
9298 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
9299 gimple_set_references_memory): Remove.
9300 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
9301 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
9302 New functions.
9303 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
9304 (verify_expr): Allow RESULT_DECL.
9305 (gimple_duplicate_bb): Do not copy virtual operands.
9306 (gimple_duplicate_sese_region): Adjust.
9307 (gimple_duplicate_sese_tail): Likewise.
9308 (mark_virtual_ops_in_region): Remove.
9309 (move_sese_region_to_fn): Do not call it.
9310 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
9311 and pass_simple_dse.
9312 (execute_function_todo): Handle TODO_update_address_taken,
9313 call execute_update_addresses_taken for TODO_rebuild_alias.
9314 (execute_todo): Adjust.
9315 (execute_one_pass): Init dump files early.
9316 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
9317 call-clobbered.
9318 (create_general_new_stmt): Clear vops.
9319 * tree-ssa-reassoc.c (get_rank): Adjust.
9320 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
9321 symbols for renaming.
9322 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
9323 (PARAM_AVG_ALIASED_VOPS): Likewise.
9324 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
9325 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 9326 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
9327 (operand_build_cmp, copy_virtual_operands,
9328 create_ssa_artificial_load_stmt, add_to_addressable_set,
9329 gimple_add_to_addresses_taken): Remove public functions.
9330 (unlink_stmt_vdef): New function.
9331
457d1d00
AM
93322009-04-03 Alan Modra <amodra@bigpond.net.au>
9333
9334 * config.gcc (powerpc-*-linux*): Merge variants.
9335
e19da24c 93362009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 9337 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
9338
9339 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
9340 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
9341 cop0_sp_offset.
9342 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
9343 keep_interrupts_masked_p, use_debug_exception_return_p.
9344 (mips_attribute_table): Add interrupt, use_shadow_register_set,
9345 keep_interrupts_masked, use_debug_exception_return.
9346 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
9347 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
9348 New functions.
9349 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
9350 (mips_print_operand): Process COP0 registers to print $0 .. $31
9351 correctly for GAS to process.
9352 (mips_interrupt_extra_call_saved_reg_p): New function.
9353 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
9354 extra registers.
9355 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
9356 (mips_compute_frame_info): Add supports for interrupt context that
9357 includes doubleword accumulators and COP0 registers.
9358 (mips_for_each_saved_acc): New function.
9359 (mips_for_each_saved_gpr_and_fpr): Change the function name from
9360 mips_for_each_saved_reg.
9361 (mips_save_reg): Save accumulators.
9362 (mips_kernel_reg_p): A new for_each_rtx callback.
9363 (mips_expand_prologue): Support interrupt handlers.
9364 (mips_restore_reg): Restore accumulators.
9365 (mips_expand_epilogue): Support interrupt handlers.
9366 (mips_can_use_return_insn): Return false for interrupt handlers.
9367 (mips_epilogue_uses): New function.
9368 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
9369 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
9370 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
9371 cop0_move): New instructions.
9372 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
9373 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
9374 defines.
9375 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
9376 New defines.
9377 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
9378 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
9379 interrupt handlers, we use K0 as the temporary register.
9380 (EPILOGUE_USES): Change to a function call.
9381 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
9382 handlers, we use K0 as the temporary register.
2ba9daa7 9383
e19da24c
CF
9384 * doc/extend.texi (Function Attributes): Document interrupt,
9385 use_shadow_register_set, keep_interrupts_masked,
9386 use_debug_exception_return for MIPS attributes.
9387
aa1ca044
AM
93882009-04-03 Alan Modra <amodra@bigpond.net.au>
9389
9390 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
9391 Remove a number of t-files from tmake_file.
9392 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
9393 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
9394 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
9395 target_prototype, not TARGET_PROTOTYPE.
9396 (LINK_OS_GNU_SPEC): Define.
9397 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
9398 and darwin-ldoubdle.c.
9399
14fdc613
MM
94002009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
9401
9402 PR driver/39293
9403 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
9404 (cpp_options): Ditto.
9405 (default_compilers): Ditto.
9406 (display_help): Ditto.
9407 (process_command): Ditto.
9408 (do_spec_1): Ditto.
9409 (set_input): Use lbasename instead of duplicate code.
9410 (save_temps_prefix): New static for -save-temps=obj.
9411 (save_temps_length): Ditto.
2ba9daa7 9412
14fdc613
MM
9413 * doc/invoke.texi (-save-temps=obj): Document new variant to
9414 -save-temps switch.
9415
d3aa398e
JL
94162009-04-02 Jeff Law <law@redhat.com>
9417
9418 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
9419 variable.
9420
83f0ccb8
L
94212009-04-02 H.J. Lu <hongjiu.lu@intel.com>
9422
9423 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
9424 * configure: Regenerated.
9425
dcb6e951
RAE
94262009-04-02 Rafael Avila de Espindola <espindola@google.com>
9427
9428 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
9429 share the argument list.
9430
d85478c2
RAE
94312009-04-02 Rafael Avila de Espindola <espindola@google.com>
9432
9433 Merge
9434
9435 2009-02-12 Diego Novillo <dnovillo@google.com>
9436
83f0ccb8
L
9437 * varpool.c (debug_varpool): New.
9438 * cgraph.h (debug_varpool): Declare.
d85478c2 9439
34f42a49
JH
94402009-04-02 Jan Hubicka <jh@suse.cz>
9441
9442 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
9443 pass.
9444
a4747b4a
L
94452009-04-02 H.J. Lu <hongjiu.lu@intel.com>
9446
9447 * config/i386/i386.c (ix86_abi): Move initialization to ...
9448 (override_options): Here.
9449
63a9de54
CB
94502009-04-02 Christian Bruel <christian.bruel@st.com>
9451
9452 * config/sh/sh.c (sh_dwarf_register_span): New function.
9453 (TARGET_DWARF_REGISTER_SPAN): Define.
9454 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 9455
2f0fa28e
IR
94562009-04-02 Ira Rosen <irar@il.ibm.com>
9457
9458 PR tree-optimization/39595
2ba9daa7 9459 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
9460 interleaved loads group is not greater than the SLP group size.
9461
bbf7ce11
RAE
94622009-04-02 Rafael Avila de Espindola <espindola@google.com>
9463
9464 * builtins.c (is_builtin_name): New.
9465 (called_as_built_in): Use is_builtin_name.
9466 * tree.h (is_builtin_name): New.
9467 * varasm.c (incorporeal_function_p): Use is_builtin_name
9468
47e4dfcf
AS
94692009-04-02 Andrew Stubbs <ams@codesourcery.com>
9470
9471 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
9472
d0940d56
DS
94732009-04-02 Dodji Seketeli <dodji@redhat.com>
9474
9475 PR c++/26693
532bfb0a 9476 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
9477 * c-common.c (set_underlying_type): ... here.
9478 Also, make sure the function properly sets TYPE_STUB_DECL() on
9479 the newly created typedef variant type.
9480 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
9481 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
9482 points.
d0940d56 9483
bf1cbdc6
RG
94842009-04-02 Richard Guenther <rguenther@suse.de>
9485
9486 PR tree-optimization/37221
9487 * tree-flow.h (degenerate_phi_result): Declare.
9488 * tree-ssa-dom.c (degenerate_phi_result): Export.
9489 * tree-scalar-evolution.c (analyze_initial_condition): If
9490 the initial condition is defined by a degenerate PHI node
9491 use the degenerate value.
9492
87cfb32c
EB
94932009-04-01 Eric Botcazou <ebotcazou@adacore.com>
9494
9495 PR rtl-optimization/39588
9496 * combine.c (merge_outer_ops): Do not set the constant when this
9497 is not necessary.
9498 (simplify_shift_const_1): Do not modify it either in this case.
9499
bbb6eae8
SB
95002009-04-01 Steven Bosscher <steven@gcc.gnu.org>
9501
9502 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
9503 tuning is deprecated if -mtune value is set to an Itanium1 variant.
9504
839a3b8a
JJ
95052009-04-01 Janis Johnson <janis187@us.ibm.com>
9506
9507 PR c/29027
9508 * c-lex.c (interpret_float): Default (no suffix) is double.
9509
667e8acb
XDL
95102009-04-1 Xinliang David Li <davidxl@google.com>
9511
9512 * config/i386/i386.c (legitimate_constant_p): Recognize
9513 all one vector constant.
9514
60839f5d 95152009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9516
60839f5d 9517 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
9518 Change #include order to silence two warnings.
9519
60839f5d 95202009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9521
60839f5d 9522 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
9523 (ASM_SPEC): Pass -k to the assembler for PIC code.
9524
60839f5d 95252009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9526
60839f5d
EB
9527 * config.gcc: Add vax-*-linux* to the switch.
9528 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
9529 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
9530
60839f5d 95312009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9532
60839f5d 9533 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 9534 Use predicate macros instead of GET_CODE() == foo.
60839f5d 9535 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
9536 ashlsi3, rotrsi3, <unnamed>): Likewise.
9537
60839f5d 95382009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9539
60839f5d 9540 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 9541 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d
EB
9542 * config/vax/constraints.md: Likewise.
9543 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
9544 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
9545 * config/vax/predicates.md: Likewise.
9546 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 9547 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
9548 * config/vax/vax.h: Likewise.
9549 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 9550
60839f5d 95512009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9552
60839f5d 9553 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
9554 (indirectable_address_p, adjacent_operands_p): Add spaces around
9555 braces.
60839f5d 9556 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 9557
60839f5d 95582009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9559
60839f5d 9560 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
9561 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
9562 index_term_p, reg_plus_index_p, legitimate_address_p,
9563 vax_mode_dependent_address_p): Update comments to match functions
9564 modified by the recent int->bool conversion.
9565
60839f5d 95662009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9567
60839f5d
EB
9568 * config/vax/builtins.md: Update copyright message.
9569 * config/vax/constraints.md: Likewise.
9570 * config/vax/netbsd-elf.h: Likewise.
9571 * config/vax/predicates.md: Likewise.
9572 * config/vax/vax-protos.h: Likewise.
9573 * config/vax/vax.c: Likewise.
9574 * config/vax/vax.h: Likewise.
9575 * config/vax/vax.md: Likewise.
9576 * config/vax/vax.opt: Likewise.
c4e75102 9577
60839f5d 95782009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9579
60839f5d 9580 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 9581 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
9582 * config/vax/constraints.md (B, R): Likewise.
9583 * config/vax/predicates.md (external_memory_operand,
c4e75102 9584 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
9585 * config/vax/vax.c (vax_output_int_add): Likewise.
9586 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
9587 untyped_call): Likewise.
9588
60839f5d 95892009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 9590
7a715bba
UB
9591 * config/vax/predicates.md: New file.
9592 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
9593 external_const_operand, nonsymbolic_operand, external_memory_operand,
9594 indirect_memory_operand, indexed_memory_operand,
9595 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
9596 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
9597 predicate.
7a715bba
UB
9598 * config/vax/constraints.md: New file.
9599 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
9600 New constraint.
9601 * config/vax/builtins.md: New file.
9602 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
9603 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
9604 jbbccisi): Define.
c4e75102
MT
9605 * config/vax/vax.opt (mqmath): Add option.
9606 * config/vax/vax.md (isfx): Extend with DI.
9607 (VAXintQH, VAXintQHSD): Define.
9608 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
9609 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
9610 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
9611 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
9612 (movdi): Update constraints and use vax_output_int_move().
9613 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
9614 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
9615 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
9616 nonlocal_goto): New.
9617 (mov<mode>): Extend accepted operand types.
9618 (subdi3_old): Rename from subdi3, change update constraints and use
9619 a new implementation.
60839f5d 9620 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
9621 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
9622 MOVE_RATIO, CLEAR_RATIO): Define.
9623 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
9624 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
9625 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 9626 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
9627 (split_quadword_operands): Make static and really allow variable
9628 splitting.
9629 (print_operand_address): Update for PIC generation.
9630 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
9631 indexable_address_p, fixup_mathdi_operand,
9632 vax_expand_addsub_di_operands, adjacent_operands_p): New.
9633 (vax_float_literal, legitimate_constant_p,
9634 indirectable_constant_address_p, index_term_p,
9635 reg_plus_index_p): Return bool instead of int.
9636 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
9637 where needed.
9638 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
9639 generation.
9640 (vax_output_conditional_branch): Indent.
9641 (legitimate_constant_address_p, indirectable_constant_address_p,
9642 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
9643 vax_mode_dependent_address_p): Return bool instead of int, update for
9644 PIC generation.
9645 * config/vax/vax-protos.h (legitimate_constant_address_p,
9646 legitimate_constant_p, legitimate_address_p,
9647 vax_mode_dependent_address_p): Change declaration to bool.
9648 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
9649 vax_expand_addsub_di_operands, vax_output_int_subtract,
9650 vax_output_movmemsi): Declare.
9651 (split_quadword_operands, vax_float_literal): Delete declaration.
9652 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
9653 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
9654 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
9655 ASM_OUTPUT_DWARF_PCREL): Define.
9656 (ASM_SPEC): Change definition to allow PIC generation.
9657
9332c6eb
L
96582009-04-01 Steve Ellcey <sje@cup.hp.com>
9659
9660 * doc/sourcebuild.texi: Update front-end requirements.
9661
d93e052c
JJ
96622009-04-01 Jakub Jelinek <jakub@redhat.com>
9663
9664 PR target/39226
9665 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
9666 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
9667 (booldi3_internal3): Use boolean_or_operator instead of
9668 boolean_operator.
9669
6ccb2a4a
JM
96702009-04-01 Joseph Myers <joseph@codesourcery.com>
9671
9672 PR c/39605
9673 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
9674 declarator whose size is not an integer constant expression but
9675 folds to an integer constant, then treat it as a constant
9676 subsequently.
9677
299b87f8
RG
96782009-04-01 Richard Guenther <rguenther@suse.de>
9679
9680 * fold-const.c (fold_plusminus_mult_expr): Do not fold
9681 i * 4 + 2 to (i * 2 + 1) * 2.
9682
b85eb797
JJ
96832009-04-01 Jakub Jelinek <jakub@redhat.com>
9684
9685 PR c/37772
9686 * c-parser.c (c_parser_asm_statement): Skip until close paren and
9687 return if c_parser_asm_string_literal returned NULL.
9688
235e1fe8
NC
96892009-04-01 Nick Clifton <nickc@redhat.com>
9690
9691 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
9692 already defined.
9693 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
9694 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
9695 other typedefs to avoid conflicts with libgcc2.c. Define labels
9696 to gain 16-bit bit-manipulation functions from libgcc2.c and then
9697 include it.
9698 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
9699 to gain 16-bit trapping arithmetic functions from libgcc2.c and
9700 then include it.
9701
d6868399
RAE
97022009-04-01 Rafael Avila de Espindola <espindola@google.com>
9703
7a715bba
UB
9704 * varasm.c (default_function_rodata_section): Declare DOT as
9705 const char*.
d6868399 9706
73d21f56 97072009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 9708 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
9709
9710 PR/39492
9711 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
9712 Make object_name unique for each process.
9713
03742a9b
JJ
97142009-04-01 Jakub Jelinek <jakub@redhat.com>
9715
9716 PR other/39591
9717 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
9718 addressable variables in the parallel that could go out of scope while
9719 running queued tasks.
9720
4223ff5f
AS
97212009-04-01 Anatoly Sokolov <aesok@post.ru>
9722
9723 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
9724 (CASE_VALUES_THRESHOLD): Redefine.
9725 * config/avr/avr.c (avr_override_options): Remove initialization of
9726 avr_case_values_threshold variable.
9727 (avr_case_values_threshold): Remove variable. Add new function.
9728 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
9729 * config/avr/avr.opt (mno-tablejump): Remove option.
9730 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
9731
e893f6f3
DD
97322009-04-01 DJ Delorie <dj@redhat.com>
9733
9734 * varasm.c (default_function_rodata_section): Don't assume
9735 anything about where the first '.' in the section name is.
9736
b246d100
AM
97372009-04-01 Alan Modra <amodra@bigpond.net.au>
9738
9739 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
9740 rs6000_emit_stack_tie.
9741
d3e37a9e
ILT
97422009-03-31 Ian Lance Taylor <iant@google.com>
9743
9744 * tree-eh.c (tree_remove_unreachable_handlers): Compare
9745 gimple_code with GIMPLE_RESX, not RESX.
9746
c1b61fca
JM
97472009-03-31 Joseph Myers <joseph@codesourcery.com>
9748
9749 * c-common.c (c_get_ident): New.
7a715bba 9750 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 9751
c2d2ad48
BE
97522009-04-01 Ben Elliston <bje@au.ibm.com>
9753
9754 * config/rs6000/sysv4.opt (msdata): Improve option description.
9755
13d1a6e7
SE
97562009-03-31 Steve Ellcey <sje@cup.hp.com>
9757
9758 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
9759 (divdf3_internal_lat): Remove.
9760 (divxf3_internal_lat): Remove.
9761 (divxf3_internal_thr): Remove.
9762 (divxf): Use divxf3_internal.
9763 * config/ia64/div.md (divsf3_internal_lat): New.
9764 (divdf3_internal_lat): New.
9765 (divxf3_internal): New.
9766
207bf79d
JM
97672009-03-31 Joseph Myers <joseph@codesourcery.com>
9768
9769 PR c/448
9770 * Makefile.in (USE_GCC_STDINT): Define.
9771 (stmp-int-hdrs): Install stdint.h if applicable.
9772 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
9773 if known.
9774 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
9775 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
9776 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
9777 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
9778 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
9779 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
9780 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
9781 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
9782 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
9783 (c_common_nodes_and_builtins): Initialize
9784 underlying_wchar_type_node. Do not initialize
9785 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
9786 nodes for new types.
9787 (c_stddef_cpp_builtins): Define macros for new types.
9788 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
9789 Remove.
9790 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
9791 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
9792 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
9793 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
9794 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
9795 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
9796 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
9797 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
9798 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
9799 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
9800 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
9801 int16_type_node, int32_type_node, int64_type_node,
9802 uint8_type_node, uint16_type_node, c_uint32_type_node,
9803 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
9804 int_least32_type_node, int_least64_type_node,
9805 uint_least8_type_node, uint_least16_type_node,
9806 uint_least32_type_node, uint_least64_type_node,
9807 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
9808 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
9809 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
9810 uintptr_type_node): Define.
9811 * c-cppbuiltin.c (builtin_define_constants,
9812 builtin_define_type_minmax): New.
9813 (builtin_define_stdint_macros): Define more macros.
9814 (c_cpp_builtins): Define more limit macros.
9815 (type_suffix): New.
9816 (builtin_define_type_max): Define in terms of
9817 builtin_define_type_minmax. Remove is_long parameter. All
9818 callers changed.
9819 * config.gcc (use_gcc_stdint): Define.
9820 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
9821 Add newlib-stdint.h for generic targets.
9822 * config/glibc-stdint.h, config/newlib-stdint.h,
9823 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
9824 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
9825 * config/score/score.h (UINTPTR_TYPE): Define.
9826 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
9827 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
9828 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
9829 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
9830 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
9831 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
9832 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
9833 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
9834 * config/spu/spu.h (STDINT_LONG32): Define.
9835 * configure.ac (use_gcc_stdint): Substitute.
9836 * configure: Regenerate.
9837 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
9838 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
9839 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
9840 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
9841 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
9842 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
9843 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
9844 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
9845 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
9846 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
9847 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
9848 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
9849 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
9850 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
9851 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
9852 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
9853 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
9854 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
9855 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
9856 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
9857 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
9858 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
9859 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
9860 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
9861 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
9862 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
9863 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
9864 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
9865 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
9866
ed853664
BS
98672009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
9868
9869 * loop-iv.c (suitable_set_for_replacement): Renamed from
9870 simplify_using_assignment; changed to return bool and to accept new
9871 args DEST and SRC. Return true iff we find a source/destination pair
9872 that can be used to make a replacement, and fill SRC and DEST if so.
9873 Remove arg ALTERED. Don't deal with altered regs here. All callers
9874 changed.
9875 (simplify_using_initial_values): Deal with altered regs here and track
9876 more precisely the effect they have on the validity of our expression.
9877
1569e190
BS
9878 * loop-iv.c (simplify_using_condition): A condition of the form
9879 (EQ REG CONST) can be used to simply make a substitution.
9880 (simplify_using_initial_values): Keep track of conditions we have seen
9881 and keep using them to simplify new expressions, while applying the
9882 same substitutions to them as to the expression.
9883
1d1eb80c
BS
9884 * simplify-rtx.c (simplify_relational_operation_1): Simplify
9885 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
9886 GEU/LTU reversed.
9887
28af33b0
BS
9888 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
9889 changed. Use this when trying to improve the upper bound.
9890 Generate the comparison by using simplify_gen_relational.
9891
b30321cd
BS
9892 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
9893
60081874
BS
9894 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
9895 functions.
2ba9daa7 9896 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
9897 replace_in_expr to make replacements. Call replace_single_def_regs
9898 once on the initial version of the expression.
9899
bebc6e07
RR
99002009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9901
fcb82ab0 9902 PR target/27237
bebc6e07 9903 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 9904
6b12efe9
RG
99052009-03-31 Richard Guenther <rguenther@suse.de>
9906
9907 PR middle-end/31029
9908 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
9909 equality comparisons. Fold C - X CMP X if C % 2 == 1.
9910
108f6c2f
RG
99112009-03-31 Richard Guenther <rguenther@suse.de>
9912
9913 * tree.h (div_if_zero_remainder): Declare.
9914 * fold-const.c (div_if_zero_remainder): Export.
9915 * tree-ssa-forwprop.c
9916 (forward_propagate_addr_into_variable_array_index): Handle
9917 constant array index addition outside of the variable index.
9918
8f612190
JM
99192009-03-31 Joseph Myers <joseph@codesourcery.com>
9920
9921 PR target/39592
9922 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
9923 define_splits, floatunssi<mode>2): Require x87 conversions from
9924 DImode to be permitted.
9925
47580d22
JM
99262009-03-31 Joseph Myers <joseph@codesourcery.com>
9927
9928 PR preprocessor/15638
9929 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
9930
ba4d8f9d
RG
99312009-03-31 Richard Guenther <rguenther@suse.de>
9932
9933 PR middle-end/23401
9934 PR middle-end/27810
9935 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
9936 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
9937 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
9938 a separate statement.
9939 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
9940 (lookup_tmp_var): Likewise.
9941 (is_gimple_formal_tmp_or_call_rhs): Remove.
9942 (is_gimple_reg_or_call_rhs): Rename to ...
9943 (is_gimple_reg_rhs_or_call): ... this.
9944 (is_gimple_mem_or_call_rhs): Rename to ...
9945 (is_gimple_mem_rhs_or_call): ... this.
9946 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
9947 DECL_GIMPLE_REG_P only if is_formal is true.
9948 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
9949 for non-proper post-modify expression gimplification.
9950 (gimplify_self_mod_expr): For post-modify expressions gimplify
9951 the lvalue to a minimal lvalue.
9952 (rhs_predicate_for): Remove formal temp case.
9953 (gimplify_modify_expr_rhs): Likewise.
9954 (gimplify_addr_expr): Use is_gimple_reg.
9955 (gimplify_expr): Remove formal temp cases.
9956 (gimple_regimplify_operands): Likewise.
9957 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
9958 and FILTER_EXPR like constants.
9959 * gimple.c (walk_gimple_op): Fix val_only initialization, use
9960 is_gimple_reg.
9961 (is_gimple_formal_tmp_rhs): Remove.
9962 (is_gimple_reg_rhs): Remove special casing.
9963 (is_gimple_mem_rhs): Fix.
9964 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
9965 (is_gimple_formal_tmp_var): Remove.
9966 (is_gimple_formal_tmp_reg): Likewise.
9967 (is_gimple_min_lval): Allow invariant component ref parts.
9968 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
9969 is_gimple_formal_tmp_reg): Remove declarations.
9970 * tree-cfg.c (verify_expr): Verify that variables with address
9971 taken do not have DECL_GIMPLE_REG_P set.
9972 * tree-mudflap.c (mf_build_check_statement_for): Use
9973 force_gimple_operand instead of gimplify_expr.
9974
8de9b877
AZ
99752009-03-31 Ayal Zaks <zaks@il.ibm.com>
9976
9977 * modulo-sched.c (sms_schedule_by_order): Pass the actual
9978 schedulable rows to compute_split_row.
9979
b5e3caf2
BE
99802009-03-31 Ben Elliston <bje@au.ibm.com>
9981
9982 PR target/31635
9983 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
9984 OPT_mvrsave.
9985
9752c4ad
AM
99862009-03-31 Alan Modra <amodra@bigpond.net.au>
9987
9988 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
9989 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
9990 * configure: Regenerate.
9991 * config.in: Regenerate.
9992 * config/rs6000/rs6000.opt (mtls-markers): Add.
9993 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
9994 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
9995 (tls_ld_aix, tls_ld_sysv): Likewise.
9996 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
9997 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
9998
b597d1b6
AM
99992009-03-31 Alan Modra <amodra@bigpond.net.au>
10000
10001 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
10002
a203a221
JH
100032009-03-30 Jan Hubicka <jh@suse.cz>
10004
b597d1b6
AM
10005 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
10006 out of RESX.
10007 (tree_remove_unreachable_handlers): Cleanup EH predecestor
10008 detection and label handling.
a203a221 10009
5b0c0b2c
VM
100102009-03-30 Vladimir Makarov <vmakarov@redhat.com>
10011
10012 * ira-int.h (ira_allocno): Rename left_conflicts_num to
10013 left_conflicts_size.
10014 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
10015 ALLOCNO_LEFT_CONFLICTS_SIZE.
10016
10017 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
10018 remove_allocno_from_bucket_and_push,
10019 allocno_spill_priority_compare, push_allocnos_to_stack,
10020 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
10021 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
10022 (setup_allocno_left_conflicts_num): Ditto. Rename to
10023 setup_allocno_left_conflicts_size.
10024 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
10025 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
10026 setup_allocno_left_conflicts_size instead of
10027 setup_allocno_left_conflicts_num.
10028
10029 * ira-build.c (ira_create_allocno): Use
10030 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
10031 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 10032
9a48a93f
VM
100332009-03-30 Vladimir Makarov <vmakarov@redhat.com>
10034
10035 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
10036 instead of DF_LR_OUT.
10037
10038 * ira-lives.c (process_bb_node_lives): Ditto.
10039
10040 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
10041 instead of DF_LR_{OUT,IN}.
10042
10043 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
10044
10045 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
10046
4c936d4f
JH
100472009-03-30 Jan Hubicka <jh@suse.cz>
10048
10049 * except.c (label_to_region_map): Fix thinko.
10050
f4d9f129
SE
100512009-03-30 Steve Ellcey <sje@cup.hp.com>
10052
10053 PR middle-end/38237
10054 * tree.h (tree_find_value): New declaration.
10055 * tree.c (tree_find_value): New function.
10056 * varasm.c (assemble_external): Avoid duplicate entries on lists.
10057
b3f27c15
JJ
100582009-03-30 Jakub Jelinek <jakub@redhat.com>
10059
10060 PR debug/39563
10061 * c-decl.c (struct c_binding): Add locus field.
10062 (bind): Add locus argument, set locus field from it.
10063 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
10064 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
10065 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
10066 implicitly_declare, undeclared_variable, lookup_label,
10067 declare_label, c_make_fname_decl, c_builtin_function,
10068 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
10069 bind callers.
10070
ad41bd84 100712009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
10072
10073 PR target/38781
10074 * config/i386/i386.c (classify_argument): Check total size of
10075 structure.
10076
133f9369
MJ
100772009-03-30 Martin Jambor <mjambor@suse.cz>
10078
10079 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
10080 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
10081 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
10082 respectively.
10083
10084 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
10085 seen_variable_array_ref while also traversing a union.
10086
10087 * tree-inline.c (optimize_inline_calls): Do not call
10088 cgraph_node_remove_callees.
10089 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
10090 (pass_remove_cgraph_callee_edges): New variable.
10091 * passes.c (init_optimization_passes): Add
10092 pass_remove_cgraph_callee_edges after early inlining and before all
10093 late intraprocedural passes.
10094
10095 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
10096
1190f2eb
PB
100972009-03-30 Paolo Bonzini <bonzini@gnu.org>
10098
10099 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
10100 Fix typos in names.
10101
fedc1775
PB
101022009-03-30 Paolo Bonzini <bonzini@gnu.org>
10103
fcb82ab0
UB
10104 * combine.c (simplify_comparison): Use have_insn_for.
10105 * dojump.c (do_jump): Likewise.
fedc1775 10106
65c5ae8b
PB
101072009-03-30 Paolo Bonzini <bonzini@gnu.org>
10108
10109 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
10110 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
10111 sparc_compare_op0 like sparc_compare_emitted used to be handled.
10112 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
10113 instead of sparc_compare_emitted.
10114 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
10115 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
10116 instead of sparc_compare_emitted.
10117
d25aa7ab
PB
101182009-03-30 Paolo Bonzini <bonzini@gnu.org>
10119
10120 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
10121 enter/exit cfglayout mode.
10122 (pass_partition_block): Require it.
10123 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
10124 (combine_instructions): Track basic blocks instead of labels.
10125 (update_cfg_for_uncondjump): New.
10126 (try_combine): Use it. Update jumps after rescanning.
10127 (pass_combine): Require PROP_cfglayout.
10128 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
10129
9c9e26f5
PB
101302009-03-30 Paolo Bonzini <bonzini@gnu.org>
10131
fcb82ab0
UB
10132 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
10133 Provide/destroy PROP_cfglayout respectively.
10134 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
10135 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 10136
28ddeea1
PB
101372009-03-30 Paolo Bonzini <bonzini@gnu.org>
10138
10139 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
10140 fold_convert_const_fixed_from_fixed,
10141 fold_convert_const_fixed_from_int,
10142 fold_convert_const_fixed_from_real, fold_negate_const): Do not
10143 set TREE_CONSTANT_OVERFLOW.
10144 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
10145 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
10146
ebfd146a
IR
101472009-03-30 Ira Rosen <irar@il.ibm.com>
10148
10149 * tree-vect-loop-manip.c: New file.
10150 * tree-vectorizer.c: Update documentation and included files.
10151 (vect_loop_location): Make extern.
10152 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
10153 (rename_variables_in_bb, rename_variables_in_loop,
10154 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
10155 slpeel_update_phi_nodes_for_guard1,
10156 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
10157 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
10158 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 10159 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
10160 find_loop_location): Likewise.
10161 (new_stmt_vec_info): Move to tree-vect-stmts.c.
10162 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
10163 get_vectype_for_scalar_type, vect_is_simple_use,
10164 supportable_widening_operation, supportable_narrowing_operation):
10165 Likewise.
10166 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
10167 (new_loop_vec_info, destroy_loop_vec_info,
10168 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
10169 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
10170 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
10171 (vect_supportable_dr_alignment): Likewise.
10172 * tree-vectorizer.h (tree-data-ref.h): Include.
10173 (vect_loop_location): Declare.
10174 Reorganize function declarations according to the new file structure.
10175 * tree-vect-loop.c: New file.
2ba9daa7 10176 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
10177 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
10178 * tree-vect-data-refs.c: New file.
10179 * tree-vect-patterns.c (timevar.h): Don't include.
10180 * tree-vect-stmts.c: New file.
2ba9daa7 10181 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 10182 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
10183 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
10184 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
10185 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
10186 (tree-vect-analyze.o): Remove.
10187 (tree-vect-transform.o): Likewise.
10188 (tree-vect-data-refs.o): Add rule.
2ba9daa7 10189 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
10190 tree-vect-slp.o): Likewise.
10191 (tree-vect-patterns.o): Remove redundant dependencies.
10192 (tree-vectorizer.o): Likewise.
10193 * tree-vect-slp.c: New file.
10194
40a1cfba
RW
101952009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10196
10197 * optc-gen.awk: Warn if an option flag has multiple different
10198 help strings.
10199
a9a7a9a2
SP
102002009-03-30 Sebastian Pop <sebastian.pop@amd.com>
10201
10202 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
10203 -floop-block): Document dependences on PPL, CLooG and Graphite.
10204
8ce94e44
JM
102052009-03-30 Joseph Myers <joseph@codesourcery.com>
10206
10207 PR rtl-optimization/323
10208 * c-common.c (c_fully_fold, convert_and_check,
10209 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
10210 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
10211 * c-common.def (EXCESS_PRECISION_EXPR): New.
10212 * c-cppbuiltin.c (builtin_define_float_constants): Define
10213 constants with enough digits for long double.
10214 * c-lex.c (interpret_float): Interpret constant with excess
10215 precision where appropriate.
10216 * c-opts.c (c_common_post_options): Set
10217 flag_excess_precision_cmdline. Give an error for
10218 -fexcess-precision=standard for C++ for processors where the
10219 option is significant.
10220 * c-parser.c (c_parser_conditional_expression): Handle excess
10221 precision in condition.
10222 * c-typeck.c (convert_arguments): Handle arguments with excess
10223 precision.
10224 (build_unary_op): Move excess precision outside operation.
10225 (build_conditional_expr): Likewise.
10226 (build_compound_expr): Likewise.
10227 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
10228 (build_modify_expr): Handle excess precision in RHS.
10229 (convert_for_assignment): Handle excess precision in converted
10230 value.
10231 (digest_init, output_init_element, process_init_element): Handle
10232 excess precision in initializer.
10233 (c_finish_return): Handle excess precision in return value.
10234 (build_binary_op): Handle excess precision in operands and add
10235 excess precision as needed for operation.
10236 * common.opt (-fexcess-precision=): New option.
10237 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
10238 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
10239 For standard excess precision, output explicit conversion to and
10240 truncation from XFmode.
10241 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
10242 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
10243 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
10244 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
10245 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
10246 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
10247 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
10248 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
10249 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
10250 define_splits, sqrt<mode>2): Disable where appropriate for
10251 standard excess precision.
10252 * convert.c (convert_to_real): Do not shorten arithmetic to type
10253 for which excess precision would be used.
10254 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
10255 * doc/invoke.texi (-fexcess-precision=): Document option.
10256 (-mfpmath=): Correct index entry.
10257 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
10258 flag_excess_precision): New.
10259 * langhooks.c (lhd_post_options): Set
10260 flag_excess_precision_cmdline.
10261 * opts.c (common_handle_option): Handle -fexcess-precision=.
10262 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
10263 init_excess_precision): New.
10264 (lang_dependent_init_target): Call init_excess_precision.
10265 * tree.c (excess_precision_type): New.
10266 * tree.h (excess_precision_type): Declare.
10267
1e57bf47
JM
102682009-03-30 Joseph Myers <joseph@codesourcery.com>
10269
10270 PR c/35235
10271 * c-typeck.c (build_component_ref): Do not copy qualifiers from
10272 non-lvalue to component.
10273
148e4216
JM
102742009-03-29 Joseph Myers <joseph@codesourcery.com>
10275
10276 PR preprocessor/34695
10277 * Makefile.in (c-opts.o): Depend on c-tree.h.
10278 * c-common.c: Move down include of diagnostic.h.
10279 (done_lexing, c_cpp_error): New.
10280 * c-common.h (done_lexing): Declare.
10281 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
10282 (parse_in).
10283 * c-opts.c: Include c-tree.h.
10284 (c_common_init_options): Set preprocessor error callback.
10285 (c_common_handle_option): Do not set preprocessor
10286 inhibit_warnings, warnings_are_errors, warn_system_headers,
10287 pedantic_errors or inhibit_warnings flags.
10288 (c_common_post_options): Do not check cpp_errors (parse_in).
10289 (c_common_finish): Do not output dependencies if there were
10290 errors. Do not check return value of cpp_finish.
10291 * c-ppoutput.c (pp_file_change): Set input_location.
10292 * c-tree.h (c_cpp_error): Declare.
10293 * diagnostic.c (diagnostic_set_info_translated): Also initialize
10294 override_column.
10295 (diagnostic_build_prefix): Check override_column.
10296 * diagnostic.h (diagnostic_info): Add override_column field.
10297 (diagnostic_override_column): Define.
10298
2ec5deb5
PB
102992009-03-28 Paolo Bonzini <bonzini@gnu.org>
10300
ba20e309
UB
10301 * c-common.c (c_expand_expr, c_staticp): Remove.
10302 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
10303 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
10304 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
10305 * c-gimplify.c (gimplify_compound_literal_expr,
10306 optimize_compound_literals_in_ctor): Remove.
10307 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
10308 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
10309 * c-semantics.c (emit_local_var): Remove.
10310
10311 * langhooks-def.h (lhd_expand_expr): Remove.
10312 * langhooks.c (lhd_expand_expr): Remove.
10313 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
10314
10315 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
10316 handling from c-semantics.c; don't call into langhook.
10317 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
10318 * gimplify.c (gimplify_compound_literal_expr,
10319 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
10320 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
10321 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
10322 as was done in c-gimplify.c.
10323 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
10324 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
10325 Move from c-common.h.
10326 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
10327
10328 * tree.c (staticp): Do not call langhook.
10329 * langhooks.c (lhd_staticp): Delete.
10330 * langhooks-def.h (lhd_staticp): Delete prototype.
10331 (LANG_HOOKS_STATICP): Delete.
10332 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
10333
ba20e309
UB
10334 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
10335 instead of DECL_STMTs.
2ec5deb5 10336
928c19bb
JM
103372009-03-29 Joseph Myers <joseph@codesourcery.com>
10338
10339 PR c/456
10340 PR c/5675
10341 PR c/19976
10342 PR c/29116
10343 PR c/31871
10344 PR c/35198
10345 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
10346 void_type_node.
10347 (fold_call_expr): Return a NOP_EXPR from folding rather than the
10348 contained expression.
ba20e309 10349 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
10350 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
10351 conditional expressions for C.
10352 (decl_constant_value_for_optimization): Move from
ba20e309 10353 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
10354 whether optimizing and that the expression is a VAR_DECL not of
10355 array type instead of doing such checks in the caller. Do not
10356 check pedantic. Call gcc_unreachable for C++.
10357 * c-common.def (C_MAYBE_CONST_EXPR): New.
10358 * c-common.h (c_fully_fold, c_save_expr,
10359 decl_constant_value_for_optimization): New prototypes.
10360 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
10361 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
10362 EXPR_INT_CONST_OPERANDS): Define.
10363 * c-convert.c (convert): Strip nops from expression.
10364 * c-decl.c (groktypename): Take extra parameters expr and
10365 expr_const_operands. Update call to grokdeclarator.
10366 (start_decl): Update call to grokdeclarator. Add statement for
10367 expressions used in type of decl.
10368 (grokparm): Update call to grokdeclarator.
10369 (push_parm_decl): Update call to grokdeclarator.
10370 (build_compound_literal): Add parameter non_const and build a
10371 C_MAYBE_COSNT_EXPR if applicable.
10372 (grokdeclarator): Take extra parameters expr and
10373 expr_const_operands. Track expressions used in declaration
10374 specifiers and declarators. Fold array sizes and track whether
10375 they are constant expressions and whether they are integer
10376 constant expressions.
10377 (parser_xref_tag): Set expr and expr_const_operands fields in
10378 return value.
10379 (grokfield): Update call to grokdeclarator.
10380 (start_function): Update call to grokdeclarator.
10381 (build_null_declspecs): Set expr and expr_const_operands fields in
10382 return value.
10383 (declspecs_add_type): Handle expressions in typeof specifiers.
10384 * c-parser.c (c_parser_declspecs): Set expr and
10385 expr_const_operands fields for declaration specifiers.
10386 (c_parser_enum_specifier): Likewise.
10387 (c_parser_struct_or_union_specifier): Likewise.
10388 (c_parser_typeof_specifier): Likewise. Update call to
10389 groktypename. Fold expression as needed. Return expressions with
10390 type instead of adding statements.
10391 (c_parser_attributes): Update calls to c_parser_expr_list.
10392 (c_parser_statement_after_labels): Fold expression before passing
10393 to objc_build_throw_stmt.
10394 (c_parser_condition): Fold expression.
10395 (c_parser_asm_operands): Fold expression.
10396 (c_parser_conditional_expression): Use c_save_expr. Update call
10397 to build_conditional_expr.
10398 (c_parser_alignof_expression): Update call to groktypename.
10399 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
10400 original_code. Fold expression argument of va_arg. Create
10401 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
10402 argument to va_arg. Update calls to groktypename. Fold array
10403 index for offsetof. Verify that first argument to
10404 __builtin_choose_expr has integer type.
10405 (c_parser_postfix_expression_after_paren_type): Update calls to
10406 groktypename and build_compound_literal. Handle expressions with
10407 side effects in type name.
10408 (c_parser_postfix_expression_after_primary): Update call to
10409 c_parser_expr_list. Set original_code for calls to
10410 __builtin_constant_p.
10411 (c_parser_expr_list): Take extra parameter fold_p. Fold
10412 expressions if requested.
10413 (c_parser_objc_type_name): Update call to groktypename.
10414 (c_parser_objc_synchronized_statement): Fold expression.
10415 (c_parser_objc_receiver): Fold expression.
10416 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
10417 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
10418 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
10419 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
10420 (struct c_typespec): Add elements expr and expr_const_operands.
10421 (struct c_declspecs): Add elements expr and expr_const_operands.
10422 (groktypename, build_conditional_expr, build_compound_literal):
10423 Update prototypes.
10424 (in_late_binary_op): Declare.
10425 * c-typeck.c (note_integer_operands): New function.
10426 (in_late_binary_op): New variable.
10427 (decl_constant_value_for_broken_optimization): Move to c-common.c
10428 and rename to decl_constant_value_for_optimization.
10429 (default_function_array_conversion): Do not strip nops.
10430 (default_conversion): Do not call
10431 decl_constant_value_for_broken_optimization.
10432 (build_array_ref): Do not fold result.
10433 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
10434 result when operand is a VLA.
10435 (c_expr_sizeof_type): Update call to groktypename. Handle
10436 expressions included in type name. Use C_MAYBE_CONST_EXPR for
10437 result when operand names a VLA type.
10438 (build_function_call): Update call to build_compound_literal.
10439 Only fold result for calls to __builtin_* functions. Strip
10440 NOP_EXPR from INTEGER_CST returned from such functions. Fold
10441 the function designator.
10442 (convert_arguments): Fold arguments. Update call to
10443 convert_for_assignment.
10444 (build_unary_op): Handle increment and decrement of
10445 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
10446 decrement earlier. Fold operand of increment and decrement.
10447 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
10448 built for integer operand. Wrap returns that are INTEGER_CSTs
10449 without being integer constant expressions or that have integer
10450 constant operands without being INTEGER_CSTs.
10451 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
10452 (build_conditional_expr): Add operand ifexp_bcp. Track whether
10453 result is an integer constant expression or can be used in
10454 unevaluated parts of one and avoid folding and wrap as
10455 appropriate. Fold operands before possibly doing -Wsign-compare
10456 warnings.
10457 (build_compound_expr): Wrap result for C99 if operands can be used
10458 in integer constant expressions.
10459 (build_c_cast): Update call to digest_init. Do not ignore
10460 overflow from casting floating-point constants to integers. Wrap
10461 results that could be confused with integer constant expressions,
10462 null pointer constants or floating-point constants.
10463 (c_cast_expr): Update call to groktypename. Handle expressions
10464 included in type name.
10465 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
10466 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
10467 Update calls to convert_for_assignment.
10468 (convert_for_assignment): Take new parameter
10469 null_pointer_constant. Do not strip nops or call
10470 decl_constant_value_for_broken_optimization. Set
10471 in_late_binary_op for conversions to boolean.
10472 (store_init_value): Update call to digest_init.
10473 (digest_init): Take new parameter null_pointer_constant. Do not
10474 call decl_constant_value_for_broken_optimization. pedwarn for
10475 initializers not constant expressions. Update calls to
10476 convert_for_assignment.
10477 (constructor_nonconst): New.
10478 (struct constructor_stack): Add nonconst element.
10479 (really_start_incremental_init, push_init_level, pop_init_level):
10480 Handle constructor_nonconst and nonconst element.
10481 (set_init_index): Call constant_expression_warning for array
10482 designators.
10483 (output_init_element): Fold value. Set constructor_nonconst as
10484 applicable. pedwarn for initializers not constant expressions.
10485 Update call to digest_init. Call constant_expression_warning
10486 where constant initializers are required.
10487 (process_init_element): Use c_save_expr.
10488 (c_finish_goto_ptr): Fold expression.
10489 (c_finish_return): Fold return value. Update call to
10490 convert_for_assignment.
10491 (c_start_case): Fold switch expression.
10492 (c_process_expr_stmt): Fold expression.
10493 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 10494 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
10495 (build_binary_op): Track whether results are integer constant
10496 expressions or may occur in such, disable folding and wrap results
10497 as applicable. Fold operands for -Wsign-compare warnings unless
10498 in_late_binary_op.
10499 (c_objc_common_truthvalue_conversion): Handle results folded to
10500 integer constants that are not integer constant expressions.
10501 * doc/extend.texi: Document when typeof operands are evaluated,
10502 that condition of __builtin_choose_expr is an integer constant
10503 expression, and more about use of __builtin_constant_p in
10504 initializers.
10505
5babbcc0
RG
105062009-03-29 Richard Guenther <rguenther@suse.de>
10507
10508 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
10509 propagate addresses of array references.
10510
0340f2ba
SB
105112009-03-29 Steven Bosscher <steven@gcc.gnu.org>
10512
10513 * regmove.c (perhaps_ends_bb_p): Remove.
10514 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
10515 from INSN and check that the main loop stays within that basic block.
10516 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
10517 (regmove_forward_pass): Split out from regmove_optimize. Use
10518 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
10519 (regmove_backward_pass): Split out from regmove_optimize. Use
10520 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
10521 (regmove_optimize): Simplify.
10522
eeae74a1
L
105232009-03-29 H.J. Lu <hongjiu.lu@intel.com>
10524
10525 PR target/39545
10526 * config/i386/i386.c (classify_argument): Ignore flexible array
10527 member in struct and warn ABI change.
10528
a24078b2
L
105292009-03-29 H.J. Lu <hongjiu.lu@intel.com>
10530
10531 * config/i386/i386-protos.h (ix86_agi_dependent): New.
10532
10533 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
10534 (ix86_adjust_cost): Updated.
10535
a8da523f
JH
105362009-03-29 Jan Hubicka <jh@suse.cz>
10537
10538 PR middle-end/28850
10539 * tree-pass.h (pass_cleanup_eh): New function.
10540 (remove_unreachable_regions): Break code handling RTL
10541 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
10542 that can not be reached by runtime.
10543 (can_be_reached_by_runtime): New function.
10544 (label_to_region_map): New function.
10545 (num_eh_regions): New function.
10546 (rtl_remove_unreachable_regions): New function.
10547 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
10548 (remove_eh_region): New function.
10549 * except.h: Include sbitmap and vecprim.
10550 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
10551 num_eh_regions): Declare.
10552 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 10553 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
10554 * tree-eh.c (tree_remove_unreachable_handlers): New function.
10555 (tree_empty_eh_handler_p): New function.
10556 (cleanup_empty_eh): New function.
10557 (cleanup_eh): New function.
10558 (pass_cleanup_eh): New function.
10559
98f358e5
JH
105602009-03-29 Jan Hubicka <jh@suse.cz>
10561
10562 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
10563 for removed regions.
10564
13a9fa44
JH
105652009-03-29 Jan Hubicka <jh@suse.cz>
10566
10567 * except.c (dump_eh_tree): Dump all datastructures.
10568
e38cf733
JH
105692009-03-29 Jan Hubicka <jh@suse.cz>
10570
10571 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
10572 (duplicate_eh_regions_1): Likewise.
10573 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
10574 vector; call EH verification.
10575 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
10576 Be ready for region being removed.
10577
12802c2b
JH
105782009-03-29 Jan Hubicka <jh@suse.cz>
10579
10580 * bitmap.c (bitmap_last_set_bit): New function.
10581 * bitmap.h (bitmap_last_set_bit): Declare.
10582
4ea80a41
DA
105832009-03-29 David Ayers <ayers@fsfe.org>
10584
10585 PR objc/27377
10586 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
10587 by calling objc_compare_types and surpress warnings about
10588 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 10589
4ea80a41 105902009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
10591
10592 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
10593 call initialize_inline_failed.
10594 (initialize_inline_failed): Move it from here ...
10595 * cgraph.c (initialize_inline_failed): ... to here.
10596 (cgraph_create_edge): Call initialize_inline_failed rather than
10597 setting inline_failed directly.
10598
7fb0ee07
BE
105992009-03-29 Ben Elliston <bje@au.ibm.com>
10600
10601 PR target/32542
10602 * sysv4.opt (msdata): Improve comment.
10603 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
10604 * sysv4.h (SVR4_ASM_SPEC): Likewise.
10605
0be77bf2
BE
106062009-03-29 Ben Elliston <bje@au.ibm.com>
10607
10608 PR target/30451
10609 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
10610 load and store attributes.
10611
593812b6
BE
106122009-03-29 Ben Elliston <bje@au.ibm.com>
10613
10614 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
10615 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
10616 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
10617 * doc/extend.texi (X86 Built-in Functions): Add index entries for
10618 __builtin_infq and __builtin_huge_valq.
10619
8272d11d
AS
106202009-03-28 Anatoly Sokolov <aesok@post.ru>
10621
10622 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
10623 atmega8m1 devices.
10624 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
10625 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
10626
74fe548b
XDL
106272009-03-28 Xinliang David Li <davidxl@google.com>
10628
2ba9daa7 10629 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
10630 (do_dbg_cnt): New function.
10631
33977f81
JH
106322009-03-28 Jan Hubicka <jh@suse.cz>
10633
10634 Merge from pretty-ipa:
10635
10636 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 10637
33977f81
JH
10638 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
10639 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
10640 * passes.c (function_called_by_processed_nodes_p): New.
10641 * ipa-pure-const.c (check_call): Fix handling of operands.
10642 (analyze_function): Dump debug output for skipped bodies.
10643 (local_pure_const): Use function_called_by_processed_nodes_p.
10644 * dwarf2out.c (reference_to_unused): Use output.
10645 * passes.c (do_per_function_toporder): Likewise.
10646
10647 2008-11-12 Jan Hubicka <jh@suse.cz>
10648
10649 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
10650 * ipa-pure-const.c (funct_state_d): Add can throw field; make
10651 state_set_in_source enum
10652 (check_decl): Ignore memory tags; do not set fake looping flags;
10653 dump diagnostics.
10654 (check_operand, check_tree, check_rhs_var, check_lhs_var,
10655 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
10656 (check_call, analyze_function): Rewrite.
10657 (check_stmt): New.
10658 (add_new_function): Update call of analyze_function.
10659 (generate_summary): Add call of analyze_function.
10660 (propagate): Propagate can_throw; handle state_set_in_source correctly.
10661 (local_pure_const): New function.
10662 (pass_local_pure_const): New pass.
10663 * ipa-inline.c (inline_transform): Set after_inlining.
10664 * tree-eh.c (stmt_can_throw_external): New.
10665 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
10666 work with aliasing built.
10667 * tree-flow.h (stmt_can_throw_external): New.
10668 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
10669 and local pure/const pass in early and late optimization queue.
ba20e309 10670
617f3897
MJ
106712009-03-28 Martin Jambor <mjambor@suse.cz>
10672
10673 * fold-const.c (get_pointer_modulus_and_residue): New parameter
10674 allow_func_align.
10675 (fold_binary): Allow function decl aligment consideration is the
10676 second argument is integer constant one.
10677 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
10678 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
10679 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
10680
fe89fbc5
JH
106812009-03-28 Jan Hubicka <jh@suse.cz>
10682
10683 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
10684 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
10685 * function.h (rtl_data): Add nothrow flag.
10686 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
10687 set DECL_NOTHROW for AVAILABLE functions.
10688
574872ff
JJ
106892009-03-28 Jakub Jelinek <jakub@redhat.com>
10690
b3bf8855
JJ
10691 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
10692 following vector keyword has expansion starting with pixel or bool
10693 keyword, expand vector to __vector and pixel or bool to __pixel or
10694 __bool.
10695
574872ff
JJ
10696 PR c++/39554
10697 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
10698 warn_if_disallowed_function_p): Removed.
10699 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
10700 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
10701 warning_if_disallowed_function_p.
10702 * flags.h (warn_if_disallowed_function_p,
10703 warn_disallowed_functions): Removed.
10704 * common.opt (Wdisallowed-function-list=): Removed.
10705 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
10706
b005da11
RG
107072009-03-28 Richard Guenther <rguenther@suse.de>
10708
10709 PR tree-optimization/38723
10710 * tree-ssa-pre.c (compute_avail): Add all default definitions to
10711 the entry block.
10712
1de812a6
JH
107132009-03-28 Jan Hubicka <jh@suse.cz>
10714
10715 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
10716 test introduced by my previous patch.
10717
fbb789d4
RG
107182009-03-28 Richard Guenther <rguenther@suse.de>
10719
10720 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
10721 the PHIs value undefined.
10722
6f1873a1
JH
107232009-03-28 Jan Hubicka <jh@suse.cz>
10724
10725 * tree-pass.h (pass_fixup_cfg): New pass.
10726 * ipa-inline.c (inline_transform): Set
10727 always_inline_functions_inlined/after_inlining.
10728 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
10729 (pass_fixup_cfg): New pass.
10730 * passes.c (init_optimization_passes): Add fixup_cfg.
10731
17021bc8
RG
107322009-03-28 Richard Guenther <rguenther@suse.de>
10733
10734 PR tree-optimization/38458
10735 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
10736 argument use the arguments copy-of value.
10737
e8114fba
RG
107382009-03-28 Richard Guenther <rguenther@suse.de>
10739
10740 PR tree-optimization/38180
10741 * tree-ssa-ccp.c (get_default_value): Simplify.
10742 (likely_value): Likewise.
10743 (surely_varying_stmt_p): Properly handle VOP case.
10744 (ccp_initialize): Likewise.
10745 (ccp_fold): Handle propagating through *&.
10746 (fold_const_aggregate_ref): Also handle decls.
10747
257eb6e3
JH
107482009-03-28 Jan Hubicka <jh@suse.cz>
10749
10750 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
10751 * cgraph.h (cgraph_node): Likewise.
10752 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
10753 (cgraph_reset_node): Use process flag.
10754 (cgraph_mark_functions_to_output): Likewise.
10755 (cgraph_expand_function): Likewise.
10756 (cgraph_expand_all_functions): Likewise.
10757 (cgraph_output_in_order): Likewise.
10758 * dwarf2out.c (reference_to_unused): Likewise.
10759 * passes.c do_per_function_toporder): Likewise.
10760
61a05df1
JH
107612009-03-28 Jan Hubicka <jh@suse.cz>
10762
10763 Bring from lto-branch:
ba20e309 10764
61a05df1
JH
10765 2008-09-03 Doug Kwan <dougkwan@google.com>
10766
10767 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
10768 enums instead of reason strings.
10769 * cgraph.c (cgraph_create_edge): Same.
10770 (cgraph_inline_failed_string): New function.
10771 * cgraph.h (cgraph_inline_failed_t): New enum type.
10772 (cgraph_inline_failed_string): New prototype.
10773 (struct cgraph_edge): Change type of INLINED_FAILED from constant
10774 char pointer to cgraph_inline_failed_t.
10775 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
10776 (cgraph_default_inline_p): Ditto.
60839f5d 10777 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
10778 to cgraph_inline_failed_t pointer.
10779 * cif-code.def: New file.
10780 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
10781 reason string.
10782 (cgraph_check_inline_limits): Change type of REASON to pointer to
10783 cgraph_inline_failed_t. Replace reason strings with enums.
10784 (cgraph_default_inline_p): Ditto.
10785 (cgraph_recursive_inlining_p): Ditto.
10786 (update_caller_keys): Change type of FAILED_REASON to
10787 cgraph_inline_failed_t.
10788 (cgraph_set_inline_failed): Change type of REASON to pointer to
10789 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
10790 convert enums to strings for text output.
10791 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
10792 to be of type cgraph_inline_failed_t. Replace reason strings with
10793 enums. Call cgraph_inline_failed_string to covert enums
10794 to strings for text output.
10795 (cgraph_decide_inlining): Replace reason strings with enums.
10796 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
10797 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
10798 for text output.
10799 * tree-inline.c (expand_call_inline): Change type of REASON
10800 to cgraph_inline_failed_t. Replace reason strings with enums.
10801 Call cgraph_inline_failed_string for text output.
10802 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
10803 (cgraph.o): Ditto.
10804
144e8aac
JH
108052009-03-28 Jan Hubicka <jh@suse.cz>
10806
10807 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
10808 cgraph_clone_node): Remove master clone handling.
10809 (cgraph_is_master_clone, cgraph_master_clone): Remove.
10810 * cgraph.h (master_clone): Remove.
10811 (cgraph_is_master_clone, cgraph_master_clone): Remove.
10812 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
10813 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
10814
4a371c8d
JH
108152009-03-28 Jan Hubicka <jh@suse.cz>
10816
10817 * cgraph.c (cgraph_function_body_availability): Functions declared
10818 inline are always safe to assume that it is not going to be replaced.
10819
6cdb0ee3
RG
108202009-03-28 Richard Guenther <rguenther@suse.de>
10821
10822 PR tree-optimization/38513
10823 * tree-ssa-pre.c (eliminate): Remove redundant stores.
10824 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
10825 EXC_PTR_EXPR and FILTER_EXPR.
10826 (get_ref_from_reference_ops): Likewise.
10827
8ca1fd76
RG
108282009-03-28 Richard Guenther <rguenther@suse.de>
10829
10830 PR tree-optimization/38968
10831 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
10832 Use FLOOR_MOD_EXPR to compute misalignment.
10833
a254e44d
RG
108342009-03-28 Richard Guenther <rguenther@suse.de>
10835
10836 PR tree-optimization/37795
10837 * tree.h (combine_comparisons): Declare.
10838 * fold-const.c (combine_comparisons): Export.
10839 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
10840 comparisons.
10841 (ifcombine_iforif): Use combine_comparisons.
10842
a8ee227c
JH
108432009-03-28 Jan Hubicka <jh@suse.cz>
10844
10845 * tree-eh.c (inlinable_call_p): New function.
10846 (make_eh_edges): Use it.
10847 (verify_eh_edges): Use it.
10848 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
10849 * except.c (reachable_next_level): Add inlinable_function argument
10850 (sjlj_find_directly_reachable_regions): Update.
10851 (add_reachable_handler): Do not set saw_any_handlers.
10852 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
10853 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
10854 Add new inlinable call parameter.
10855 (can_throw_internal, can_throw_external): Update.
10856 * except.h (can_throw_internal_1, can_throw_external_1,
10857 foreach_reachable_handler): Update declaration.
10858
52c0e446
JM
108592009-03-28 Joseph Myers <joseph@codesourcery.com>
10860
10861 * config/arm/t-arm-coff, config/h8300/coff.h,
10862 config/i386/i386-aout.h, config/i386/i386-coff.h,
10863 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
10864 config/pdp11/2bsd.h, config/rs6000/aix41.h,
10865 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
10866 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
10867 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
10868 sys-types.h: Remove.
10869 * Makefile.in: Remove protoize and fixproto support and references
10870 in comments.
10871 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
10872 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
10873 Remove.
10874 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
10875 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
10876 unprotoize$(exeext).
10877 (rest.encap): Don't depend on $(STMP_FIXPROTO)
10878 (.PHONY): Don't depend on proto.
10879 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
10880 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
10881 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
10882 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
10883 build/gen-protos.o, build/scan.o, xsys-protos.h,
10884 build/fix-header$(build_exeext), build/fix-header.o,
10885 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
10886 stmp-install-fixproto): Remove.
10887 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
10888 SYSCALLS.c or fixproto files.
10889 (install-common): Don't install protoize.
10890 (install-headers-tar, install-headers-cpio, install-headers-cp):
10891 Don't depend on $(STMP_FIXPROTO).
10892 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
10893 install fixproto files or write out fixproto settings.
10894 (uninstall): Don't uninstall protoize.
10895 * config.gcc (use_fixproto): Remove.
10896 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
10897 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
10898 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
10899 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
10900 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
10901 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
10902 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
10903 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
10904 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
10905 * config/t-vxworks (STMP_FIXPROTO): Remove.
10906 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
10907 STMP_FIXPROTO): Remove.
10908 * config.in, configure: Regenerate.
10909 * crtstuff.c (gid_t, uid_t): Don't undefine.
10910 * doc/install.texi: Change m68k-coff to m68k-elf in example.
10911 (arm-*-coff, arm-*-aout: Remove target entries.
10912 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
10913 Remove mention of AIX 4.1.
10914 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
10915 * doc/invoke.texi (Running Protoize): Remove.
10916 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
10917 (Protoize Caveats): Remove.
10918 * tsystem.h: Update comments on headers assumed to exist.
10919
20a07f44
VM
109202009-03-27 Vladimir Makarov <vmakarov@redhat.com>
10921
10922 * genautomata.c: Add a new year to the copyright. Add a new
10923 reference.
10924 (struct insn_reserv_decl): Add comments for member bypass_list.
10925 (find_bypass): Remove.
10926 (insert_bypass): New.
10927 (process_decls): Use insert_bypass.
10928 (output_internal_insn_latency_func): Output all bypasses with the
10929 same input insn in one switch case.
10930
10931 * rtl.def (define_bypass): Describe bypass choice.
10932 * doc/md.texi (define_bypass): Ditto.
10933
3a0d06c1
RB
109342009-03-27 Richard Guenther <rguenther@suse.de>
10935
10936 * gimplify.c (mark_addressable): Export.
10937 * tree-flow.h (mark_addressable): Declare.
10938 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
10939 * tree-ssa.c (verify_phi_args): Verify that address taken
10940 variables have TREE_ADDRESSABLE set.
10941
109422009-03-27 Richard Guenther <rguenther@suse.de>
10943
10944 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
10945 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
10946 Do not mark decls TREE_ADDRESSABLE.
10947 (build_fold_addr_expr): Adjust.
10948 (fold_addr_expr): Remove.
10949 (fold_unary): Use build_fold_addr_expr.
10950 (fold_comparison): Likewise.
10951 (split_address_to_core_and_offset): Likewise.
10952 * coverage.c (tree_coverage_counter_addr): Mark the array decl
10953 TREE_ADDRESSABLE.
10954 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
10955 (gimplify_modify_expr_to_memcpy): Mark source and destination
10956 addressable.
10957 * omp-low.c (create_omp_child_function): Mark the object decl
10958 TREE_ADDRESSABLE.
10959 (lower_rec_input_clauses): Mark the var we take the address of
10960 TREE_ADDRESSABLE.
10961 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
10962
2ac26e15
L
109632009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10964
10965 PR middle-end/39315
10966 * cfgexpand.c (expand_one_stack_var_at): Change alignment
10967 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
10968
472c7fbd
RG
109692009-03-27 Richard Guenther <rguenther@suse.de>
10970
10971 PR tree-optimization/39120
10972 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
10973 constraints.
10974 (handle_lhs_call): Process return constraints. Add escape
10975 constraints if necessary.
10976 (handle_const_call): Fill out return constraints. Make nested
10977 case more precise. Avoid consttmp if possible.
10978 (handle_pure_call): Fill out return constraints. Avoid
10979 callused if possible.
10980 (find_func_aliases): Simplify call handling.
10981
109822009-03-27 Richard Guenther <rguenther@suse.de>
10983
10984 PR tree-optimization/39120
10985 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
10986 as a representative.
10987 (solve_graph): Do propagate CALLUSED.
10988 (handle_pure_call): Use a scalar constraint from CALLUSED for
10989 the return value.
10990 (find_what_p_points_to): CALLUSED shall not appear in poins-to
10991 solutions.
10992
d9223014
L
109932009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10994
10995 PR c/39323
10996 * c-common.c (handle_aligned_attribute): Properly check alignment
10997 overflow. Use (1U << i) instead of (1 << i).
10998
ba20e309 10999 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
11000
11001 * expr.h (get_mem_align_offset): Updated.
11002
11003 * tree.h (tree_decl_common): Change align to "unsigned int" and
11004 move it before pointer_alias_set.
11005
689b689c
L
110062009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11007 Jakub Jelinek <jakub@redhat.com>
11008
11009 PR target/38034
11010 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
11011 gr_register_operand with gr_reg_or_0_operand.
11012 (cmpxchg_rel_di): Likewise.
11013 (sync_lock_test_and_set<mode>): Likewise.
11014
c619e982
L
110152009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11016
11017 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
11018 (true_regnum): Likewise.
11019
11020 * rtlanal.c (subreg_info): Moved to ...
11021 * rtl.h (subreg_info): Here. New.
11022 (subreg_get_info): New.
11023
11024 * rtlanal.c (subreg_get_info): Make it extern.
11025
51212b32
L
110262009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11027
11028 PR target/39472
11029 * config/i386/i386.c (ix86_abi): New.
11030 (override_options): Handle -mabi=.
ba20e309 11031 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
11032 (ix86_call_abi_override): Likewise.
11033 (init_cumulative_args): Likewise.
11034 (function_arg_advance): Likewise.
11035 (function_arg_64): Likewise.
11036 (function_arg): Likewise.
11037 (ix86_pass_by_reference): Likewise.
11038 (ix86_function_value_regno_p): Likewise.
11039 (ix86_build_builtin_va_list_abi): Likewise.
11040 (setup_incoming_varargs_64): Likewise.
11041 (is_va_list_char_pointer): Likewise.
11042 (ix86_init_machine_status): Likewise.
ba20e309 11043 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
11044 (ix86_function_type_abi): Return enum calling_abi. Rewrite
11045 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 11046 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
11047 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
11048 with ix86_abi.
11049 (ix86_fn_abi_va_list): Updated.
11050
11051 * config/i386/i386.h (ix86_abi): New.
11052 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
11053 (CONDITIONAL_REGISTER_USAGE): Likewise.
11054 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
11055 (machine_function): Likewise.
11056
11057 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
11058 with ix86_abi.
11059 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
11060 (STACK_BOUNDARY): Likewise.
11061 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
11062
11063 * config/i386/i386.opt (mabi=): New.
11064
11065 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
11066 return enum calling_abi.
11067 (ix86_function_type_abi): Likewise.
11068 (ix86_function_abi): Removed.
11069
11070 * doc/invoke.texi: Document -mabi= option for x86.
11071
7338ea63
KG
110722009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11073
11074 * builtins.c (real_dconstp): Delete.
11075 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
11076
68599f33
DS
110772009-03-27 Dodji Seketeli <dodji@redhat.com>
11078 Jakub Jelinek <jakub@redhat.com>
11079
11080 PR debug/37959
11081 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
11082 (gen_subprogram_die): When a function is explicit, generate the
11083 DW_AT_explicit attribute.
11084 * langhooks.h (struct lang_hooks_for_decls): Add
11085 function_decl_explicit_p langhook.
11086 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
11087 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
11088
9f5e9983
JJ
110892009-03-27 Jakub Jelinek <jakub@redhat.com>
11090
64d7685c
JJ
11091 * builtins.c (fold_builtin_memory_op): Optimize memmove
11092 into memcpy if we can prove source and destination don't overlap.
11093
9f5e9983
JJ
11094 * tree-inline.c: Include gt-tree-inline.h.
11095 (clone_fn_id_num): New variable.
11096 (clone_function_name): New function.
11097 (tree_function_versioning): Use it.
11098 * Makefile.in (GTFILES): Add tree-inline.c.
11099
e54d52a8
MM
111002009-03-27 Mark Mitchell <mark@codesourcery.com>
11101
11102 * BASE-VER: Change to 4.5.0.
11103
e9d51dc6
XDL
111042009-03-27 Xinliang David Li <davidxl@google.com>
11105
11106 PR tree-optimization/39557
11107 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
11108
4577cea1
XDL
111092009-03-27 Xinliang David Li <davidxl@google.com>
11110
11111 PR tree-optimization/39548
2ba9daa7 11112 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
11113 candidate check.
11114
0f7464f4
L
111152009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11116
11117 * c-common.c (pointer_int_sum): Use %wd on return from
11118 tree_low_cst.
11119
a8847a7f
L
111202009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11121
11122 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
11123 on return from tree_low_cst.
11124
b0957daf
AP
111252009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
11126
11127 PR c++/36799
ba20e309
UB
11128 * ginclude/stdarg.h (va_copy): Define also for
11129 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 11130
a5f805df
MLI
111312009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
11132
11133 PR c++/35652
11134 * builtins.h (c_strlen): Do not warn here.
11135 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
11136 * c-common.c (pointer_int_sum): Take an explicit location.
11137 Warn about offsets out of bounds.
11138 * c-common.h (pointer_int_sum): Adjust declaration.
11139
6f401211
RW
111402009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11141
a5f805df
MLI
11142 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
11143 markup glitch.
6f401211 11144
5a59b39e
JJ
111452009-03-26 Jakub Jelinek <jakub@redhat.com>
11146
11147 PR c++/39554
11148 * opts.c (warn_if_disallowed_function_p): Don't assume
11149 get_callee_fndecl must return non-NULL.
11150
d5f89b53
VM
111512009-03-26 Vladimir Makarov <vmakarov@redhat.com>
11152
11153 PR rtl-optimization/39522
11154 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
11155 when reg_reloaded_valid is set.
11156
61238a79
UW
111572009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11158
11159 * config/spu/divv2df3.c: New file.
11160 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
11161 (DPBIT_FUNCS): Filter out _div_df.
11162
03f8829b
BS
111632009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
11164
11165 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
11166 a jump insn, count that jump in the distance to the loop start.
11167
9fdcdc74
KK
111682009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
11169
11170 PR target/39523
11171 * config/sh/sh.c (calc_live_regs): Fix condition for global
11172 registers except PIC_OFFSET_TABLE_REGNUM.
11173
46994828
KT
111742009-03-25 Kai Tietz <kai.tietz@onevision.com>
11175
11176 PR/39518
11177 * doc/invoke.texi (-mconsole): New.
11178 (-mcygwin): New.
11179 (-mno-cygwin): New.
11180 (-mdll): New.
11181 (-mnop-fun-dllimport): New.
11182 (-mthread): New.
11183 (-mwin32): New.
11184 (-mwindows): New.
11185 (sub section "i386 and x86-64 Windows Options"): New.
11186
60839f5d 111872009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
11188
11189 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
11190 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
11191
ae560440
RG
111922009-03-25 Richard Guenther <rguenther@suse.de>
11193
11194 PR middle-end/39497
11195 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
11196 of -Wno-error.
11197
cd510f15
AM
111982009-03-25 Andrey Belevantsev <abel@ispras.ru>
11199
11200 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
11201 neither of haifa/selective schedulers are working.
11202
44ab0f0e
RW
112032009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11204
11205 * doc/invoke.texi (Debugging Options): Fix description of
11206 -fno-merge-debug-strings.
11207
ad9646c7
HPN
112082009-03-24 Hans-Peter Nilsson <hp@axis.com>
11209
e6142656
HPN
11210 * config/cris/libgcc.ver: New version-script.
11211 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
11212
ad9646c7
HPN
11213 * configure.ac <GAS features, nop mnemonic>: Add pattern
11214 crisv32-*-* for "nop".
ba20e309 11215 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
11216 * configure: Regenerate.
11217
09ac4473
IR
112182009-03-24 Ira Rosen <irar@il.ibm.com>
11219
11220 PR tree-optimization/39529
11221 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
11222 mark_sym_for_renaming for the tag copied to the new vector
11223 pointer.
11224
d94a427e
AL
112252009-03-24 Arthur Loiret <aloiret@debian.org>
11226
ba20e309 11227 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
11228 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
11229 EXTRA_SPEC_FUNCTIONS.
11230 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
11231 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
11232 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
11233 -march and -mtune options.
11234
60839f5d 112352009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
11236
11237 * config/m68k/t-rtems: Add m5329 multilib.
11238
603f5959
DS
112392009-03-24 Dodji Seketeli <dodji@redhat.com>
11240 Jakub Jelinek <jakub@redhat.com>
11241
11242 PR debug/39524
11243 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
11244 nodes.
11245
c5cdb03f
JJ
112462009-03-23 Jakub Jelinek <jakub@redhat.com>
11247
11248 PR c/39495
11249 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
11250 instead of c_parser_expression_conv, if original_code isn't one of the
11251 4 allowed comparison codes, fail.
11252
3691626c
RG
112532009-03-23 Richard Guenther <rguenther@suse.de>
11254
11255 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
11256 * tree.h (struct tree_type): Likewise.
11257 * reload.h (struct insn_chain): Likewise.
11258 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
11259 * function.h (struct function): Likewise.
11260 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
11261
88ccb72a
JJ
112622009-03-23 Jakub Jelinek <jakub@redhat.com>
11263
11264 PR tree-optimization/39516
11265 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
11266
60839f5d 112672009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 11268
2ba9daa7 11269 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
11270 should be set true if BITS_PER_WORD of target is bigger than 32
11271
f82162f8
HPN
112722009-03-22 Hans-Peter Nilsson <hp@axis.com>
11273
11274 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
11275 Translate -B-options to -rpath-link. Correct existing
11276 rpath-link and conditionalize on !nostdlib.
11277
048fd785
RW
112782009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11279
11280 * doc/extend.texi (Function Attributes, Variable Attributes):
11281 Fix typos.
11282 * doc/invoke.texi (Debugging Options, Optimize Options)
11283 (i386 and x86-64 Options, MCore Options): Likewise.
11284
6e75c1a9
JJ
112852009-03-20 Jakub Jelinek <jakub@redhat.com>
11286
11287 PR debug/37890
11288 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
11289 it for block local namespace aliases.
11290 (gen_decl_die): Pass context_die to gen_namespace_die.
11291
ea1199ee
JJ
112922009-03-19 Jakub Jelinek <jakub@redhat.com>
11293
11294 PR c/39495
11295 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
11296 minimum or maximum value.
11297
58929c10
AO
112982009-03-19 Alexandre Oliva <aoliva@redhat.com>
11299
11300 * reginfo.c (globalize_reg): Recompute derived reg sets.
11301
60839f5d 113022009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
11303
11304 PR target/39063
11305 * libgcc2.c (mprotect): Do not use signed arguments for
11306 VirtualProtect, use DWORD arguments. Also fix the 'may
11307 be used uninitialized' warning for the np variable.
11308
f57c2f04
JJ
113092009-03-19 Jakub Jelinek <jakub@redhat.com>
11310
11311 PR target/39496
11312 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
11313 functions using regparm calling conventions when not optimizing.
11314 (ix86_function_sseregparm): Similarly for sseregparm calling
11315 conventions.
11316
9e517d61
LF
113172009-03-19 Li Feng <nemokingdom@gmail.com>
11318
11319 PR middle-end/39500
11320 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
11321 dependence if the first conflict is after niter iterations.
11322
8ef20026
HPN
113232009-03-19 Hans-Peter Nilsson <hp@axis.com>
11324
11325 PR middle-end/38609
11326 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
11327 functions with dynamic stack-pointer adjustments.
11328
64e4a1a6
BE
113292009-03-19 Ben Elliston <bje@au.ibm.com>
11330
11331 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
11332 option; change to -msdata=data.
11333
9a0f3e86
RW
113342009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11335
11336 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
11337 and -fopenmp.
11338
09bc5979
EB
113392009-03-18 Eric Botcazou <ebotcazou@adacore.com>
11340
11341 PR target/35180
11342 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
11343
332459cd
SL
113442009-03-18 Sandra Loosemore <sandra@codesourcery.com>
11345
11346 * doc/invoke.texi (Code Gen Options): Expand discussion of
11347 -fno-common.
11348
8f5929e1
JJ
113492009-03-18 Jakub Jelinek <jakub@redhat.com>
11350
11351 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
11352 * matrix-reorg.c (struct matrix_info): Likewise.
11353 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
11354 * rtl.h (struct mem_attrs): Likewise.
11355 * df.h (struct df): Likewise.
11356 * tree-data-ref.h (struct data_dependence_relation): Likewise.
11357 * ira-int.h (struct ira_allocno): Likewise.
11358 * df-scan.c (struct df_collection_rec): Likewise.
11359 * ira.c (struct equivalence): Likewise.
11360 * function.c (struct temp_slot): Likewise.
11361 * cfgloop.h (struct loop): Likewise.
11362
d130d647
JJ
11363 PR debug/39485
11364 * function.c (use_register_for_decl): When not optimizing, disregard
11365 register keyword for variables with types containing methods.
11366
9968d233
SP
113672009-03-18 Sebastian Pop <sebastian.pop@amd.com>
11368
11369 PR middle-end/39447
11370 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
11371 (is_simple_operand): Call contains_component_ref_p before calling data
11372 reference analysis that would fail on COMPONENT_REFs.
11373
11374 * tree-vrp.c (search_for_addr_array): Fix formatting.
11375
69484bfd
RG
113762009-03-18 Richard Guenther <rguenther@suse.de>
11377
11378 * tree-vect-transform.c (vect_loop_versioning): Fold the
11379 generated comparisons.
11380 * tree-vectorizer.c (set_prologue_iterations): Likewise.
11381 (slpeel_tree_peel_loop_to_edge): Likewise.
11382
66811228
RW
113832009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11384
0631b69f
RW
11385 PR middle-end/37805
11386 * opts.c (print_specific_help): In addition to `undocumented',
11387 accept `separate' and `joined' flags if passed alone. Describe
11388 output by the first matched one of those.
11389 (common_handle_option): Skip over empty strings.
11390 * gcc.c (display_help): Fix help string for `--help='.
11391 * doc/invoke.texi (Option Summary, Overall Options): With
11392 `--help=', classes and qualifiers can both be repeated, but
11393 only the latter can be negated. One should not pass only
11394 negated qualifiers. Fix markup and examples.
11395
66811228
RW
11396 Revert
11397 2008-10-14 Jakub Jelinek <jakub@redhat.com>
11398 PR middle-end/37805
11399 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
11400 and -fhelp=separate.
11401
3c072c6b
JY
114022009-03-17 Jing Yu <jingyu@google.com>
11403
11404 PR middle-end/39378
80c65208
JY
11405 * function.h (struct rtl_data): Move is_thunk from here...
11406 (struct function): ...to here.
11407 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
11408 * varasm.c (assemble_start_function): Change is_thunk from crtl to
11409 cfun.
80c65208
JY
11410 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
11411 cfun.
11412 (alpha_does_function_need_gp, alpha_start_function): Likewise.
11413 (alpha_output_function_end_prologue): Likewise.
11414 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
11415 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
11416 (rs6000_output_function_epilogue): Likewise.
11417 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 11418
9ade279b
UB
114192009-03-17 Uros Bizjak <ubizjak@gmail.com>
11420
11421 PR target/39482
11422 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
11423 from different units in a single alternative.
11424 (*truncdfsf_i387): Ditto.
11425 (*truncxfsf2_mixed): Ditto.
11426 (*truncxfdf2_mixed): Ditto.
11427
16e60c17
JJ
114282009-03-17 Jakub Jelinek <jakub@redhat.com>
11429
98381eb4
JJ
11430 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
11431 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
11432
df5deb18
JJ
11433 PR debug/39474
11434 * tree-ssa-live.c (remove_unused_locals): Don't remove local
11435 unused non-artificial variables when not optimizing.
11436
a3f596ba
JJ
11437 PR debug/39471
11438 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
11439 DW_TAG_imported_module even if decl is IMPORTED_DECL with
11440 NAMESPACE_DECL in its DECL_INITIAL.
11441
6b2b8871
JJ
11442 PR middle-end/39443
11443 * optabs.c (set_user_assembler_libfunc): New function.
11444 * expr.h (set_user_assembler_libfunc): New prototype.
11445 * c-common.c: Include libfuncs.h.
11446 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
11447 for memcmp, memset, memcpy, memmove and abort.
11448 * Makefile.in (c-common.o): Depend on libfuncs.h.
11449
16e60c17
JJ
11450 PR debug/39412
11451 * dwarf2out.c (gen_inlined_enumeration_type_die,
11452 gen_inlined_structure_type_die, gen_inlined_union_type_die,
11453 gen_tagged_type_instantiation_die): Removed.
11454 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
11455 do nothing.
11456
4d936aca
JJ
114572009-03-17 Janis Johnson <janis187@us.ibm.com>
11458
11459 PR testsuite/38526
11460 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
11461 its use.
11462 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
11463 (check-parallel-%): Ditto.
11464 (check-consistency): Ditto.
11465
4e9b2e50
KT
114662009-03-17 Kai Tietz <kai.tietz@onevision.com>
11467
11468 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
11469 local variable rhs by NULL_TREE.
11470
21440b2d
L
114712009-03-17 H.J. Lu <hongjiu.lu@intel.com>
11472
11473 PR target/39477
9ade279b 11474 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 11475
d8905c6a
L
114762009-03-17 H.J. Lu <hongjiu.lu@intel.com>
11477
11478 PR target/39476
9ade279b 11479 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
11480
114812009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
11482
11483 PR target/39473
11484 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
11485 for ms->sysv ABI calls only in 64bit mode.
11486
11487 * config/i386/i386.md (untyped_call): Support 32bit.
11488
cdcabece
L
114892009-03-16 H.J. Lu <hongjiu.lu@intel.com>
11490
11491 * doc/extend.texi: Replace x86_65 with x86_64.
11492
97b4ba9f
JJ
114932009-03-16 Jakub Jelinek <jakub@redhat.com>
11494
11495 PR tree-optimization/39455
11496 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
11497 mismatches for POINTER_TYPE_P (type).
11498 (number_of_iterations_le): Likewise.
11499
60839f5d 115002009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
11501
11502 * config/picochip/picochip.c: Removed profiling support.
11503 * config/picochip/picochip.md: Removed profiling instruction.
11504 * config/picochip/picochip.h: Removed profiling builtin.
11505
f38095f3
JM
115062009-03-16 Joseph Myers <joseph@codesourcery.com>
11507
11508 * doc/install.texi (--with-host-libstdcxx): Document.
11509
2cb4817b
AS
115102009-03-14 Anatoly Sokolov <aesok@post.ru>
11511
11512 PR target/34299
11513 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
11514 generate a warning if the function name does not begin with
11515 "__vector" and the function has either the 'signal' or 'interrupt'
11516 attribute, from here to ...
11517 (avr_declare_function_name): ...here. New function.
11518 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
11519 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
11520
39b2ac74
JJ
115212009-03-14 Jakub Jelinek <jakub@redhat.com>
11522
11523 PR bootstrap/39454
11524 * cse.c (fold_rtx): Don't modify original const_arg1 when
11525 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
11526 separate variable instead.
11527 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
11528 from out of range shift counts.
11529 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
11530
ad41bd84 115312009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 11532
60839f5d 11533 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
11534 diagnostic.h with $(DIAGNOSTIC_H).
11535
ad41bd84 115362009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
11537
11538 PR target/39431
11539 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
11540 predicate.
11541 * config/i386/sync.md (sync_compare_and_swap<mode>,
11542 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
11543 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
11544 into a register.
11545 (sync_double_compare_and_swapdi_pic,
11546 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
11547 cmpxchg8b_pic_memory_operand instead of just memory_operand.
11548
122c59c7
L
115492009-03-12 H.J. Lu <hongjiu.lu@intel.com>
11550
11551 PR target/39445
9ade279b 11552 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 11553
cec8874f
L
115542009-03-12 H.J. Lu <hongjiu.lu@intel.com>
11555
11556 PR target/39327
11557 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
11558 (avx_addsubv4df3): Likewise.
11559 (*avx_addsubv4sf3): Likewise.
11560 (sse3_addsubv4sf3): Likewise.
11561
bbb52802
L
115622009-03-12 H.J. Lu <hongjiu.lu@intel.com>
11563
11564 PR target/38824
9ade279b 11565 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 11566
a812fb07
VM
115672009-03-12 Vladimir Makarov <vmakarov@redhat.com>
11568
11569 PR debug/39432
11570 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
11571 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
11572 registers for allocnos created from user-defined variables.
11573
4caab5ba
UW
115742009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11575
11576 PR target/39181
11577 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
11578 of non-integer mode as well.
11579
498e51ca
AN
115802009-03-11 Adam Nemet <anemet@caviumnetworks.com>
11581
11582 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
11583 for functions for which the parameter types are unknown.
11584
9bfaf89d
JJ
115852009-03-11 Jakub Jelinek <jakub@redhat.com>
11586
11587 PR target/39137
9ade279b 11588 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
11589 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
11590 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
11591 * config/i386/i386.c (ix86_local_alignment): For
11592 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
11593 long long variables on the stack to avoid dynamic realignment.
11594 Allow the first argument to be a decl rather than type.
11595 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
11596
18a3bdcb
NC
115972009-03-11 Nick Clifton <nickc@redhat.com>
11598
11599 PR target/5362
40190a76
NC
11600 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
11601 options.
11602 Add description to mno-lsim option.
11603 * config/mcore/mcore.h: Remove comment about deprecated m4align
11604 option.
11605 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
11606 * doc/invoke.texi: Add description of mno-lsim and
11607 mstack-increment options.
11608
18a3bdcb
NC
11609 * config/fr30/fr30.opt: Document the -mno-lsim option.
11610 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
11611 and -mno-lsim options.
11612
dc215785
UW
116132009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11614
11615 * fold-const.c (fold_comparison): Only call fold_inf_compare
11616 if the mode supports infinities.
11617
7716876b
JM
116182009-03-11 Jason Merrill <jason@redhat.com>
11619
11620 PR debug/39086
11621 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
11622 end already did. Notice GIMPLE_CALL modifications of the result.
11623 Don't copy debug information from an ignored decl or a decl from
11624 another function.
11625
ddef83d2
RG
116262009-03-10 Richard Guenther <rguenther@suse.de>
11627 Nathan Froyd <froydnj@codesourcery.com>
11628
11629 PR middle-end/37850
9ade279b 11630 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
11631 (__divMODE3): Likewise.
11632
9a9ba8d9
JJ
116332009-03-09 Jakub Jelinek <jakub@redhat.com>
11634
11635 PR tree-optimization/39394
11636 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
11637 DECL_SIZE_UNIT of variable length FIELD_DECLs.
11638
929b7fc3
AK
116392009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11640
11641 * recog.c (verfiy_changes): Disallow renaming of hard regs in
11642 inline asms for register asm ("") declarations.
11643
1803581d
EB
116442009-03-09 Eric Botcazou <ebotcazou@adacore.com>
11645
11646 * fold-const.c (fold_unary): Fix comment.
11647
8454d27e
JH
116482009-03-07 Jan Hubicka <jh@suse.cz>
11649
11650 PR target/39361
969a5433
JJ
11651 * tree-inline.c (setup_one_parameter): Do replacement of const
11652 argument by constant in SSA form.
8454d27e 11653
3a695389
UW
116542009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11655
11656 PR middle-end/38028
11657 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
11658 determine alignment passed to assign_stack_local.
11659 (assign_parms_unsplit_complex): Likewise.
11660 * except.c (sjlj_build_landing_pads): Likewise.
11661
9f0e7885
JJ
116622009-03-06 Jakub Jelinek <jakub@redhat.com>
11663
65401a0b
JJ
11664 PR middle-end/39360
11665 * tree-flow.h (add_referenced_var): Return bool instead of void.
11666 * tree-dfa.c (add_referenced_var): Return result of
11667 referenced_var_check_and_insert call.
11668 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
11669 of referenced_var_check_and_insert.
11670
9f0e7885 11671 PR debug/39372
9ade279b 11672 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
11673 (gen_variable_die): Emit DW_AT_location on abstract static variable's
11674 DIE, don't emit it if abstract origin already has it.
11675 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
11676 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
11677
3b664bd1
JBG
116782009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
11679
ba20e309 11680 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
11681 detection.
11682 (write_tm_constrs_h): Indent generated code.
11683
d8f8ca80
RR
116842009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11685
11686 * doc/extend.texi (Function Attributes): Add documentation
11687 for isr attributes.
11688
6c3d550c
JJ
116892009-03-06 Jakub Jelinek <jakub@redhat.com>
11690
11691 PR debug/39387
11692 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
11693 take locus from its DECL_SOURCE_LOCATION instead of input_location.
11694
f9e96751
BS
116952009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
11696
11697 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
11698 the loop as bad.
11699
ee0ee7e2
JJ
117002009-03-05 Jakub Jelinek <jakub@redhat.com>
11701
11702 PR debug/39379
11703 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
11704 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
11705
6c6094f1
UB
117062009-03-05 Uros Bizjak <ubizjak@gmail.com>
11707
11708 * config/i386/i386.md (R8_REG, R9_REG): New constants.
11709 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
11710 constants instead of magic numbers.
11711 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
11712 (QI_REG_P): Ditto.
11713 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
11714 (x86_64_ms_abi_int_parameter_registers): Ditto.
11715 (x86_64_int_return_registers): Ditto.
09f8a8d3 11716 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
11717 (ix86_expand_call): Ditto for clobbered_registers array.
11718 (ix86_hard_regno_mode_ok): Ditto.
11719 (x86_extended_QIreg_mentioned_p): Ditto.
11720
b267bd41
R
117212009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
11722
6c6094f1 11723 PR tree-optimization/39349
1f3ad3f0
R
11724 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
11725
b267bd41
R
11726 * combine.c (gen_lowpart_for_combine): Use omode when generating
11727 clobber.
11728
1242bc9d
R
117292009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
11730
6c6094f1 11731 PR rtl-optimization/39235
1242bc9d
R
11732 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
11733
48f03606
ZD
117342009-03-04 Zdenek Dvorak <ook@ucw.cz>
11735
11736 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
11737
b505e785
RG
117382009-03-04 Richard Guenther <rguenther@suse.de>
11739
11740 PR tree-optimization/39362
11741 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
11742 that occur in abnormal PHIs should be varying.
11743
f017bf5e
ZD
117442009-03-04 Zdenek Dvorak <ook@ucw.cz>
11745
11746 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
11747 Extend comments.
11748 (simple_iv): Take loop as an argument instead of statement.
11749 * tree-scalar-evolution.h (simple_iv): Declaration changed.
11750 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
11751 to simple_iv.
11752 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
11753 Ditto.
11754 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
11755 * matrix-reorg.c (analyze_transpose): Ditto.
11756 * tree-data-ref.c (dr_analyze_innermost): Ditto.
11757 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
11758 * tree-predcom.c (ref_at_iteration): Ditto.
11759 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
11760
6a66f28e
RG
117612009-03-04 Richard Guenther <rguenther@suse.de>
11762
11763 PR tree-optimization/39358
11764 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
11765 escaped_id and callused_id.
11766 (solve_graph): Likewise.
11767
57e454ee
RG
117682009-03-04 Richard Guenther <rguenther@suse.de>
11769
11770 PR tree-optimization/39339
11771 * tree-sra.c (try_instantiate_multiple_fields): Make it
11772 no longer ICE on the above.
11773
a6fe9ed4
JM
117742009-03-03 Joseph Myers <joseph@codesourcery.com>
11775
11776 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
11777 that fits within Pmode.
11778
dc672951
SE
117792009-03-03 Steve Ellcey <sje@cup.hp.com>
11780
11781 PR middle-end/10109
11782 * tm.texi (LIBCALL_VALUE): Update description.
11783
8b9d598f
SE
117842009-03-03 Steve Ellcey <sje@cup.hp.com>
11785
11786 PR middle-end/34443
11787 * doc/extend.texi (section): Update description.
11788
13e4e36e
L
117892009-03-03 H.J. Lu <hongjiu.lu@intel.com>
11790
11791 PR middle-end/39345
11792 * tree-inline.c (remapped_type): New.
11793 (can_be_nonlocal): Call remapped_type instead of remap_type.
11794
067dd3c9
JJ
117952009-03-03 Jakub Jelinek <jakub@redhat.com>
11796
11797 PR fortran/39354
11798 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
11799 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
11800
9bd9f738
RG
118012009-03-03 Richard Guenther <rguenther@suse.de>
11802
11803 PR middle-end/39272
11804 * tree.c (tree_nonartificial_location): New function.
11805 * tree.h (tree_nonartificial_location): Declare.
11806 * builtins.c (expand_builtin_memory_chk): Provide location
11807 of the call location for artificial function pieces.
11808 (maybe_emit_chk_warning): Likewise.
11809 (maybe_emit_sprintf_chk_warning): Likewise.
11810 (maybe_emit_free_warning): Likewise.
11811 * expr.c (expand_expr_real_1): Likewise.
11812
f07049c8
JJ
118132009-03-03 Jakub Jelinek <jakub@redhat.com>
11814
11815 PR tree-optimization/39343
11816 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
11817 COMPONENT_REF t has ARRAY_TYPE.
11818
7d4fba4a
SP
118192009-03-02 Sebastian Pop <sebastian.pop@amd.com>
11820
11821 PR middle-end/39335
11822 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
11823 when the type precision of the induction variable should be
11824 larger than the type precision of nit.
11825 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
11826 * graphite.c (graphite_loop_normal_form): Same.
11827 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
11828
78168632
UB
118292009-03-02 Uros Bizjak <ubizjak@gmail.com>
11830
11831 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
11832 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 11833 numbers to describe clobbered registers.
78168632 11834 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
11835 * config/i386/mmx.md (mmx_emms): Ditto.
11836 (mmx_femms): Ditto.
78168632 11837
63553059
RS
118382009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
11839
11840 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
11841 of ABI_64.
11842
500a1f85
UW
118432009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11844
11845 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
11846 (spu_section_type_flags): New function.
11847
962aae34
UB
118482009-03-02 Uros Bizjak <ubizjak@gmail.com>
11849
11850 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
11851 reg_class_contents of FLOAT_REGS into a temporary.
11852
6dfb529c 118532009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 11854 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
11855
11856 PR tree-optimization/39318
11857 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
11858 information to the vectorized statement.
11859
6b5629db
UB
118602009-03-01 Uros Bizjak <ubizjak@gmail.com>
11861
434426d2
UB
11862 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
11863 variable. Use defined names instead of magic constants for REX SSE
11864 registers.
6b5629db 11865
14e5b285
RG
118662009-03-01 Richard Guenther <rguenther@suse.de>
11867
11868 PR tree-optimization/39331
11869 * omp-low.c (lower_send_shared_vars): Do not receive new
11870 values for the reference of DECL_BY_REFERENCE parms or results.
11871
526d73ab
JH
118722009-03-01 Jan Hubicka <jh@suse.cz>
11873
11874 PR debug/39267
11875 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
11876 BLOCK_NONLOCALIZED_VAR): New macros.
11877 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
11878 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
11879 gen_decl_die): Add origin argument. Allow generation of die with
11880 origin at hand only.
526d73ab 11881 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
11882 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
11883 of gen_*.
526d73ab
JH
11884 (gen_block_die): Fix checking for unused blocks.
11885 (process_scope_var): Break out from .... ; work with origins only.
11886 (decls_for_scope) ... here; process nonlocalized list.
11887 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
11888 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
11889 vars.
526d73ab
JH
11890 (dump_scope_block): Dump them.
11891 * tree-inline.c (remap_decls): Handle nonlocalized vars.
11892 (remap_block): Likewise.
11893 (can_be_nonlocal): New predicate.
11894 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
11895
7a9d3fe8
RW
118962009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11897
11898 * configure: Regenerate.
11899
b3cdf3cb
RW
119002009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11901
a16d1645 11902 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 11903 Reuse help texts for duplicate options which do not have any.
a16d1645 11904
1156c176
RW
11905 * gcc.c (display_help): Document --version.
11906
033505fc
RW
11907 * gcc.c (main): If print_help_list and verbose_flag, ensure
11908 driver output comes before subprocess output.
11909
4d077054
RW
11910 * optc-gen.awk: Assign all remaining fields to help string,
11911 space-separated, for multi-line help in *.opt.
11912
a072f1cf
RW
11913 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
11914 -Wno-pedantic-ms-format is for MinGW targets only.
11915
b3cdf3cb
RW
11916 * doc/options.texi (Option file format): Fix bad indentation,
11917 restoring dropped sentence.
11918
a3aadcc5
JH
119192009-02-28 Jan Hubicka <jh@suse.cz>
11920
11921 * tree-inline.c (tree_function_versioning): Output debug info.
11922
1cf5abb3
JH
119232009-02-28 Jan Hubicka <jh@suse.cz>
11924
11925 PR debug/39267
11926 * tree-inline.c (setup_one_parameter): Do not copy propagate
11927 arguments when not optimizing.
11928
c4d3f42f
L
119292009-02-28 H.J. Lu <hongjiu.lu@intel.com>
11930
11931 PR target/39327
11932 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
11933 (avx_addsubv4df3): Likewise.
11934 (*avx_addsubv4sf3): Likewise.
11935 (sse3_addsubv4sf3): Likewise.
11936 (*avx_addsubv2df3): Likewise.
11937 (sse3_addsubv2df3): Likewise.
11938 (avx_unpckhps256): Correct item selectors.
11939 (avx_unpcklps256): Likewise.
11940 (avx_unpckhpd256): Likewise.
11941 (avx_unpcklpd256): Likewise.
11942
eb50f5f4
JH
119432009-02-28 Jan Hubicka <jh@suse.cz>
11944
11945 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
11946 static vars.
11947 (copy_arguments_for_versioning): If var is declared don't declare it.
11948 (tree_function_versioning): First setup substitutions and then copy
11949 args.
11950
26140130
JH
119512009-02-27 Jan Hubicka <jh@suse.cz>
11952
11953 PR debug/39267
11954 * cgraph.h (varpool_output_debug_info): Remove.
11955 * cgraphunit.c (varpool_output_debug_info): Remove.
11956 * dwarf2out.c (deferred_locations_struct): New struct
11957 (deferred_locations): New type.
11958 (deferred_locations_list): New static var.
11959 (deffer_location): New function.
11960 (gen_variable_die): Use it.
11961 (decls_for_scope): Output info on local static vars.
11962 (dwarf2out_finish): Process deferred locations.
11963 * varpool.c (varpool_output_debug_info): Remove.
11964
cff7525f
JH
119652009-02-27 Jan Hubicka <jh@suse.cz>
11966
11967 PR debug/39267
11968 * tree.h (TREE_PROTECTED): Fix comment.
11969 (BLOCK_HANDLER_BLOCK): Remove.
11970 (struct tree_block): Remove handler_block add body_block.
11971 (inlined_function_outer_scope_p): New.
11972 (is_body_block): Remove.
11973 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
11974 * dwarf2out.c (is_inlined_entry_point): Remove.
11975 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
11976 (gen_block_die): Use is_inlined_entry_point check. Remove body block
11977 code.
cff7525f
JH
11978 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
11979 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
11980 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
11981 block with multiple subblocks.
cff7525f
JH
11982 (dump_scope_block): Prettier output; dump more flags and info.
11983 (dump_scope_blocks): New.
11984 (remove_unused_locals): Use dump_scope_blocks.
11985 * tree-flow.h (dump_scope_blocks): Declare.
11986 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
11987 * stmt.c (is_body_block): Remove.
11988 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
11989 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
11990
c20993b9
SP
119912009-02-27 Sebastian Pop <sebastian.pop@amd.com>
11992
11993 PR middle-end/39308
2ba9daa7 11994 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
11995 number_of_iterations_exit from a gcc_assert.
11996
e3cba5e5
AK
119972009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11998
60839f5d 11999 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
12000 jumps if COND is NULL.
12001 (find_cond_jump): New function.
12002 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 12003 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 12004
9dadeeb8
UB
120052009-02-26 Uros Bizjak <ubizjak@gmail.com>
12006
12007 * config/alpha/alpha.h (alpha_expand_mov): Return false if
12008 force_const_mem returns NULL_RTX.
12009
625d3251
EB
120102009-02-26 Jan Hubicka <jh@suse.cz>
12011
12012 PR debug/39267
12013 * cgraph.h (varpool_output_debug_info): Remove.
12014 * cgraphunit.c (varpool_output_debug_info): Remove.
12015 * dwarf2out.c (deferred_locations_struct): New struct
12016 (deferred_locations): New type.
12017 (deferred_locations_list): New static var.
12018 (deffer_location): New function.
12019 (gen_variable_die): Use it.
12020 (decls_for_scope): Output info on local static vars.
12021 (dwarf2out_finish): Process deferred locations.
12022 * varpool.c (varpool_output_debug_info): Remove.
12023
38432148 120242009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
12025
12026 PR rtl-optimization/39241
12027 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
12028 to subreg_offset_representable_p.
12029
62d049cf
PB
120302009-02-25 Paolo Bonzini <bonzini@gnu.org>
12031
12032 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
12033 execute function prototype. Get f and nregs from max_reg_num
12034 and get_insns. Remove the first backward pass as it's dead,
12035 guard the forward pass by flag_expensive_optimizations.
12036 (rest_of_handle_regmove): Delete.
12037 (pass_regmove): Replace it with regmove_optimize.
12038
f618d33e
MJ
120392009-02-25 Martin Jambor <mjambor@suse.cz>
12040
12041 PR tree-optimization/39259
12042 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 12043 calls_alloca function flags.
f618d33e
MJ
12044 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
12045 calls are detected.
12046
c8a05f7c
PB
120472009-02-25 Paolo Bonzini <bonzini@gnu.org>
12048
12049 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
12050 flags_set_1_rtx, flags_set_1_set): Delete.
12051 (regmove_optimize): Do not call mark_flags_life_zones.
12052
6d2538f5
JB
120532009-02-24 Julian Brown <julian@codesourcery.com>
12054
12055 PR target/35965
12056 * config/arm/arm.c (require_pic_register): Only set
12057 cfun->machine->pic_reg once per function.
12058
a2fa6772
SL
120592009-02-24 Sandra Loosemore <sandra@codesourcery.com>
12060
12061 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 12062 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 12063
5472de36
SE
120642009-02-24 Steve Ellcey <sje@cup.hp.com>
12065
12066 PR target/33785
12067 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
12068
844216f3
RG
120692009-02-24 Richard Guenther <rguenther@suse.de>
12070
12071 PR debug/39285
12072 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
12073
71adbef3 120742009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 12075 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
12076
12077 PR tree-optimization/39233
12078 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
12079 from converting them to a generic type.
12080
f1a558e0
SP
120812009-02-23 Sebastian Pop <sebastian.pop@amd.com>
12082
12083 PR tree-optimization/39260
12084 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
12085 contains a condition with a real type.
12086 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
12087
d8028f2c
JM
120882009-02-23 Jason Merrill <jason@redhat.com>
12089
12090 PR c++/38880
12091 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
12092 narrowing_initializer_constant_valid_p.
2ba9daa7 12093 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
12094 null_pointer_node for adding a pointer to itself.
12095
9283b513
JH
120962009-02-23 Jan Hubicka <jh@suse.cz>
12097
12098 PR c/12245
9dadeeb8
UB
12099 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
12100 resizing.
9283b513 12101
61e04322
JH
121022009-02-23 Jan Hubicka <jh@suse.cz>
12103
9dadeeb8
UB
12104 PR tree-optimization/37709
12105 * tree.c (block_ultimate_origin): Move here from dwarf2out.
12106 * tree.h (block_ultimate_origin): Declare.
12107 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
12108 * tree-ssa-live.c (remove_unused_scope_block_p):
12109 Eliminate blocks containig no instructions nor live variables nor
12110 nested blocks.
12111 (dump_scope_block): New function.
12112 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 12113 enable dumping at TDF_DETAILS.
61e04322 12114
38432148 121152009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
12116
12117 * config/i386/i386.c (classify_argument): Don't allow COImode
12118 and OImode.
12119 (function_arg_advance_32): Don't allow OImode.
12120 (function_arg_32): Likewise.
12121 (function_value_32): Likewise.
12122 (return_in_memory_32): Likewise.
12123 (function_arg_64): Remove OImode comment.
12124
38432148 121252009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
12126
12127 PR target/39261
12128 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
12129 ix86_expand_vector_set for V4DImode in 64bit mode only.
12130 (ix86_expand_vector_init_one_var): Likewise.
12131
dcd739a6
SP
121322009-02-21 Sebastian Pop <sebastian.pop@amd.com>
12133
12134 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
12135
6c3b938d
RS
121362009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
12137
8e361f23 12138 PR bootstrap/39257
6c3b938d
RS
12139 * loop-iv.c: Revert last change.
12140 * emit-rtl.c: Likewise.
12141
38432148 121422009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
12143
12144 PR target/39256
12145 * config/i386/i386.c (type_natural_mode): Remove an extra
12146 space in the warning message.
12147 (function_value_32): Handle 32-byte vector modes.
12148 (return_in_memory_32): Likewise.
12149
2ec62529
RS
121502009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
12151
12152 * loop-iv.c (truncate_value): New function.
12153 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
12154 of lowpart_subreg.
12155 (lowpart_subreg): Move to...
12156 * emit-rtl.c: ...here.
12157
ecb8c3cc 121582009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 12159
ecb8c3cc
DS
12160 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
12161 accidental and undocumented change at revision 140860.
12162
ae46a823
JM
121632009-02-21 Joseph Myers <joseph@codesourcery.com>
12164
12165 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
12166 take gimple_seq * arguments.
12167 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
12168 types_compatible_p langhook.
12169
07d8efe3 121702009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 12171 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
12172
12173 * config/arm/arm.c (arm_builtin_va_list): New function.
12174 (arm_expand_builtin_va_start): Likewise.
12175 (arm_gimplify_va_arg_expr): Likewise.
12176 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
12177 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
12178 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
12179 (va_list_type): New variable.
12180 (arm_mangle_type): Mangle va_list_type appropriately.
12181
b1fb9f56
JJ
121822009-02-20 Jakub Jelinek <jakub@redhat.com>
12183
12184 PR middle-end/39157
12185 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
12186 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
12187 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
12188 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
12189 parameter to 1000 for -O1 by default.
12190 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
12191 parameter.
12192 * loop-invariant.c: Include params.h.
12193 (move_loop_invariants): Don't call move_single_loop_invariants on
12194 very large loops.
12195
5bc0807c
JM
121962009-02-20 Jaka Mocnik <jaka@xlab.si>
12197
12198 * calls.c (emit_library_call_value_1): Use slot_offset instead of
12199 offset when calculating bounds for indexing stack_usage_map. Fixes
12200 a buffer overflow with certain target setups.
12201
c69cd1f5
JJ
122022009-02-20 Jakub Jelinek <jakub@redhat.com>
12203
12204 PR target/39240
12205 * calls.c (expand_call): Clear try_tail_call if caller and callee
12206 disagree in promotion of function return value.
12207
09812622
JJ
122082009-02-19 Jakub Jelinek <jakub@redhat.com>
12209
12210 PR target/39175
12211 * c-common.c (c_determine_visibility): If visibility changed and
12212 DECL_RTL has been already set, call make_decl_rtl to update symbol
12213 flags.
12214
68017cb4
L
122152009-02-19 H.J. Lu <hongjiu.lu@intel.com>
12216
12217 PR c++/39188
12218 * varasm.c (assemble_variable): Don't check DECL_NAME when
12219 globalizing a variable.
12220
ab4194da
JM
122212009-02-19 Joseph Myers <joseph@codesourcery.com>
12222
12223 PR c/38483
12224 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
12225 expression before any __builtin_trap call.
12226 * c-typeck.c (build_function_call): Convert and check function
12227 arguments before generating a call to a trap. Evaluate the
12228 function arguments before the trap.
12229
6b67572e
UB
122302009-02-19 Uros Bizjak <ubizjak@gmail.com>
12231
12232 PR target/39228
12233 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
12234 (UNSPEC_FXAM_MEM): New unspec.
12235 (fxam<mode>2_i387_with_temp): New insn and split pattern.
12236 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
12237 memory using fxam<mode>2_i387_with_temp to remove excess precision.
12238
9e39dba6
RG
122392009-02-19 Richard Guenther <rguenther@suse.de>
12240
12241 PR tree-optimization/39207
12242 PR tree-optimization/39074
12243 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
12244 storedanything_tree): New.
12245 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 12246 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
12247 (build_succ_graph): Add edges from STOREDANYTHING to all
12248 non-direct nodes.
12249 (init_base_vars): Initialize STOREDANYTHING.
12250 (compute_points_to_sets): Free substitution info after
12251 building the succ graph.
12252 (ipa_pta_execute): Likewise.
12253
12254 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
12255 field.
12256 (do_ds_constraint): Do not add to special var or non-pointer
12257 field solutions.
12258 (type_could_have_pointers): Split out from ...
12259 (could_have_pointers): ... here. For arrays use the element type.
12260 (create_variable_info_for): Initialize may_have_pointers.
12261 (new_var_info): Likewise.
12262 (handle_lhs_call): Make the HEAP variable unknown-sized.
12263 (intra_create_variable_infos): Use a type with pointers for
12264 PARM_NOALIAS, make it unknown-sized.
12265
fd7b2603
L
122662009-02-18 H.J. Lu <hongjiu.lu@intel.com>
12267
12268 PR target/39224
6b67572e 12269 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 12270
98b80692
JM
122712009-02-18 Jason Merrill <jason@redhat.com>
12272
12273 PR target/39179
12274 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
12275 value if DECL_EXTERNAL.
12276 * tree-sra.c (sra_walk_gimple_assign): Likewise.
12277 * target.h (gcc_target::binds_local_p): Clarify "module".
12278 * tree.h (TREE_PUBLIC): Clarify "module".
12279
0705d3f4
L
122802009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
12281
12282 PR target/38891
12283 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
12284 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
12285
bce08d50
L
122862009-02-17 H.J. Lu <hongjiu.lu@intel.com>
12287
12288 PR target/39082
12289 * c.opt (Wabi): Support C and ObjC.
12290 (Wpsabi): New.
12291
12292 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
12293
12294 * config/i386/i386.c (classify_argument): Warn once about the ABI
12295 change when passing union with long double.
12296
12297 * doc/invoke.texi: Update -Wabi for warning psABI changes.
12298
5600f233
JM
122992009-02-18 Joseph Myers <joseph@codesourcery.com>
12300
12301 PR c/35447
12302 * c-parser.c (c_parser_compound_statement): Always enter and leave
12303 a scope.
12304
8cd01fe6
JDA
123052009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12306
12307 PR target/34587
12308 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
12309
418df9d7
JJ
123102009-02-18 Jakub Jelinek <jakub@redhat.com>
12311
12312 PR tree-optimization/36922
12313 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
12314 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
12315 Likewise.
12316
082d2ebb
RS
123172009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
12318
12319 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
12320 to 0 for EABI64.
12321
17de576c
RS
123222009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
12323
12324 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
12325
6d8d5435
RS
123262009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
12327
12328 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
12329 tree sharing.
12330
e69ff910
RB
123312009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
12332 Richard Sandiford <rdsandiford@googlemail.com>
12333
12334 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
12335 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
12336 (loongson_biadd): ...this.
12337
6b24ee26
RG
123382009-02-17 Richard Guenther <rguenther@suse.de>
12339
12340 PR tree-optimization/39202
12341 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
12342 a var make sure to follow existing collapses.
12343
91ab2c86
RG
123442009-02-17 Richard Guenther <rguenther@suse.de>
12345
12346 PR middle-end/39214
12347 * langhooks.c (lhd_print_error_function): Check for NULL block.
12348
73a63870
RG
123492009-02-17 Richard Guenther <rguenther@suse.de>
12350
12351 PR tree-optimization/39204
12352 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
12353 of the PHI arg.
12354
0e08f686
UB
123552009-02-17 Uros Bizjak <ubizjak@gmail.com>
12356
12357 * config/soft-fp/double.h: Update from glibc CVS.
12358
a60b7ddb
RG
123592009-02-17 Richard Guenther <rguenther@suse.de>
12360
12361 PR tree-optimization/39207
12362 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
12363 strict-aliasing warnings for pointers pointing to NULL.
12364
a47e20fd
JM
123652009-02-16 Joseph Myers <joseph@codesourcery.com>
12366
12367 PR c/35446
12368 * c-parser.c (c_parser_braced_init): Call pop_init_level when
12369 skipping until next close brace.
12370
50aab7dc
L
123712009-02-16 H.J. Lu <hongjiu.lu@intel.com>
12372
12373 PR target/37049
12374 * config/i386/i386.c (ix86_expand_push): Set memory alignment
12375 to function argument boundary.
12376
68e53db0
HS
123772009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
12378
12379 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
12380 in the lea_add. Reload eventually constraints it properly.
0d50d55a 12381 * config/picochip/constraints.md: Remove the target constraint
68e53db0
HS
12382 "b", since it is not needed anymore.
12383
09e361bb
JJ
123842009-02-16 Jakub Jelinek <jakub@redhat.com>
12385
12386 * gthr-dce.h: Uglify function parameter and local variable names.
12387 * gthr-gnat.h: Likewise.
12388 * gthr-mipssde.h: Likewise.
12389 * gthr-nks.h: Likewise.
12390 * gthr-posix95.h: Likewise.
12391 * gthr-posix.h: Likewise.
12392 * gthr-rtems.h: Likewise.
12393 * gthr-single.h: Likewise.
12394 * gthr-solaris.h: Likewise.
12395 * gthr-tpf.h: Likewise.
12396 * gthr-vxworks.h: Likewise.
12397 * gthr-win32.h: Likewise.
12398
47f5a48f
L
123992009-02-15 H.J. Lu <hongjiu.lu@intel.com>
12400
12401 PR target/39196
12402 * config/i386/i386.md: Restrict the new peephole2 to move
12403 between MMX/SSE registers.
12404
68c9ab45
RG
124052009-02-15 Richard Guenther <rguenther@suse.de>
12406
12407 Revert
12408 2009-02-13 Richard Guenther <rguenther@suse.de>
12409
12410 * configure.ac: Enable LFS.
12411 * configure: Re-generate.
12412 * config.in: Likewise.
12413
d7815554
UW
124142009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12415
12416 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
12417 spu_srqwbyte, spu_srqwbytebc): Define.
12418 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
12419 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
12420 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
12421 "shrqby_<mode>"): New insn-and-split patterns.
12422 * config/spu/spu.c (expand_builtin_args): Determine and return
12423 number of operands using spu_builtin_description data.
12424 (spu_expand_builtin_1): Use it.
12425
c208436c
SE
124262009-02-13 Steve Ellcey <sje@cup.hp.com>
12427
12428 PR target/38056
12429 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
12430 TARGET_CONST_GP.
12431
c2e7ba7e
L
124322009-02-13 H.J. Lu <hongjiu.lu@intel.com>
12433
12434 PR target/39149
12435 * config/i386/i386.c (override_options): Correct warning
6c6094f1 12436 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 12437
72f4e3a7
L
124382009-02-13 H.J. Lu <hongjiu.lu@intel.com>
12439
12440 PR target/39152
12441 * config/i386/i386.md: Restrict the new peephole2 to move
12442 between the general purpose registers.
12443
53f648e2
L
124442009-02-13 H.J. Lu <hongjiu.lu@intel.com>
12445
12446 PR target/39162
12447 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 12448 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
12449 (function_arg_advance): Updated.
12450 (function_arg): Likewise.
12451 (ix86_function_value): Likewise.
12452 (ix86_return_in_memory): Likewise.
12453 (ix86_sol10_return_in_memory): Likewise.
12454 (ix86_gimplify_va_arg): Likewise.
12455 (function_arg_32): Don't warn ABX ABI change here.
12456 (function_arg_64): Likewise.
12457
38432148 124582009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
12459
12460 * loop-iv.c (implies_p): In the final case, test that operands 0
12461 of the two comparisons match.
12462
dd2139e7
BS
12463 * config/bfin/bfin.c (find_prev_insn_start): New function.
12464 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
12465 (find_next_insn_start): Move.
12466
601b3e1a
RG
124672009-02-13 Richard Guenther <rguenther@suse.de>
12468
12469 * configure.ac: Enable LFS.
12470 * configure: Re-generate.
12471 * config.in: Likewise.
12472
f007042e
JM
124732009-02-13 Joseph Myers <joseph@codesourcery.com>
12474
12475 PR c/35444
12476 * c-parser.c (c_parser_parms_list_declarator): Discard pending
12477 sizes on syntax error after some arguments have been parsed.
12478
3f238e8b
JJ
124792009-02-12 Jakub Jelinek <jakub@redhat.com>
12480
12481 * doc/invoke.texi (-fira): Remove.
12482
328e13b7
L
124832009-02-12 H.J. Lu <hongjiu.lu@intel.com>
12484
12485 * caller-save.c: Replace regclass.c with reginfo.c in comments.
12486 * recog.c: Likewise.
12487 * rtl.h: Likewise.
12488
c252db20
L
124892009-02-12 Uros Bizjak <ubizjak@gmail.com>
12490
12491 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
12492 (umul_ppmm): Likewise.
12493 (count_leading_zeros): Likewise.
12494 (count_trailing_zeros): Likewise.
12495 (UMUL_TIME): Likewise.
12496
124972009-02-12 H.J. Lu <hongjiu.lu@intel.com>
12498
ba181049
UB
12499 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
12500 soft-fp/t-softfp to tmake_file.
c252db20
L
12501
12502 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
12503 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
12504 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
12505 IA64_BUILTIN_INFQ]: New.
c252db20
L
12506 (ia64_init_builtins): Initialize __builtin_infq,
12507 __builtin_fabsq and __builtin_copysignq if not HPUX.
12508 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
12509 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
12510
12511 * config/ia64/lib1funcs.asm (__divtf3): Define only if
12512 SHARED is defined.
12513 (__fixtfti): Likewise.
12514 (__fixunstfti): Likewise.
12515 (__floattitf): Likewise.
12516
12517 * config/ia64/libgcc-glibc.ver: New.
12518 * config/ia64/t-fprules-softfp: Likewise.
12519 * config/ia64/sfp-machine.h: Likewise.
12520
12521 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
12522 (LIBGCC2_TF_CEXT): Likewise.
12523 (TF_SIZE): Likewise.
12524 (TARGET_INIT_LIBFUNCS): Likewise.
12525
ba181049 12526 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 12527 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 12528
f13eae6a
L
125292009-02-12 H.J. Lu <hongjiu.lu@intel.com>
12530
12531 * config/i386/i386.c (construct_container): Rewrite processing
12532 BLKmode with X86_64_SSE_CLASS.
12533
12019aec
L
125342009-02-12 Paolo Bonzini <bonzini@gnu.org>
12535
12536 PR target/39152
12537 * config/i386/i386.md: Replace simplify_replace_rtx with
12538 replace_rtx in the new peephole2.
12539
28c11eb3
NS
125402009-02-12 Nathan Sidwell <nathan@codesourcery.com>
12541
12542 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
12543 loop unrolling do not happen at -O2.
12544
c7b94907
MM
125452009-02-12 Michael Matz <matz@suse.de>
12546
12547 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
12548
61e98967
JJ
125492009-02-12 Jakub Jelinek <jakub@redhat.com>
12550
12551 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
12552 for -g3.
12553
a2a237b5
BE
125542009-02-12 Ben Elliston <bje@au.ibm.com>
12555
12556 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
12557 patterns when updating the back chain. Missed in the 2009-02-10
12558 change.
12559
853eda8d
JJ
125602009-02-11 Janis Johnson <janis187@us.ibm.com>
12561
12562 * doc/extend.texi (Decimal Floating Types): Update identifier of
12563 draft TR and list of missing support.
12564
3ad6b266
JJ
125652009-02-11 Jakub Jelinek <jakub@redhat.com>
12566
12567 PR middle-end/39154
12568 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
12569 bit to variable length decl's flags, add it also to its
12570 pointer replacement variable.
12571
b058b753
UB
125722009-02-11 Uros Bizjak <ubizjak@gmail.com>
12573 Jakub Jelinek <jakub@redhat.com>
12574
12575 PR target/39118
12576 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
12577 (memory_blockage): New expander.
12578 (*memory_blockage): New insn pattern.
12579 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
12580 instead of general blockage at the end of function prologue when
12581 frame pointer is used to access red zone area. Do not emit blockage
12582 when profiling, it is emitted in generic code.
12583 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
12584 function epilogue when frame pointer is used to access red zone area.
12585
bab64f23
PB
125862009-02-11 Paolo Bonzini <bonzini@gnu.org>
12587
0ce6dcfa 12588 PR target/38824
bab64f23
PB
12589 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
12590 by arithmetic with memory operands.
12591 * config/i386/predicates.md (commutative_operator): New.
12592
8fd94bda
JJ
125932009-02-10 Janis Johnson <janis187@us.ibm.com>
12594
12595 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
12596 bulleted lists.
12597
794511d2
EB
125982009-02-10 Eric Botcazou <ebotcazou@adacore.com>
12599
12600 * alias.h (record_alias_subset): Declare.
12601 * alias.c (record_alias_subset): Make global.
12602
6da7fc87
NC
126032009-02-10 Nick Clifton <nickc@redhat.com>
12604
12605 * tree-parloops.c: Change license to GPLv3.
12606 * ipa-struct-reorg.c: Change license to GPLv3.
12607 * ipa-struct-reorg.h: Change license to GPLv3.
12608
a03813c8
SE
126092009-02-10 Steve Ellcey <sje@cup.hp.com>
12610
12611 PR c/39084
12612 * c-decl.c (start_struct): Return NULL on error.
12613
fc3103e7
JJ
126142009-02-10 Jakub Jelinek <jakub@redhat.com>
12615
9b43d37b
JJ
12616 PR middle-end/39124
12617 * cfgloopmanip.c (remove_path): Call remove_bbs after
12618 cancel_loop_tree, not before it.
12619
fc3103e7 12620 PR target/39139
b058b753 12621 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
12622 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
12623 VAR_DECLs were seen.
12624 * tree-ssa-live.c (remove_unused_locals): Recompute
12625 cfun->has_local_explicit_reg_vars.
12626 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
12627 copies or clearings if cfun->has_local_explicit_reg_vars.
12628
dbf9ee15
UB
126292009-02-10 Uros Bizjak <ubizjak@gmail.com>
12630
12631 PR target/39118
12632 * config/i386/i386.c (expand_prologue): Emit blockage at the end
12633 of function prologue when frame pointer is used to access
12634 red zone area.
12635
bdec4dc7
RG
126362009-02-10 Richard Guenther <rguenther@suse.de>
12637
12638 PR middle-end/39127
12639 * gimplify.c (gimple_regimplify_operands): Always look if
12640 we need to create a temporary.
12641
7cae94fc
RG
126422009-02-10 Richard Guenther <rguenther@suse.de>
12643
12644 PR tree-optimization/39132
12645 * tree-loop-distribution.c (todo): New global var.
12646 (generate_memset_zero): Trigger TODO_rebuild_alias.
12647 (tree_loop_distribution): Return todo.
12648
a8800687
L
126492009-02-10 H.J. Lu <hongjiu.lu@intel.com>
12650
12651 PR target/39119
12652 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
12653 (x86_64_reg_class_name): Removed.
12654 (classify_argument): Return 0 if bytes > 32. Return 0 if the
12655 first one isn't X86_64_SSE_CLASS or any other ones aren't
12656 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
12657 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
12658 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
12659 and 3 X86_64_SSEUP_CLASS.
12660 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
12661 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
12662
d4bacef0
BE
126632009-02-10 Ben Elliston <bje@au.ibm.com>
12664
12665 * config/rs6000/rs6000.md (allocate_stack): Always use an update
12666 form instruction to update the stack back chain word, even if the
12667 user has disabled the generation of update instructions.
12668 (movdi_<mode>_update_stack): New.
12669 (movsi_update_stack): Likewise.
12670 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
12671 always use an update form instruction to update the stack back
12672 chain word.
12673
01d7d2f3
SP
126742009-02-09 Sebastian Pop <sebastian.pop@amd.com>
12675
12676 PR middle-end/38953
b058b753
UB
12677 * graphite.c (if_region_set_false_region): After moving a region in
12678 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
12679 (gloog): Remove wrong fix for PR38953.
12680
e41e2ab4
UW
126812009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12682
12683 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
12684 generation due to implicit sign extension.
12685
4bb07c5d
EB
126862009-02-09 Eric Botcazou <ebotcazou@adacore.com>
12687
12688 PR middle-end/38981
12689 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
12690 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
12691
f060a261
RG
126922009-02-09 Richard Guenther <rguenther@suse.de>
12693
12694 PR middle-end/35202
12695 * convert.c (convert_to_real): Disable (float)fn((double)x)
12696 to fnf(x) conversion if errno differences may occur and
12697 -fmath-errno is set.
12698
5a7e237c
AS
126992009-02-07 Anatoly Sokolov <aesok@post.ru>
12700
12701 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
12702 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
12703 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
12704
feab5a67
JM
127052009-02-06 Joseph Myers <joseph@codesourcery.com>
12706
12707 PR c/35434
12708 * c-common.c (handle_alias_attribute): Disallow attribute for
12709 anything not a FUNCTION_DECL or VAR_DECL.
12710
90ef2296
JJ
127112009-02-06 Janis Johnson <janis187@us.ibm.com>
12712
12713 PR c/39035
12714 * real.c (do_compare): Special-case compare of zero against
12715 decimal float value.
12716
1de2c900
JM
127172009-02-06 Joseph Myers <joseph@codesourcery.com>
12718
12719 PR c/36432
12720 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
12721 as indicating flexible array members unless the field itself is
12722 being declarared as the incomplete array.
12723
e901811a
JH
127242009-02-06 Jan Hubicka <jh@suse.cz>
12725
12726 PR tree-optimization/38844
12727 * ipa-inline.c (try_inline): Stop inlining recursion when edge
12728 is already inlined.
12729
3cfa762b
RG
127302009-02-06 Richard Guenther <rguenther@suse.de>
12731
12732 PR middle-end/38977
12733 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
12734 fork because we may expand it as __gcov_fork.
12735
8506528c
NC
127362009-02-06 Nick Clifton <nickc@redhat.com>
12737
dbf9ee15 12738 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 12739
85169114
PB
127402009-02-06 Paolo Bonzini <bonzini@gnu.org>
12741
12742 PR tree-optimization/35659
12743 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
12744 vn_phi_eq): Shortcut if hashcode does not match.
12745 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
12746 NULL operands.
12747 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
12748 and avoid iterative_hash_expr.
12749 (FOR_EACH_VALUE_ID_IN_SET): New.
12750 (value_id_compare): Remove.
12751 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
12752 sort expressions by value id.
12753
6d39673d
KK
127542009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
12755
12756 PR target/38991
12757 * config/sh/predicates.md (general_movsrc_operand): Don't check
12758 the subreg of system registers here.
12759
e6e1c050
JJ
127602009-02-05 Jakub Jelinek <jakub@redhat.com>
12761
12762 PR c++/39106
12763 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
12764 on the copied decl.
12765
65a74b5d
PB
127662009-02-05 Paolo Bonzini <bonzini@gnu.org>
12767
12768 PR rtl-optimization/39110
12769 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
12770 addresses, not aligned ones.
12771
08e14b2a
DB
127722009-02-05 Daniel Berlin <dberlin@dberlin.org>
12773 Richard Guenther <rguenther@suse.de>
12774
12775 PR tree-optimization/39100
12776 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
12777 comment says and add edges.
12778
5006381c
JM
127792009-02-05 Joseph Myers <joseph@codesourcery.com>
12780
12781 PR c/35435
12782 * c-common.c (handle_tls_model_attribute): Ignore attribute for
12783 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
12784
2ba9daa7 127852009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
12786
12787 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
12788 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
12789 register_bb_in_sese, new_sese, free_sese): Moved.
12790 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
12791 outermost_loop_in_scop, build_scop_iteration_domain,
12792 expand_scalar_variables_ssa_name, get_vdef_before_scop,
12793 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
12794 Use loop_in_sese_p instead of loop_in_scop_p.
12795 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
12796 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
12797 (scopdet_basic_block_info): Fix bug in scop detection.
12798 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
12799 eq_loop_to_cloog_loop): Remove.
12800 (nb_loops_around_loop_in_scop, nb_loop
12801 ref_nb_loops): Moved here...
12802 * graphite.h (ref_nb_loops): ... from here.
12803 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
12804 (loop_domain_dim, loop_iteration_vector_dim): Remove.
12805 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
12806 * testsuite/gcc.dg/graphite/scop-19.c: New
12807
48e8382e
PB
128082009-02-04 Paolo Bonzini <bonzini@gnu.org>
12809 Hans-Peter Nilsson <hp@axis.com>
12810
12811 PR rtl-optimization/37889
12812 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
12813 Move offset handling from PLUS to before the switch. Use new
12814 arguments when considering SYMBOL_REFs too.
12815 (rtx_addr_can_trap_p): Pass dummy offset and size.
12816 (enum may_trap_p_flags): Remove.
12817 (may_trap_p_1): Pass size from MEM_SIZE.
12818
12819 PR rtl-optimization/38921
12820 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
12821 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
12822 * rtlanal.c (may_trap_after_code_motion_p): Delete.
12823 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
12824
69349ea5
L
128252009-02-04 H.J. Lu <hongjiu.lu@intel.com>
12826
12827 AVX Programming Reference (January, 2009)
12828 * config/i386/sse.md (*vpclmulqdq): New.
12829
b545e411
JJ
128302009-02-04 Jakub Jelinek <jakub@redhat.com>
12831
12832 PR tree-optimization/38977
12833 PR gcov-profile/38292
bf9b2cc9 12834 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 12835
5b43bf05
HS
128362009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
12837
12838 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
12839 non-indexable addresses even before reload.
12840
062c4bb3
JM
128412009-02-03 Joseph Myers <joseph@codesourcery.com>
12842
12843 PR c/29129
12844 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
12845 as having variable size. Do not give an error for unnamed
12846 parameters with [*] declarators. Give a warning for type names
12847 with [*] declarators and mark them as variable size.
12848 * c-parser.c (c_parser_sizeof_expression): Do not give an error
12849 for sizeof applied to [*] type names.
12850
6175f578
AP
128512009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
12852
12853 PR C++/36607
12854 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
12855
d4f4bc84
JJ
128562009-02-03 Jakub Jelinek <jakub@redhat.com>
12857
12858 * gcc.c (process_command): Update copyright notice dates.
12859 * gcov.c (print_version): Likewise.
12860 * gcov-dump.c (print_version): Likewise.
12861 * mips-tfile.c (main): Likewise.
12862 * mips-tdump.c (main): Likewise.
12863
f6294de7
JM
128642009-02-03 Joseph Myers <joseph@codesourcery.com>
12865
12866 PR c/35433
12867 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
12868 for composite type involving a zero-length array type.
12869
754ccf7c
JJ
128702009-02-03 Jakub Jelinek <jakub@redhat.com>
12871
70f16287
JJ
12872 PR target/35318
12873 * function.c (match_asm_constraints_1): Skip over
12874 initial optional % in the constraint.
12875
754ccf7c
JJ
12876 PR inline-asm/39059
12877 * c-parser.c (c_parser_postfix_expression): If fixed point is not
12878 supported, don't accept FIXED_CSTs.
12879 * c-decl.c (finish_declspecs): Error if fixed point is not supported
12880 and _Sat is used without _Fract/_Accum. Set specs->type to
12881 integer_type_node for cts_fract/cts_accum if fixed point is not
12882 supported.
12883
965fdadf
CM
128842009-02-02 Catherine Moore <clm@codesourcery.com>
12885
dbf9ee15 12886 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 12887
2e8a796f
RS
128882009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
12889
12890 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
12891 (ABI_HAS_64BIT_SYMBOLS): Use it.
12892 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
12893
e0079468
PB
128942009-02-02 Paul Brook <paul@codesourcery.com>
12895
12896 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
12897
eca72963
JJ
128982009-02-02 Jakub Jelinek <jakub@redhat.com>
12899
12900 PR inline-asm/39058
12901 * recog.h (asm_operand_ok): Add constraints argument.
12902 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
12903 recurse on matching constraint.
12904 (check_asm_operands): Pass constraints as 3rd argument to
12905 asm_operand_ok. Don't look up matching constraint here.
12906 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
12907 to asm_operand_ok.
12908
b5bde9ff
BE
129092009-02-02 Ben Elliston <bje@au.ibm.com>
12910
12911 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
12912 TARGET_NARROW_VOLATILE_BITFIELD macro names.
12913
30f3e427
JDA
129142009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12915
be7659ba
JDA
12916 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
12917 information. Remove some obsolete information. Reorganize.
12918
30f3e427
JDA
12919 * config/pa/fptr.c: Revert license to GPL 2.
12920 * config/pa/milli64.S: Likewise.
12921
3cbfaf98
DK
129222009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
12923
12924 PR target/38904
12925 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
12926 LIBRARY name in, instead of hard-coding it.
12927 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
12928 extra target make frag to tmake_files according to EH model.
12929 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
12930 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
12931 frags that define makefile variable EH_MODEL appropriately.
12932 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
12933 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
12934 to "-sjlj" according to type of EH configured.
12935 (LIBGCC_SONAME): Concatenate it to shared library base name.
12936 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
12937 to "_sjlj" according to type of EH configured.
12938 (LIBGCC_SONAME): Concatenate it to shared library base name.
12939 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
12940 (SHLIB_LINK): Add missing semicolon to if-else construct.
12941 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
12942 string value of "pe_dll" command-line option.
12943 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
12944 (SHLIB_SONAME): Use it when overriding t-cygming default.
12945 (SHLIB_IMPLIB): Override t-cygming default.
12946 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
12947 string value of "pe_dll" command-line option.
12948
8d0b6068
DK
129492009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
12950
12951 PR target/38952
12952 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 12953 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 12954
14c28276
RG
129552009-01-31 Richard Guenther <rguenther@suse.de>
12956
12957 PR tree-optimization/38937
12958 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
12959 computing the transitive closure.
12960
5f4d82c2
RG
129612009-01-30 Richard Guenther <rguenther@suse.de>
12962
12963 PR tree-optimization/39041
12964 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
12965 Propagate variable indices only if the types match for this stmt.
12966
d0728ae0
JJ
129672009-01-30 Jakub Jelinek <jakub@redhat.com>
12968
12969 PR target/39013
12970 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
12971 inline but never defined.
12972
6b67572e 129732009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
12974
12975 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
12976 (*insv_h_di_reg_extimm): New insn.
12977 (*insv_l<mode>_reg_extimm): New insn.
12978
129792009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
12980
12981 * config/picochip/picochip.c (flag_conserve_stack): set
12982 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
12983 fconserve-stack. Reduce call-overhead used by inliner.
12984
9fec758d 129852009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
12986
12987 PR/38157
12988 * common.opt (flag_conserve_stack): Initialised to zero.
12989
7f1c539c
KT
129902009-01-30 Kai Tietz <kai.tietz@onevision.com>
12991
12992 PR/39002
12993 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
12994 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
12995 method.
12996
3631be48
L
129972009-01-29 H.J. Lu <hongjiu.lu@intel.com>
12998
12999 * ira-color.c (allocno_reload_assign): Update comments.
13000 * regmove.c (regmove_optimize): Likewise.
13001
13002 * ra.h: Removed.
13003
416ac4d4
RM
130042009-01-29 Robert Millan <rmh@aybabtu.com>
13005
60839f5d
EB
13006 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
13007 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 13008 `MD_UNWIND_SUPPORT'.
60839f5d 13009 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 13010
d5e54bc1
KH
130112009-01-29 Kazu Hirata <kazu@codesourcery.com>
13012
13013 PR tree-optimization/39007
13014 * tree-loop-distribution.c (generate_builtin): Use
13015 recompute_dominator to compute the immediate dominator of the
13016 basic block just after the loop.
13017
38432148 130182009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
13019
13020 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
13021 (ASM_OUTPUT_DWARF_PCREL): Define.
13022
38432148 130232009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
13024
13025 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
13026 * doc/passes.texi: Remove entries about regclass, local-alloc, and
13027 global. Modify entries about regmove and IRA.
13028
13029 * ra-conflict.c: Remove the file.
13030
13031 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
13032
13033 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
13034 (pass_regclass_init): Rename to pass_reginfo_init.
13035
13036 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
13037
13038 * toplev.h (flag_ira): Remove.
13039
13040 * caller-save.c (setup_save_areas): Remove flag_ira.
13041
bf9b2cc9 13042 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
13043
13044 * global.c: Remove the file.
13045
ba20e309 13046 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
13047
13048 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
13049
13050 * regmove.c: Modify file description.
13051 (find_use_as_address, try_auto_increment): Define them only if
13052 AUTO_INC_DEC is defined.
13053 (replacement_quality, replace_in_call_usage, fixup_match_1,
13054 stable_and_no_regs_but_for_p): Remove.
13055 (reg_set_in_bb): Make it static.
13056 (regmove_optimize): Remove flag_ira and code which worked for
13057 !flag_ira.
13058
13059 * local-alloc.c: Remove the file.
13060
13061 * common.opt (fira): Remove.
13062
13063 * ira.c: Include except.h.
13064 (eliminable_regset): Move from global.c.
13065 (mark_elimination): Ditto. Remove flag_ira.
13066 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
13067 equiv_mem_modified, validate_equiv_mem_from_store,
13068 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
13069 contains_replace_regs, memref_referenced_p, memref_used_between_p,
13070 no_equiv, recorded_label_ref): Move from local-alloc.c.
13071 (update_equiv_regs): Ditto. Make it static.
13072 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 13073 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
13074 (build_insn_chain): Ditto. Make it static.
13075 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
13076 Rename to init_live_subregs.
13077 (gate_ira): Remove flag_ira.
13078
13079 * regclass.c: Rename reginfo.c. Change file description.
13080 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 13081 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
13082 (init_reg_sets_1): Remove code for evaluation of
13083 reg_class_superclasses and losing_caller_save_reg_set.
13084 (init_regs): Remove init_reg_autoinc.
13085 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
13086 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 13087 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
13088 (pass_regclass_init): Rename to pass_reginfo_init. Modify
13089 corresponding entries.
13090 (dump_regclass, record_operand_costs, scan_one_insn,
13091 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
13092 record_address_regs, auto_inc_dec_reg_p): Remove.
13093 (gt-regclass.h): Rename to gt-reginfo.h.
13094
13095 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 13096 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
13097
13098 * Makefile.in (RA_H): Remove.
13099 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
13100 Rename regclass.o to reginfo.o.
13101 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
13102 gt-reginfo.h.
13103 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
13104 (GTFILES): Rename regclass.c to reginfo.c.
13105
13106 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 13107 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
13108
13109 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
13110 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
13111 Remove flag_ira.
6b67572e 13112 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 13113
c95b2534 131142009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
13115
13116 PR middle-end/35854
13117 * doc/invoke.texi (rtl debug options): Complete rewrite.
13118 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
13119 to auto_inc_dec".
13120 * mode-switching.c (pass_mode_switching): Rename pass from
13121 "mode-sw" to "mode_sw".
13122 * except.c (pass_convert_to_eh_ranges): Rename pass from
13123 "eh-ranges" to "eh_ranges".
13124 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
13125 to "subreg1".
2ba9daa7
AS
13126
13127
72a54528
AM
131282009-01-29 Andrey Belevantsev <abel@ispras.ru>
13129 Alexander Monakov <amonakov@ispras.ru>
13130
13131 PR middle-end/38857
13132 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
13133 register.
13134 (move_exprs_to_boundary): Change return type and pass through
13135 should_move from move_op. Relax assert. Update usage ...
13136 (schedule_expr_on_boundary): ... here. Use should_move instead of
13137 cant_move.
13138 (move_op_orig_expr_found): Indicate that insn was disconnected from
13139 stream.
13140 (code_motion_process_successors): Do not call after_merge_succs
13141 callback if original expression was not found when traversing any of
13142 the branches.
13143 (code_motion_path_driver): Change return type. Update prototype.
13144 (move_op): Update comment. Add a new parameter (should_move). Update
13145 prototype. Set *should_move based on indication provided by
13146 move_op_orig_expr_found.
13147
001b9eb6
PH
131482009-01-28 Pat Haugen <pthaugen@us.ibm.com>
13149
13150 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
13151 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
13152 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
13153 * config/rs6000/rs6000.c (rs6000_override_options): Default
13154 avoid-indexed-addresses on for Power6, off for everything else.
13155 (avoiding_indexed_address_p): New function.
13156 (rs6000_legitimize_address): Use it.
13157 (rs6000_legitimate_address): Likewise.
13158 * config/rs6000/rs6000.md (movXX_updateX): Likewise
13159
59dc4898
KH
131602009-01-28 Kazu Hirata <kazu@codesourcery.com>
13161
13162 PR tree-optimization/38997
13163 * tree-loop-distribution.c (generate_memset_zero): Use
13164 POINTER_PLUS_EXPR for a pointer addition.
13165
07da44ab
AK
131662009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
13167
13168 * config/s390/s390.md (bswap<mode>2): New pattern added.
13169
cdc15d23
WG
131702009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
13171
13172 * config/s390/s390.md (*tls_load_31): Added type attribute.
13173
d46f24b6
WG
131742009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
13175
13176 * config/s390/s390.md: Fix a few comments.
13177
729e750f
WG
131782009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
13179
13180 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
13181 (*tm<mode>_full): Fixed z10prop attribute.
13182 (*tst<mode>_extimm): Fixed z10prop attribute.
13183 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
13184 (*tstqiCCT_cconly): Fixed z10prop attribute.
13185 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
13186 (*movsi_larl): Fixed z10prop attribute.
13187 (*movsi_zarch): Fixed z10prop attribute.
13188 (*movsi_eas): Fixed z10prop attribute.
13189 (*movhi): Fixed z10prop attribute.
13190 (*movqi): Fixed z10prop attribute.
13191 (*movstrictqi): Fixed z10prop attribute.
13192 (*mov<mode>): Fixed z10prop attribute.
13193 (*movcc): Fixed z10prop attribute.
13194 (*sethighpartdi_64): Fixed z10prop attribute.
13195 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
13196 (*negdi2_sign_cc): Fixed z10prop attribute.
13197 (*negdi2_sign): Fixed z10prop attribute.
13198 (*absdi2_sign_cc): Fixed z10prop attribute.
13199 (*absdi2_sign): Fixed z10prop attribute.
13200 (*negabsdi2_sign_cc): Fixed z10prop attribute.
13201 (*negabsdi2_sign): Fixed z10prop attribute.
13202 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
13203 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
13204 (doloop_si64): Fixed z10prop attribute.
13205 (doloop_si31): Fixed z10prop attribute.
13206 (doloop_long): Fixed z10prop attribute.
13207 (indirect_jump): Fixed z10prop attribute.
13208 (nop): Fixed z10prop attribute.
13209 (main_base_64): Fixed z10prop attribute.
13210 (reload_base_64): Fixed z10prop attribute.
13211
c7789bfb
JJ
132122009-01-28 Jakub Jelinek <jakub@redhat.com>
13213
13214 PR rtl-optimization/38740
6b67572e
UB
13215 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
13216 if !optimize.
c7789bfb
JJ
13217 * config/mips/mips.c (mips_reorg): Likewise.
13218
de081cfd
RG
132192009-01-28 Richard Guenther <rguenther@suse.de>
13220
13221 PR tree-optimization/38926
13222 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
13223 with the correct value id to a value.
13224 (do_regular_insertion): Use the value number of edoubleprime
13225 for the value number of the expr.
13226
13227 Revert
13228 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 13229
d748c406
UB
13230 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
13231 a PHI ask VN if it is already available.
13232 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
13233 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 13234
a9d386a1
JJ
132352009-01-28 Jakub Jelinek <jakub@redhat.com>
13236
13237 PR middle-end/38934
13238 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
13239 set to varying whenever max has TREE_OVERFLOW set, similarly
13240 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
13241
97a170cd
RG
132422009-01-28 Richard Guenther <rguenther@suse.de>
13243
13244 PR middle-end/38908
13245 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
13246 uninitialized aggregate uses in call arguments.
13247
89ebafc6
PB
132482009-01-28 Paolo Bonzini <bonzini@gnu.org>
13249
13250 PR tree-optimization/38984
13251 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
13252 the nothing_id variable if -fno-delete-null-pointer-checks.
13253
bef3c57b
UB
132542009-01-28 Uros Bizjak <ubizjak@gmail.com>
13255
13256 PR target/38988
13257 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
13258 (set_got_offset_rex64): Ditto.
13259
0c6390fa
L
132602009-01-27 H.J. Lu <hongjiu.lu@intel.com>
13261
13262 PR target/38941
13263 * doc/extend.texi: Improve local variable with asm reg.
13264
bee6fa6d
AN
132652009-01-27 Adam Nemet <anemet@caviumnetworks.com>
13266
13267 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
13268 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
13269 was not supplied then set warn_packed_bitfield_compat to the
13270 default value of 1.
13271 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
13272 against 1.
13273
b5c3dfbb
RG
132742009-01-27 Richard Guenther <rguenther@suse.de>
13275
13276 PR tree-optimization/38503
13277 * cfgexpand.c (expand_gimple_basic_block): Ignore
13278 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
13279 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
13280 variables that cannot have TBAA applied.
13281 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
13282 statements.
13283
d748c406 132842009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
13285
13286 PR middle-end/38969
13287 * calls.c (initialize_argument_information): Do not wrap complex
13288 arguments in SAVE_EXPR.
13289
9112bb38
AT
132902009-01-26 Andreas Tobler <a.tobler@schweiz.org>
13291
13292 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 13293 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 13294
4757704f
RG
132952009-01-26 Richard Guenther <rguenther@suse.de>
13296
13297 PR tree-optimization/38745
13298 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
13299 from special handling.
13300
e3e6cff4
RG
133012009-01-26 Richard Guenther <rguenther@suse.de>
13302
13303 PR tree-optimization/38745
13304 * tree-ssa.c (execute_update_addresses_taken): Do not include
13305 variables that cannot possibly be a register in not_reg_needs.
13306 Do not clear TREE_ADDRESSABLE on vars that may not become
13307 registers.
13308 * tree-ssa.c (update_alias_info_1): Include those in the set
13309 of addressable vars.
13310
dc874b53
RG
133112009-01-26 Richard Guenther <rguenther@suse.de>
13312
13313 PR middle-end/38851
13314 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
13315 * tree-ssa-dse.c: Include langhooks.h
13316 (execute_simple_dse): Remove stores with zero size.
13317
849421a3
JJ
133182009-01-24 Jakub Jelinek <jakub@redhat.com>
13319
13320 PR c/38957
13321 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
13322 as PLUS_EXPR.
13323
82f70421
JB
133242009-01-24 Julian Brown <julian@codesourcery.com>
13325
13326 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
13327 config/arm/linux-atomic.c.
13328 * config/arm/linux-atomic.c: New.
13329
863412d6
EB
133302009-01-24 Eric Botcazou <ebotcazou@adacore.com>
13331
13332 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
13333 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
13334 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
13335
8c684300
L
133362009-01-24 H.J. Lu <hongjiu.lu@intel.com>
13337
13338 PR c/38938
93f1527a 13339 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
13340 properly.
13341
b840fb02
SP
133422009-01-24 Sebastian Pop <sebastian.pop@amd.com>
13343
13344 PR tree-optimization/38953
13345 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
13346 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
13347 (gloog): Split the exit of the scop when the scop exit is a loop exit.
13348 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
13349 changed the CFG.
13350
ecee559f
PB
133512009-01-24 Paul Brook <paul@codesourcery.com>
13352
13353 * config/arm/neon.md (neon_type): Move to arm.md.
13354 (neon_mov<VSTRUCT>): Add neon_type attribute.
13355 * config/arm/arm.md (neon_type): Move to here.
13356 (conds): Add "unconditioal" and use as default for NEON insns.
13357
61ad0914
BE
133582009-01-24 Ben Elliston <bje@au.ibm.com>
13359
13360 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
13361 void *' warning from -Wc++-compat.
13362 * Makefile.in (dominance.o-warn): Remove.
13363
38432148 133642009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
13365
13366 PR tree-optimization/38932
13367 * fold-const.c (fold_unary_ignore_overflow): New.
13368 * tree.h (fold_unary_ignore_overflow): Declare.
13369 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
13370 * tree-ssa-sccvn.c (visit_reference_op_load,
13371 simplify_unary_expression): Likewise.
13372
2cd36c22
AN
133732009-01-22 Adam Nemet <anemet@caviumnetworks.com>
13374
13375 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
13376 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
13377 regardless of their type.
13378 * c-common.c (handle_packed_attribute): Don't ignore packed on
13379 bitfields.
13380 * c.opt (Wpacked-bitfield-compat): New warning option.
13381 * stor-layout.c (place_field): Warn if offset of a field changed.
13382 * doc/extend.texi (packed): Mention the ABI change.
13383 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
13384 (Warning Options): Add it to the list.
13385
e4e624ab
L
133862009-01-22 H.J. Lu <hongjiu.lu@intel.com>
13387
13388 * c-opts.c (c_common_post_options): Fix a typo in comments.
13389
d0ea0759
SE
133902009-01-22 Steve Ellcey <sje@cup.hp.com>
13391
13392 PR middle-end/38615
13393 * gimplify.c (gimplify_init_constructor): Fix promotion of const
13394 variables to static.
13395 * doc/invoke.texi (-fmerge-all-constants): Update description.
13396
87673f84
UB
133972009-01-22 Uros Bizjak <ubizjak@gmail.com>
13398
13399 PR target/38931
13400 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
13401 (*movdi_1_rex64): Use type "mmx" for alternative 5.
13402
96339268
RE
134032009-01-22 Richard Earnshaw <rearnsha@arm.com>
13404
13405 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
13406 a word boundary.
13407 (LOCAL_ALIGNMENT): Similarly.
13408
442dc742 134092009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 13410 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
13411
13412 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
13413 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
13414 * config/arm/arm-tune.md: Regenerate.
13415 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
13416 -march=iwmmxt2.
13417
9b34732e
MS
134182009-01-22 Mark Shinwell <shinwell@codesourcery.com>
13419
13420 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
13421 version number to five.
13422
03c2a308
DS
134232009-01-22 Dodji Seketeli <dodji@redhat.com>
13424
13425 PR c++/38930
ba20e309 13426 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
13427 * c-common.c (set_underlying_type): Likewise.
13428 (is_typedef_decl ): Likewise
13429 * tree.h: Likewise
13430 (set_underlying_type): Likewise.
13431 (is_typedef_type): Likewise.
13432
1240d76e
VM
134332009-01-21 Vladimir Makarov <vmakarov@redhat.com>
13434
13435 PR middle-end/38587
13436 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
13437 crossing setjmps.
13438
b8a1087d
DK
134392009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
13440
13441 PR bootstrap/37660
13442 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
13443 (LIBGCC_SPEC): Don't define.
13444 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
13445
435da628
UB
134462009-01-21 Uros Bizjak <ubizjak@gmail.com>
13447
13448 PR rtl-optimization/38879
13449 * alias.c (base_alias_check): Unaligned access via AND address can
13450 alias all surrounding object types except those with sizes equal
13451 or wider than the size of unaligned access.
13452
d597b3ce
DS
134532009-01-21 Dodji Seketeli <dodji@redhat.com>
13454
13455 PR c++/26693
ba20e309 13456 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 13457 * c-common.c (set_underlying_type): ... here.
435da628 13458 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
13459 the newly created typedef variant type.
13460 (is_typedef_decl ): New entry point.
13461 * tree.h: Added a new member member_types_needing_access_check to
13462 struct tree_decl_non_common.
13463 (set_underlying_type): New entry point.
13464 (is_typedef_type): Likewise.
13465
71a6fe66
BM
134662009-01-21 Bingfeng Mei <bmei@broadcom.com>
13467
13468 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
13469 Check whether two instructions have memory references that
13470 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
13471 are helper functions for traversing.
13472 * alias.h (insn_alias_sets_confilict_p): New prototypes.
13473 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
13474 not to draw dependency edge for instructions with non-conflicting
13475 alias sets.
13476
5a248274
JM
134772009-01-20 Joseph Myers <joseph@codesourcery.com>
13478
13479 PR other/38758
6b67572e
UB
13480 * longlong.h: Update copyright years. Use soft-fp license notice.
13481 Sync __clz_tab declaration with glibc.
5a248274 13482
4b84f3de
SE
134832009-01-20 Steve Ellcey <sje@cup.hp.com>
13484
13485 PR target/30687
13486 * doc/extend.texi (syscall_linkage): New.
13487 (version_id): Modify.
13488
37348bf1 134892009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 13490 Richard Guenther <rguenther@suse.de>
37348bf1
AP
13491
13492 PR tree-optimization/38747
13493 PR tree-optimization/38748
13494 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
13495 conversion if the base address is an indirect reference and the
13496 aliasing sets could cause issues.
13497
d0a58904
SP
134982009-01-20 Sebastian Pop <sebastian.pop@amd.com>
13499
2ba9daa7 13500 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
13501 explaining why these options are not documented.
13502
71e7afb2
SP
135032009-01-20 Sebastian Pop <sebastian.pop@amd.com>
13504
13505 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
13506 gimple_call_lhs is NULL.
13507
38432148 135082009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
13509
13510 PR target/38868
13511 * emit-rtl.c (adjust_address_1): Make sure memref is never
13512 overwritten.
13513
cbb8dee3
BE
135142009-01-20 Ben Elliston <bje@au.ibm.com>
13515
13516 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 13517 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
13518 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
13519 const qualifier from arg 2.
13520
72c66596
IS
135212009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
13522
435da628 13523 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 13524
f68211cd
VM
135252009-01-19 Vladimir Makarov <vmakarov@redhat.com>
13526
13527 PR c/38869
13528 * rtl.h (reinit_regs): New prototype.
13529 * regclass.c: Include ira.h.
13530 (reinit_regs): New.
13531 * Makefile.in (regclass.o): Add ira.h.
13532 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
13533
6e4f1168
L
135342009-01-18 H.J. Lu <hongjiu.lu@intel.com>
13535
13536 PR target/38736
13537 * c-common.c (handle_aligned_attribute): Use
13538 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
13539 default alignment value.
13540
13541 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
13542
13543 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
13544 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
13545
13546 * doc/extend.texi: Update __attribute__ ((aligned)). Document
13547 __BIGGEST_ALIGNMENT__.
13548
13549 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
13550
890065bf
RG
135512009-01-18 Richard Guenther <rguenther@suse.de>
13552
13553 PR tree-optimization/38819
13554 * tree-flow.h (operation_could_trap_helper_p): Declare.
13555 * tree-eh.c (operation_could_trap_helper_p): Export.
13556 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
13557 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
13558 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
13559 are about to insert a possibly trapping instruction and fail
13560 in this case.
13561
a729d731
AS
135622009-01-18 Andreas Schwab <schwab@suse.de>
13563
13564 * doc/install.texi (Configuration): Remove obsolete paragraph
13565 about use of --with-gnu-ld with --with-gnu-as.
13566
a640c13b
KH
135672009-01-18 Kazu Hirata <kazu@codesourcery.com>
13568
13569 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
13570 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
13571 Follow spelling conventions.
13572
dba2cc0c
BE
135732009-01-18 Ben Elliston <bje@au.ibm.com>
13574
13575 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
13576 C++ warning about implicit conversion from void * to struct
13577 bitmap_head_def *.
13578 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 13579 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 13580
2207a498
DK
135812009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
13582
13583 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
13584
8137e465
SP
135852009-01-17 Sebastian Pop <sebastian.pop@amd.com>
13586 Tobias Grosser <tobi.grosser@amd.com>
13587
13588 * graphite.c (graphite_trans_scop_block): Do not block single
13589 nested loops.
13590
5be1c58c
AO
135912009-01-16 Alexandre Oliva <aoliva@redhat.com>
13592
13593 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
13594 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
13595 test with assertion.
13596
786ce82d
RG
135972009-01-16 Richard Guenther <rguenther@suse.de>
13598
13599 PR tree-optimization/38835
13600 PR middle-end/36227
13601 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
13602 and INT + PTR -> (INT)(PTR p+ INT) folding.
13603 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
13604
c1cb09ad
AN
136052009-01-16 Adam Nemet <anemet@caviumnetworks.com>
13606
13607 PR target/38554
13608 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
13609 the subreg from a lowpart subreg if it is also casting the value.
13610
bcab4e19
SP
136112009-01-16 Sebastian Pop <sebastian.pop@amd.com>
13612 Tobias Grosser <tobi.grosser@amd.com>
13613
13614 * graphite.c (compare_prefix_loops): New.
13615 (build_scop_canonical_schedules): Rewritten.
13616 (graphite_transform_loops): Move build_scop_canonical_schedules
13617 after build_scop_iteration_domain.
13618
0b040072
SP
136192009-01-16 Sebastian Pop <sebastian.pop@amd.com>
13620 Tobias Grosser <tobi.grosser@amd.com>
13621
2ba9daa7 13622 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
13623 the dimension of the iteration domain. Do copy the domain
13624 only when it exists.
13625 (build_scop_conditions_1): Do not call add_conditions_to_domain.
13626 (add_conditions_to_constraints): New.
13627 (can_generate_code_stmt, can_generate_code): Removed.
13628 (gloog): Do not call can_generate_code.
13629 (graphite_transform_loops): Call add_conditions_to_constraints
13630 after building the iteration domain.
13631
56c6a499
JJ
136322009-01-16 Jakub Jelinek <jakub@redhat.com>
13633
13634 PR tree-optimization/38789
13635 * tree-ssa-threadedge.c
13636 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
13637 __builtin_constant_p.
13638
c95b2534 136392009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
13640
13641 * dce.c (delete_unmarked_insns): Reversed the order that insns are
13642 examined before deleting them.
2ba9daa7 13643
c433cb14
RE
136442009-01-16 Richard Earnshaw <rearnsha@arm.com>
13645
13646 * function.c (aggregate_value_p): Correctly extract the function
13647 type from CALL_EXPR_FN lookup.
13648
c95b2534 136492009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
13650
13651 * config/picochip/picochip.c (picochip_override_options): Revert
13652 CFI asm flag disable commited previously.
13653
c77bb78f
SP
136542009-01-15 Sebastian Pop <sebastian.pop@amd.com>
13655 Tobias Grosser <tobi.grosser@amd.com>
13656 Jan Sjodin <jan.sjodin@amd.com>
13657
13658 * graphite.c (scan_tree_for_params): On substractions negate
13659 all the coefficients of the term.
13660 (clast_to_gcc_expression_red): New. Handle reduction expressions
13661 of more than two operands.
13662 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
13663 (get_vdef_before_scop): Handle also the case of default definitions.
13664
574af2d6
RS
136652009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
13666
13667 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
13668 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
13669 Also use them when walking CALL_INSN_FUNCTION_USAGE.
13670
e939805b
L
136712009-01-15 H.J. Lu <hongjiu.lu@intel.com>
13672 Joey Ye <joey.ye@intel.com>
13673
13674 PR middle-end/37843
13675 * cfgexpand.c (expand_stack_alignment): Don't update stack
13676 boundary nor check incoming stack boundary here.
13677 (gimple_expand_cfg): Update stack boundary and check incoming
13678 stack boundary here.
13679
c95b2534 136802009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 13681
435da628 13682 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 13683
0196c95e
JJ
136842009-01-14 Jakub Jelinek <jakub@redhat.com>
13685
13686 PR rtl-optimization/38245
13687 * calls.c (expand_call): Add stack arguments to
13688 CALL_INSN_FUNCTION_USAGE even for pure calls (when
13689 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
13690 in regs and partially in memory or BLKmode arguments.
13691 (emit_library_call_value_1): Add stack arguments to
13692 CALL_INSN_FUNCTION_USAGE even for pure calls (when
13693 ACCUMULATE_OUTGOING_ARGS).
13694 * dce.c: Include tm_p.h.
13695 (find_call_stack_args): New function.
13696 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
13697 argument.
13698 (mark_insn): Call find_call_stack_args for CALL_Ps.
13699 (prescan_insns_for_dce): Walk insns backwards in bb rather than
13700 forwards. Allocate and free arg_stores bitmap if needed, pass it
13701 down to deletable_insn_p, don't mark stores set in arg_stores
13702 bitmap, clear the bitmap at the beginning of each bb.
13703 * Makefile.in (dce.o): Depend on $(TM_P_H).
13704
6df6bcfa
MM
137052009-01-14 Michael Meissner <gnu@the-meissners.org>
13706
13707 PR target/22599
435da628
UB
13708 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
13709 to make sure the insn is a conditional test (bug 22599). Reformat a
13710 few long lines.
6df6bcfa 13711
765ec70c
SP
137122009-01-14 Sebastian Pop <sebastian.pop@amd.com>
13713
13714 PR middle-end/38431
13715 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
13716 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
13717 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 13718 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
13719 scops have been code generated.
13720
7de2b688
BS
137212009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
13722 * doc/gty.texi (Invoking the garbage collector): Added new node
13723 and section documenting ggc_collect.
13724
10bd6c5c
RG
137252009-01-14 Richard Guenther <rguenther@suse.de>
13726
13727 PR tree-optimization/38826
13728 PR middle-end/38477
13729 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
13730 initialization notes only if we actually emitted a warning.
13731 (intra_create_variable_infos): Add constraints for a result decl
13732 that is passed by hidden reference.
13733 (build_pred_graph): Mark all related variables non-direct on
13734 address-taking.
13735
9c7c70ee
NC
137362009-01-14 Nick Clifton <nickc@redhat.com>
13737
13738 * ira-conflicts.c: Include addresses.h for the definition of
13739 base_reg_class.
435da628
UB
13740 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
13741 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 13742
cf0c2a60
VM
137432009-01-13 Vladimir Makarov <vmakarov@redhat.com>
13744
13745 PR target/38811
13746 * Makefile.in (ira-lives.o): Add except.h.
13747
13748 * ira-lives.c: Include except.h.
13749 (process_bb_node_lives): Process can_throw_internal.
13750
d3302fd3
JJ
137512009-01-13 Jakub Jelinek <jakub@redhat.com>
13752
13753 PR rtl-optimization/38774
13754 * combine.c (simplify_set): When undoing cc_use change, don't do
13755 PUT_CODE on the newly created comparison, but instead put back the
13756 old comparison.
13757
7ab23fd0
JM
137582009-01-13 Joseph Myers <joseph@codesourcery.com>
13759
13760 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
13761 values. Remove duplicate arm8 entry.
13762
f9344488
SP
137632009-01-13 Sebastian Pop <sebastian.pop@amd.com>
13764
13765 PR tree-optimization/38786
13766 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
13767 the SSA_NAME case of expand_scalar_variables_expr.
13768 Set the type of an expression to the type of its assign statement.
13769 (expand_scalar_variables_expr): Also gather the scalar computation
13770 used to index the memory access. Do not pass loop_p.
13771 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
13772 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
13773 the gimple_stmt_iterator where it inserts new code.
13774 Do not pass loop_p.
f9344488
SP
13775 (copy_bb_and_scalar_dependences): Do not pass loop_p.
13776 (translate_clast): Update call to copy_bb_and_scalar_dependences.
13777
2d8bb84d
SP
137782009-01-13 Sebastian Pop <sebastian.pop@amd.com>
13779
13780 * graphite.h (debug_value): Removed.
13781 * graphite.c (debug_value): Removed.
13782
ff128632
RE
137832009-01-13 Richard Earnshaw <rearnsha@arm.com>
13784
435da628
UB
13785 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
13786 ldrd/strd with two 32-bit instructions.
ff128632 13787
d5a0a47b
RE
137882009-01-13 Richard Earnshaw <rearnsha@arm.com>
13789
435da628
UB
13790 * config/arm/arm.c (struct processors): Pass for speed down into
13791 cost helper functions.
d5a0a47b
RE
13792 (const_ok_for_op): Handle COMPARE and inequality nodes.
13793 (arm_rtx_costs_1): Rewrite.
13794 (arm_size_rtx_costs): Update prototype.
13795 (arm_rtx_costs): Pass speed down to helper functions.
13796 (arm_slowmul_rtx_costs): Rework cost calculations.
13797 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
13798 (arm_9e_rtx_costs): Likewise.
13799
26d5bf5b
UB
138002009-01-13 Uros Bizjak <ubizjak@gmail.com>
13801
13802 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 13803 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
13804 (alpha_legitimize_address): Do not split local symbols wider than
13805 UNITS_PER_WORD into HIGH/LO_SUM parts.
13806
5d14e3d5
DS
138072009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
13808
13809 PR bootstrap/38580
13810 * gcc.c (process_command): Replace call to execvp with calls
13811 to pex_one and exit.
13812
33faafca
AS
138132009-01-03 Anatoly Sokolov <aesok@post.ru>
13814
13815 PR target/29141
13816 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
13817 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
13818 variant for devices with 3-byte PC.
ba20e309 13819 (__tablejump_elpm__): New.
33faafca 13820
634b5df5
JJ
138212009-01-12 Jakub Jelinek <jakub@redhat.com>
13822
13823 PR c/32041
13824 * c-parser.c (c_parser_postfix_expression): Allow `->' in
13825 offsetof member-designator, handle it as `[0].'.
13826
2842bb86
JDA
138272009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13828
13829 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
13830 function when not using named sections on targets with named sections
13831 if branch distance is less than 262132.
13832
76ee70f6
RE
138332009-01-12 Richard Earnshaw <rearnsha@arm.com>
13834
13835 * combine.c (combine_instructions): Recompute
13836 optimize_this_for_speed_p for each BB in the main combine loop.
13837
f56e675d
TB
138382009-01-12 Tomas Bily <tbily@suse.cz>
13839
13840 PR middlend/38385
26d5bf5b
UB
13841 * tree-loop-distribution.c (prop_phis): New function.
13842 (generate_builtin): Call prop_phis.
13843 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
f56e675d 13844
c2152239
JJ
138452009-01-12 Jakub Jelinek <jakub@redhat.com>
13846
13847 PR tree-optimization/38807
13848 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
13849 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
13850
0e510b3e
AN
138512009-01-11 Adam Nemet <anemet@caviumnetworks.com>
13852
13853 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
13854 subreg of op0 to the original op0.
13855
c95b2534 138562009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
13857
13858 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 13859
53a7ff9a
MS
138602009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
13861
13862 PR debug/7055
60839f5d 13863 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
13864 starting with digits.
13865
b3a796bc
JJ
138662009-01-10 Jakub Jelinek <jakub@redhat.com>
13867
13868 PR target/38695
13869 * config/arm/arm.c (arm_is_long_call_p): Don't call
13870 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
13871
b21b850e
SB
138722009-01-09 Steven Bosscher <steven@gcc.gnu.org>
13873
13874 * regrename.c (regrename_optimize): Fix dumping.
13875 (find_oldest_value_reg): Preserve REG_POINTER.
13876 (copy_hardreg_forward_1): Likewise.
13877
e0e10d3a
DN
138782009-01-09 Diego Novillo <dnovillo@google.com>
13879
bf9b2cc9 13880 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
13881 the restrictions on its use.
13882 (gimple_uid): Tidy.
13883 (gimple_set_uid): Tidy.
13884
c9da2ae8
JJ
138852009-01-09 Jakub Jelinek <jakub@redhat.com>
13886
13887 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
13888 zero guard even if align_bytes != 0 and count is smaller than
13889 size_needed.
13890
38432148 138912009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
13892
13893 PR rtl-optimization/38495
26d5bf5b 13894 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
13895 (add_range_and_copies_from_move_list): Print all added ranges.
13896 Add ranges to memory optimized destination.
13897
260fda3d
JJ
138982009-01-09 Jakub Jelinek <jakub@redhat.com>
13899
6f6278ad
JJ
13900 PR target/38686
13901 PR target/38708
13902 * config/i386/i386.c (override_options): Reject
13903 -mstringop-strategy=rep_8byte with -m32.
13904 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
13905 to 1. Do count comparison against epilogue_size_needed at compile
13906 time even when count_exp was constant forced into register. For
13907 size_needed don't jump to epilogue, instead just avoid aligning
13908 and invoke the body algorithm. If need_zero_guard, add zero guard
13909 even if count is non-zero, but smaller than size_needed + number of
13910 bytes that could be stored for alignment.
13911 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
13912 to 1. If need_zero_guard, add zero guard even if count is non-zero,
13913 but smaller than size_needed + number of bytes that could be stored
13914 for alignment. Compare size_needed with epilogue_size_needed instead
13915 of desired_align - align, don't adjust size_needed, pass
13916 epilogue_size_needed to the epilogue expanders.
13917
260fda3d 13918 PR c/35742
26d5bf5b 13919 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 13920
67b846fa
JDA
139212009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13922
13923 * pa.c (last_address): Change to unsigned.
13924 (update_total_code_bytes): Change argument to unsigned. Don't
13925 check if insn addresses are set.
13926 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
13927 addresses are not set.
13928 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
13929
91c82473
NC
139302009-01-09 Nick Clifton <nickc@redhat.com>
13931
13932 * config/sh/symbian.c: Replace uses of DECL_INLINE with
13933 DECL_DECLARED_INLINE_P.
13934
4017e262
JJ
139352009-01-09 Jakub Jelinek <jakub@redhat.com>
13936
0a49e5c2
JJ
13937 PR middle-end/38347
13938 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
13939 GET_MODE (op0) in operand_subword_force calls.
13940
4017e262
JJ
13941 PR middle-end/38771
13942 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
13943 fold_convert arg0 operands to TREE_TYPE (op0) first.
13944
7cd06356
VM
139452009-01-08 Vladimir Makarov <vmakarov@redhat.com>
13946
13947 * params.def (ira-max-conflict-table-size): Decrease default value
13948 to 1000.
13949
96867bbd
JJ
139502009-01-08 Jakub Jelinek <jakub@redhat.com>
13951
13952 PR tree-optimization/37031
13953 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
13954 on parameter_set.
13955 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
13956 allocate it using gc instead of heap, use VEC_quick_push instead of
13957 VEC_safe_push.
13958 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
13959 instead of heap, use VEC_quick_push instead of VEC_safe_push.
13960 * tree-data-ref.h (struct access_matrix): Change matrix to gc
13961 allocated vector from heap allocated.
13962 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
13963 * tree-loop-linear.c (linear_transform_loops): Allocate nest
13964 vector only after perfect_loop_nest_depth call.
13965
68f61c3d
SP
139662009-01-08 Sebastian Pop <sebastian.pop@amd.com>
13967 Jan Sjodin <jan.sjodin@amd.com>
13968
13969 PR tree-optimization/38559
13970 * graphite.c (debug_value, copy_constraint,
13971 swap_constraint_variables, scale_constraint_variable, ): New.
13972 (get_lower_bound, get_upper_bound): Removed.
13973 (graphite_trans_bb_strip_mine): Clean up this code that works
13974 only for constant number of iterations. Fully copy upper and
13975 lower bound constraints, not only the constant part of them.
13976 * graphite.h (debug_value): Declared.
13977
82567e33
IR
139782009-01-08 Ira Rosen <irar@il.ibm.com>
13979
13980 PR tree-optimization/37194
13981 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 13982 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
13983 outside cost in case of known number of iterations.
13984
7da13f1d
NF
139852009-01-07 Nathan Froyd <froydnj@codesourcery.com>
13986 Alan Modra <amodra@bigpond.net.au>
13987
13988 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
13989 non-word-aligned REG+CONST addressing.
13990
c0f64575
UB
139912009-01-07 Uros Bizjak <ubizjak@gmail.com>
13992
13993 PR target/38706
13994 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
13995 free_after_compilation when outputting a thunk.
13996 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
13997 Do not call free_after_compilation here.
13998
301b6a4e
UB
139992009-01-07 Uros Bizjak <ubizjak@gmail.com>
14000
14001 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
14002 (ix86_valid_target_attribute_inner_p): Ditto.
14003
6a114766
JS
140042009-01-07 Jan Sjodin <jan.sjodin@amd.com>
14005
14006 PR tree-optimization/38492
14007 PR tree-optimization/38498
14008 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
14009 * tree-chrec.h (scev_is_linear_expression): Declared.
14010 * graphite.c (graphite_cannot_represent_loop_niter): New.
14011 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
14012 (graphite_loop_normal_form): Use gcc_assert.
14013 (scan_tree_for_params): Use CASE_CONVERT.
14014 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
14015 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
14016 Use gcc_assert. Discard scops that contain unhandled cases.
14017 (build_scop_conditions): Return a boolean status for unhandled cases.
14018 (strip_mine_profitable_p): Print the loop number, not its depth.
14019 (is_interchange_valid): Pass the depth of the loop nest, don't
14020 recompute it wrongly.
14021 (graphite_trans_bb_block): Same.
14022 (graphite_trans_bb_block): Print tentative of loop blocking.
14023 (graphite_trans_scop_block): Do not print that the loop has been
14024 blocked.
14025 (graphite_transform_loops): Do not handle scops that contain condition
14026 scalar phi nodes.
14027
65b82caa
L
140282009-01-07 H.J. Lu <hongjiu.lu@intel.com>
14029
14030 AVX Programming Reference (December, 2008)
14031 * config/i386/avxintrin.h (_mm256_stream_si256): New.
14032 (_mm256_stream_pd): Likewise.
14033 (_mm256_stream_ps): Likewise.
14034
14035 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
14036 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
14037 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
14038 (bdesc_special_args): Add __builtin_ia32_movntdq256,
14039 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
14040 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
14041 (ix86_expand_special_args_builtin): Likewise.
14042
14043 * config/i386/sse.md (AVXMODEDI): New.
14044 (avx_movnt<mode>): Likewise.
14045 (avx_movnt<mode>): Likewise.
14046 (<sse>_movnt<mode>): Remove AVX support.
14047 (sse2_movntv2di): Likewise.
14048
cef158f9
RG
140492009-01-07 Richard Guenther <rguenther@suse.de>
14050
14051 PR middle-end/38751
14052 * fold-const.c (extract_muldiv): Remove obsolete comment.
14053 (fold_plusminus_mult_expr): Undo MINUS_EXPR
14054 to PLUS_EXPR canonicalization for the canonicalization.
14055
246cb5be
GP
140562009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
14057
14058 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
14059 hosted cross-compilers generating less efficient code.
14060
84b9b872
RS
140612009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
14062
14063 * function.h (rtl_data): Add a dbr_scheduled_p field.
14064 * reorg.c (dbr_schedule): Set it.
14065 (gate_handle_delay_slots): Check it.
14066 * config/mips/mips.c (mips_base_delayed_branch): Delete.
14067 (mips_reorg): Check flag_delayed_branch instead of
14068 mips_base_delayed_branch.
14069 (mips_override_options): Don't set mips_base_delayed_branch
14070 or flag_delayed_branch.
14071
ace984c8
RS
140722009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
14073
14074 PR rtl-optimization/38426.
14075 * ira.c (ira): Set current_function_is_leaf earlier.
14076
7ad7809b
JJ
140772009-01-06 Jakub Jelinek <jakub@redhat.com>
14078
14079 PR rtl-optimization/38722
14080 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
14081 too early, only set a flag and modify after last possible
14082 undo_all point.
14083
c52ec948
JJ
140842009-01-06 Janis Johnson <janis187@us.ibm.com>
14085
14086 PR c/34252
14087 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
14088 * real.c (decimal_single_format): Correct values of emin and emax.
14089 (decimal_double_format): Ditto.
14090 (decimal_quad_format): Ditto.
14091 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
14092 computation of DECnn_MIN and DECnn_MAX for corrected values of
14093 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
14094 __DECnn_MIN__, and adjust its computation for the corrected value
14095 of emin.
14096
300240e1
JH
140972009-01-06 Jan Hubicka <jh@suse.cz>
14098
14099 PR target/38744
435da628 14100 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 14101
271c069e
GP
141022009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
14103
14104 * doc/contrib.texi (Contributors): Slightly adjust the end note.
14105 Add Robert Clark to the list of testers.
14106
64e4c301 141072009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 14108 Kai Tietz <kai.tietz@onevision.com>
64e4c301 14109
435da628
UB
14110 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
14111 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 14112
7650b83e 141132009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 14114 Kai Tietz <kai.tietz@onevision.com>
7650b83e 14115
435da628
UB
14116 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
14117 for w64 ABI.
14118 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
14119 (ix86_nsaved_regs): Count only general purpose regs.
14120 (ix86_nsaved_sseregs): New.
14121 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
14122 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
14123 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
14124 general purpose regs.
7650b83e
JH
14125 (ix86_emit_save_sse_regs_using_mov): New.
14126 (ix86_expand_prologue): Save SSE regs if needed.
14127 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
14128 (ix86_emit_restore_sse_regs_using_mov): New.
14129 (ix86_expand_epilogue): Save SSE regs if needed.
14130
9aa5c1b2 141312009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 14132 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 14133
435da628
UB
14134 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
14135 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
14136 functions when accumulate outgoing args is off.
9aa5c1b2 14137
f7556aae
L
141382009-01-06 H.J. Lu <hongjiu.lu@intel.com>
14139
14140 PR bootstrap/38742
14141 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
14142 before using pseudos_have_intersected_live_ranges_p.
14143
14144 * ira-int.h (ira_assert): Always define.
14145
e47b7d04
L
141462009-01-06 H.J. Lu <hongjiu.lu@intel.com>
14147
14148 AVX Programming Reference (December, 2008)
14149 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
14150 (_mm256_permute2_pd): Likewise.
14151 (_mm_permute2_ps): Likewise.
14152 (_mm256_permute2_ps): Likewise.
14153 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
14154 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
14155
14156 * config/i386/i386.c (ix86_builtins): Remove
14157 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
14158 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
14159 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
14160 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
14161 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
14162 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
14163 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
14164 __builtin_ia32_vpermil2ps256.
14165 (ix86_init_mmx_sse_builtins): Updated.
14166 (ix86_expand_args_builtin): Likewise.
14167
44b86471
JDA
141682009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14169
e47b7d04
L
14170 * pa.c (output_call): Relocate non-jump insns in the delay slot of
14171 long absolute calls when generating PA 2.0 code.
44b86471 14172
311aab06
VM
141732009-01-05 Vladimir Makarov <vmakarov@redhat.com>
14174
14175 PR rtl-optimization/38583
14176 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
14177
14178 * params.def (ira-max-conflict-table-size): New.
14179
14180 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 14181
311aab06 14182 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 14183
311aab06
VM
14184 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
14185 table. Report this. Return result of building.
14186 (ira_build_conflicts): Use ira_conflicts_p. Check result of
14187 building conflict table.
14188
301b6a4e 14189 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 14190 (ira_color): Use ira_conflicts_p.
2ba9daa7 14191
311aab06
VM
14192 * global.c: Include ira.h.
14193 (pseudo_for_reload_consideration_p, build_insn_chain): Use
14194 ira_conflicts_p.
14195
14196 * Makefile.in (global.o): Add ira.h.
2ba9daa7 14197
311aab06
VM
14198 * ira-build.c (mark_all_loops_for_removal,
14199 propagate_some_info_from_allocno): New.
14200 (remove_unnecessary_allocnos): Call
14201 propagate_some_info_from_allocno.
14202 (remove_low_level_allocnos): New.
14203 (remove_unnecessary_regions): Add parameter. Call
14204 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
14205 parameter to remove_unnecessary_regions.
14206 (ira_build): Remove all regions but root if the conflict table was
14207 not built. Update conflict hard regs for allocnos crossing calls.
14208
14209 * ira.c (ira_conflicts_p): New global.
14210 (ira): Define and use ira_conflicts_p.
14211
14212 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
14213 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 14214 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 14215
5641785f
BE
142162009-01-06 Ben Elliston <bje@au.ibm.com>
14217
14218 * gengtype-lex.l (YY_NO_INPUT): Define.
14219
e4e5261f
AP
142202009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
14221
14222 PR c/34911
5641785f
BE
14223 * c-common.c (handle_vector_size_attribute): Also reject
14224 BOOLEAN_TYPE types.
e4e5261f 14225
7b10257f
SP
142262009-01-05 Sebastian Pop <sebastian.pop@amd.com>
14227
14228 PR tree-optimization/38492
14229 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
14230 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
14231 rename_map_elt_info, eq_rename_map_elts,
14232 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
14233 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
14234 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
14235 (sese_build_livein_liveouts): New.
14236 (new_sese, free_sese): New.
14237 (new_scop): Call new_sese.
14238 (free_scop): Call free_sese.
14239 (rename_variables_from_edge, rename_phis_end_scop): Removed.
14240 (register_old_new_names): Renamed register_old_and_new_names.
14241 (register_scop_liveout_renames, add_loop_exit_phis,
14242 insert_loop_close_phis, struct igp,
14243 default_liveout_before_guard, add_guard_exit_phis,
14244 insert_guard_phis, copy_renames): New.
14245 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
14246 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
14247 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
14248 (scop_adjust_phis_for_liveouts): New.
14249 (gloog): Call scop_adjust_phis_for_liveouts.
14250
14251 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 14252 num_ver and livein.
7b10257f
SP
14253 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
14254 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
14255 (struct scop): Added field liveout_renames.
14256 (SCOP_LIVEOUT_RENAMES): New.
14257
9761fcc7
HJ
142582009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
14259
14260 PR tree-optimization/38510
14261 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
14262 (translate_clast): Call recompute_all_dominators before
14263 graphite_verify.
14264 (gloog): Call recompute_all_dominators before graphite_verify.
14265
142662009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 14267 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
14268
14269 PR tree-optimization/38500
14270 * graphite.c (create_sese_edges): Call fix_loop_structure after
14271 splitting blocks.
14272
c95b2534 142732009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
14274
14275 * config.gcc: Add m32r*-*-rtems*.
14276 * config/m32r/rtems.h: New file.
14277
fc0cd180
BE
142782009-01-05 Ben Elliston <bje@au.ibm.com>
14279
14280 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
14281 (.po.pox): Likewise.
14282 (po/gcc.pot): Likewise.
14283
3106d8e5
DM
142842009-01-04 David S. Miller <davem@davemloft.net>
14285
14286 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
14287 (STARTING_FRAME_OFFSET): Always set to zero.
14288
0009b473
RS
142892009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
14290
14291 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
14292 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
14293 fixed-point types, and vectors of the same.
14294
4f24c6d6
RS
142952009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
14296
14297 * config/mips/sync.md (*mb_barrier): Rename to...
14298 (*memory_barrier): ...this.
14299
1df48f5c
JW
143002009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
14301
14302 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 14303 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
14304 and put in alphabetical order. Fix 'target' name and put in order.
14305 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
14306 typos.
14307
1a8c13b3
UB
143082009-01-04 Uros Bizjak <ubizjak@gmail.com>
14309
14310 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
14311 (memory_barrier): Expand as unspec instead of unspec_volatile.
14312 Remove mem:BLK from insn operands. Use Pmode scratch register.
14313 (*memory_barrier): Define as unspec instead of unspec_volatile.
14314 Use (match_dup 0) as input operand.
14315
14316 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
14317 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
14318 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
14319 scratch register. Remove operand 1.
14320 (*stbar): Define as unspec instead of unspec_volatile.
14321 Use (match_dup 0) as input operand, remove (const_int 8).
14322 (*membar): Define as unspec instead of unspec_volatile.
14323 Use (match_dup 0) as input operand, remove input operand 2.
14324
14325 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
14326 (memory_barrier): Expand as unspec instead of unspec_volatile.
14327 Remove mem:BLK from insn operands. Use Pmode scratch register.
14328 (*memory_barrier): Define as unspec instead of unspec_volatile.
14329 Use (match_dup 0) as input operand.
14330
14331 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
14332 Remove mem:BLK from insn operands. Use Pmode scratch register.
14333 Set volatile flag on operand 0.
14334 (*memory_barrier): New insn pattern.
14335
14336 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
14337 insn operands.
14338 (*memory_barrier): Use (match_dup 0) as input operand.
14339
14340 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
14341 Remove mem:BLK from insn operands. Use Pmode scratch register.
14342 Set volatile flag on operand 0.
301b6a4e 14343 (*mb_internal): New insn pattern.
1a8c13b3
UB
14344
14345 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
14346
fb0703f7
SB
143472009-01-04 Steven Bosscher <steven@gcc.gnu.org>
14348
14349 PR middle-end/38586
14350 * function.c (struct temp_slot): Move to the section of the file
14351 that deals with temp slots. Remove field 'address'.
14352 (temp_slot_address_table): New hash table of address -> temp slot.
14353 (struct temp_slot_address_entry): New struct, items for the table.
14354 (temp_slot_address_compute_hash, temp_slot_address_hash,
14355 temp_slot_address_eq, insert_temp_slot_address): Support functions
14356 for the new table.
14357 (find_temp_slot_from_address): Rewrite to use the new hash table.
14358 (remove_unused_temp_slot_addresses): Remove addresses of temp
14359 slots that have been made available.
14360 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
14361 worker function for remove_unused_temp_slot_addresses.
14362 (assign_stack_temp_for_type): Don't clear the temp slot address list.
14363 Add the temp slot address to the address -> temp slot map.
14364 (update_temp_slot_address): Update via insert_temp_slot_address.
14365 (free_temp_slots): Call remove_unused_temp_slot_addresses.
14366 (pop_temp_slots): Likewise.
14367 (init_temp_slots): Allocate the address -> temp slot map, or empty
14368 the map if it is already allocated.
14369 (prepare_function_start): Initialize temp slot processing.
14370
b5a430f3
SB
143712009-01-04 Steven Bosscher <steven@gcc.gnu.org>
14372
14373 PR middle-end/38584
14374 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
14375 Calculate the size of all stack vars assuming no packing of stack
14376 vars will happen, replacing a quadratic algorithm with a linear one.
14377
5d560619
JJ
143782009-01-03 Jakub Jelinek <jakub@redhat.com>
14379
14380 PR target/38707
14381 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
14382 can't be used.
14383
953a7caa
DN
143842009-01-03 Diego Novillo <dnovillo@google.com>
14385
14386 * doc/contrib.texi: Update contributions.
14387
5f26a230
JJ
143882009-01-03 Jakub Jelinek <jakub@redhat.com>
14389
493aa551
JJ
14390 PR c++/38705
14391 * builtins.c (fold_builtin_memory_op): Give up if either operand
14392 is volatile. Set srctype or desttype to non-qualified version
14393 of the other type.
14394
5f26a230
JJ
14395 PR c/38700
14396 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
14397 and FUNCTION_DECLs.
14398
c95b2534 143992009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
14400
14401 PR rtl-optimization/35805
14402 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
14403 problem if fast dce is able to remove any instructions.
14404 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 14405
0b355794
MM
144062009-01-02 Mark Mitchell <mark@codesourcery.com>
14407
14408 PR 33649
14409 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
14410
0cf0d02b
JJ
144112009-01-02 Jakub Jelinek <jakub@redhat.com>
14412
14413 PR middle-end/38690
14414 * tree-flow.h (op_code_prio, op_prio): New prototypes.
14415 * tree-pretty-print.c (op_code_prio): New function.
14416 (op_prio): No longer static. Use op_code_prio.
14417 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
14418 Use op_prio and op_code_prio to determine if () should be
14419 printed around operand(s) or not.
14420
14421 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
14422 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
14423 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
14424 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
14425 pp_character instead of pp_string for single letter printing.
14426
e3606f3b
RS
144272009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
14428
14429 * doc/extend.texi: Fix '#pragma GCC option' typo.
14430
c95b2534 144312009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 14432
a5f061dc
RG
14433 * doc/install.texi (--enable-checking): Mention different
14434 default for stage1.
14435 (--enable-stage1-checking): Document.
00f39bd5 14436
26de0bcb
AP
144372009-01-01 Andrew Pinski <pinskia@gmail.com>
14438
14439 PR middle-end/30142
14440 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
14441 case to be an error.
14442
7a7d8fab
BE
144432009-01-02 Ben Elliston <bje@au.ibm.com>
14444
14445 * config/fp-bit.h (pack_d): Constify argument.
14446 * config/fp-bit.c (makenan): Constify return type. Remove casts.
14447 (isnan): Constify argument.
14448 (isinf): Likewise.
14449 (iszero): Likewise.
14450 (pack_d): Likewise.
14451 (_fpadd_parts): Constify return type.
14452 (_fpmul_parts): Likewise.
14453 (_fpdiv_parts): Likewise.
14454
b295aee2
JJ
144552009-01-01 Jakub Jelinek <jakub@redhat.com>
14456
14457 PR c/36489
14458 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
14459 warn about overwriting initializer with side-effects or
14460 -Woverride-init if !IMPLICIT.
14461 (output_init_element): Likewise. Pass IMPLICIT down to
14462 add_pending_init.
14463 (process_init_element): Add IMPLICIT argument. Pass it down
14464 to output_init_element.
14465 (push_init_element, pop_init_level, set_designator): Adjust
14466 process_init_element callers.
14467 (set_nonincremental_init, set_nonincremental_init_from_string):
14468 Adjust add_pending_init callers.
14469 (output_pending_init_elements): Adjust output_init_element callers.
14470 * c-tree.h (process_init_element): Adjust prototype.
14471 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
14472 process_init_element callers.
ad41bd84
JM
14473
14474\f
14475Copyright (C) 2009 Free Software Foundation, Inc.
14476
14477Copying and distribution of this file, with or without modification,
14478are permitted in any medium without royalty provided the copyright
14479notice and this notice are preserved.