]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
* ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
7dfbd804 12009-04-21 Joseph Myers <joseph@codesourcery.com>
2
3 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
4 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
5 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
6 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
7 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
8 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
9 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
10 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
11 config/alpha/x-vms, config/arc/t-arc,
12 config/arm/README-interworking, config/arm/arm-c.c,
13 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
14 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
15 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
16 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
17 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
18 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
19 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
20 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
21 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
22 config/cris/t-elfmulti, config/crx/t-crx,
23 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
24 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
25 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
26 config/h8300/t-h8300, config/i386/athlon.md,
27 config/i386/darwin-libgcc.10.4.ver,
28 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
29 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
30 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
31 config/i386/t-linux64, config/i386/t-nwld,
32 config/i386/t-rtems-i386, config/i386/t-sol2-10,
33 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
34 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
35 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
36 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
37 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
38 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
39 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
40 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
41 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
42 config/m68k/t-uclinux, config/mcore/t-mcore,
43 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
44 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
45 config/mips/crtn.asm, config/mips/irix-crti.asm,
46 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
47 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
48 config/mips/mips-fixed.md, config/mips/sb1.md,
49 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
50 config/mips/t-iris6, config/mips/t-isa3264,
51 config/mips/t-libgcc-mips16, config/mips/t-linux64,
52 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
53 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
54 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
55 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
56 config/mn10300/t-linux, config/mn10300/t-mn10300,
57 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
58 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
59 config/picochip/libgccExtras/clzsi2.asm,
60 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
61 config/rs6000/darwin-libgcc.10.4.ver,
62 config/rs6000/darwin-libgcc.10.5.ver,
63 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
64 config/rs6000/t-aix43, config/rs6000/t-aix52,
65 config/rs6000/t-darwin, config/rs6000/t-fprules,
66 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
67 config/rs6000/t-lynx, config/rs6000/t-netbsd,
68 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
69 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
70 config/rs6000/t-rtems, config/rs6000/t-spe,
71 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
72 config/score/t-score-elf, config/sh/divcost-analysis,
73 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
74 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
75 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
76 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
77 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
78 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
79 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
80 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
81 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
82 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
83 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
84 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
85 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
86 limitx.h, version.c, xcoff.h: Add copyright and license notices.
87 * config/h8300/genmova.sh: Include copyright and license notices
88 in generated output.
89 * config/h8300/mova.md: Regenerate.
90 * doc/install.texi2html: Include word "Copyright" in copyright
91 notice and use name "Free Software Foundation, Inc.".
92 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
93 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
94 ChangeLog-2007, ChangeLog-2008: Correct dates.
95
43158006 962009-04-21 Eric Botcazou <ebotcazou@adacore.com>
97
98 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
99 NE_EXPR operations as well.
100 * c-parser.c (c_parser_condition): Do not set location information on
101 the condition.
102 (c_parser_conditional_expression): Likewise.
103 (c_parser_binary_expression): Set location information on operators.
104 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
105 TRUTH_NOT_EXPR has been folded.
106 * fold-const.c (fold_truth_not_expr): Copy location information from
107 the incoming expression to the outgoing one.
108 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
109 recursive calls on the LHS of the operator but pass that of the
110 operator to recursive calls on the RHS of the operator. Set it
111 on the COND_EXPR.
112 (shortcut_cond_expr): Set the locus of the operator on the second
113 COND_EXPR and that of the expression on the first in degenerate cases.
114 Pass the locus of the expression to calls to shortcut_cond_r.
115 Set the locus of the 'then' block on the associated jump, if any.
116 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
117 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
118 expression to call to gimplify_boolean_expr.
119
72f432d4 1202009-04-21 Kai Tietz <kai.tietz@onevision.com>
121
122 * config.gcc: Add additional configuration for
123 i686-w64-mingw* and x86_64-w64-mingw* triplet.
124 * config/i386/mingw-w64.h: New mingw-w64 specific header.
125 (CPP_SPEC): Redefine for allowing -municode option.
126 (STARTFILE_SPEC): Likewise.
127 * config/i386/t-mingw-w64: New.
128 * config/i386/mingw-w64.opt: New.
129 (municode): Add new target option.
130 * doc/invoke.texi (municode): Add documentation for new option.
131
da84efc1 1322009-04-21 Ian Lance Taylor <iant@google.com>
133
134 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
135 Correct test for number of arguments.
136 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
137
89871bab 1382009-04-21 Andreas Schwab <schwab@linux-m68k.org>
139
140 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
141 argument of emit_library_call.
142
be1b4133 1432009-04-21 Richard Guenther <rguenther@suse.de>
144
145 PR middle-end/39829
146 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
147 inside VIEW_CONVERT_EXPRs.
148
f6ac75a7 1492009-04-21 Martin Jambor <mjambor@suse.cz>
150
151 * tree-switch-conversion.c (build_constructors): Split a long line.
152 (constructor_contains_same_values_p): New function.
153 (build_one_array): Create assigns of constants if possible, do not call
154 mark_sym_for_renaming, call update_stmt.
155 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
156 make_rename_temp. Do not call mark_symbols_for_renaming, call
157 update_stmt.
158 (gen_def_assigns): Do not call mark_symbols_for_renaming or
159 find_new_referenced_vars, call update_stmt.
160 (gen_inbound_check): Use create_tmp_var and create ssa names manually
161 instead of calling make_rename_temp. Do not call
162 find_new_referenced_vars or mark_symbols_for_renaming, call
163 update_stmt.
164
80a26b8b 1652009-04-21 Richard Guenther <rguenther@suse.de>
166
167 PR tree-optimization/39827
168 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME
169 is in range.
170 (tree_ssa_phiprop): Pass the correct array size.
171
8734914d 1722009-04-21 Uros Bizjak <ubizjak@gmail.com>
173
174 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
175
79973b57 1762009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
177
178 PR 16202
179 * c-typeck.c (lvalue_p): Move declaration ...
180 * c-common.h (lvalue_p): ... to here.
181 * c-common.c (candidate_equal_p): New.
182 (add_tlist): Use it.
183 (merge_tlist): Use it.
184 (warn_for_collisions_1): Likewise.
185 (warning_candidate_p): Accept more candidates.
186 (verify_tree): A warning candidate can be an expression. Use
187 candidate_equal_p.
188
e1483f71 1892009-04-21 Ben Elliston <bje@au.ibm.com>
190
191 PR target/5267
192 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
193 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
194 options. Remove -mcall-solaris documentation.
195
9ab71c6b 1962009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
197
198 PR c++/13358
199 * doc/invoke.texi (-Wlong-long): Update description.
200 * c-lex (interpret_integer): Only warn if there was no previous
201 overflow and -Wlong-long is enabled.
202 * c-decl.c (declspecs_add_type): Drop redundant flags.
203 * c.opt (Wlong-long): Init to -1.
204 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
205 and front-end warn_long_long. Wlong-long only depends on other
206 flags if it is uninitialized.
207 * c-parser.c (disable_extension_diagnostics): warn_long_long is
208 the same for CPP and FE.
209 (restore_extension_diagnostics): Likewise.
210
b9c74b4d 2112009-04-20 Ian Lance Taylor <iant@google.com>
212
213 Fix enum conversions which are invalid in C++:
8734914d 214 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
215 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
b9c74b4d 216 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
217 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
8734914d 218 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
b9c74b4d 219 (dbxout_parms): Likewise.
8734914d 220 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
b9c74b4d 221 (df_clear_flags): Likewise.
222 * df-problems.c (df_rd_bb_local_compute_process_def): Change
223 top_flag parameter to int.
224 (df_chain_create_bb_process_use): Likewise.
8734914d 225 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
226 Remove cast.
b9c74b4d 227 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
228 (df_ref_create_structure, df_def_record_1): Likewise.
229 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
230 (df_notes_rescan): Change 0 to VOIDmode in function call.
231 (df_get_call_refs, df_insn_refs_collect): Likewise.
232 (df_bb_regs_collect): Likewise.
233 (df_entry_block_defs_collect): Likewise.
234 (df_exit_block_uses_collect): Likewise.
235 * df.h: Update declarations.
236 * double-int.c (double_int_divmod): Add cast to enum type.
237 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
238 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
239 (based_loc_descr): Likewise.
240 (loc_descriptor_from_tree_1): Change first_op and second_op to
241 enum dwarf_location_atom. Add cast to enum type.
242 * expmed.c (init_expmed): Change 0 to SET in function call.
8734914d 243 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
b9c74b4d 244 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
245 (do_store_flag): Likewise.
246 * fixed-value.h (struct fixed_value): Change mode to enum
247 machine_mode.
8734914d 248 * function.c (assign_parms): Change 0 to VOIDmode in function call.
b9c74b4d 249 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
250 function call.
251 (insert_insn_decl, insert_decl, insert_state): Likewise.
252 (automata_list_finish): Likewise.
253 * genrecog.c (process_define_predicate): Add cast to enum type.
254 * gensupport.c (init_predicate_table): Add cast to enum type.
255 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
256 function call.
257 (gimple_build_call_1, gimple_build_label): Likewise.
258 (gimple_build_goto, gimple_build_asm_1): Likewise.
259 (gimple_build_switch_1, gimple_build_cdt): Likewise.
8734914d 260 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
b9c74b4d 261 (enum fallback): Rename from enum fallback_t.
262 (fallback_t): Typedef as int.
263 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
264 GSI_SAME_STMT in function call.
265 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
266 enum type.
267 (setup_reg_class_relations): Likewise.
8734914d 268 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
b9c74b4d 269 (setup_prohibited_class_mode_regs): Add cast to enum type.
270 (setup_prohibited_mode_move_regs): Likewise.
8734914d 271 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
b9c74b4d 272 (record_address_regs): Change i to enum reg_class.
273 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
274 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
275 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
276 (GET_MODE_2XWIDER_MODE): Likewise.
277 (GET_CLASS_NARROWEST_MODE): Likewise.
278 * omp-low.c (expand_omp_for): Add cast to enum type.
279 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
280 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
281 * postreload.c (reload_cse_simplify_operands): Change rclass local
282 to enum reg_class.
283 * predict.c (combine_predictions_for_insn): Change best_predictor
284 and predictor to enum br_predictor.
285 (combine_predictions_for_bb): Likewise.
286 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
287 use SET_PREDICT_EXPR_OUTCOME.
8734914d 288 * real.c (real_arithmetic): Change icode to code in function call.
b9c74b4d 289 * reginfo.c (init_move_cost): Add casts to enum type.
290 (init_reg_sets_1, init_fake_stack_mems): Likewise.
291 * regmove.c (regclass_compatible_p): Change class0 and class1 to
292 enum reg_class.
293 * reload.c (find_valid_class): Add casts to enum type.
294 (push_reload): Change 0 to NO_REGS in function call.
295 (find_reloads): Change this_alternative to array of enum
296 reg_class. Remove some now-unnecessary casts.
297 (make_memloc): Change 0 to VOIDmode in function call.
298 * reload1.c (reload): Change 0 to VOIDmode in function call.
299 (eliminate_regs_1, elimination_effects): Likewise.
300 (eliminate_regs_in_insn): Likewise.
301 (emit_input_reload_insns): Add cast to enum type.
302 (delete_output_reload): Change 0 to VOIDmode in function call.
303 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
304 to enum type in function call.
305 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
306 (SET_PREDICT_EXPR_OUTCOME): Define.
8734914d 307 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
b9c74b4d 308 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
309 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
310 (dump_function): Likewise.
311 * tree-dump.h: Update declarations.
312 * tree-pass.h: Update declarations.
313 * varasm.c (assemble_integer): Change mclass to enum mode_class.
314 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
315 enum type.
316 (arm_rtx_costs_1): Correct parenthesization.
317 (arm_rtx_costs): Add casts to enum type.
318 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
319 (vfp_emit_fstmd): Use add_rg_note.
320 (emit_multi_reg_push, emit_sfm): Likewise.
321 (thumb_set_frame_pointer): Likewise.
322 (arm_expand_prologue): Likewise.
323 (arm_regno_class): Change return type to enum reg_class.
324 (thumb1_expand_prologue): Use add_reg_note.
325 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
326 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
327 in function call.
328 * config/arm/gentune.sh: Add cast to enum type.
329 * config/arm/arm-tune.md: Rebuild.
330 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
331 (ix86_split_fp_branch, predict_jump): Likewise.
332 (ix86_expand_multi_arg_builtin): Change sub_code from enum
333 insn_code to enum rtx_code.
334 (ix86_builtin_vectorized_function): Add cast to enum type.
335 * config/i386/i386.md (truncdfsf2): Change slot to enum
336 ix86_stack_slot.
337 (truncxf<mode>2, isinf<mode>2): Likewise.
338 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
339 enum type.
340 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
341 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
342 (insert_bundle_state): Change 1 to INSERT in function call.
343 (ia64_add_bundle_selector_before): Likewise.
344 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
345 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
346 (restore_stack_nonlocal): Likewise.
347 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
348 function call.
349 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
350 function call.
351 (mips_rtx_costs): Likewise.
352 (mips_override_options): Add casts to enum type.
353 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
354 in function call.
355 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
356 (store_reg, set_reg_plus_d): Likewise.
357 (hppa_expand_prologue, hppa_profile_hook): Likewise.
358 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
359 cast to enum type.
360 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
361 function call.
362 (emit_unlikely_jump): Use add_reg_note.
363 (rs6000_emit_allocate_stack): Likewise.
364 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
365 (output_toc): Change 1 to INSERT in function call.
366 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
367 (rs6000_initialize_trampoline): Likewise.
368 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
369 function call.
370 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
371 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
372 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
373 (save_gprs): Use add_reg_note.
374 (s390_emit_prologue): Likewise.
8734914d 375 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
b9c74b4d 376 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
377 (sparc_fold_builtin): Add cast to enum type.
378 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
379 enum insn_code.
380 (spu_expand_prologue): Use add_reg_note.
8734914d 381 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
b9c74b4d 382
3832009-04-20 Ian Lance Taylor <iant@google.com>
384
385 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
386 (c_parser_postfix_expression_after_primary): Get VEC for list of
387 arguments. Get original types of arguments. Call
388 build_function_call_vec.
389 (cached_expr_list_1, cached_expr_list_2): New static variables.
390 (c_parser_expr_list): Change return type to VEC *. Add
391 p_orig_types parameter. Change all callers.
392 (c_parser_release_expr): New static function.
393 (c_parser_vec_to_tree_list): New static function.
394 * c-typeck.c (build_function_call): Rewrite to build a VEC and
395 call build_function_call_vec.
396 (build_function_call_vec): New function, based on old
397 build_function_call.
398 (convert_arguments): Remove nargs and argarray parameters. Change
399 values to a VEC. Add origtypes parameter.
8734914d 400 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
b9c74b4d 401 (convert_for_assignment): Add origtype parameter. Change all
402 callers. If warn_cxx_compat, check for conversion to an enum
403 type when calling a function.
404 (store_init_value): Add origtype parameter. Change all callers.
405 (digest_init): Likewise.
406 (struct init_node): Add origtype field.
407 (add_pending_init): Add origtype parameter. Change all callers.
408 (output_init_element): Likewise.
409 (output_pending_init_elements): Pass origtype from init_node to
410 output_init_element.
4ebc3d57 411 (process_init_element): Pass origtype from c_expr to
b9c74b4d 412 output_init_element.
413 (c_finish_return): Add origtype parameter. Change all callers.
414 * c-common.c (sync_resolve_size): Change params to VEC *. Change
415 caller.
416 (sync_resolve_params): Likewise.
8734914d 417 (sync_resolve_return): Change params to first_param. Change caller.
b9c74b4d 418 (resolve_overloaded_builtins): Change params to VEC *. Change
8734914d 419 callers. Save first parameter around call to build_function_call_vec.
b9c74b4d 420 * c-decl.c (finish_decl): Add origtype parameter. Change all
421 callers. Call build_function_call_vec rather than
422 build_function_call for cleanup.
423 * c-tree.h: Update declarations.
424 * c-common.h: Update declarations.
425 * stub-objc.c (objc_rewrite_function_call): Change parameter from
426 params to first_param.
427 * target.h (struct gcc_target): Change resolve_overloaded_builtin
428 params parameter from tree to void *.
429 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
430 Change arglist parameter to have type void *, and to be a pointer
431 to a VEC.
432 * config/rs6000/rs6000-protos.h
433 (altivec_resolve_overloaded_builtin): Update declaration.
434 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
435 fnargs parameter to have type void *, and to be a pointer to a
436 VEC. Call build_function_call_vec instead of
437 build_function_call.
8734914d 438 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
b9c74b4d 439
6df553fd 4402009-04-20 Joey Ye <joey.ye@intel.com>
441 Xuepeng Guo <xuepeng.guo@intel.com>
442 H.J. Lu <hongjiu.lu@intel.com>
443
444 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
445
446 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
447 (IX86_LEA_PRIORITY): Likewise.
448 (distance_non_agu_define): New function.
449 (distance_agu_use): Likewise.
450 (ix86_lea_for_add_ok): Likewise.
451 (ix86_dep_by_shift_count): Likewise.
452
453 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
454 should split for LEA.
455
456 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
457 function.
458 (ix86_dep_by_shift_count): Likewise.
459
a174b54d 4602009-04-20 Richard Guenther <rguenther@suse.de>
461
462 * expr.c (handled_component_p): Move ...
463 * tree.h (handled_component_p): ... here.
464 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
465 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
466 and REALPART_EXPR to be in one group.
467
59f3ea59 4682009-04-20 Richard Guenther <rguenther@suse.de>
469
470 * basic-block.h (get_all_dominated_blocks): Declare.
471 * dominance.c (get_all_dominated_blocks): New function.
472 * tree-cfg.c (get_all_dominated_blocks): Remove.
473 (remove_edge_and_dominated_blocks): Adjust.
474 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
475 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
476 instead of recursing.
477
13f90d63 4782009-04-20 Doug Kwan <dougkwan@google.com>
479
480 * cgraph.h (cgraph_node_ptr): New type for vector functions.
481 (struct cgraph_node_set_def): New type.
482 (cgraph_node_set) New type. Also declare vector functions.
483 (struct cgraph_node_set_element_def): New type.
484 (cgraph_node_set_element): Ditto.
485 (cgraph_node_set_iterator): New iterator type.
486 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
487 cgraph_node_set_remove, dump_cgraph_node_set,
488 debug_cgraph_node_set): New prototypes.
489 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
490 cgraph_node_set_size): New inlines.
491 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
492 including cgraph.h.
493 (struct ipa_opt_pass): Add struct cgraph_node_set_def
494 argument to function 'write_summary'.
495 * ipa.c: Include ggc.h.
496 (hash_cgraph_node_set_element,
497 eq_cgraph_node_set_element, cgraph_node_set_new,
498 cgraph_node_set_add, cgraph_node_set_remove,
499 cgraph_node_set_find, dump_cgraph_node_set,
500 debug_cgraph_node_set): New functions.
501 * Makefile.in (ipa.o): Add dependency on GGC_H.
502
1065dd4e 5032009-04-20 Ira Rosen <irar@il.ibm.com>
504
505 PR tree-optimization/39675
89871bab 506 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
8734914d 507 check of the return code of vect_schedule_slp. Check that
508 stmt_vec_info still exists for the statement, before checking its
509 vectorization type.
1065dd4e 510
ae381971 5112009-04-20 Michael Matz <matz@suse.de>
512
513 * Makefile.in (generated_files): Take out $(simple_generated_c).
514
2e4b8e58 5152009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
516
517 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
518 (UINTPTR_TYPE): Likewise.
519
fe49e588 5202009-04-19 Joseph Myers <joseph@codesourcery.com>
521
522 PR c/37481
523 * c-typeck.c (digest_init): Check for initializing an array with a
524 string literal.
525
714c7dce 5262009-04-19 Joseph Myers <joseph@codesourcery.com>
527
528 PR c/19771
529 * c-semantics.c (pop_stmt_list): Propagate
530 STATEMENT_LIST_HAS_LABEL to parent statement list.
531
287179e8 5322009-04-19 Adam Nemet <anemet@caviumnetworks.com>
533
534 * config/mips/mips.h (mips_tune_attr): New macro.
535 * config/mips/mips.md (cpu): Use it.
536
577f4774 5372009-04-19 Joseph Myers <joseph@codesourcery.com>
538
539 PR c/38243
540 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
541 declaring a tag.
542
9ed5b1f5 5432009-04-19 Diego Novillo <dnovillo@google.com>
544
545 * toplev.c (compile_file): Move call to coverage_finish ...
546 * cgraphunit.c (ipa_passes): ... here.
547 Call cgraph_process_new_functions.
548 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
549 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
550
ecfab407 5512009-04-19 Jan Hubicka <jh@suse.cz>
552
8734914d 553 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
554 cfun.
ecfab407 555 (dump_cgraph_node): Dump can throw external flag.
556 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
557
03033af4 5582009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
559
560 PR c/32061
561 PR c++/36954
562 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
563 * common.opt (Wlogical-op): Move from here...
564 * c.opt (Wlogical-op): ... to here.
565 * c-typeck.c (parser_build_binary_op): Update call to
566 warn_logical_operator.
567 * c-opts.c (c_common_post_options): Enable warn_logical_op with
568 extra_warnings.
569 * c-common.c (warn_logical_op): Update.
570 * c-common.h (warn_logical_op): Update declaration.
571
d3e86ba4 5722009-04-19 Eric Botcazou <ebotcazou@adacore.com>
573
574 * tree.c (protected_set_expr_location): Fix formatting.
575
d4e60318 5762009-04-18 Joseph Myers <joseph@codesourcery.com>
577
578 PR c/27676
579 * c-typeck.c (readonly_warning): new.
580 (build_unary_op, build_modify_expr): Use readonly_warning for
581 storing into something readonly but not const-qualified.
582
1b157e43 5832009-04-18 Joseph Myers <joseph@codesourcery.com>
584
585 PR c/22367
586 * c-typeck.c (build_unary_op): Check for taking address of
587 expression of type void.
588
8f24e4bd 5892009-04-18 Joseph Myers <joseph@codesourcery.com>
590
591 PR c/35210
592 * c-typeck.c (build_function_call): Check for calling a function
593 with qualified void return types. Call require_complete_type when
594 generating a trap.
595
17b28e52 5962009-04-18 Jan Hubicka <jh@suse.cz>
597
598 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
599 Set nothrow flag.
600 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
601 can_throw_external flag.
602 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
603 * ipa-pure-const.c (ignore_edge): New function.
604 (propagate): Compute order for NOTHROW computation; set NOTHROWs
605 only over can_throw_external edges.
606 (local_pure_const): Add nothrow flag.
607 * ipa-utils.c (searchc): Add ignore_edge callback.
608 (ipa_utils_reduced_inorder): Add ignore_edge callback.
609 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
610 (set_nothrow_function_flags): Update cgraph.
611 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
612
1c03e359 6132009-04-18 Richard Guenther <rguenther@suse.de>
614
615 PR middle-end/39804
616 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
617 (fold_stmt): ... this and ...
618 (fold_stmt_inplace): ... this.
619 (fold_stmt_1): Fold references in calls and asms.
620 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
621
8a6bbf30 6222009-04-18 Kazu Hirata <kazu@codesourcery.com>
623
624 * tree-vrp.c (ssa_name_nonzero_p): Remove.
625 * tree.h: Remove the prototype for ssa_name_nonzero_p.
626
32234224 6272009-04-18 Kazu Hirata <kazu@codesourcery.com>
628
629 * tree.c (function_args_count): Remove.
630 * tree.h: Remove the prototype for function_args_count.
631
c58db4b7 6322009-04-18 Kazu Hirata <kazu@codesourcery.com>
633
634 * tree-iterator.c (expr_only): Remove.
635 * tree.h: Remove the prototype for expr_only.
636
404acb5b 6372009-04-18 Kazu Hirata <kazu@codesourcery.com>
638
639 * reginfo.c (cannot_change_mode_set_regs): Remove.
640 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
641
5a07d305 6422009-04-08 Anatoly Sokolov <aesok@post.ru>
643
644 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
645 whether operands 0 and 1 overlaps.
646
496ffe87 6472009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
648
649 PR middle-end/36902
650 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
651 pointer. Use warning_at instead of warning.
652 (search_for_addr_array): Likewise.
653 (check_array_bounds): Likewise.
654 (check_all_array_refs): Check that the incoming edge is not in the
655 list of edges to be removed.
656 (check_all_array_refs): Avoid the temporal pointer.
657 (vrp_visit_cond_stmt): Fix typo.
658 (simplify_switch_using_ranges): Handle the case where the switch
659 index is an integer constant.
660
f846b2e1 6612009-04-18 Adam Nemet <anemet@caviumnetworks.com>
662
663 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
664
d270ac20 6652009-04-18 Kazu Hirata <kazu@codesourcery.com>
666
667 * doc/extend.texi, doc/invoke.texi: Fix typos.
668
3085aa6d 6692009-04-17 Cary Coutant <ccoutant@google.com>
670
671 * tree-flow-inline.h (get_lineno): Fix inverted test.
672
d47f59f6 6732009-04-17 Diego Novillo <dnovillo@google.com>
674
675 * tree-ssa-pre.c (create_expression_by_pieces): Remove
676 assertion for AVAIL_OUT.
677
cea9fc42 6782009-04-17 Mike Frysinger <vapier@gentoo.org>
679
680 PR target/38627
681 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
682 * config/sh/linux-atomic.asm: Likewise.
683
576cc2fe 6842009-04-17 Diego Novillo <dnovillo@google.com>
685
686 * except.c (debug_eh_tree): New.
687 (struct eh_region, struct eh_status): Move ...
688 * except.h: ... here.
689 (add_type_for_runtime): Declare extern.
690 (lookup_type_for_runtime): Likewise.
691 (debug_eh_tree): Declare.
692 * Makefile.in (GTFILES): List except.h before except.c
693
8e5b4ed6 6942009-04-17 Diego Novillo <dnovillo@google.com>
695
8734914d 696 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
8e5b4ed6 697 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
698 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
699 (find_vars_r): ... here.
700 * tree-flow.h (find_referenced_vars_in): Declare.
701 * tree-ssa-pre.c (create_expression_by_pieces): Assert
702 that AVAIL_OUT exists for BLOCK.
703 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
704 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
705 (tree-parloops.o): Likewise.
706
132cae05 7072009-04-17 Simon Baldwin <simonb@google.com>
708
709 * toplev.c (default_tree_printer): Add handling for %E format.
710
c6934f8a 7112009-04-17 Diego Novillo <dnovillo@google.com>
712
8734914d 713 * tree-pretty-print.c (dump_generic_node): Add break after
714 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
715 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
716 FUNCTION_TYPE together. Call print_struct_decl when printing
717 structures and TDF_SLIM is not given.
c6934f8a 718 (print_struct_decl): Fix logic for detecting recursion.
719
46782931 7202009-04-17 Rafael Avila de Espindola <espindola@google.com>
721
722 PR 31567
723 * gcc.c (create_at_file): New.
724 (compile_input_file_p): New.
725 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
726 * main.c (main): Update call to toplev_main.
727 * toplev.c (toplev_main): Change signature. Call expandargv.
728 * toplev.h (toplev_main): Change signature.
729
0bae362c 7302009-04-17 Eric Botcazou <ebotcazou@adacore.com>
731
732 * dwarf2out.c (field_byte_offset): Use the type size as the field size
733 if the latter is not constant.
734
9207eb25 7352009-04-17 David Edelsohn <edelsohn@gnu.org>
736
737 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
738
b26d0c9e 7392009-04-17 Eric Botcazou <ebotcazou@adacore.com>
740
741 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
742 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
743
af4c7413 7442009-04-17 Richard Guenther <rguenther@suse.de>
745
746 * tree-ssa-structalias.c (get_constraint_for_component_ref):
747 Handle component references view-converting an invariant address.
748
48a84cee 7492009-04-17 Adam Nemet <anemet@caviumnetworks.com>
750
751 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
752 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
753 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
754 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
755 Use @deftypevr rather than @deftypevar.
756
8f0b877f 7572009-04-17 Richard Guenther <rguenther@suse.de>
758
8734914d 759 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
8f0b877f 760 (get_prop_source_stmt): Likewise.
761 (can_propagate_from): Likewise.
762
f555bf81 7632009-04-17 Andrew Stubbs <ams@codesourcery.com>
764
765 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
766 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
767 (--with-multilib-list): Add default value.
768 * configure: Regenerate.
769 * Makefile.in (TM_ENDIAN_CONFIG): Define.
770 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
771 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
772 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
773 Don't add default cpu to multilib list unnecessarily, but do enable
774 the relevant compiler option..
775 Add support for --with-multilib-list=<blank> and
776 --with-multilib-list=!<somelib> to supress unwanted multilibs.
777 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
778 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
779 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
780 TM_MULTILIB_CONFIG.
781 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
782 (MULTILIB_OSDIRNAMES): New variable.
783 * config/sh/t-1e: Delete file.
784 * config/sh/t-mlib-sh1: Delete file.
785 * config/sh/t-mlib-sh2: Delete file.
786 * config/sh/t-mlib-sh2a: Delete file.
787 * config/sh/t-mlib-sh2a-nofpu: Delete file.
788 * config/sh/t-mlib-sh2a-single: Delete file.
789 * config/sh/t-mlib-sh2a-single-only: Delete file.
790 * config/sh/t-mlib-sh2e: Delete file.
791 * config/sh/t-mlib-sh3e: Delete file.
792 * config/sh/t-mlib-sh4: Delete file.
793 * config/sh/t-mlib-sh4-nofpu: Delete file.
794 * config/sh/t-mlib-sh4-single: Delete file.
795 * config/sh/t-mlib-sh4-single-only: Delete file.
796 * config/sh/t-mlib-sh4a: Delete file.
797 * config/sh/t-mlib-sh4a-nofpu: Delete file.
798 * config/sh/t-mlib-sh4a-single: Delete file.
799 * config/sh/t-mlib-sh4a-single-only: Delete file.
800 * config/sh/t-mlib-sh4al: Delete file.
801 * config/sh/t-mlib-sh5-32media: Delete file.
802 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
803 * config/sh/t-mlib-sh5-64media: Delete file.
804 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
805 * config/sh/t-mlib-sh5-compact: Delete file.
806 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
807 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
808 * doc/install.texi (Options specification): Add
809 --with-multilib-list and --with-endian.
810
c80cefd7 8112009-04-17 Rafael Avila de Espindola <espindola@google.com>
812
813 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
814 REVISION_c.
815 (OBJS-common): Add plugin-version.o.
816 (plugin-version.o): New.
817 * gcc-plugin.h (plugin_gcc_version): New.
818 (plugin_default_version_check): New.
819 (plugin_init_func, plugin_init): Add version argument.
820 * plugin-version.c: New.
821 * plugin.c (str_plugin_gcc_version_name): New.
822 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
823 pass it to the init function.
824 (plugin_default_version_check): New.
825
090a8c65 8262009-04-17 Richard Guenther <rguenther@suse.de>
827
828 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
829 for decl-vs-decl disambiguation.
830
23911610 8312009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
832
833 * config/s390/s390.h (s390_tune_attr): New macro definition.
834 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
835
304557cd 8362009-04-17 Richard Guenther <rguenther@suse.de>
837
838 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
839 (fold_stmt_r): Likewise.
840 (maybe_fold_reference): New function.
841 (fold_gimple_assign): Handle cases fold_stmt_r did.
842 (fold_stmt): Do not use fold_stmt_r.
843 (fold_stmt_inplace): Likewise.
844
912886f2 8452009-04-17 Richard Guenther <rguenther@suse.de>
846
847 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
848 (record_equivalences_from_stmt): Remove useless checks and
849 simplifications.
850 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
851 the type is already suitable.
852
2d44789e 8532009-04-17 Paolo Bonzini <bonzini@gnu.org>
854
855 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
856
67225bb6 8572009-04-17 Uros Bizjak <ubizjak@gmail.com>
858
859 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
860 (CMPtype): Define as __gcc_CMPtype.
861
09ec66c8 8622009-04-17 Aurelien Jarno <aurelien@aurel32.net>
863
864 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
865 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
866
7f7f16d4 8672009-04-17 Richard Guenther <rguenther@suse.de>
868
869 PR tree-optimization/39746
870 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
871 special-casing for builtins and static variable use/def.
872 (call_may_clobber_ref_p_1): Likewise.
873
0b1615c1 8742009-04-16 Ian Lance Taylor <iant@google.com>
875
876 * df.h: Include "timevar.h".
877 (struct df_problem): Change tv_id field to timevar_id_t.
878 * tree-pass.h: Include "timevar.h".
879 (struct opt_pass): Change tv_id field to timevar_id_t.
880 * timevar.h (timevar_id_t): Define TV_NONE.
881 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
882 TV_NONE rather than tv_id != 0.
883 (execute_one_pass): Likewise.
884 * Makefile.in (DF_H): Add $(TIMEVAR_H).
885 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
886 dependencies to $(TREE_PASS_H).
887 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
888 to TV_NONE.
889 (pass_branch_target_load_optimize2): Likewise.
890 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
891 (pass_outof_cfg_layout_mode): Likewise.
892 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
893 (pass_rebuild_cgraph_edges): Likewise.
894 (pass_remove_cgraph_callee_edges): Likewise.
895 * df-core.c (pass_df_initialize_opt): Likewise.
896 (pass_df_initialize_no_opt): Likewise.
897 (pass_df_finish): Likewise.
898 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
899 * except.c (pass_set_nothrow_function_flags): Likewise.
900 (pass_convert_to_eh_region_ranges): Likewise.
901 * final.c (pass_compute_alignments): Likewise.
902 * function.c (pass_instantiate_virtual_regs): Likewise.
903 (pass_init_function): Likewise.
904 (pass_leaf_regs): Likewise.
905 (pass_match_asm_constraints): Likewise.
906 * gimple-low.c (pass_lower_cf): Likewise.
907 (pass_mark_used_blocks): Likewise.
908 * init-regs.c (pass_initialize_regs): Likewise.
909 * integrate.c (pass_initial_value_sets): Likewise.
910 * ira.c (pass_ira): Likewise.
911 * jump.c (pass_cleanup_barriers): Likewise.
912 * omp-low.c (pass_expand_omp): Likewise.
913 (pass_lower_omp): Likewise.
914 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
915 * recog.c (pass_split_all_insns): Likewise.
916 (pass_split_after_reload): Likewise.
917 (pass_split_before_regstack): Likewise.
918 (pass_split_before_sched2): Likewise.
919 (pass_split_for_shorten_branches): Likewise.
920 * reginfo.c (pass_reginfo_init): Likewise.
921 (pass_subregs_of_mode_init): Likewise.
922 (pass_subregs_of_mode_finish): Likewise.
923 * passes.c (pass_postreload): Likewise.
924 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
925 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
926 (pass_warn_function_return): Likewise.
927 (pass_warn_function_noreturn): Likewise.
928 * tree-complex.c (pass_lower_complex): Likewise.
929 (pass_lower_complex_O0): Likewise.
930 * tree-if-conv.c (pass_if_conversion): Likewise.
931 * tree-into-ssa.c (pass_build_ssa): Likewise.
932 * tree-mudflap.c (pass_mudflap_1): Likewise.
933 (pass_mudflap_2): Likewise.
934 * tree-nomudflap.c (pass_mudflap_1): Likewise.
935 (pass_mudflap_2): Likewise.
936 * tree-nrv.c (pass_return_slot): Likewise.
937 * tree-object-size.c (pass_object_sizes): Likewise.
938 * tree-optimize.c (pass_all_optimizations): Likewise.
939 (pass_early_local_passes): Likewise.
940 (pass_all_early_optimizations): Likewise.
941 (pass_cleanup_cfg): Likewise.
942 (pass_cleanup_cfg_post_optimizing): Likewise.
943 (pass_free_datastructures): Likewise.
944 (pass_free_cfg_annotations): Likewise.
945 (pass_fixup_cfg): Likewise.
946 (pass_init_datastructures): Likewise.
947 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
948 (pass_late_warn_uninitialized): Likewise.
949 (pass_update_address_taken): Likewise.
950 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
951 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
952 (pass_cse_sincos): Likewise.
953 (pass_convert_to_rsqrt): Likewise.
954 * tree-ssa-structalias.c (pass_build_alias): Likewise.
955 * tree-stdarg.c (pass_stdarg): Likewise.
956 * tree-tailcall.c (pass_tail_recursion): Likewise.
957 (pass_tail_calls): Likewise.
958 * tree-vect-generic.c (pass_lower_vector): Likewise.
959 (pass_lower_vector_ssa): Likewise.
960 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
961
eb91c01f 9622009-04-16 Joseph Myers <joseph@codesourcery.com>
963
964 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
965 XLR entry.
966 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
967 Handle -march=xlr.
968 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
969 logical and signext.
970
52e95993 9712009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
972
973 PR target/39767
974 * config/sh/predicates.md (arith_operand): Check if the operand
975 of TRUNCATE is a REG.
976
78eb54ad 9772009-04-16 Kazu Hirata <kazu@codesourcery.com>
978
979 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
980 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
981
c6faa3cc 9822009-04-16 Kazu Hirata <kazu@codesourcery.com>
983
984 * tree-iterator.c (tsi_split_statement_list_after,
985 tsi_split_statement_list_before): Remove.
986 * tree-iterator.h: Remove the prototypes for
09ec66c8 987 tsi_split_statement_list_after and tsi_split_statement_list_before.
c6faa3cc 988
248c5002 9892009-04-16 Kazu Hirata <kazu@codesourcery.com>
990
991 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
992 * tree-ssa-propagate.h: Remove the prototype for
993 stmt_makes_single_load.
994
b11af8ed 9952009-04-16 Kazu Hirata <kazu@codesourcery.com>
996
997 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
998 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
999
f94a1f5c 10002009-04-16 Kazu Hirata <kazu@codesourcery.com>
1001
1002 * tree-iterator.c (EXPR_LAST_BODY): Remove.
1003
6d546519 10042009-04-16 Kazu Hirata <kazu@codesourcery.com>
1005
1006 * except.c (eh_region_outer_p): Remove.
1007 * except.h: Remove the prototype for eh_region_outer_p.
1008
ee8f5f57 10092009-04-16 Kazu Hirata <kazu@codesourcery.com>
1010
1011 * function.c (current_function_assembler_name): Remove.
1012 * function.h: Remove the prototype for
1013 current_function_assembler_name.
1014
5859ee98 10152009-04-16 Ian Lance Taylor <iant@google.com>
1016
09ec66c8 1017 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
5859ee98 1018 (add_reg_note): Call alloc_reg_note.
1019 * rtl.h (alloc_reg_note): Declare.
1020 * combine.c (try_combine): Use alloc_reg_note.
1021 (recog_for_combine, move_deaths): Likewise.
1022 (distribute_notes): Use alloc_reg_note and add_reg_note.
1023 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
1024 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
1025 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
1026
8f6c49f5 10272009-04-16 Vladimir Makarov <vmakarov@redhat.com>
1028
1029 PR rtl-optimization/39762
1030 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
1031 ira_may_move_out_cost): Add comments about way of their usage.
09ec66c8 1032 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
89871bab 1033
8f6c49f5 1034 * ira-conflicts.c (process_regs_for_copy): Use function
1035 ira_get_register_move_cost instead of global
1036 ira_register_move_cost.
1037
1038 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
1039 color_pass, move_spill_restore, update_curr_costs): Ditto.
1040
1041 * ira-lives.c (process_single_reg_class_operands): Ditto.
1042
1043 * ira-emit.c (emit_move_list): Ditto.
1044
1045 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
1046 (record_reg_classes): Ditto. Use functions
1047 ira_get_register_move_cost and ira_get_may_move_cost instead of
1048 global vars ira_register_move_cost, ira_may_move_out_cost and
1049 ira_may_move_in_cost.
1050 (record_address_regs): Don't call ira_init_register_move_cost.
1051 Use function ira_get_may_move_cost instead of global
1052 ira_may_move_in_cost.
1053 (process_bb_node_for_hard_reg_moves): Use function
09ec66c8 1054 ira_get_register_move_cost instead of global ira_register_move_cost.
8f6c49f5 1055 (ira_costs): Don't call ira_init_register_move_cost.
89871bab 1056
3e10a823 10572009-04-16 Richard Guenther <rguenther@suse.de>
1058
1059 * tree-cfg.c (verify_gimple_assign_binary):
1060 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
1061 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
1062 (create_general_new_stmt): Note that this function is broken.
1063
2dfeb300 10642009-04-16 Rafael Avila de Espindola <espindola@google.com>
1065
1066 * common.opt (fhelp): Add Var(help_flag).
1067 * gcc-plugin.h (plugin_info): Add help.
1068 * plugin.c (plugin_name_args): Add help.
1069 (register_plugin_info): Set plugin->help.
1070 (print_help_one_plugin): New.
1071 (print_plugins_help): New.
1072 * plugin.h (print_plugins_help): New.
1073 * toplev.c (toplev_main): Call print_plugins_help if needed.
1074
6d5ec6f8 10752009-04-16 Richard Guenther <rguenther@suse.de>
1076
1077 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
1078 (gimple_ior_addresses_taken_1): New function.
1079 (gimple_ior_addresses_taken): Likewise.
1080 * gimple.h (struct gimple_statement_with_ops_base): Remove
1081 addresses_taken member.
1082 (gimple_ior_addresses_taken): Declare.
1083 (gimple_addresses_taken, gimple_addresses_taken_ptr,
1084 gimple_set_addresses_taken): Remove.
1085 * ipa-reference.c (mark_address): New function.
1086 (scan_stmt_for_static_refs): Use it for marking addresses taken.
1087 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
1088 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
1089 (gimple_add_to_addresses_taken): Remove.
1090 (get_tmr_operands): Call mark_address_taken.
1091 (get_asm_expr_operands): Likewise.
1092 (get_expr_operands): Likewise.
1093 (build_ssa_operands): Do not clear the addresses_taken bitmap.
1094 (free_stmt_operands): Do not free it.
1095 * tree-ssa.c (delete_tree_ssa): Likewise.
1096 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
1097
5ed0b345 10982009-04-16 Richard Guenther <rguenther@suse.de>
1099
1100 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
1101 (walk_stmt_load_store_ops): Likewise.
1102 * gimple.c (get_base_loadstore): New function.
1103 (walk_stmt_load_store_addr_ops): Likewise.
1104 (walk_stmt_load_store_ops): Likewise.
1105 * ipa-pure-const.c (check_op): Simplify.
1106 (check_load, check_store): New functions.
1107 (check_stmt): Use walk_stmt_load_store_ops.
1108 * ipa-reference.c (mark_load): Adjust signature.
1109 (mark_store): Likewise.
1110 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
1111
e16288b4 11122009-04-16 Rafael Avila de Espindola <espindola@google.com>
1113
1114 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
1115 (plugin_info): New.
1116 * opts.c (common_handle_option): Don't call print_version.
1117 * plugin.c (plugin_name_args): Add version.
1118 (register_plugin_info): New.
1119 (register_callback): Handle PLUGIN_INFO.
1120 (try_init_one_plugin): New.
1121 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
1122 if failed to init.
1123 (finalize_one_plugin): New.
1124 (finalize_plugins): New.
1125 (print_one_plugin): New.
1126 (print_plugins_versions): New.
1127 * plugin.h (print_plugins_versions): New.
1128 (finalize_plugins): New.
1129 * toplev.c (compile_file): Don't call initialize_plugins.
1130 (print_version): Call print_plugins_versions.
1131 (toplev_main): Call initialize_plugins. Print version if needed.
1132 Call finalize_plugins.
1133
39932bd2 11342009-04-16 Rafael Avila de Espindola <espindola@google.com>
1135
1136 * common.opt (fversion): New.
1137 * gcc.c (print_version): New.
1138 (process_command): Don't print the version. Just set print_version.
1139 (main): Print version. Call subprocesses if print_version and
1140 verbose_flag are set.
1141 * opts.c (common_handle_option): Handle OPT_fversion.
1142
1efcacec 11432009-04-16 Richard Guenther <rguenther@suse.de>
09ec66c8 1144 Ira Rosen <irar@il.ibm.com>
1efcacec 1145
1146 PR tree-optimization/39698
1147 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
1148 type of the reduction variable. Only generate the def if
1149 it is needed.
1150
1151 * omp-low.c (expand_omp_for_generic): When converting to a pointer
1152 make sure to first convert to an integer of the same precision.
1153 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
1154 the type of the evolution correctly in computing the new
1155 induction variable base.
1156
3e40d86f 11572009-04-16 Richard Guenther <rguenther@suse.de>
1158
1159 PR middle-end/39625
1160 * tree-cfg.c (make_blocks): Split statements with to-be
1161 abnormal SSA names on the lhs.
1162
8d125f7d 11632009-04-16 Paolo Bonzini <bonzini@gnu.org>
1164
1165 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
1166 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
1167 * c-typeck.c (really_start_incremental_init): Likewise.
1168 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
1169 (TARGET_INITIALIZER): Remove it.
1170 * target.h (struct target): Remove vector_opaque_p.
1171 * tree.c (build_opaque_vector_type): New.
1172 * tree.h (TYPE_VECTOR_OPAQUE): New.
1173 (build_opaque_vector_type): Declare.
1174 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
1175 * config/rs6000/rs6000.c (build_opaque_vector_type,
1176 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
1177 (rs6000_init_builtins): Use build_opaque_vector_type for
1178 opaque_V4SI_type_node.
1179
8d17cbdd 11802009-04-15 Catherine Moore <clm@codesourcery.com>
1181
09ec66c8 1182 * debug.h (set_name): Declare.
1183 * dwarf2out.c (dwarf2out_set_name): Declare.
1184 (dwarf2_debug_hooks): Add set_name.
1185 (find_AT_string): New.
1186 (add_AT_string): Call find_AT_string.
1187 (dwarf2out_set_name): New.
1188 * cp/decl.c (grokdeclarator): Call set_name.
1189 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
1190 * debug.c (do_nothing_debug_hooks): Likewise.
1191 * dbxout.c (dbx_debug_hooks): Likewise.
1192 * sdbout.c (sdb_debug_hooks): Likewise.
8d17cbdd 1193
2f267585 11942009-04-15 Michael Eager <eager@eagercon.com>
1195
09ec66c8 1196 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
1197 reg for single-precision FPU.
1198 * config/rs6000/rs6000.md (movsi_internal1): Only for
1199 !TARGET_SINGLE_FPU.
1200 (movsi_internal1_single): New. Add pattern to move SI values to/from
2f267585 1201 single-precision FP regs.
1202
c821ef7d 12032009-04-15 Richard Guenther <rguenther@suse.de>
1204
1205 * omp-low.c (lower_rec_input_clauses): Build correct address
1206 expressions.
1207 (expand_omp_for_generic): Fix multiplication type.
09ec66c8 1208 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
c821ef7d 1209 (generate_memset_zero): Fix types.
1210 * tree-profile.c (prepare_instrumented_value): Correctly
1211 widen a pointer.
1212
841fdaa6 12132009-04-15 Ian Lance Taylor <iant@google.com>
1214
1215 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
1216 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
1217 for -Wall and for -Wc++-compat.
1218 (c_common_post_options): For C++, set warn_enum_compare if not
1219 already set.
1220 * c-tree.h (struct c_expr): Add field original_type.
1221 (build_external_ref): Update declaration.
1222 * c-parser.c (c_parser_braced_init): Set original_type.
1223 (c_parser_initelt): Likewise.
1224 (c_parser_expr_no_commas): Likewise.
1225 (c_parser_conditional_expression): Likewise.
1226 (c_parser_cast_expression): Likewise.
1227 (c_parser_unary_expression): Likewise. Pull setting of
1228 original_code to top of function.
1229 (c_parser_sizeof_expression): Set original_type.
1230 (c_parser_alignof_expression): Likewise.
1231 (c_parser_postfix_expression): Likewise. Pull setting of
1232 original_code to top of function.
09ec66c8 1233 (c_parser_postfix_expression_after_paren_type): Set original_type.
841fdaa6 1234 (c_parser_postfix_expression_after_primary): Likewise.
1235 (c_parser_expression): Likewise.
1236 * c-typeck.c (build_external_ref): Add type parameter. Change all
1237 callers.
1238 (c_expr_sizeof_expr): Set original_type field.
1239 (parser_build_unary_op): Likewise.
1240 (parser_build_binary_op): Likewise. Optionally warn about
1241 comparisons of enums of different types.
1242 (digest_init): Set original_type field.
1243 (really_start_incremental_init): Likewise.
1244 (push_init_level, pop_init_level): Likewise.
1245 * doc/invoke.texi (Warning Options): -Wenum-compare now
1246 supported in C.
1247
d94bf438 12482009-04-15 Richard Guenther <rguenther@suse.de>
1249
1250 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
1251 out a necessary conversion.
1252 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
1253 names we didn't value number.
1254 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
1255
4af351a8 12562009-04-15 Richard Guenther <rguenther@suse.de>
1257
1258 PR tree-optimization/39764
1259 * tree-ssa-ccp.c (get_value): Canonicalize value with
1260 canonicalize_float_value.
1261
02eb0b56 12622009-04-15 Jan Hubicka <jh@suse.cz>
1263
1264 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
1265 Wrong version of patch.
1266
e522af1d 12672009-04-15 Jan Hubicka <jh@suse.cz>
1268
1269 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
1270
bf8f9895 12712009-04-15 Nathan Sidwell <nathan@codesourcery.com>
1272
1273 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
1274 our distinct integral and vector types.
1275
e50d7837 12762009-04-15 Rafael Avila de Espindola <espindola@google.com>
1277
1278 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
1279 * init.c (build_vtbl_address): Remove call to assemble_external.
1280
1cc9c78b 12812009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
1282
1283 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
1284 output for other floating point modes.
1285
dd2b35f1 12862009-04-14 Diego Novillo <dnovillo@google.com>
1287
1288 * diagnostic.c (diagnostic_report_diagnostic): Do not
1289 warn about loaded plugins for DK_ERROR and DK_WARNING.
1290 * c-decl.c (declspecs_add_type): Move call to
1291 invoke_plugin_callbacks ...
1292 * c-parser.c (c_parser_declspecs): ... here.
1293 * plugin.c (dump_active_plugins): Tidy output.
1294
9227b6fc 12952009-04-14 Diego Novillo <dnovillo@google.com>
1296 Le-Chun Wu <lcwu@google.com>
1297
1298 * configure.ac: Add --enable-plugin support.
1299 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
1300 * Makefile.in (PLUGIN_H): Define.
1301 Export ENABLE_PLUGIN and GMPINC to site.exp.
1302 Add PLUGINLIBS to link command.
1303 Add/modify dependencies for plugin.o and files including plugin.h.
1304 (plugin.o): New.
1305 * config.in: Regenerate.
89871bab 1306
9227b6fc 1307 * opts.c (common_handle_option): Handle OPT_fplugin_ and
1308 OPT_fplugin_arg_.
1309
13102009-04-14 Le-Chun Wu <lcwu@google.com>
1311
1312 * tree-pass.h (register_one_dump_file): Add a prototype for
1313 register_one_dump_file.
1314 * toplev.c (compile_file): Call initialize_plugins.
1315 (do_compile): Call invoke_plugin_callbacks.
1316 (toplev_main): Call invoke_plugin_callbacks.
1317 * common.opt: Add -fplugin= and -fplugin-arg-.
1318 * gcc-plugin.h: New public header file for plugins to include.
1319 * plugin.c: New source file.
1320 * plugin.h: New internal header file.
1321 * passes.c (register_one_dump_file): Make it external.
89871bab 1322
9227b6fc 1323 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
1324
13252009-04-14 Diego Novillo <dnovillo@google.com>
1326
1327 * doc/plugins.texi: New.
1328 * doc/gccint.texi: Add reference to Plugins chapter.
1329 * doc/invoke.texi: Document -fplugin and -fplugin-arg
1330 * diagnostic.c (diagnostic_report_diagnostic): Warn about
1331 loaded plugins, if any.
1332 * timevar.def (TV_PLUGIN_INIT): Define.
1333 (TV_PLUGIN_RUN): Define.
1334 * plugin.c: Include timevar.h
1335 (plugins_active_p): New.
1336 (dump_active_plugins): New.
1337 (debug_active_plugins): New.
1338
f3245e9d 13392009-04-14 Joseph Myers <joseph@codesourcery.com>
1340
1341 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
1342 library paths.
1343 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
1344
222652cd 13452009-04-14 Kazu Hirata <kazu@codesourcery.com>
1346
1347 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
1348 the same as a minus without a shift.
1349
11964566 13502009-04-14 Nick Clifton <nickc@redhat.com>
1351
1352 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
1353 comparisons with small integers will always produce a short
1354 branch.
1355
318db53a 13562009-04-14 Rafael Avila de Espindola <espindola@google.com>
1357
1358 Merge:
318db53a 1359 2008-12-19 Diego Novillo <dnovillo@google.com>
1360
09ec66c8 1361 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
318db53a 1362
7dfbd804 13632009-04-14 Richard Guenther <rguenther@suse.de>
87f9ffa4 1364
1365 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
1366 verification.
1367 (verify_gimple_assign_binary): Likewise. Handle shifts and
1368 rotates correctly.
1369 (verify_gimple_phi): Print the mismatched argument position.
1370 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
1371 Fix types.
1372 (vect_update_init_of_dr): Likewise.
1373 * matrix-reorg.c (transform_access_sites): Do what the
1374 comment suggests.
1375 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
1376
b91a266c 13772009-04-13 Michael Eager <eager@eagercon.com>
1378
1379 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
1380 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
1381 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
89871bab 1382 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
b91a266c 1383 remove duplicate config
1384
bc6e5ec3 13852009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
1386
1387 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
1388 file_name:line_number type locator of the call site.
89871bab 1389
48ca7187 13902009-04-13 Vladimir Makarov <vmakarov@redhat.com>
1391
1392 * genautomata.c: Put blank after comma.
1393 (automaton_decls): New.
1394 (struct unit_usage): Add comments to member next.
1395 (store_alt_unit_usage): Keep the list ordered.
1396 (unit_present_on_list_p, equal_alternatives_p): New.
1397 (check_regexp_units_distribution): Check units distribution
1398 correctness correctly.
1399 (main): Don't write automata if error is found. Return correct
1400 exit code.
89871bab 1401
48ca7187 1402 * config/m68k/cf.md (cfv4_ds): Remove.
1403 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
1404 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
1405
1406 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
1407 power4-load-ext, power4-store, power4-store-update,
1408 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
1409 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
1410 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
1411 power4-sqrt, power4-isync): Modify reservation to make correct
1412 unit distribution to automata.
1413
1414 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
1415 power5-store-update, power5-two, power5-three, power5-lmul,
1416 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
89871bab 1417
a883441f 14182009-04-13 Adam Nemet <anemet@caviumnetworks.com>
1419
1420 * except.c (pass_set_nothrow_function_flags): Set name and add
1421 TODO_dump_func.
1422 (set_nothrow_function_flags): Mention in the dump file when
1423 changing a function to nothrow.
1424
7ad9dc69 14252009-04-13 Ozkan Sezer <sezeroz@gmail.com>
1426
1427 PR/39066
1428 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
1429 instead of unsigned long.
1430
d4fde4e2 14312009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1432
a883441f 1433 * config/arm/arm.c (return_used_this_function): Remove.
1434 (arm_output_function_prologue): Remove use of
d4fde4e2 1435 return_used_this_function.
a883441f 1436 (output_return_instruction): Replace use of
d4fde4e2 1437 return_used_this_function
1438 by cfun->machine->return_used_this_function.
a883441f 1439 (arm_output_epilogue): Likewise.
1440 (arm_output_function_epilogue): Likewise.
1441 (thumb_unexpanded_epilogue): Likewise.
1442 * config/arm/arm.h (struct machine_function):
d4fde4e2 1443 New member return_used_this_function.
a883441f 1444
c65be9f5 14452009-04-12 Mark Mitchell <mark@codesourcery.com>
1446
1447 * doc/install.texi: Correct description of default directory for
1448 --with-gxx-include-dir.
1449
32cbeb74 14502009-04-12 Eric Botcazou <ebotcazou@adacore.com>
f2143b56 1451
1452 * fold-const.c (build_range_check): Properly deal with enumeral and
1453 boolean base types.
1454
d45a307d 14552009-04-12 Steven Bosscher <steven@gcc.gnu.org>
1456
1457 * doc/invoke.texi (max_gcse_passes): Remove documentation.
1458 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
1459 * params.h (MAX_GCSE_PASSES): Remove.
1460 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
1461 in sequence. Remove ability to run multiple passes.
1462 (bypass_jumps): Report run as third CPROP pass.
1463
80621b93 14642009-04-12 Adam Nemet <anemet@caviumnetworks.com>
1465
1466 PR middle-end/39651
1467 * except.c (can_throw_external): Look at each insn in a SEQUENCE
1468 when deciding whether the whole SEQUENCE can throw.
1469
ac89ce58 14702009-04-12 Uros Bizjak <ubizjak@gmail.com>
1471
1472 PR target/39740
1473 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
1474 offseted label references.
1475
a8520ca4 14762009-04-11 Jan Hubicka <jh@suse.cz>
1477
1478 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
1479
8ad54c54 14802009-04-11 Richard Guenther <rguenther@suse.de>
1481
1482 PR middle-end/39732
1483 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
1484 return variables as TREE_ADDRESSABLE.
1485
8ecc6f01 14862009-04-11 Richard Guenther <rguenther@suse.de>
1487
1488 PR tree-optimization/39713
1489 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
1490 reference trees have SSA_NAME operands.
1491
6f1afc19 14922009-04-11 Richard Guenther <rguenther@suse.de>
1493
1494 PR c/39712
1495 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
1496 address expressions.
1497
99ff0267 14982009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
1499
1500 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
1501 match changes in Cygwin 1.7
1502 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
1503 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
1504
390c1c3b 15052009-04-10 Paolo Bonzini <bonzini@gnu.org>
1506
1507 PR tree-optimization/39701
1508 * doc/invoke.texi (Optimization Options): Document change in
1509 meaning and initialization of -fdelete-null-pointer-checks.
1510
7df298fe 15112009-04-10 H.J. Lu <hongjiu.lu@intel.com>
1512
1513 PR middle-end/39701
1514 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
1515
1516 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
1517 here.
1518
1519 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
1520
e6554c42 15212009-04-10 Chao-ying Fu <fu@mips.com>
1522
1523 * doc/tm.texi (Instruction Output): Document
1524 TARGET_ASM_FINAL_POSTSCAN_INSN.
1525 * target.h (final_postscan_insn): New field in asm_out.
1526 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
1527 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
1528 * final.c (final_scan_insn): Call
1529 targetm.asm_out.final_postscan_insn after outputting
1530 an asm macro and a normal instruction.
1531
1532 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
1533 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
1534 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
1535 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
1536 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
1537
0f921b42 15382009-04-10 Paolo Bonzini <bonzini@gnu.org>
1539
1540 PR middle-end/39701
7df298fe 1541 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
1542 variables as non-NULL even with -fdelete-null-pointer-checks.
0f921b42 1543
7d37c7ae 15442009-04-10 H.J. Lu <hongjiu.lu@intel.com>
1545
1546 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
1547
2556f3ba 15482009-04-09 H.J. Lu <hongjiu.lu@intel.com>
1549
1550 PR target/39678
1551 * config/i386/i386.c (classify_argument): Handle SCmode with
1552 (bit_offset % 64) != 0.
1553
f3933af2 15542009-04-09 Sandra Loosemore <sandra@codesourcery.com>
1555
1556 * doc/invoke.texi (Optimize Options): Add cross-reference to
1557 -Q --help=optimizers examples.
1558
fa59234c 15592009-04-10 Ben Elliston <bje@au.ibm.com>
1560
1561 PR target/36800
1562 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
1563 regalign for the reg == fpr and TDmode case.
1564
2744a89f 15652009-04-09 David Ayers <ayers@fsfe.org>
1566
1567 PR objc/29200
1568 * objc/objc-act.c (warn_with_method): Remove helper function.
1569 (check_duplicates): Call warning and inform directly.
1570 (really_start_method): Likewise.
1571
dab963fb 15722009-04-09 Paolo Bonzini <bonzini@gnu.org>
1573
1574 * expmed.c (expand_divmod): Always use a comparison for a division
1575 by a large unsigned integer.
1576
7df298fe 1577 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
1578 for things others than variables or functions as nonzero.
dab963fb 1579
6bc9506f 15802009-04-09 Nick Clifton <nickc@redhat.com>
1581
1582 * unwind-compat.c: Change copyright header to refer to version
1583 3 of the GNU General Public License with version 3.1 of the
1584 GCC Runtime Library Exception and to point readers at the
c72c72ef 1585 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
6bc9506f 1586 * config/alpha/crtfastmath.c: Likewise.
1587 * config/alpha/linux-unwind.h: Likewise.
1588 * config/alpha/qrnnd.asm: Likewise.
1589 * config/alpha/vms-crt0-64.c: Likewise.
1590 * config/alpha/vms-crt0.c: Likewise.
1591 * config/alpha/vms-dwarf2.asm: Likewise.
1592 * config/alpha/vms-dwarf2eh.asm: Likewise.
1593 * config/alpha/vms-psxcrt0-64.c: Likewise.
1594 * config/alpha/vms-psxcrt0.c: Likewise.
1595 * config/alpha/vms_tramp.asm: Likewise.
1596 * config/arc/initfini.c: Likewise.
1597 * config/arc/lib1funcs.asm: Likewise.
1598 * config/arm/bpabi-v6m.S: Likewise.
1599 * config/arm/bpabi.S: Likewise.
1600 * config/arm/bpabi.c: Likewise.
1601 * config/arm/crti.asm: Likewise.
1602 * config/arm/crtn.asm: Likewise.
1603 * config/arm/ieee754-df.S: Likewise.
1604 * config/arm/ieee754-sf.S: Likewise.
1605 * config/arm/lib1funcs.asm: Likewise.
1606 * config/arm/libunwind.S: Likewise.
1607 * config/arm/linux-atomic.c: Likewise.
1608 * config/arm/mmintrin.h: Likewise.
1609 * config/arm/pr-support.c: Likewise.
1610 * config/arm/unaligned-funcs.c: Likewise.
1611 * config/arm/unwind-arm.c: Likewise.
1612 * config/arm/unwind-arm.h: Likewise.
1613 * config/avr/libgcc.S: Likewise.
1614 * config/bfin/crti.s: Likewise.
1615 * config/bfin/crtlibid.s: Likewise.
1616 * config/bfin/crtn.s: Likewise.
1617 * config/bfin/lib1funcs.asm: Likewise.
1618 * config/bfin/linux-unwind.h: Likewise.
1619 * config/cris/arit.c: Likewise.
1620 * config/cris/cris_abi_symbol.c: Likewise.
1621 * config/darwin-64.c: Likewise.
1622 * config/darwin-crt2.c: Likewise.
1623 * config/darwin-crt3.c: Likewise.
1624 * config/darwin.h: Likewise.
1625 * config/dbxelf.h: Likewise.
1626 * config/dfp-bit.c: Likewise.
1627 * config/dfp-bit.h: Likewise.
1628 * config/elfos.h: Likewise.
1629 * config/fixed-bit.c: Likewise.
1630 * config/fixed-bit.h: Likewise.
1631 * config/fp-bit.c: Likewise.
1632 * config/fp-bit.h: Likewise.
1633 * config/fr30/crti.asm: Likewise.
1634 * config/fr30/crtn.asm: Likewise.
1635 * config/fr30/lib1funcs.asm: Likewise.
1636 * config/freebsd-spec.h: Likewise.
1637 * config/frv/cmovd.c: Likewise.
1638 * config/frv/cmovh.c: Likewise.
1639 * config/frv/cmovw.c: Likewise.
1640 * config/frv/frvbegin.c: Likewise.
1641 * config/frv/frvend.c: Likewise.
1642 * config/frv/lib1funcs.asm: Likewise.
1643 * config/glibc-stdint.h: Likewise.
1644 * config/h8300/clzhi2.c: Likewise.
1645 * config/h8300/crti.asm: Likewise.
1646 * config/h8300/crtn.asm: Likewise.
1647 * config/h8300/ctzhi2.c: Likewise.
1648 * config/h8300/fixunssfsi.c: Likewise.
1649 * config/h8300/lib1funcs.asm: Likewise.
1650 * config/h8300/parityhi2.c: Likewise.
1651 * config/h8300/popcounthi2.c: Likewise.
1652 * config/i386/ammintrin.h: Likewise.
1653 * config/i386/att.h: Likewise.
1654 * config/i386/avxintrin.h: Likewise.
1655 * config/i386/biarch64.h: Likewise.
1656 * config/i386/bmmintrin.h: Likewise.
1657 * config/i386/cpuid.h: Likewise.
1658 * config/i386/cross-stdarg.h: Likewise.
1659 * config/i386/crtfastmath.c: Likewise.
1660 * config/i386/crtprec.c: Likewise.
1661 * config/i386/cygming-crtbegin.c: Likewise.
1662 * config/i386/cygming-crtend.c: Likewise.
1663 * config/i386/cygwin.asm: Likewise.
1664 * config/i386/emmintrin.h: Likewise.
1665 * config/i386/gmm_malloc.h: Likewise.
1666 * config/i386/gthr-win32.c: Likewise.
1667 * config/i386/i386.h: Likewise.
1668 * config/i386/immintrin.h: Likewise.
1669 * config/i386/linux-unwind.h: Likewise.
1670 * config/i386/linux64.h: Likewise.
1671 * config/i386/mm3dnow.h: Likewise.
1672 * config/i386/mmintrin-common.h: Likewise.
1673 * config/i386/mmintrin.h: Likewise.
1674 * config/i386/nmmintrin.h: Likewise.
1675 * config/i386/pmm_malloc.h: Likewise.
1676 * config/i386/pmmintrin.h: Likewise.
1677 * config/i386/smmintrin.h: Likewise.
1678 * config/i386/sol2-c1.asm: Likewise.
1679 * config/i386/sol2-ci.asm: Likewise.
1680 * config/i386/sol2-cn.asm: Likewise.
1681 * config/i386/sol2-gc1.asm: Likewise.
1682 * config/i386/tmmintrin.h: Likewise.
1683 * config/i386/unix.h: Likewise.
1684 * config/i386/w32-unwind.h: Likewise.
1685 * config/i386/wmmintrin.h: Likewise.
1686 * config/i386/x86-64.h: Likewise.
1687 * config/i386/x86intrin.h: Likewise.
1688 * config/i386/xmmintrin.h: Likewise.
1689 * config/ia64/crtbegin.asm: Likewise.
1690 * config/ia64/crtend.asm: Likewise.
1691 * config/ia64/crtfastmath.c: Likewise.
1692 * config/ia64/crti.asm: Likewise.
1693 * config/ia64/crtn.asm: Likewise.
1694 * config/ia64/fde-glibc.c: Likewise.
1695 * config/ia64/lib1funcs.asm: Likewise.
1696 * config/ia64/linux-unwind.h: Likewise.
1697 * config/ia64/quadlib.c: Likewise.
1698 * config/ia64/unwind-ia64.c: Likewise.
1699 * config/linux.h: Likewise.
1700 * config/m32c/m32c-lib1.S: Likewise.
1701 * config/m32c/m32c-lib2-trapv.c: Likewise.
1702 * config/m32c/m32c-lib2.c: Likewise.
1703 * config/m32r/initfini.c: Likewise.
1704 * config/m68hc11/larith.asm: Likewise.
1705 * config/m68hc11/m68hc11-crt0.S: Likewise.
1706 * config/m68k/cf.md: Likewise.
1707 * config/m68k/crti.s: Likewise.
1708 * config/m68k/crtn.s: Likewise.
1709 * config/m68k/lb1sf68.asm: Likewise.
1710 * config/m68k/linux-unwind.h: Likewise.
1711 * config/mcore/crti.asm: Likewise.
1712 * config/mcore/crtn.asm: Likewise.
1713 * config/mcore/lib1.asm: Likewise.
1714 * config/mips/linux-unwind.h: Likewise.
1715 * config/mips/loongson.h: Likewise.
1716 * config/mips/mips16.S: Likewise.
1717 * config/mmix/crti.asm: Likewise.
1718 * config/mmix/crtn.asm: Likewise.
1719 * config/pa/fptr.c: Likewise.
1720 * config/pa/hpux-unwind.h: Likewise.
1721 * config/pa/lib2funcs.asm: Likewise.
1722 * config/pa/linux-atomic.c: Likewise.
1723 * config/pa/linux-unwind.h: Likewise.
1724 * config/pa/milli64.S: Likewise.
1725 * config/pa/quadlib.c: Likewise.
1726 * config/pa/stublib.c: Likewise.
1727 * config/picochip/libgccExtras/adddi3.asm: Likewise.
1728 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
1729 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
1730 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
1731 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
1732 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
1733 * config/picochip/libgccExtras/divmod15.asm: Likewise.
1734 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
1735 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
1736 * config/picochip/libgccExtras/longjmp.asm: Likewise.
1737 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
1738 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
1739 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
1740 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
1741 * config/picochip/libgccExtras/setjmp.asm: Likewise.
1742 * config/picochip/libgccExtras/subdi3.asm: Likewise.
1743 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
1744 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
1745 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
1746 * config/rs6000/750cl.h: Likewise.
1747 * config/rs6000/altivec.h: Likewise.
1748 * config/rs6000/biarch64.h: Likewise.
1749 * config/rs6000/crtresfpr.asm: Likewise.
1750 * config/rs6000/crtresgpr.asm: Likewise.
1751 * config/rs6000/crtresxfpr.asm: Likewise.
1752 * config/rs6000/crtresxgpr.asm: Likewise.
1753 * config/rs6000/crtsavfpr.asm: Likewise.
1754 * config/rs6000/crtsavgpr.asm: Likewise.
1755 * config/rs6000/darwin-asm.h: Likewise.
1756 * config/rs6000/darwin-fallback.c: Likewise.
1757 * config/rs6000/darwin-fpsave.asm: Likewise.
1758 * config/rs6000/darwin-ldouble.c: Likewise.
1759 * config/rs6000/darwin-tramp.asm: Likewise.
1760 * config/rs6000/darwin-unwind.h: Likewise.
1761 * config/rs6000/darwin-vecsave.asm: Likewise.
1762 * config/rs6000/darwin-world.asm: Likewise.
1763 * config/rs6000/e500crtres32gpr.asm: Likewise.
1764 * config/rs6000/e500crtres64gpr.asm: Likewise.
1765 * config/rs6000/e500crtres64gprctr.asm: Likewise.
1766 * config/rs6000/e500crtrest32gpr.asm: Likewise.
1767 * config/rs6000/e500crtrest64gpr.asm: Likewise.
1768 * config/rs6000/e500crtresx32gpr.asm: Likewise.
1769 * config/rs6000/e500crtresx64gpr.asm: Likewise.
1770 * config/rs6000/e500crtsav32gpr.asm: Likewise.
1771 * config/rs6000/e500crtsav64gpr.asm: Likewise.
1772 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
1773 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
1774 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
1775 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
1776 * config/rs6000/eabi-ci.asm: Likewise.
1777 * config/rs6000/eabi-cn.asm: Likewise.
1778 * config/rs6000/eabi.asm: Likewise.
1779 * config/rs6000/linux-unwind.h: Likewise.
1780 * config/rs6000/linux64.h: Likewise.
1781 * config/rs6000/paired.h: Likewise.
1782 * config/rs6000/paired.md: Likewise.
1783 * config/rs6000/ppc64-fp.c: Likewise.
1784 * config/rs6000/ppu_intrinsics.h: Likewise.
1785 * config/rs6000/rs6000.h: Likewise.
1786 * config/rs6000/si2vmx.h: Likewise.
1787 * config/rs6000/sol-ci.asm: Likewise.
1788 * config/rs6000/sol-cn.asm: Likewise.
1789 * config/rs6000/spe.h: Likewise.
1790 * config/rs6000/spu2vmx.h: Likewise.
1791 * config/rs6000/sysv4.h: Likewise.
1792 * config/rs6000/tramp.asm: Likewise.
1793 * config/rs6000/vec_types.h: Likewise.
1794 * config/s390/linux-unwind.h: Likewise.
1795 * config/s390/tpf-unwind.h: Likewise.
1796 * config/score/crti.asm: Likewise.
1797 * config/score/crtn.asm: Likewise.
1798 * config/sh/crt1.asm: Likewise.
1799 * config/sh/crti.asm: Likewise.
1800 * config/sh/crtn.asm: Likewise.
1801 * config/sh/divtab-sh4-300.c: Likewise.
1802 * config/sh/divtab-sh4.c: Likewise.
1803 * config/sh/divtab.c: Likewise.
1804 * config/sh/lib1funcs-4-300.asm: Likewise.
1805 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
1806 * config/sh/lib1funcs.asm: Likewise.
1807 * config/sh/lib1funcs.h: Likewise.
1808 * config/sh/linux-atomic.asm: Likewise.
1809 * config/sh/linux-unwind.h: Likewise.
1810 * config/sh/shmedia.h: Likewise.
1811 * config/sh/sshmedia.h: Likewise.
1812 * config/sh/ushmedia.h: Likewise.
1813 * config/sparc/crtfastmath.c: Likewise.
1814 * config/sparc/linux-unwind.h: Likewise.
1815 * config/sparc/sol2-c1.asm: Likewise.
1816 * config/sparc/sol2-ci.asm: Likewise.
1817 * config/sparc/sol2-cn.asm: Likewise.
1818 * config/spu/divmodti4.c: Likewise.
1819 * config/spu/divv2df3.c: Likewise.
1820 * config/spu/float_disf.c: Likewise.
1821 * config/spu/float_unsdidf.c: Likewise.
1822 * config/spu/float_unsdisf.c: Likewise.
1823 * config/spu/float_unssidf.c: Likewise.
1824 * config/spu/mfc_multi_tag_release.c: Likewise.
1825 * config/spu/mfc_multi_tag_reserve.c: Likewise.
1826 * config/spu/mfc_tag_release.c: Likewise.
1827 * config/spu/mfc_tag_reserve.c: Likewise.
1828 * config/spu/mfc_tag_table.c: Likewise.
1829 * config/spu/multi3.c: Likewise.
1830 * config/spu/spu_internals.h: Likewise.
1831 * config/spu/spu_intrinsics.h: Likewise.
1832 * config/spu/spu_mfcio.h: Likewise.
1833 * config/spu/vec_types.h: Likewise.
1834 * config/spu/vmx2spu.h: Likewise.
1835 * config/stormy16/stormy16-lib2.c: Likewise.
1836 * config/svr4.h: Likewise.
1837 * config/sync.c: Likewise.
1838 * config/v850/lib1funcs.asm: Likewise.
1839 * config/vxlib-tls.c: Likewise.
1840 * config/vxlib.c: Likewise.
1841 * config/vxworks-dummy.h: Likewise.
1842 * config/xtensa/crti.asm: Likewise.
1843 * config/xtensa/crtn.asm: Likewise.
1844 * config/xtensa/ieee754-df.S: Likewise.
1845 * config/xtensa/ieee754-sf.S: Likewise.
1846 * config/xtensa/lib1funcs.asm: Likewise.
1847 * config/xtensa/lib2funcs.S: Likewise.
1848 * config/xtensa/linux-unwind.h: Likewise.
1849 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
1850 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
1851 * coretypes.h: Likewise.
1852 * crtstuff.c: Likewise.
1853 * defaults.h: Likewise.
1854 * dwarf2.h: Likewise.
1855 * emutls.c: Likewise.
1856 * gbl-ctors.h: Likewise.
1857 * gcov-io.h: Likewise.
1858 * ginclude/float.h: Likewise.
1859 * ginclude/iso646.h: Likewise.
1860 * ginclude/stdarg.h: Likewise.
1861 * ginclude/stdbool.h: Likewise.
1862 * ginclude/stddef.h: Likewise.
1863 * ginclude/stdfix.h: Likewise.
1864 * ginclude/stdint-gcc.h: Likewise.
1865 * ginclude/tgmath.h: Likewise.
1866 * gthr-aix.h: Likewise.
1867 * gthr-dce.h: Likewise.
1868 * gthr-gnat.c: Likewise.
1869 * gthr-gnat.h: Likewise.
1870 * gthr-lynx.h: Likewise.
1871 * gthr-mipssde.h: Likewise.
1872 * gthr-nks.h: Likewise.
1873 * gthr-posix.c: Likewise.
1874 * gthr-posix.h: Likewise.
1875 * gthr-posix95.h: Likewise.
1876 * gthr-rtems.h: Likewise.
1877 * gthr-single.h: Likewise.
1878 * gthr-solaris.h: Likewise.
1879 * gthr-tpf.h: Likewise.
1880 * gthr-vxworks.h: Likewise.
1881 * gthr-win32.h: Likewise.
1882 * gthr.h: Likewise.
1883 * libgcc2.c: Likewise.
1884 * libgcc2.h: Likewise.
1885 * libgcov.c: Likewise.
1886 * tsystem.h: Likewise.
1887 * typeclass.h: Likewise.
1888 * unwind-c.c: Likewise.
1889 * unwind-compat.h: Likewise.
1890 * unwind-dw2-fde-compat.c: Likewise.
1891 * unwind-dw2-fde-darwin.c: Likewise.
1892 * unwind-dw2-fde-glibc.c: Likewise.
1893 * unwind-dw2-fde.c: Likewise.
1894 * unwind-dw2-fde.h: Likewise.
1895 * unwind-dw2.c: Likewise.
1896 * unwind-dw2.h: Likewise.
1897 * unwind-generic.h: Likewise.
1898 * unwind-pe.h: Likewise.
1899 * unwind-sjlj.c: Likewise.
1900 * unwind.inc: Likewise.
1901 * config/arm/neon-gen.ml: Change generated copyright header to
1902 refer to version 3 of the GNU General Public License with
1903 version 3.1 of the GCC Runtime Library Exception and to point
1904 readers at the COPYING3 and COPYING3.RUNTIME files and the
1905 FSF's license web page.
1906 * config/arm/arm_neon.h: Regenerate.
1907
19082009-04-09 Jakub Jelinek <jakub@redhat.com>
1909
1910 * config/cris/cris.md: Change copyright header to refer to version
1911 3 of the GNU General Public License.
1912 * doc/install.texi2html: Change copyright header to refer to version
1913 3 of the GNU General Public License and to point readers at the
1914 COPYING3 file and the FSF's license web page.
1915 * config/vax/linux.h: Likewise.
1916
8e58aded 19172009-04-09 Paolo Bonzini <bonzini@gnu.org>
1918
7df298fe 1919 * config/i386/i386.md (cmpcc): New.
1920 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
1921 (sync_compare_and_swap_cc*): Delete.
1922
1923 * config/s390/s390.c (s390_compare_emitted): Remove.
1924 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
1925 s390_compare_emitted used to be handled. Assert that modes match.
1926 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
1927 refer to sync_compare_and_swap_ccsi.
1928 * config/s390/s390.h (s390_compare_emitted): Remove.
1929 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
1930 instead of s390_compare_emitted.
1931 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
1932 instead of s390_compare_emitted.
1933 * config/s390/s390.md (cmpcc): New.
1934 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
1935 CC_REGNUM, do not pretend it's set.
1936 (sync_compare_and_swap_cc*): Delete.
1937 * config/s390/predicates.md (cc_reg_operand): New.
1938
1939 * expr.c (sync_compare_and_swap_cc): Delete.
1940 * optabs.h (sync_compare_and_swap_cc): Delete.
1941 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
1942 is being used with can_compare_p.
1943 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
1944 (find_cc_set): New.
1945 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
1946 look for a MODE_CC set instead. Use emit_store_flag.
1947 (expand_compare_and_swap_loop): Likewise, with some additional
1948 complication to avoid a force_reg when useless. Use
1949 emit_cmp_and_jump_insns.
1950 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
1951 * doc/md.texi (sync_compare_and_swap_cc): Merge with
1952 sync_compare_and_swap documentation.
8e58aded 1953
98b64106 19542009-04-09 Jan Hubicka <jh@suse.cz>
1955
1956 * except.c (find_prev_try): Break out from ....
1957 (duplicate_eh_regions): ... here; properly update prev_try pointers
1958 when duplication part of tree.
1959 (dump_eh_tree): Improve dumping.
1960 (verify_eh_region): New.
1961 (verify_eh_tree): Use it.
1962
d7dfb761 19632009-04-06 Richard Guenther <rguenther@suse.de>
1964
1965 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
1966 &ARRAY addresses by adjusting their types and prepending
1967 a conversion.
1968 * tree-cfg.c (verify_gimple_assign_single): Verify that
1969 addresses are correct.
1970
87c5de3b 19712009-04-09 Richard Guenther <rguenther@suse.de>
1972
1973 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
1974 indices into an array reference if possible.
1975 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
1976 Fold POINTER_PLUS_EXPR statements with invariant address.
1977
50ec89c7 19782009-04-09 Alan Modra <amodra@bigpond.net.au>
1979
1980 PR target/39634
1981 * config.gcc (powerpc64-*-linux*): Always build biarch.
1982
482c1ea0 19832009-04-09 Joseph Myers <joseph@codesourcery.com>
1984
1985 PR c/39613
1986 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
1987 it and pedwarn if this results in an INTEGER_CST.
1988
fec76ae9 19892009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1990
1991 * doc/install.texi: Update minimum GMP version. Remove obsolete
1992 text in MPFR section.
1993
a974aa3e 19942009-04-08 Jakub Jelinek <jakub@redhat.com>
1995
1996 * dwarf2out.c (class_scope_p): New static inline.
1997 (class_or_namespace_scope_p): Use it.
1998 (gen_variable_die): Use DW_TAG_member tag for static data member
1999 declarations instead of DW_TAG_variable.
2000
e1a7ccb9 2001 PR middle-end/39573
2002 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
2003 variables.
2004
94373fa5 20052009-04-08 Richard Guenther <rguenther@suse.de>
2006
2007 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
2008 valueize random data.
2009
b5e8a0bc 20102009-04-08 David Edelsohn <edelsohn@gnu.org>
2011
2012 * config.gcc (aix tm_file): Add aix-stdint.h.
2013 (aix tm clause use_gcc_stdint): Set to wrap.
2014 * config/rs6000/aix-stdint.h: New file.
89871bab 2015
3a44a278 20162009-04-08 Richard Guenther <rguenther@suse.de>
2017
2018 PR middle-end/36291
2019 * tree-dfa.c (add_referenced_var): Do not recurse into
2020 global initializers.
2021 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
2022 exposed variables.
2023 (fold_const_aggregate_ref): Likewise.
2024
c429965c 20252009-04-08 Paolo Bonzini <bonzini@gnu.org>
2026
0ed4dbb4 2027 * recog.c (ordered_comparison_operator): New.
2028 * gensupport.c (std_preds): Add it.
c429965c 2029 * doc/md.texi (Machine-Independent Predicates): Document it.
2030
48d5ef93 20312009-04-08 Jan Hubicka <jh@suse.cz>
2032
2033 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
2034 * function.h (rtl_eh): Remove exception_handler_label_map.
2035 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
2036 remove_exception_handler_label, for_each_eh_label_1): Remove.
2037 (rtl_remove_unreachable_regions): Remove.
2038 (convert_from_eh_region_ranges): Do not remove unreachable regions.
2039 (find_exception_handler_labels): Don't build the hashtable.
2040 (maybe_remove_eh_handler): Remove.
2041 (for_each_eh_label): Rewrite to walk the tree.
2042 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
2043 * except.h (maybe_remove_eh_handler): Remove.
2044 * passes.c (init_optimization_passes): Schedule second EH cleanup
2045 before out-of-ssa.
2046 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
2047 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
2048
cbb955b0 20492009-04-08 Paolo Bonzini <bonzini@gnu.org>
2050
2051 * genoutput.c (validate_optab_operands): New.
2052 (gen_insn, gen_expand): Call it.
2053
2054 * genflags.c (gen_insn): Detect misused iterators.
2055 (main): Pass line_no to gen_insn, exit with status 1 on error.
2056
2057 * genextract.c (line_no): Make global.
2058 (VEC_safe_set_locstr): Change assertion to error message.
2059 (main): Exit with status 1 on error.
2060
9a8bed72 20612009-04-08 Joseph Myers <joseph@codesourcery.com>
2062
2063 PR c/39614
2064 PR c/39673
2065 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
2066 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
2067 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
2068 * c-convert.c (convert): Do not call fold on results of conversion
2069 functions when the result is a C_MAYBE_CONST_EXPR.
2070 * c-parser.c (c_parser_postfix_expression): Do not fold condition
2071 of __builtin_choose_expr.
2072 * c-typeck.c (remove_c_maybe_const_expr): New.
2073 (build_unary_op, build_conditional_expr, build_compound_expr,
2074 build_binary_op, c_objc_common_truthvalue_conversion): Call
2075 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
2076 integer operands.
2077
87de4c68 20782009-04-08 Bingfeng Mei <bmei@broadcom.com>
2079
89871bab 2080 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
0ed4dbb4 2081 CODE to produce a new one. Add a prototype to use fold_convert_const
87de4c68 2082
1e37e2e4 20832009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
2084
2085 PR bootstrap/39660
2086 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
2087 mix declarations and code.
2088
c68bcf58 20892009-04-08 Ben Elliston <bje@au.ibm.com>
2090
2091 * gcc.c: Replace `CC' with `GCC' throughout.
2092
a015dc67 20932009-04-07 H.J. Lu <hongjiu.lu@intel.com>
2094
2095 * doc/invoke.texi: Document Atom support.
2096
fc8ee10c 20972009-04-07 Jason Merrill <jason@redhat.com>
2098
2099 PR c++/25185
2100 * c-common.h, c-common.c: Add flag_pretty_templates.
2101 * c-opts.c (c_common_handle_option): Set it.
2102 * c.opt: Add -fno-pretty-templates.
2103 * doc/invoke.texi (C++ Dialect Options): Likewise.
2104
9b57ed9f 21052009-04-07 Uros Bizjak <ubizjak@gmail.com>
2106
2107 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
2108 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
2109 (ia64_expand_builtin): Likewise.
2110
9b973aa6 21112009-04-07 Martin Jambor <mjambor@suse.cz>
2112
2113 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
2114 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
2115 ADDR_EXPRS are include too.
2116
09347e88 21172009-04-07 Richard Guenther <rguenther@suse.de>
2118
2119 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
2120 decls are only used if passes as parameters or if they are
2121 local statics and the call is not to a builtin.
2122 (call_may_clobber_ref_p_1): Likewise.
2123
da4963ce 21242009-04-07 Paolo Bonzini <bonzini@gnu.org>
2125
2126 * expr.c (do_store_flag): Remove last argument. Simplify code
2127 to avoid duplication of tests already done by can_compare_p.
2128 (expand_expr_real_1): Adjust caller.
2129
235155da 21302009-04-07 Paolo Bonzini <bonzini@gnu.org>
2131
9b57ed9f 2132 * optabs.c (can_compare_p): Test the predicate of a
2133 cbranch and cstore pattern.
235155da 2134
2040a7e4 21352009-04-07 Paolo Bonzini <bonzini@gnu.org>
2136
9b57ed9f 2137 * expr.c (convert_move): Use emit_store_flag instead of
2138 "emulating" it.
2040a7e4 2139
a5f5a6f7 21402009-04-07 Paolo Bonzini <bonzini@gnu.org>
2141
9b57ed9f 2142 * config/i386/i386.c (ix86_compare_emitted): Remove.
2143 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
2144 ix86_compare_op0 like ix86_compare_emitted used to be handled.
2145 * config/i386/i386.h (ix86_compare_emitted): Remove.
2146 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
2147 instead of ix86_compare_emitted.
2148 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
a5f5a6f7 2149
fa22494c 21502009-04-07 Andrew Stubbs <ams@codesourcery.com>
2151
2152 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
2153 Add t-sysroot-suffix to tmake_file.
2154 * config/print-sysroot-suffix.sh: New file.
2155 * config/t-sysroot-suffix: New file.
2156
e73bbd21 21572009-04-07 Ben Elliston <bje@au.ibm.com>
2158
2159 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
2160 as the latter produces a warning when the target does not support
2161 infinity.
2162
d5cd42ef 21632009-04-07 Ben Elliston <bje@au.ibm.com>
2164
2165 * dfp.c: Replace type punning assignments with memcpy throughout.
2166 * Makefile.in (dfp.o-warn): Remove.
89871bab 2167
4e5e2802 21682009-04-07 Alan Modra <amodra@bigpond.net.au>
2169
2170 PR target/39634
2171 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
2172 Include soft-fp/t-softfp after rs6000/t-linux64.
2173
30904b2c 21742009-04-06 Eric Botcazou <ebotcazou@adacore.com>
2175
2176 * stor-layout.c (set_sizetype): Use the full precision of their
2177 machine mode for bitsize types.
2178
3544e448 21792009-04-06 H.J. Lu <hongjiu.lu@intel.com>
2180
2181 * config/i386/i386.md: Revert 2 accidental checkins.
2182
fbfe006e 21832009-04-06 Joey Ye <joey.ye@intel.com>
2184 Xuepeng Guo <xuepeng.guo@intel.com>
2185 H.J. Lu <hongjiu.lu@intel.com>
2186
2187 Atom pipeline model, tuning and insn selection.
2188 * config.gcc (atom): Add atom config options and target.
2189
2190 * config/i386/atom.md: New.
2191
2192 * config/i386/i386.c (atom_cost): New cost.
2193 (m_ATOM): New macro flag.
2194 (initial_ix86_tune_features): Set m_ATOM.
2195 (x86_accumulate_outgoing_args): Likewise.
2196 (x86_arch_always_fancy_math_387): Likewise.
2197 (processor_target): Add Atom cost.
2198 (cpu_names): Add Atom cpu name.
2199 (override_options): Set Atom ISA.
2200 (ix86_issue_rate): New case PROCESSOR_ATOM.
2201 (ix86_adjust_cost): Likewise.
2202
2203 * config/i386/i386.h (TARGET_ATOM): New target macro.
2204 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
2205 (TARGET_OPT_AGU): New target option.
2206 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
2207 (processor_type): Add PROCESSOR_ATOM.
2208
2209 * config/i386/i386.md (cpu): Add new value "atom".
2210 (use_carry, movu): New attr.
2211 (atom.md): Include atom.md.
2212 (adddi3_carry_rex64): Set attr "use_carry".
2213 (addqi3_carry): Likewise.
2214 (addhi3_carry): Likewise.
2215 (addsi3_carry): Likewise.
2216 (*addsi3_carry_zext): Likewise.
2217 (subdi3_carry_rex64): Likewise.
2218 (subqi3_carry): Likewise.
2219 (subhi3_carry): Likewise.
2220 (subsi3_carry): Likewise.
2221 (x86_movdicc_0_m1_rex64): Likewise.
2222 (*x86_movdicc_0_m1_se): Likewise.
2223 (x86_movsicc_0_m1): Likewise.
2224 (*x86_movsicc_0_m1_se): Likewise.
2225 (*adddi_1_rex64): Emit add insn as much as possible.
2226 (*addsi_1): Likewise.
2227 (return_internal): Set atom_unit.
2228 (return_internal_long): Likewise.
2229 (return_pop_internal): Likewise.
2230 (*rcpsf2_sse): Set atom_sse_attr attr.
2231 (*qrt<mode>2_sse): Likewise.
2232 (*prefetch_sse): Likewise.
2233
2234 * config/i386/i386-c.c (ix86_target_macros_internal): New case
2235 PROCESSOR_ATOM.
2236 (ix86_target_macros_internal): Likewise.
2237
2238 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
2239 (*prefetch_sse_rex): Likewise.
2240 (sse_rcpv4sf2): Likewise.
2241 (sse_vmrcpv4sf2): Likewise.
2242 (sse_sqrtv4sf2): Likewise.
2243 (<sse>_vmsqrt<mode>2): Likewise.
2244 (sse_ldmxcsr): Likewise.
2245 (sse_stmxcsr): Likewise.
2246 (*sse_sfence): Likewise.
2247 (sse2_clflush): Likewise.
2248 (*sse2_mfence): Likewise.
2249 (*sse2_lfence): Likewise.
2250 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
2251 (<sse>_movup<ssemodesuffixf2c>): Likewise.
2252 (avx_movdqu<avxmodesuffix>): Likewise.
2253 (avx_lddqu<avxmodesuffix>): Likewise.
2254 (sse2_movntv2di): Change attr "type" to "ssemov".
2255 (sse2_movntsi): Likewise.
2256 (rsqrtv8sf2): Change attr "type" to "sseadd".
2257 (sse3_addsubv2df3): Set attr "atom_unit".
2258 (sse3_h<plusminus_insn>v4sf3): Likewise.
2259 (*sse2_pmaddwd): Likewise.
2260 (*vec_extractv2di_1_rex64): Likewise.
2261 (*vec_extractv2di_1_avx): Likewise.
2262 (sse2_psadbw): Likewise.
2263 (ssse3_phaddwv8hi3): Likewise.
2264 (ssse3_phaddwv4hi3): Likewise.
2265 (ssse3_phadddv4si3): Likewise.
2266 (ssse3_phadddv2si3): Likewise.
2267 (ssse3_phaddswv8hi3): Likewise.
2268 (ssse3_phaddswv4hi3): Likewise.
2269 (ssse3_phsubwv8hi3): Likewise.
2270 (ssse3_phsubwv4hi3): Likewise.
2271 (ssse3_phsubdv4si3): Likewise.
2272 (ssse3_phsubdv2si3): Likewise.
2273 (ssse3_phsubswv8hi3): Likewise.
2274 (ssse3_phsubswv4hi3): Likewise.
2275 (ssse3_pmaddubsw128): Likewise.
2276 (sse3_pmaddubsw: Likewise.
2277 (ssse3_palignrti): Likewise.
2278 (ssse3_palignrdi): Likewise.
2279
ad659dc9 22802009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
2281
2282 * doc/install.texi (Specific): Fix two cross-references to MinGW.
2283
220307de 22842009-04-06 Richard Guenther <rguenther@suse.de>
2285
2286 PR tree-optimization/28868
2287 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
2288 of which PHI results we inserted.
2289 (insert_into_preds_of_block): Record inserted PHIs.
2290 (eliminate): Eliminate redundant PHI nodes.
2291 (init_pre): Init inserted_phi_names.
2292
0fefde02 22932009-04-06 Richard Guenther <rguenther@suse.de>
2294
2295 PR tree-optimization/39643
2296 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
2297 IMAGPART_EXPRs of complex constants.
2298 (execute_fold_all_builtins): If we folded a call queue
2299 TODO_update_address_taken.
2300
b07ddb92 23012009-04-06 Jan Hubicka <jh@suse.cz>
2302
2303 PR middle-end/39659
2304 * except.c (remove_unreachable_regions): Propagate may_contain_throw
2305 flag.
2306
85714674 23072009-04-06 Andrew Stubbs <ams@codesourcery.com>
2308
2309 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
2310 delay slot.
2311 (ic_invalidate_array): Likewise.
2312
c2fd5e89 23132009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
2314
2315 * calls.c (emit_library_call_value_1): Fix a problem with parameter
2316 alignment for library calls.
2317
8953973a 23182009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
2319
2320 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
2321 (mingw32 tm clause use_gcc_stdint): Set to wrap.
2322 * config/i386/mingw-stdint.h: New file.
2323
eb04d2de 23242009-04-05 Richard Guenther <rguenther@suse.de>
2325
2326 PR tree-optimization/39648
2327 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
2328 our &A vs. &A[0] IL deficiencies.
2329
0f656a57 23302009-04-04 Jan Hubicka <jh@suse.cz>
2331
eb04d2de 2332 * except.c (sjlj_find_directly_reachable_regions): Be ready for
2333 removed toplevel regions.
0f656a57 2334 (sjlj_mark_call_sites): Likewise.
2335
615180dd 23362009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
2337
2338 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
2339 (cygwin tm clause use_gcc_stdint): Set to wrap.
2340 * config/i386/cygwin-stdint.h: New file.
2341
23a3430d 23422009-04-04 Richard Guenther <rguenther@suse.de>
2343
2344 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
2345 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
2346 single-argument PHIs if we are in loop-closed SSA form.
2347 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
2348 for the pre-condition.
2349 (slpeel_tree_peel_loop_to_edge): Likewise.
2350 (vect_build_loop_niters): Take an optional sequence to append stmts.
2351 (vect_generate_tmps_on_preheader): Likewise.
2352 (vect_do_peeling_for_loop_bound): Take extra guards for the
2353 pre-condition.
2354 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
2355 the cost model check.
2356 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
c72c72ef 2357 guards if we are going to peel. Do not apply versioning in that case.
23a3430d 2358 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
2359 (vect_do_peeling_for_loop_bound): Likewise.
2360 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
2361 loop bound only record extra pre-conditions, do not apply loop
2362 versioning.
2363
42e901a3 23642009-04-04 Richard Guenther <rguenther@suse.de>
2365
2366 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
2367 renaming code.
2368
87490e08 23692009-04-04 Jan Hubicka <jh@suse.cz>
2370
2371 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
2372 last_basic_block for size of bb->index indexed array.
2373 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
2374 compute_out, link_btr_uses, build_btr_def_use_webs,
2375 build_btr_def_use_webs, migrate_btr_defs): Likewise.
2376
686e094c 23772009-04-04 Jan Hubicka <jh@suse.cz>
2378
2379 * except.c (remove_eh_handler_and_replace): Break out from ...
2380 (remove_eh_handler): ... here.
2381 (bring_to_root): New function.
2382 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
2383 handled ones, bring others to root of tree.
2384
3bd82487 23852009-04-04 Jan Hubicka <jh@suse.cz>
2386
74eed1ed 2387 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
2388 (all_phis_safe_to_merge): New function.
2389 (update_info): New structure.
2390 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
2391 (cleanup_empty_eh): Update SSA if possible.
3bd82487 2392
17fbf1b8 23932009-04-04 Richard Guenther <rguenther@suse.de>
2394
2395 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
2396 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
2397 (append_vuse): Likewise.
2398
d02454a0 23992009-04-04 Jakub Jelinek <jakub@redhat.com>
2400
2401 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
2402 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
2403 instead of REG_UNSAVED for DW_CFA_undefined.
2404 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
2405 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
2406 outermost frame.
2407
19f6bf8d 24082009-04-04 Richard Earnshaw <rearnsha@arm.com>
2409
2410 PR target/39501
2411 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
2412 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
2413 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
2414
d12dee9c 24152009-04-04 Richard Guenther <rguenther@suse.de>
2416
2417 PR tree-optimization/8781
2418 PR tree-optimization/37892
2419 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
2420 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
2421 (valueize_refs): Call it for *& valueizations.
2422 (shared_reference_ops_from_ref): Rename to ...
2423 (valueize_shared_reference_ops_from_ref): ... this and valueize.
2424 (shared_reference_ops_from_call): Rename to ...
2425 (valueize_shared_reference_ops_from_call): ... this and valueize.
2426 (vn_reference_lookup): Update.
2427 (visit_reference_op_call): Likewise.
2428 * tree-ssa-pre.c (phi_translate_1): Fold *&.
2429 (eliminate): Value-replace the call address in call statements.
2430
507b89a4 24312009-04-04 Richard Guenther <rguenther@suse.de>
2432
2433 PR tree-optimization/39636
2434 * tree-ssa-forwprop.c
2435 (forward_propagate_addr_into_variable_array_index): Check for
2436 GIMPLE_ASSIGN before accessing the rhs code.
2437
4a83184b 24382009-04-03 Jason Merrill <jason@redhat.com>
2439
2440 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
2441
d363dedc 24422009-04-03 Steve Ellcey <sje@cup.hp.com>
2443
2444 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
2445 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
2446 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
2447 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
2448 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
2449 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
2450 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
2451 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
2452 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
2453 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
2454 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
2455 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
2456 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
2457 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
2458 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
2459 Use fr_reg_or_fp01_operand instead of fr_register_operand
2460
2461 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
2462 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
2463 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
2464
2dd81ece 24652009-04-03 Vladimir Makarov <vmakarov@redhat.com>
2466
acc6de19 2467 PR rtl-optimization/39607
2468 PR rtl-optimization/39631
c72c72ef 2469
2470 Revert:
89871bab 2471
2dd81ece 2472 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
2473 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
2474 instead of DF_LR_OUT.
2475 * ira-lives.c (process_bb_node_lives): Ditto.
2476 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
2477 instead of DF_LR_{OUT,IN}.
2478 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
2479 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
2480
41709826 24812009-04-03 Steven Bosscher <steven@gcc.gnu.org>
2482
2483 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
2484 (execute_lower_omp): Always run but take the short way out if -fopenmp
2485 is not given.
2486 (gate_lower_omp): Remove, forcing the pass manager to always run the
2487 pass and always set PROP_gimple_lomp.
2488 (pass_lower_omp): Remove gate function.
2489 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
2490 PROP_trees. Instead, require it.
2491 * ipa-cp.c (pass_ipa_cp): Likewise.
2492 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
2493 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
2494 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
2495 and PROP_gimple_leh.
2496
dd277d48 24972009-04-03 Richard Guenther <rguenther@suse.de>
2498
2499 PR middle-end/13146
2500 PR tree-optimization/23940
2501 PR tree-optimization/33237
2502 PR middle-end/33974
2503 PR middle-end/34093
2504 PR tree-optimization/36201
2505 PR tree-optimization/36230
2506 PR tree-optimization/38049
2507 PR tree-optimization/38207
2508 PR tree-optimization/38230
2509 PR tree-optimization/38301
2510 PR tree-optimization/38585
2511 PR middle-end/38895
2512 PR tree-optimization/38985
2513 PR tree-optimization/39299
2514 * tree-ssa-structalias.h: Remove.
2515 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
2516 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
2517 (struct vuse_element_d): Remove.
2518 (struct vuse_vec_d): Likewise.
2519 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
2520 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
2521 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
2522 VUSE_ELEMENT_VAR): Likewise.
2523 (struct voptype_d): Likewise.
2524 (NUM_VOP_FREE_BUCKETS): Likewise.
2525 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
2526 (struct stmt_operands_d): Remove.
2527 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
2528 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
2529 VDEF_NUM, VDEF_VECT): Likewise.
2530 (copy_virtual_operands): Remove.
2531 (operand_build_cmp): Likewise.
2532 (create_ssa_artificial_load_stmt): Likewise.
2533 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
2534 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
2535 vuse_index and mayuse_index members. Pack and move done and iter_type
2536 members to the front.
2537 (SSA_OP_VMAYUSE): Remove.
2538 (SSA_OP_VIRTUAL_USES): Adjust.
2539 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
2540 (unlink_stmt_vdef): Declare.
2541 (add_to_addressable_set): Remove.
2542 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
2543 (vrp_visit_stmt): Likewise.
2544 * doc/tree-ssa.texi (Alias analysis): Update.
2545 * doc/invoke.texi (max-aliased-vops): Remove docs.
2546 (avg-aliased-vops): Likewise.
2547 * tree-into-ssa.c (syms_to_rename): Remove.
2548 (need_to_update_vops_p): Likewise.
2549 (need_to_initialize_update_ssa_p): Rename to ...
2550 (update_ssa_initialized_fn): ... this. Track function we are
2551 initialized for.
2552 (symbol_marked_for_renaming): Simplify.
2553 (add_new_name_mapping): Do not set need_to_update_vops_p.
2554 (dump_currdefs): Use SYMS_TO_RENAME.
2555 (rewrite_update_stmt): Always walk all uses/defs.
2556 (dump_update_ssa): Adjust.
2557 (init_update_ssa): Take function argument. Track what we are
2558 initialized for.
2559 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
2560 (create_new_def_for): Initialize for cfun, assert we are initialized
2561 for cfun.
2562 (mark_sym_for_renaming): Simplify.
2563 (mark_set_for_renaming): Do not initialize update-ssa.
2564 (need_ssa_update_p): Simplify. Take function argument.
2565 (name_mappings_registered_p): Assert we ask for the correct function.
2566 (name_registered_for_update_p): Likewise.
2567 (ssa_names_to_replace): Likewise.
2568 (release_ssa_name_after_update_ssa): Likewise.
2569 (update_ssa): Likewise. Use SYMS_TO_RENAME.
2570 (dump_decl_set): Do not print a newline.
2571 (debug_decl_set): Do it here.
2572 (dump_update_ssa): And here.
2573 * tree-ssa-loop-im.c (move_computations): Adjust.
2574 (movement_possibility): Likewise.
2575 (determine_max_movement): Likewise.
2576 (gather_mem_refs_stmt): Likewise.
2577 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
2578 or NAME_MEMORY_TAG.
2579 * tree-complex.c (update_all_vops): Remove.
2580 (expand_complex_move): Adjust.
2581 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
2582 Simplify test for memory referencing statement. Exclude
2583 non-invariant ADDR_EXPRs.
2584 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
2585 * tree-loop-distribution.c (generate_memset_zero): Adjust.
2586 (rdg_flag_uses): Likewise.
2587 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
2588 related code.
2589 (tree_optimize_tail_calls_1): Also split the
2590 edge from the entry block if we have degenerate PHI nodes in
2591 the first basic block.
2592 * tree.c (init_ttree): Remove memory-tag related code.
2593 (tree_code_size): Likewise.
2594 (tree_node_structure): Likewise.
2595 (build7_stat): Re-write to be build6_stat.
2596 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
2597 (SSA_VAR_P): Adjust.
2598 (struct tree_memory_tag): Remove.
2599 (struct tree_memory_partition_tag): Likewise.
2600 (union tree_node): Adjust.
2601 (build7): Re-write to be build6.
2602 * tree-pass.h (pass_reset_cc_flags): Remove.
2603 (TODO_update_address_taken): New flag.
2604 (pass_simple_dse): Remove.
2605 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
2606 * params.h (MAX_ALIASED_VOPS): Remove.
2607 (AVG_ALIASED_VOPS): Likewise.
2608 * omp-low.c (expand_omp_taskreg): Update SSA form.
2609 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
2610 aliases the lhs in a copy stmt.
2611 * tree-ssa-dse.c (struct address_walk_data): Remove.
2612 (memory_ssa_name_same): Likewise.
2613 (memory_address_same): Likewise.
2614 (get_kill_of_stmt_lhs): Likewise.
2615 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
2616 unused stores. Look through PHI nodes into post-dominated regions.
2617 (dse_optimize_stmt): Simplify. Properly remove stores.
2618 (tree_ssa_dse): Compute dominators.
2619 (execute_simple_dse): Remove.
2620 (pass_simple_dse): Likewise.
2621 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
2622 gimple_loaded_syms and gimple_stored_syms computation.
2623 * toplev.c (dump_memory_report): Dump alias and pta stats.
2624 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
2625 (vn_reference_eq): Likewise.
2626 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
2627 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
2628 valueize_vuses): Remove.
2629 (get_def_ref_stmt_vuses): Simplify. Rename to ...
2630 (get_def_ref_stmt_vuse): ... this.
2631 (vn_reference_lookup_2): New function.
2632 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
2633 walking equivalent vuses. Simplify.
2634 (vn_reference_lookup): Likewise.
2635 (vn_reference_insert): Likewise.
2636 (vn_reference_insert_pieces): Likewise.
2637 (visit_reference_op_call): Simplify.
2638 (visit_reference_op_load): Likewise.
2639 (visit_reference_op_store): Likewise.
2640 (init_scc_vn): Remove shared_lookup_vuses initialization.
2641 (free_scc_vn): Remove shared_lookup_vuses freeing.
2642 (sort_vuses, sort_vuses_heap): Remove.
2643 (get_ref_from_reference_ops): Export.
2644 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
2645 vector with single vuse pointer.
2646 (vn_reference_lookup_pieces, vn_reference_lookup,
2647 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
2648 (shared_vuses_from_stmt): Remove.
2649 (get_ref_from_reference_ops): Declare.
2650 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
2651 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
2652 memory-tag related code.
2653 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
2654 (likely_value): Add comment, skip static-chain of call statements.
2655 (surely_varying_stmt_p): Adjust.
2656 (gimplify_and_update_call_from_tree): Likewise.
2657 (execute_fold_all_builtins): Do not rebuild alias info.
2658 (gimplify_and_update_call_from_tree): Properly update VOPs.
2659 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
2660 (copy_ref_info): Remove memory-tag related code.
2661 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
2662 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
2663 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
2664 computation.
2665 * tree-ssa-dom.c (gimple_p): Remove typedef.
2666 (eliminate_redundant_computations): Adjust.
2667 (record_equivalences_from_stmt): Likewise.
2668 (avail_expr_hash): Likewise.
2669 (avail_expr_eq): Likewise.
c72c72ef 2670 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
dd277d48 2671 (stmt_makes_single_load): Likewise.
2672 (stmt_makes_single_store): Likewise.
2673 * tree-ssa-alias.c: Rewrite completely.
2674 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
2675 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
2676 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
2677 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
2678 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
2679 Remove public functions.
2680 (pass_reset_cc_flags): Remove.
2681 (pass_build_alias): Move ...
2682 * tree-ssa-structalias.c (pass_build_alias): ... here.
2683 * tree-ssa-alias.c (may_be_aliased): Move ...
2684 * tree-flow-inline.h (may_be_aliased): ... here.
2685 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
2686 count_uses_and_derefs): Move ...
2687 * gimple.c: ... here.
2688 * gimple.h (count_uses_and_derefs): Declare.
2689 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
2690 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
2691 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
2692 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
2693 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
2694 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
2695 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
2696 New functions.
2697 * tree-dfa.c (refs_may_alias_p): Move ...
2698 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
2699 * tree-ssa-alias.h: New file.
2700 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
2701 (statement_sink_location): Likewise.
2702 * opts.c (decode_options): Do not adjust max-aliased-vops or
2703 avg-aliased-vops values.
2704 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
2705 (TV_CALL_CLOBBER): Likewise.
2706 (TV_FLOW_SENSITIVE): Likewise.
2707 (TV_FLOW_INSENSITIVE): Likewise.
2708 (TV_MEMORY_PARTITIONING): Likewise.
2709 (TV_ALIAS_STMT_WALK): New timevar.
2710 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
2711 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
2712 (get_address_description): Remove memory-tag related code.
2713 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
2714 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
2715 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
2716 and immediate uses in statements. Document.
2717 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
2718 (dump_symbols): Remove.
2719 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
2720 * alias.c (get_deref_alias_set): New function split out from ...
2721 (get_alias_set): ... here.
2722 * alias.h (get_deref_alias_set): Declare.
2723 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
2724 type parameter. Remove restrict pointer handling. Create a
2725 ref-all pointer in case type-based alias sets do not conflict.
2726 (vect_analyze_data_refs): Remove SMT related code.
2727 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
2728 (vectorizable_load): Likewise.
2729 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
2730 (DR_SYMBOL_TAG, DR_VOPS): Remove.
2731 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
2732 Ignore vops and SMTs.
2733 (dr_analyze_alias): Likewise..
2734 (free_data_ref): Likewise.
2735 (create_data_ref): Likewise.
2736 (analyze_all_data_dependences): Likewise.
2737 (get_references_in_stmt): Adjust.
2738 * tree-flow-inline.h (gimple_aliases_computed_p,
2739 gimple_addressable_vars, gimple_call_clobbered_vars,
2740 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
2741 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
2742 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
2743 gimple_mem_ref_stats): Remove.
2744 (gimple_vop): New function.
2745 (op_iter_next_use): Remove vuses and mayuses cases.
2746 (op_iter_next_def): Remove vdefs case.
2747 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
2748 (clear_and_done_ssa_iter): Do not set removed fields.
2749 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
2750 Assert we are not iterating over vuses or vdefs if not also
2751 iterating over uses or defs.
2752 (op_iter_init_use): Likewise.
2753 (op_iter_init_def): Likewise.
2754 (op_iter_next_vdef): Remove.
2755 (op_iter_next_mustdef): Likewise.
2756 (op_iter_init_vdef): Likewise.
2757 (compare_ssa_operands_equal): Likewise.
2758 (link_use_stmts_after): Handle vuse operand.
2759 (is_call_used): Use is_call_clobbered.
2760 (is_call_clobbered): Global variables are always call clobbered,
2761 query the call-clobbers bitmap.
2762 (mark_call_clobbered): Ignore global variables.
2763 (clear_call_clobbered): Likewise.
2764 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
2765 virtual operands sanity check.
2766 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
2767 Remove.
2768 (TARGET_MEM_REF): Remove TMR_TAG operand.
2769 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
2770 Remove call-clobber related code.
2771 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
2772 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
2773 partitions or escape reason.
2774 (get_single_def_stmt, get_single_def_stmt_from_phi,
2775 get_single_def_stmt_with_phi): Remove.
2776 (dump_referenced_vars): Tidy.
2777 (get_ref_base_and_extent): Allow bare decls.
2778 (collect_dfa_stats): Adjust.
2779 * graphite.c (rename_variables_in_stmt): Adjust.
2780 (graphite_copy_stmts_from_block): Likewise.
2781 (translate_clast): Likewise.
2782 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
2783 (EXPR_DIES): New.
2784 (translate_vuse_through_block): Use the oracle.
2785 (phi_translate_1): Adjust.
2786 (value_dies_in_block_x): Use the oracle. Cache the outcome
2787 in EXPR_DIES.
2788 (valid_in_sets): Check if the VUSE for
2789 a REFERENCE is available.
2790 (eliminate): Do not remove stmts during elimination,
2791 instead queue and remove them afterwards.
2792 (do_pre): Do not rebuild alias info.
2793 (pass_pre): Run TODO_rebuild_alias before PRE.
2794 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
2795 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
2796 (mark_all_v_defs_stmt): Remove.
2797 (mark_all_v_defs_seq): Adjust.
2798 (sra_replace): Likewise.
2799 (scalarize_use): Likewise.
2800 (scalarize_copy): Likewise.
2801 (scalarize_init): Likewise.
2802 (scalarize_ldst): Likewise.
2803 (todoflags): Remove.
2804 (tree_sra): Do not rebuild alias info.
2805 (tree_sra_early): Adjust.
2806 (pass_sra): Run TODO_update_address_taken before SRA.
2807 * tree-predcom.c (set_alias_info): Remove.
2808 (prepare_initializers_chain): Do not call it.
2809 (mark_virtual_ops_for_renaming): Adjust.
2810 (mark_virtual_ops_for_renaming_list): Remove.
2811 (initialize_root_vars): Adjust.
2812 (initialize_root_vars_lm): Likewise.
2813 (prepare_initializers_chain): Likewise.
2814 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
2815 (may_propagate_copy_into_stmt): Likewise.
2816 (merge_alias_info): Do nothing for now.
2817 (propagate_tree_value_into_stmt): Adjust.
2818 (stmt_may_generate_copy): Likewise.
2819 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
2820 not mark symbols for renaming.
2821 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
2822 with the same statement, make sure to update the new pointed-to one.
2823 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
2824 call statements, do not mark symbols for renaming.
2825 (mark_operand_necessary): Dump something.
2826 (ref_may_be_aliased): New function.
2827 (mark_aliased_reaching_defs_necessary_1): New helper function.
2828 (mark_aliased_reaching_defs_necessary): Likewise.
2829 (mark_all_reaching_defs_necessary_1): Likewise.
2830 (mark_all_reaching_defs_necessary): Likewise.
2831 (propagate_necessity): Do not process virtual PHIs. For
2832 non-aliased loads mark all reaching definitions as necessary.
2833 For aliased loads and stores mark the immediate dominating
2834 aliased clobbers as necessary.
2835 (visited): New global static.
2836 (perform_tree_ssa_dce): Free visited bitmap after propagating
2837 necessity.
2838 (remove_dead_phis): Perform simple dead virtual PHI removal.
2839 (remove_dead_stmt): Properly unlink virtual operands when
2840 removing stores.
2841 (eliminate_unnecessary_stmts): Schedule PHI removal after
2842 stmt removal.
2843 * tree-ssa-ter.c (is_replaceable_p): Adjust.
2844 (process_replaceable): Likewise.
2845 (find_replaceable_in_bb): Likewise.
2846 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
2847 based on the single gimple vop.
2848 (verify_flow_insensitive_alias_info): Remove.
2849 (verify_flow_sensitive_alias_info): Likewise.
2850 (verify_call_clobbering): Likewise.
2851 (verify_memory_partitions): Likewise.
2852 (verify_alias_info): Likewise.
2853 (verify_ssa): Adjust..
2854 (execute_update_addresses_taken): Export. Update SSA
2855 manually. Optimize only when optimizing. Use a local bitmap.
2856 (pass_update_address_taken): Remove TODO_update_ssa, add
2857 TODO_dump_func.
2858 (pass_update_address_taken): Just use TODO_update_address_taken.
2859 (init_tree_ssa): Do not initialize addressable_vars.
2860 (verify_ssa): Verify new VUSE / VDEF properties.
2861 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
2862 Do not call verify_alias_info.
2863 (delete_tree_ssa): Clear the VUSE, VDEF operands.
2864 Do not free the loaded and stored syms bitmaps. Reset the escaped
2865 and callused solutions. Do not free addressable_vars.
2866 Remove memory-tag related code.
2867 (warn_uninitialized_var): Aliases are always available.
2868 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
2869 * lambda-code.c (can_put_in_inner_loop): Adjust.
2870 (can_put_after_inner_loop): Likewise.
2871 (perfect_nestify): Likewise.
2872 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
2873 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
2874 (vectorizable_conversion): Do not mark symbols for renaming.
2875 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
2876 (expand_call_inline): Unlink the calls virtual operands before
2877 replacing it.
2878 (tree_function_versioning): Do not call update_ssa if we are not
2879 updating clones. Simplify.
2880 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
2881 (propagate_with_phi): Likewise..
2882 * tree-outof-ssa.c (create_temp): Remove memory tag and call
2883 clobber code. Assert we are not aliased or global.
2884 * tree-flow.h: Include tree-ssa-alias.h
2885 (enum escape_type): Remove.
2886 (struct mem_sym_stats_d): Likewise.
2887 (struct mem_ref_stats_d): Likewise.
2888 (struct gimple_df): Add vop member. Remove global_var,
2889 call_clobbered_vars, call_used_vars, addressable_vars,
2890 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
2891 escaped and callused members.
2892 (struct ptr_info_def): Remove all members, add points-to solution
2893 member pt.
2894 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
2895 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
2896 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
2897 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
2898 (tree-ssa-alias.o): Likewise.
2899 (toplev.o): Add tree-ssa-alias.h
2900 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
2901 * gimple.c (gimple_set_bb): Fix off-by-one error.
2902 (is_gimple_reg): Do not handle memory tags.
2903 (gimple_copy): Also copy virtual operands.
2904 Delay updating the statement. Do not reset loaded and stored syms.
2905 (gimple_set_stored_syms): Remove.
2906 (gimple_set_loaded_syms): Likewise.
2907 (gimple_call_copy_skip_args): Copy the virtual operands
2908 and mark the new statement modified.
2909 * tree-ssa-structalias.c (may_alias_p): Remove.
2910 (set_uids_in_ptset): Take the alias set to prune with as
2911 parameter. Fold in the alias test of may_alias_p.
2912 (compute_points_to_sets): Compute whether a ptr is dereferenced
2913 in a local sbitmap.
2914 (process_constraint): Deal with &ANYTHING on the lhs, reject all
2915 other ADDRESSOF constraints on the lhs.
2916 (get_constraint_for_component_ref): Assert that we don't get
2917 ADDRESSOF constraints from the base of the reference.
2918 Properly generate UNKNOWN_OFFSET for DEREF if needed.
2919 (struct variable_info): Remove collapsed_to member.
2920 (get_varinfo_fc): Remove.
2921 (new_var_info): Do not set collapsed_to.
2922 (dump_constraint): Do not follow cycles.
2923 (dump_constraint_graph): Likewise.
2924 (build_pred_graph): Likewise.
2925 (build_succ_graph): Likewise.
2926 (rewrite_constraints): Likewise.
2927 (do_simple_structure_copy): Remove.
2928 (do_rhs_deref_structure_copy): Remove.
2929 (do_lhs_deref_structure_copy): Remove.
2930 (collapse_rest_of_var): Remove.
2931 (do_structure_copy): Re-implement.
2932 (pta_stats): New global variable.
2933 (dump_pta_stats): New function.
2934 (struct constraint_expr): Make offset signed.
2935 (UNKNOWN_OFFSET): Define special value.
2936 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
2937 (solution_set_expand): New helper function split out from ...
2938 (do_sd_constraint): ... here.
2939 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
2940 (do_ds_constraint): Likewise.
2941 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
2942 and CALLUSED = *CALLUSED.
2943 (set_union_with_increment): Make inc argument signed.
2944 (type_safe): Remove.
2945 (get_constraint_for_ptr_offset): Handle unknown and negative
2946 constant offsets.
2947 (first_vi_for_offset): Handle offsets before start. Bail
2948 out early for offsets beyond the variable extent.
2949 (first_or_preceding_vi_for_offset): New function.
2950 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
2951 Together with ESCAPED = *ESCAPED this properly computes reachability.
2952 (find_what_var_points_to): New function.
2953 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
2954 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
2955 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
2956 pt_solutions_intersect): New functions.
2957 (compute_call_used_vars): Remove.
2958 (compute_may_aliases): New main entry into PTA computation.
2959 * gimple.h (gimple_p): New typedef.
2960 (struct gimple_statement_base): Remove references_memory_p.
2961 (struct gimple_statement_with_memory_ops_base): Remove
2962 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
2963 members.
2964 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
2965 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
2966 gimple_set_references_memory): Remove.
2967 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
2968 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
2969 New functions.
2970 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
2971 (verify_expr): Allow RESULT_DECL.
2972 (gimple_duplicate_bb): Do not copy virtual operands.
2973 (gimple_duplicate_sese_region): Adjust.
2974 (gimple_duplicate_sese_tail): Likewise.
2975 (mark_virtual_ops_in_region): Remove.
2976 (move_sese_region_to_fn): Do not call it.
2977 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
2978 and pass_simple_dse.
2979 (execute_function_todo): Handle TODO_update_address_taken,
2980 call execute_update_addresses_taken for TODO_rebuild_alias.
2981 (execute_todo): Adjust.
2982 (execute_one_pass): Init dump files early.
2983 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
2984 call-clobbered.
2985 (create_general_new_stmt): Clear vops.
2986 * tree-ssa-reassoc.c (get_rank): Adjust.
2987 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
2988 symbols for renaming.
2989 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
2990 (PARAM_AVG_ALIASED_VOPS): Likewise.
2991 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
2992 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
c72c72ef 2993 * tree-ssa-operands.c: Simplify for new virtual operand representation.
dd277d48 2994 (operand_build_cmp, copy_virtual_operands,
2995 create_ssa_artificial_load_stmt, add_to_addressable_set,
2996 gimple_add_to_addresses_taken): Remove public functions.
2997 (unlink_stmt_vdef): New function.
2998
8d40ea45 29992009-04-03 Alan Modra <amodra@bigpond.net.au>
3000
3001 * config.gcc (powerpc-*-linux*): Merge variants.
3002
0bfaf4c4 30032009-04-02 Chao-ying Fu <fu@mips.com>
3004 James Grosbach <james.grosbach@microchip.com>
3005
3006 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
3007 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
3008 cop0_sp_offset.
3009 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
3010 keep_interrupts_masked_p, use_debug_exception_return_p.
3011 (mips_attribute_table): Add interrupt, use_shadow_register_set,
3012 keep_interrupts_masked, use_debug_exception_return.
3013 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
3014 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
3015 New functions.
3016 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
3017 (mips_print_operand): Process COP0 registers to print $0 .. $31
3018 correctly for GAS to process.
3019 (mips_interrupt_extra_call_saved_reg_p): New function.
3020 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
3021 extra registers.
3022 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
3023 (mips_compute_frame_info): Add supports for interrupt context that
3024 includes doubleword accumulators and COP0 registers.
3025 (mips_for_each_saved_acc): New function.
3026 (mips_for_each_saved_gpr_and_fpr): Change the function name from
3027 mips_for_each_saved_reg.
3028 (mips_save_reg): Save accumulators.
3029 (mips_kernel_reg_p): A new for_each_rtx callback.
3030 (mips_expand_prologue): Support interrupt handlers.
3031 (mips_restore_reg): Restore accumulators.
3032 (mips_expand_epilogue): Support interrupt handlers.
3033 (mips_can_use_return_insn): Return false for interrupt handlers.
3034 (mips_epilogue_uses): New function.
3035 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
3036 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
3037 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
3038 cop0_move): New instructions.
3039 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
3040 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
3041 defines.
3042 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
3043 New defines.
3044 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
3045 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
3046 interrupt handlers, we use K0 as the temporary register.
3047 (EPILOGUE_USES): Change to a function call.
3048 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
3049 handlers, we use K0 as the temporary register.
89871bab 3050
0bfaf4c4 3051 * doc/extend.texi (Function Attributes): Document interrupt,
3052 use_shadow_register_set, keep_interrupts_masked,
3053 use_debug_exception_return for MIPS attributes.
3054
47b92737 30552009-04-03 Alan Modra <amodra@bigpond.net.au>
3056
3057 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
3058 Remove a number of t-files from tmake_file.
3059 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
3060 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
3061 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
3062 target_prototype, not TARGET_PROTOTYPE.
3063 (LINK_OS_GNU_SPEC): Define.
3064 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
3065 and darwin-ldoubdle.c.
3066
cc92bc82 30672009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
3068
3069 PR driver/39293
3070 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
3071 (cpp_options): Ditto.
3072 (default_compilers): Ditto.
3073 (display_help): Ditto.
3074 (process_command): Ditto.
3075 (do_spec_1): Ditto.
3076 (set_input): Use lbasename instead of duplicate code.
3077 (save_temps_prefix): New static for -save-temps=obj.
3078 (save_temps_length): Ditto.
89871bab 3079
cc92bc82 3080 * doc/invoke.texi (-save-temps=obj): Document new variant to
3081 -save-temps switch.
3082
1c2a5380 30832009-04-02 Jeff Law <law@redhat.com>
3084
3085 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
3086 variable.
3087
1301d110 30882009-04-02 H.J. Lu <hongjiu.lu@intel.com>
3089
3090 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
3091 * configure: Regenerated.
3092
14bd221c 30932009-04-02 Rafael Avila de Espindola <espindola@google.com>
3094
3095 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
3096 share the argument list.
3097
64f3398b 30982009-04-02 Rafael Avila de Espindola <espindola@google.com>
3099
3100 Merge
3101
3102 2009-02-12 Diego Novillo <dnovillo@google.com>
3103
1301d110 3104 * varpool.c (debug_varpool): New.
3105 * cgraph.h (debug_varpool): Declare.
64f3398b 3106
0727d268 31072009-04-02 Jan Hubicka <jh@suse.cz>
3108
3109 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
3110 pass.
3111
3bc1f2c4 31122009-04-02 H.J. Lu <hongjiu.lu@intel.com>
3113
3114 * config/i386/i386.c (ix86_abi): Move initialization to ...
3115 (override_options): Here.
3116
e1190e3a 31172009-04-02 Christian Bruel <christian.bruel@st.com>
3118
3119 * config/sh/sh.c (sh_dwarf_register_span): New function.
3120 (TARGET_DWARF_REGISTER_SPAN): Define.
3121 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
89871bab 3122
792672f0 31232009-04-02 Ira Rosen <irar@il.ibm.com>
3124
3125 PR tree-optimization/39595
89871bab 3126 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
792672f0 3127 interleaved loads group is not greater than the SLP group size.
3128
1c47b3e8 31292009-04-02 Rafael Avila de Espindola <espindola@google.com>
3130
3131 * builtins.c (is_builtin_name): New.
3132 (called_as_built_in): Use is_builtin_name.
3133 * tree.h (is_builtin_name): New.
3134 * varasm.c (incorporeal_function_p): Use is_builtin_name
3135
42aaa915 31362009-04-02 Andrew Stubbs <ams@codesourcery.com>
3137
3138 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
3139
41771881 31402009-04-02 Dodji Seketeli <dodji@redhat.com>
3141
3142 PR c++/26693
09ec66c8 3143 * c-decl.c (clone_underlying_type): Move this ...
41771881 3144 * c-common.c (set_underlying_type): ... here.
3145 Also, make sure the function properly sets TYPE_STUB_DECL() on
3146 the newly created typedef variant type.
3147 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
c72c72ef 3148 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
3149 points.
41771881 3150
ac9b13de 31512009-04-02 Richard Guenther <rguenther@suse.de>
3152
3153 PR tree-optimization/37221
3154 * tree-flow.h (degenerate_phi_result): Declare.
3155 * tree-ssa-dom.c (degenerate_phi_result): Export.
3156 * tree-scalar-evolution.c (analyze_initial_condition): If
3157 the initial condition is defined by a degenerate PHI node
3158 use the degenerate value.
3159
959aa063 31602009-04-01 Eric Botcazou <ebotcazou@adacore.com>
3161
3162 PR rtl-optimization/39588
3163 * combine.c (merge_outer_ops): Do not set the constant when this
3164 is not necessary.
3165 (simplify_shift_const_1): Do not modify it either in this case.
3166
9e0aee4b 31672009-04-01 Steven Bosscher <steven@gcc.gnu.org>
3168
3169 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
3170 tuning is deprecated if -mtune value is set to an Itanium1 variant.
3171
f8ed6d41 31722009-04-01 Janis Johnson <janis187@us.ibm.com>
3173
3174 PR c/29027
3175 * c-lex.c (interpret_float): Default (no suffix) is double.
3176
098581e0 31772009-04-1 Xinliang David Li <davidxl@google.com>
3178
3179 * config/i386/i386.c (legitimate_constant_p): Recognize
3180 all one vector constant.
3181
617606a7 31822009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 3183
3184 * gcc/config/vax/vax.c: Add #includes to silence warnings.
3185 Change #include order to silence two warnings.
3186
617606a7 31872009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 3188
3189 * gcc/config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
3190 (ASM_SPEC): Pass -k to the assembler for PIC code.
3191
617606a7 31922009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 3193
3194 * gcc/config.gcc: Add vax-*-linux* to the switch.
3195 * gcc/config/vax/linux.h: New file. (TARGET_VERSION,
3196 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
3197
617606a7 31982009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 3199
3200 * gcc/config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
3201 Use predicate macros instead of GET_CODE() == foo.
3202 * gcc/config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
3203 ashlsi3, rotrsi3, <unnamed>): Likewise.
3204
617606a7 32052009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 3206
3207 * gcc/config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
3208 jbbccihi, jbbccisi): Remova trailing whitespace.
3209 * gcc/config/vax/constraints.md: Likewise.
3210 * gcc/config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
3211 * gcc/config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
3212 * gcc/config/vax/predicates.md: Likewise.
3213 * gcc/config/vax/vax.c (print_operand_address, vax_output_int_move,
3214 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
3215 * gcc/config/vax/vax.h: Likewise.
3216 * gcc/config/vax/vax.md (nonlocal_goto): Likewise.
3217
617606a7 32182009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 3219
3220 * gcc/config/vax/vax.c (vax_float_literal, vax_output_int_move)
3221 (indirectable_address_p, adjacent_operands_p): Add spaces around
3222 braces.
3223 * gcc/config/vax/vax-protos.h (adjacent_operands_p): Likewise.
3224
617606a7 32252009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 3226
3227 * gcc/config/vax/vax.c (legitimate_constant_address_p,
3228 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
3229 index_term_p, reg_plus_index_p, legitimate_address_p,
3230 vax_mode_dependent_address_p): Update comments to match functions
3231 modified by the recent int->bool conversion.
3232
617606a7 32332009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 3234
3235 * gcc/config/vax/builtins.md: Update copyright message.
3236 * gcc/config/vax/constraints.md: Likewise.
3237 * gcc/config/vax/netbsd-elf.h: Likewise.
3238 * gcc/config/vax/predicates.md: Likewise.
3239 * gcc/config/vax/vax-protos.h: Likewise.
3240 * gcc/config/vax/vax.c: Likewise.
3241 * gcc/config/vax/vax.h: Likewise.
3242 * gcc/config/vax/vax.md: Likewise.
3243 * gcc/config/vax/vax.opt: Likewise.
3244
617606a7 32452009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6718899e 3246
3247 * gcc/config/vax/builtins.md (ffssi2, ffssi2_internal,
3248 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
3249 * gcc/config/vax/constraints.md (B, R): Likewise.
3250 * gcc/config/vax/predicates.md (external_memory_operand,
3251 nonimmediate_addsub_di_operand): Likewise.
3252 * gcc/config/vax/vax.c (vax_output_int_add): Likewise.
3253 * gcc/config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
3254 untyped_call): Likewise.
3255
617606a7 32562009-04-01 Matt Thomas <matt@3am-software.com>
6718899e 3257
c72c72ef 3258 * config/vax/predicates.md: New file.
3259 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
6718899e 3260 external_const_operand, nonsymbolic_operand, external_memory_operand,
3261 indirect_memory_operand, indexed_memory_operand,
3262 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
3263 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
3264 predicate.
c72c72ef 3265 * config/vax/constraints.md: New file.
3266 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
3267 New constraint.
3268 * config/vax/builtins.md: New file.
3269 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
3270 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
3271 jbbccisi): Define.
6718899e 3272 * config/vax/vax.opt (mqmath): Add option.
3273 * config/vax/vax.md (isfx): Extend with DI.
3274 (VAXintQH, VAXintQHSD): Define.
3275 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
3276 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
3277 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
3278 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
3279 (movdi): Update constraints and use vax_output_int_move().
3280 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
3281 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
3282 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
3283 nonlocal_goto): New.
3284 (mov<mode>): Extend accepted operand types.
3285 (subdi3_old): Rename from subdi3, change update constraints and use
3286 a new implementation.
3287 * gcc/config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
3288 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
3289 MOVE_RATIO, CLEAR_RATIO): Define.
3290 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
3291 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
3292 (PRINT_OPERAND): Redefine using a function instead of inlined code.
3293 * gcc/config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
3294 (split_quadword_operands): Make static and really allow variable
3295 splitting.
3296 (print_operand_address): Update for PIC generation.
3297 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
3298 indexable_address_p, fixup_mathdi_operand,
3299 vax_expand_addsub_di_operands, adjacent_operands_p): New.
3300 (vax_float_literal, legitimate_constant_p,
3301 indirectable_constant_address_p, index_term_p,
3302 reg_plus_index_p): Return bool instead of int.
3303 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
3304 where needed.
3305 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
3306 generation.
3307 (vax_output_conditional_branch): Indent.
3308 (legitimate_constant_address_p, indirectable_constant_address_p,
3309 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
3310 vax_mode_dependent_address_p): Return bool instead of int, update for
3311 PIC generation.
3312 * config/vax/vax-protos.h (legitimate_constant_address_p,
3313 legitimate_constant_p, legitimate_address_p,
3314 vax_mode_dependent_address_p): Change declaration to bool.
3315 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
3316 vax_expand_addsub_di_operands, vax_output_int_subtract,
3317 vax_output_movmemsi): Declare.
3318 (split_quadword_operands, vax_float_literal): Delete declaration.
3319 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
3320 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
3321 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
3322 ASM_OUTPUT_DWARF_PCREL): Define.
3323 (ASM_SPEC): Change definition to allow PIC generation.
3324
617606a7 33252009-04-01 Steve Ellcey <sje@cup.hp.com>
3326
3327 * doc/sourcebuild.texi: Update front-end requirements.
3328
c6afd8f1 33292009-04-01 Jakub Jelinek <jakub@redhat.com>
3330
3331 PR target/39226
3332 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
3333 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
3334 (booldi3_internal3): Use boolean_or_operator instead of
3335 boolean_operator.
3336
ce4e9a43 33372009-04-01 Joseph Myers <joseph@codesourcery.com>
3338
3339 PR c/39605
3340 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
3341 declarator whose size is not an integer constant expression but
3342 folds to an integer constant, then treat it as a constant
3343 subsequently.
3344
04b63ffe 33452009-04-01 Richard Guenther <rguenther@suse.de>
3346
3347 * fold-const.c (fold_plusminus_mult_expr): Do not fold
3348 i * 4 + 2 to (i * 2 + 1) * 2.
3349
0930c694 33502009-04-01 Jakub Jelinek <jakub@redhat.com>
3351
3352 PR c/37772
3353 * c-parser.c (c_parser_asm_statement): Skip until close paren and
3354 return if c_parser_asm_string_literal returned NULL.
3355
c46bf770 33562009-04-01 Nick Clifton <nickc@redhat.com>
3357
3358 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
3359 already defined.
3360 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
3361 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
3362 other typedefs to avoid conflicts with libgcc2.c. Define labels
3363 to gain 16-bit bit-manipulation functions from libgcc2.c and then
3364 include it.
3365 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
3366 to gain 16-bit trapping arithmetic functions from libgcc2.c and
3367 then include it.
3368
b5240a18 33692009-04-01 Rafael Avila de Espindola <espindola@google.com>
3370
c72c72ef 3371 * varasm.c (default_function_rodata_section): Declare DOT as
3372 const char*.
b5240a18 3373
4ccce102 33742009-04-01 Kai Tietz <kai.tietz@onevision.com>
3375 Andrey Galkin <agalkin@hypercom.com>
3376
3377 PR/39492
3378 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
3379 Make object_name unique for each process.
3380
4a04f4b4 33812009-04-01 Jakub Jelinek <jakub@redhat.com>
3382
3383 PR other/39591
3384 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
3385 addressable variables in the parallel that could go out of scope while
3386 running queued tasks.
3387
b4a3be2d 33882009-04-01 Anatoly Sokolov <aesok@post.ru>
3389
3390 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
3391 (CASE_VALUES_THRESHOLD): Redefine.
3392 * config/avr/avr.c (avr_override_options): Remove initialization of
3393 avr_case_values_threshold variable.
3394 (avr_case_values_threshold): Remove variable. Add new function.
3395 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
3396 * config/avr/avr.opt (mno-tablejump): Remove option.
3397 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
3398
ac2a837e 33992009-04-01 DJ Delorie <dj@redhat.com>
3400
3401 * varasm.c (default_function_rodata_section): Don't assume
3402 anything about where the first '.' in the section name is.
3403
7cad077c 34042009-04-01 Alan Modra <amodra@bigpond.net.au>
3405
3406 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
3407 rs6000_emit_stack_tie.
3408
a5877c89 34092009-03-31 Ian Lance Taylor <iant@google.com>
3410
3411 * tree-eh.c (tree_remove_unreachable_handlers): Compare
3412 gimple_code with GIMPLE_RESX, not RESX.
3413
9e6687c8 34142009-03-31 Joseph Myers <joseph@codesourcery.com>
3415
3416 * c-common.c (c_get_ident): New.
c72c72ef 3417 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
9e6687c8 3418
aa5ba529 34192009-04-01 Ben Elliston <bje@au.ibm.com>
3420
3421 * config/rs6000/sysv4.opt (msdata): Improve option description.
3422
3f970e2e 34232009-03-31 Steve Ellcey <sje@cup.hp.com>
3424
3425 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
3426 (divdf3_internal_lat): Remove.
3427 (divxf3_internal_lat): Remove.
3428 (divxf3_internal_thr): Remove.
3429 (divxf): Use divxf3_internal.
3430 * config/ia64/div.md (divsf3_internal_lat): New.
3431 (divdf3_internal_lat): New.
3432 (divxf3_internal): New.
3433
f3449a3c 34342009-03-31 Joseph Myers <joseph@codesourcery.com>
3435
3436 PR c/448
3437 * Makefile.in (USE_GCC_STDINT): Define.
3438 (stmp-int-hdrs): Install stdint.h if applicable.
3439 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
3440 if known.
3441 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
3442 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
3443 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
3444 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
3445 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
3446 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
3447 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
3448 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
3449 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
3450 (c_common_nodes_and_builtins): Initialize
3451 underlying_wchar_type_node. Do not initialize
3452 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
3453 nodes for new types.
3454 (c_stddef_cpp_builtins): Define macros for new types.
3455 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
3456 Remove.
3457 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
3458 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
3459 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
3460 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
3461 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
3462 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
3463 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
3464 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
3465 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
3466 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
3467 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
3468 int16_type_node, int32_type_node, int64_type_node,
3469 uint8_type_node, uint16_type_node, c_uint32_type_node,
3470 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
3471 int_least32_type_node, int_least64_type_node,
3472 uint_least8_type_node, uint_least16_type_node,
3473 uint_least32_type_node, uint_least64_type_node,
3474 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
3475 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
3476 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
3477 uintptr_type_node): Define.
3478 * c-cppbuiltin.c (builtin_define_constants,
3479 builtin_define_type_minmax): New.
3480 (builtin_define_stdint_macros): Define more macros.
3481 (c_cpp_builtins): Define more limit macros.
3482 (type_suffix): New.
3483 (builtin_define_type_max): Define in terms of
3484 builtin_define_type_minmax. Remove is_long parameter. All
3485 callers changed.
3486 * config.gcc (use_gcc_stdint): Define.
3487 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
3488 Add newlib-stdint.h for generic targets.
3489 * config/glibc-stdint.h, config/newlib-stdint.h,
3490 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
3491 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
3492 * config/score/score.h (UINTPTR_TYPE): Define.
3493 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
3494 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
3495 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
3496 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
3497 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
3498 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
3499 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
3500 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
3501 * config/spu/spu.h (STDINT_LONG32): Define.
3502 * configure.ac (use_gcc_stdint): Substitute.
3503 * configure: Regenerate.
3504 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
3505 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
3506 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
3507 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
3508 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
3509 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
3510 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
3511 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
3512 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
3513 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
3514 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
3515 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
3516 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
3517 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
3518 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
3519 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
3520 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
3521 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
3522 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
3523 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
3524 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
3525 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
3526 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
3527 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
3528 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
3529 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
3530 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
3531 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
3532 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
3533
9bb5f693 35342009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
3535
3536 * loop-iv.c (suitable_set_for_replacement): Renamed from
3537 simplify_using_assignment; changed to return bool and to accept new
3538 args DEST and SRC. Return true iff we find a source/destination pair
3539 that can be used to make a replacement, and fill SRC and DEST if so.
3540 Remove arg ALTERED. Don't deal with altered regs here. All callers
3541 changed.
3542 (simplify_using_initial_values): Deal with altered regs here and track
3543 more precisely the effect they have on the validity of our expression.
3544
7f7a6f4a 3545 * loop-iv.c (simplify_using_condition): A condition of the form
3546 (EQ REG CONST) can be used to simply make a substitution.
3547 (simplify_using_initial_values): Keep track of conditions we have seen
3548 and keep using them to simplify new expressions, while applying the
3549 same substitutions to them as to the expression.
3550
d2cb78ca 3551 * simplify-rtx.c (simplify_relational_operation_1): Simplify
3552 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
3553 GEU/LTU reversed.
3554
f77c1bb0 3555 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
3556 changed. Use this when trying to improve the upper bound.
3557 Generate the comparison by using simplify_gen_relational.
3558
b908751e 3559 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
3560
767cb310 3561 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
3562 functions.
89871bab 3563 (simplify_using_assignment, simplify_using_initial_values): Call
767cb310 3564 replace_in_expr to make replacements. Call replace_single_def_regs
3565 once on the initial version of the expression.
3566
ee933f51 35672009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3568
9b57ed9f 3569 PR target/27237
ee933f51 3570 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
89871bab 3571
172e662b 35722009-03-31 Richard Guenther <rguenther@suse.de>
3573
3574 PR middle-end/31029
3575 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
3576 equality comparisons. Fold C - X CMP X if C % 2 == 1.
3577
401d1fb3 35782009-03-31 Richard Guenther <rguenther@suse.de>
3579
3580 * tree.h (div_if_zero_remainder): Declare.
3581 * fold-const.c (div_if_zero_remainder): Export.
3582 * tree-ssa-forwprop.c
3583 (forward_propagate_addr_into_variable_array_index): Handle
3584 constant array index addition outside of the variable index.
3585
eedfcb26 35862009-03-31 Joseph Myers <joseph@codesourcery.com>
3587
3588 PR target/39592
3589 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
3590 define_splits, floatunssi<mode>2): Require x87 conversions from
3591 DImode to be permitted.
3592
ff903809 35932009-03-31 Joseph Myers <joseph@codesourcery.com>
3594
3595 PR preprocessor/15638
3596 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
3597
47f11e84 35982009-03-31 Richard Guenther <rguenther@suse.de>
3599
3600 PR middle-end/23401
3601 PR middle-end/27810
3602 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
3603 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
3604 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
3605 a separate statement.
3606 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
3607 (lookup_tmp_var): Likewise.
3608 (is_gimple_formal_tmp_or_call_rhs): Remove.
3609 (is_gimple_reg_or_call_rhs): Rename to ...
3610 (is_gimple_reg_rhs_or_call): ... this.
3611 (is_gimple_mem_or_call_rhs): Rename to ...
3612 (is_gimple_mem_rhs_or_call): ... this.
3613 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
3614 DECL_GIMPLE_REG_P only if is_formal is true.
3615 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
3616 for non-proper post-modify expression gimplification.
3617 (gimplify_self_mod_expr): For post-modify expressions gimplify
3618 the lvalue to a minimal lvalue.
3619 (rhs_predicate_for): Remove formal temp case.
3620 (gimplify_modify_expr_rhs): Likewise.
3621 (gimplify_addr_expr): Use is_gimple_reg.
3622 (gimplify_expr): Remove formal temp cases.
3623 (gimple_regimplify_operands): Likewise.
3624 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
3625 and FILTER_EXPR like constants.
3626 * gimple.c (walk_gimple_op): Fix val_only initialization, use
3627 is_gimple_reg.
3628 (is_gimple_formal_tmp_rhs): Remove.
3629 (is_gimple_reg_rhs): Remove special casing.
3630 (is_gimple_mem_rhs): Fix.
3631 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
3632 (is_gimple_formal_tmp_var): Remove.
3633 (is_gimple_formal_tmp_reg): Likewise.
3634 (is_gimple_min_lval): Allow invariant component ref parts.
3635 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
3636 is_gimple_formal_tmp_reg): Remove declarations.
3637 * tree-cfg.c (verify_expr): Verify that variables with address
3638 taken do not have DECL_GIMPLE_REG_P set.
3639 * tree-mudflap.c (mf_build_check_statement_for): Use
3640 force_gimple_operand instead of gimplify_expr.
3641
7af239b5 36422009-03-31 Ayal Zaks <zaks@il.ibm.com>
3643
3644 * modulo-sched.c (sms_schedule_by_order): Pass the actual
3645 schedulable rows to compute_split_row.
3646
09271b9d 36472009-03-31 Ben Elliston <bje@au.ibm.com>
3648
3649 PR target/31635
3650 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
3651 OPT_mvrsave.
3652
d46ea878 36532009-03-31 Alan Modra <amodra@bigpond.net.au>
3654
3655 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
3656 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
3657 * configure: Regenerate.
3658 * config.in: Regenerate.
3659 * config/rs6000/rs6000.opt (mtls-markers): Add.
3660 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
3661 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
3662 (tls_ld_aix, tls_ld_sysv): Likewise.
3663 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
3664 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
3665
6ce64557 36662009-03-31 Alan Modra <amodra@bigpond.net.au>
3667
3668 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
3669
d6d5ab2d 36702009-03-30 Jan Hubicka <jh@suse.cz>
3671
6ce64557 3672 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
3673 out of RESX.
3674 (tree_remove_unreachable_handlers): Cleanup EH predecestor
3675 detection and label handling.
d6d5ab2d 3676
951e5184 36772009-03-30 Vladimir Makarov <vmakarov@redhat.com>
3678
3679 * ira-int.h (ira_allocno): Rename left_conflicts_num to
3680 left_conflicts_size.
3681 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
3682 ALLOCNO_LEFT_CONFLICTS_SIZE.
3683
3684 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
3685 remove_allocno_from_bucket_and_push,
3686 allocno_spill_priority_compare, push_allocnos_to_stack,
3687 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
3688 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
3689 (setup_allocno_left_conflicts_num): Ditto. Rename to
3690 setup_allocno_left_conflicts_size.
3691 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
3692 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
3693 setup_allocno_left_conflicts_size instead of
3694 setup_allocno_left_conflicts_num.
3695
3696 * ira-build.c (ira_create_allocno): Use
3697 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
3698 ALLOCNO_LEFT_CONFLICTS_NUM.
89871bab 3699
cb250333 37002009-03-30 Vladimir Makarov <vmakarov@redhat.com>
3701
3702 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
3703 instead of DF_LR_OUT.
3704
3705 * ira-lives.c (process_bb_node_lives): Ditto.
3706
3707 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
3708 instead of DF_LR_{OUT,IN}.
3709
3710 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
3711
3712 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
3713
dfcd8d23 37142009-03-30 Jan Hubicka <jh@suse.cz>
3715
3716 * except.c (label_to_region_map): Fix thinko.
3717
a7bc9181 37182009-03-30 Steve Ellcey <sje@cup.hp.com>
3719
3720 PR middle-end/38237
3721 * tree.h (tree_find_value): New declaration.
3722 * tree.c (tree_find_value): New function.
3723 * varasm.c (assemble_external): Avoid duplicate entries on lists.
3724
6fb80942 37252009-03-30 Jakub Jelinek <jakub@redhat.com>
3726
3727 PR debug/39563
3728 * c-decl.c (struct c_binding): Add locus field.
3729 (bind): Add locus argument, set locus field from it.
3730 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
3731 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
3732 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
3733 implicitly_declare, undeclared_variable, lookup_label,
3734 declare_label, c_make_fname_decl, c_builtin_function,
3735 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
3736 bind callers.
3737
7dfbd804 37382009-03-30 H.J. Lu <hongjiu.lu@intel.com>
076a4c5c 3739
3740 PR target/38781
3741 * config/i386/i386.c (classify_argument): Check total size of
3742 structure.
3743
ba3a7ba0 37442009-03-30 Martin Jambor <mjambor@suse.cz>
3745
3746 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
3747 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
3748 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
3749 respectively.
3750
3751 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
3752 seen_variable_array_ref while also traversing a union.
3753
3754 * tree-inline.c (optimize_inline_calls): Do not call
3755 cgraph_node_remove_callees.
3756 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
3757 (pass_remove_cgraph_callee_edges): New variable.
3758 * passes.c (init_optimization_passes): Add
3759 pass_remove_cgraph_callee_edges after early inlining and before all
3760 late intraprocedural passes.
3761
3762 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
3763
914301dc 37642009-03-30 Paolo Bonzini <bonzini@gnu.org>
3765
3766 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
3767 Fix typos in names.
3768
0d79facf 37692009-03-30 Paolo Bonzini <bonzini@gnu.org>
3770
9b57ed9f 3771 * combine.c (simplify_comparison): Use have_insn_for.
3772 * dojump.c (do_jump): Likewise.
0d79facf 3773
bbc6e6c4 37742009-03-30 Paolo Bonzini <bonzini@gnu.org>
3775
3776 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
3777 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
3778 sparc_compare_op0 like sparc_compare_emitted used to be handled.
3779 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
3780 instead of sparc_compare_emitted.
3781 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
3782 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
3783 instead of sparc_compare_emitted.
3784
ee4d588d 37852009-03-30 Paolo Bonzini <bonzini@gnu.org>
3786
3787 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
3788 enter/exit cfglayout mode.
3789 (pass_partition_block): Require it.
3790 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
3791 (combine_instructions): Track basic blocks instead of labels.
3792 (update_cfg_for_uncondjump): New.
3793 (try_combine): Use it. Update jumps after rescanning.
3794 (pass_combine): Require PROP_cfglayout.
3795 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
3796
30678076 37972009-03-30 Paolo Bonzini <bonzini@gnu.org>
3798
9b57ed9f 3799 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
3800 Provide/destroy PROP_cfglayout respectively.
3801 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
3802 * tree-pass.h (PROP_cfglayout): New.
30678076 3803
62126877 38042009-03-30 Paolo Bonzini <bonzini@gnu.org>
3805
3806 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
3807 fold_convert_const_fixed_from_fixed,
3808 fold_convert_const_fixed_from_int,
3809 fold_convert_const_fixed_from_real, fold_negate_const): Do not
3810 set TREE_CONSTANT_OVERFLOW.
3811 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
3812 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
3813
fb85abff 38142009-03-30 Ira Rosen <irar@il.ibm.com>
3815
3816 * tree-vect-loop-manip.c: New file.
3817 * tree-vectorizer.c: Update documentation and included files.
3818 (vect_loop_location): Make extern.
3819 (rename_use_op): Move to tree-vect-loop-manip.c
89871bab 3820 (rename_variables_in_bb, rename_variables_in_loop,
3821 slpeel_update_phis_for_duplicate_loop,
fb85abff 3822 slpeel_update_phi_nodes_for_guard1,
3823 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
3824 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
3825 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
89871bab 3826 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
fb85abff 3827 find_loop_location): Likewise.
3828 (new_stmt_vec_info): Move to tree-vect-stmts.c.
3829 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
3830 get_vectype_for_scalar_type, vect_is_simple_use,
3831 supportable_widening_operation, supportable_narrowing_operation):
3832 Likewise.
3833 (bb_in_loop_p): Move to tree-vect-loop.c.
89871bab 3834 (new_loop_vec_info, destroy_loop_vec_info,
3835 reduction_code_for_scalar_code, report_vect_op,
fb85abff 3836 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
3837 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
3838 (vect_supportable_dr_alignment): Likewise.
3839 * tree-vectorizer.h (tree-data-ref.h): Include.
3840 (vect_loop_location): Declare.
3841 Reorganize function declarations according to the new file structure.
3842 * tree-vect-loop.c: New file.
89871bab 3843 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
fb85abff 3844 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
3845 * tree-vect-data-refs.c: New file.
3846 * tree-vect-patterns.c (timevar.h): Don't include.
3847 * tree-vect-stmts.c: New file.
89871bab 3848 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
fb85abff 3849 tree-vect-slp.c, tree-vect-loop.c.
89871bab 3850 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
3851 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
fb85abff 3852 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
3853 (tree-vect-analyze.o): Remove.
3854 (tree-vect-transform.o): Likewise.
3855 (tree-vect-data-refs.o): Add rule.
89871bab 3856 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
fb85abff 3857 tree-vect-slp.o): Likewise.
3858 (tree-vect-patterns.o): Remove redundant dependencies.
3859 (tree-vectorizer.o): Likewise.
3860 * tree-vect-slp.c: New file.
3861
0863a8f4 38622009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3863
3864 * optc-gen.awk: Warn if an option flag has multiple different
3865 help strings.
3866
0606fb97 38672009-03-30 Sebastian Pop <sebastian.pop@amd.com>
3868
3869 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
3870 -floop-block): Document dependences on PPL, CLooG and Graphite.
3871
c6418a4e 38722009-03-30 Joseph Myers <joseph@codesourcery.com>
3873
3874 PR rtl-optimization/323
3875 * c-common.c (c_fully_fold, convert_and_check,
3876 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
3877 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
3878 * c-common.def (EXCESS_PRECISION_EXPR): New.
3879 * c-cppbuiltin.c (builtin_define_float_constants): Define
3880 constants with enough digits for long double.
3881 * c-lex.c (interpret_float): Interpret constant with excess
3882 precision where appropriate.
3883 * c-opts.c (c_common_post_options): Set
3884 flag_excess_precision_cmdline. Give an error for
3885 -fexcess-precision=standard for C++ for processors where the
3886 option is significant.
3887 * c-parser.c (c_parser_conditional_expression): Handle excess
3888 precision in condition.
3889 * c-typeck.c (convert_arguments): Handle arguments with excess
3890 precision.
3891 (build_unary_op): Move excess precision outside operation.
3892 (build_conditional_expr): Likewise.
3893 (build_compound_expr): Likewise.
3894 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
3895 (build_modify_expr): Handle excess precision in RHS.
3896 (convert_for_assignment): Handle excess precision in converted
3897 value.
3898 (digest_init, output_init_element, process_init_element): Handle
3899 excess precision in initializer.
3900 (c_finish_return): Handle excess precision in return value.
3901 (build_binary_op): Handle excess precision in operands and add
3902 excess precision as needed for operation.
3903 * common.opt (-fexcess-precision=): New option.
3904 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
3905 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
3906 For standard excess precision, output explicit conversion to and
3907 truncation from XFmode.
3908 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
3909 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
3910 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
3911 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
3912 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
3913 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
3914 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
3915 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
3916 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
3917 define_splits, sqrt<mode>2): Disable where appropriate for
3918 standard excess precision.
3919 * convert.c (convert_to_real): Do not shorten arithmetic to type
3920 for which excess precision would be used.
3921 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
3922 * doc/invoke.texi (-fexcess-precision=): Document option.
3923 (-mfpmath=): Correct index entry.
3924 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
3925 flag_excess_precision): New.
3926 * langhooks.c (lhd_post_options): Set
3927 flag_excess_precision_cmdline.
3928 * opts.c (common_handle_option): Handle -fexcess-precision=.
3929 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
3930 init_excess_precision): New.
3931 (lang_dependent_init_target): Call init_excess_precision.
3932 * tree.c (excess_precision_type): New.
3933 * tree.h (excess_precision_type): Declare.
3934
7666d572 39352009-03-30 Joseph Myers <joseph@codesourcery.com>
3936
3937 PR c/35235
3938 * c-typeck.c (build_component_ref): Do not copy qualifiers from
3939 non-lvalue to component.
3940
7f5f3953 39412009-03-29 Joseph Myers <joseph@codesourcery.com>
3942
3943 PR preprocessor/34695
3944 * Makefile.in (c-opts.o): Depend on c-tree.h.
3945 * c-common.c: Move down include of diagnostic.h.
3946 (done_lexing, c_cpp_error): New.
3947 * c-common.h (done_lexing): Declare.
3948 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
3949 (parse_in).
3950 * c-opts.c: Include c-tree.h.
3951 (c_common_init_options): Set preprocessor error callback.
3952 (c_common_handle_option): Do not set preprocessor
3953 inhibit_warnings, warnings_are_errors, warn_system_headers,
3954 pedantic_errors or inhibit_warnings flags.
3955 (c_common_post_options): Do not check cpp_errors (parse_in).
3956 (c_common_finish): Do not output dependencies if there were
3957 errors. Do not check return value of cpp_finish.
3958 * c-ppoutput.c (pp_file_change): Set input_location.
3959 * c-tree.h (c_cpp_error): Declare.
3960 * diagnostic.c (diagnostic_set_info_translated): Also initialize
3961 override_column.
3962 (diagnostic_build_prefix): Check override_column.
3963 * diagnostic.h (diagnostic_info): Add override_column field.
3964 (diagnostic_override_column): Define.
3965
862f468c 39662009-03-28 Paolo Bonzini <bonzini@gnu.org>
3967
aca60c7b 3968 * c-common.c (c_expand_expr, c_staticp): Remove.
3969 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
3970 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
3971 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
3972 * c-gimplify.c (gimplify_compound_literal_expr,
3973 optimize_compound_literals_in_ctor): Remove.
3974 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
3975 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
3976 * c-semantics.c (emit_local_var): Remove.
3977
3978 * langhooks-def.h (lhd_expand_expr): Remove.
3979 * langhooks.c (lhd_expand_expr): Remove.
3980 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
3981
3982 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
3983 handling from c-semantics.c; don't call into langhook.
3984 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
3985 * gimplify.c (gimplify_compound_literal_expr,
3986 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
3987 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
3988 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
3989 as was done in c-gimplify.c.
3990 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
3991 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
3992 Move from c-common.h.
3993 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
862f468c 3994
3995 * tree.c (staticp): Do not call langhook.
3996 * langhooks.c (lhd_staticp): Delete.
3997 * langhooks-def.h (lhd_staticp): Delete prototype.
3998 (LANG_HOOKS_STATICP): Delete.
3999 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
4000
aca60c7b 4001 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
4002 instead of DECL_STMTs.
862f468c 4003
a75b1c71 40042009-03-29 Joseph Myers <joseph@codesourcery.com>
4005
4006 PR c/456
4007 PR c/5675
4008 PR c/19976
4009 PR c/29116
4010 PR c/31871
4011 PR c/35198
4012 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
4013 void_type_node.
4014 (fold_call_expr): Return a NOP_EXPR from folding rather than the
4015 contained expression.
aca60c7b 4016 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
a75b1c71 4017 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
4018 conditional expressions for C.
4019 (decl_constant_value_for_optimization): Move from
aca60c7b 4020 decl_constant_value_for_broken_optimization in c-typeck.c. Check
a75b1c71 4021 whether optimizing and that the expression is a VAR_DECL not of
4022 array type instead of doing such checks in the caller. Do not
4023 check pedantic. Call gcc_unreachable for C++.
4024 * c-common.def (C_MAYBE_CONST_EXPR): New.
4025 * c-common.h (c_fully_fold, c_save_expr,
4026 decl_constant_value_for_optimization): New prototypes.
4027 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
4028 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
4029 EXPR_INT_CONST_OPERANDS): Define.
4030 * c-convert.c (convert): Strip nops from expression.
4031 * c-decl.c (groktypename): Take extra parameters expr and
4032 expr_const_operands. Update call to grokdeclarator.
4033 (start_decl): Update call to grokdeclarator. Add statement for
4034 expressions used in type of decl.
4035 (grokparm): Update call to grokdeclarator.
4036 (push_parm_decl): Update call to grokdeclarator.
4037 (build_compound_literal): Add parameter non_const and build a
4038 C_MAYBE_COSNT_EXPR if applicable.
4039 (grokdeclarator): Take extra parameters expr and
4040 expr_const_operands. Track expressions used in declaration
4041 specifiers and declarators. Fold array sizes and track whether
4042 they are constant expressions and whether they are integer
4043 constant expressions.
4044 (parser_xref_tag): Set expr and expr_const_operands fields in
4045 return value.
4046 (grokfield): Update call to grokdeclarator.
4047 (start_function): Update call to grokdeclarator.
4048 (build_null_declspecs): Set expr and expr_const_operands fields in
4049 return value.
4050 (declspecs_add_type): Handle expressions in typeof specifiers.
4051 * c-parser.c (c_parser_declspecs): Set expr and
4052 expr_const_operands fields for declaration specifiers.
4053 (c_parser_enum_specifier): Likewise.
4054 (c_parser_struct_or_union_specifier): Likewise.
4055 (c_parser_typeof_specifier): Likewise. Update call to
4056 groktypename. Fold expression as needed. Return expressions with
4057 type instead of adding statements.
4058 (c_parser_attributes): Update calls to c_parser_expr_list.
4059 (c_parser_statement_after_labels): Fold expression before passing
4060 to objc_build_throw_stmt.
4061 (c_parser_condition): Fold expression.
4062 (c_parser_asm_operands): Fold expression.
4063 (c_parser_conditional_expression): Use c_save_expr. Update call
4064 to build_conditional_expr.
4065 (c_parser_alignof_expression): Update call to groktypename.
4066 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
4067 original_code. Fold expression argument of va_arg. Create
4068 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
4069 argument to va_arg. Update calls to groktypename. Fold array
4070 index for offsetof. Verify that first argument to
4071 __builtin_choose_expr has integer type.
4072 (c_parser_postfix_expression_after_paren_type): Update calls to
4073 groktypename and build_compound_literal. Handle expressions with
4074 side effects in type name.
4075 (c_parser_postfix_expression_after_primary): Update call to
4076 c_parser_expr_list. Set original_code for calls to
4077 __builtin_constant_p.
4078 (c_parser_expr_list): Take extra parameter fold_p. Fold
4079 expressions if requested.
4080 (c_parser_objc_type_name): Update call to groktypename.
4081 (c_parser_objc_synchronized_statement): Fold expression.
4082 (c_parser_objc_receiver): Fold expression.
4083 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
4084 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
4085 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
4086 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
4087 (struct c_typespec): Add elements expr and expr_const_operands.
4088 (struct c_declspecs): Add elements expr and expr_const_operands.
4089 (groktypename, build_conditional_expr, build_compound_literal):
4090 Update prototypes.
4091 (in_late_binary_op): Declare.
4092 * c-typeck.c (note_integer_operands): New function.
4093 (in_late_binary_op): New variable.
4094 (decl_constant_value_for_broken_optimization): Move to c-common.c
4095 and rename to decl_constant_value_for_optimization.
4096 (default_function_array_conversion): Do not strip nops.
4097 (default_conversion): Do not call
4098 decl_constant_value_for_broken_optimization.
4099 (build_array_ref): Do not fold result.
4100 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
4101 result when operand is a VLA.
4102 (c_expr_sizeof_type): Update call to groktypename. Handle
4103 expressions included in type name. Use C_MAYBE_CONST_EXPR for
4104 result when operand names a VLA type.
4105 (build_function_call): Update call to build_compound_literal.
4106 Only fold result for calls to __builtin_* functions. Strip
4107 NOP_EXPR from INTEGER_CST returned from such functions. Fold
4108 the function designator.
4109 (convert_arguments): Fold arguments. Update call to
4110 convert_for_assignment.
4111 (build_unary_op): Handle increment and decrement of
4112 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
4113 decrement earlier. Fold operand of increment and decrement.
4114 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
4115 built for integer operand. Wrap returns that are INTEGER_CSTs
4116 without being integer constant expressions or that have integer
4117 constant operands without being INTEGER_CSTs.
4118 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
4119 (build_conditional_expr): Add operand ifexp_bcp. Track whether
4120 result is an integer constant expression or can be used in
4121 unevaluated parts of one and avoid folding and wrap as
4122 appropriate. Fold operands before possibly doing -Wsign-compare
4123 warnings.
4124 (build_compound_expr): Wrap result for C99 if operands can be used
4125 in integer constant expressions.
4126 (build_c_cast): Update call to digest_init. Do not ignore
4127 overflow from casting floating-point constants to integers. Wrap
4128 results that could be confused with integer constant expressions,
4129 null pointer constants or floating-point constants.
4130 (c_cast_expr): Update call to groktypename. Handle expressions
4131 included in type name.
4132 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
4133 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
4134 Update calls to convert_for_assignment.
4135 (convert_for_assignment): Take new parameter
4136 null_pointer_constant. Do not strip nops or call
4137 decl_constant_value_for_broken_optimization. Set
4138 in_late_binary_op for conversions to boolean.
4139 (store_init_value): Update call to digest_init.
4140 (digest_init): Take new parameter null_pointer_constant. Do not
4141 call decl_constant_value_for_broken_optimization. pedwarn for
4142 initializers not constant expressions. Update calls to
4143 convert_for_assignment.
4144 (constructor_nonconst): New.
4145 (struct constructor_stack): Add nonconst element.
4146 (really_start_incremental_init, push_init_level, pop_init_level):
4147 Handle constructor_nonconst and nonconst element.
4148 (set_init_index): Call constant_expression_warning for array
4149 designators.
4150 (output_init_element): Fold value. Set constructor_nonconst as
4151 applicable. pedwarn for initializers not constant expressions.
4152 Update call to digest_init. Call constant_expression_warning
4153 where constant initializers are required.
4154 (process_init_element): Use c_save_expr.
4155 (c_finish_goto_ptr): Fold expression.
4156 (c_finish_return): Fold return value. Update call to
4157 convert_for_assignment.
4158 (c_start_case): Fold switch expression.
4159 (c_process_expr_stmt): Fold expression.
4160 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
aca60c7b 4161 ensure statement expression is not evaluated in constant expression.
a75b1c71 4162 (build_binary_op): Track whether results are integer constant
4163 expressions or may occur in such, disable folding and wrap results
4164 as applicable. Fold operands for -Wsign-compare warnings unless
4165 in_late_binary_op.
4166 (c_objc_common_truthvalue_conversion): Handle results folded to
4167 integer constants that are not integer constant expressions.
4168 * doc/extend.texi: Document when typeof operands are evaluated,
4169 that condition of __builtin_choose_expr is an integer constant
4170 expression, and more about use of __builtin_constant_p in
4171 initializers.
4172
088cc5d5 41732009-03-29 Richard Guenther <rguenther@suse.de>
4174
4175 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
4176 propagate addresses of array references.
4177
68e09621 41782009-03-29 Steven Bosscher <steven@gcc.gnu.org>
4179
4180 * regmove.c (perhaps_ends_bb_p): Remove.
4181 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
4182 from INSN and check that the main loop stays within that basic block.
4183 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
4184 (regmove_forward_pass): Split out from regmove_optimize. Use
4185 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
4186 (regmove_backward_pass): Split out from regmove_optimize. Use
4187 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
4188 (regmove_optimize): Simplify.
4189
40513f40 41902009-03-29 H.J. Lu <hongjiu.lu@intel.com>
4191
4192 PR target/39545
4193 * config/i386/i386.c (classify_argument): Ignore flexible array
4194 member in struct and warn ABI change.
4195
0d3a7d37 41962009-03-29 H.J. Lu <hongjiu.lu@intel.com>
4197
4198 * config/i386/i386-protos.h (ix86_agi_dependent): New.
4199
4200 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
4201 (ix86_adjust_cost): Updated.
4202
4c5fcca6 42032009-03-29 Jan Hubicka <jh@suse.cz>
4204
4205 PR middle-end/28850
4206 * tree-pass.h (pass_cleanup_eh): New function.
4207 (remove_unreachable_regions): Break code handling RTL
4208 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
4209 that can not be reached by runtime.
4210 (can_be_reached_by_runtime): New function.
4211 (label_to_region_map): New function.
4212 (num_eh_regions): New function.
4213 (rtl_remove_unreachable_regions): New function.
4214 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
4215 (remove_eh_region): New function.
4216 * except.h: Include sbitmap and vecprim.
4217 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
4218 num_eh_regions): Declare.
4219 * passes.c (init_optimization_passes): Schedule cleanup_eh.
aca60c7b 4220 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
4c5fcca6 4221 * tree-eh.c (tree_remove_unreachable_handlers): New function.
4222 (tree_empty_eh_handler_p): New function.
4223 (cleanup_empty_eh): New function.
4224 (cleanup_eh): New function.
4225 (pass_cleanup_eh): New function.
4226
b8c0c866 42272009-03-29 Jan Hubicka <jh@suse.cz>
4228
4229 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
4230 for removed regions.
4231
bb22691b 42322009-03-29 Jan Hubicka <jh@suse.cz>
4233
4234 * except.c (dump_eh_tree): Dump all datastructures.
4235
cd451a8b 42362009-03-29 Jan Hubicka <jh@suse.cz>
4237
4238 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
4239 (duplicate_eh_regions_1): Likewise.
4240 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
4241 vector; call EH verification.
4242 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
4243 Be ready for region being removed.
4244
ffa800d1 42452009-03-29 Jan Hubicka <jh@suse.cz>
4246
4247 * bitmap.c (bitmap_last_set_bit): New function.
4248 * bitmap.h (bitmap_last_set_bit): Declare.
4249
1cf4a36a 42502009-03-29 David Ayers <ayers@fsfe.org>
4251
4252 PR objc/27377
4253 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
4254 by calling objc_compare_types and surpress warnings about
4255 incompatible C pointers that are compatible ObjC pointers.
89871bab 4256
1cf4a36a 42572009-03-29 Adam Nemet <anemet@caviumnetworks.com>
69428266 4258
4259 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
4260 call initialize_inline_failed.
4261 (initialize_inline_failed): Move it from here ...
4262 * cgraph.c (initialize_inline_failed): ... to here.
4263 (cgraph_create_edge): Call initialize_inline_failed rather than
4264 setting inline_failed directly.
4265
d093f898 42662009-03-29 Ben Elliston <bje@au.ibm.com>
4267
4268 PR target/32542
4269 * sysv4.opt (msdata): Improve comment.
4270 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
4271 * sysv4.h (SVR4_ASM_SPEC): Likewise.
4272
df6a567a 42732009-03-29 Ben Elliston <bje@au.ibm.com>
4274
4275 PR target/30451
4276 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
4277 load and store attributes.
4278
29c63a97 42792009-03-29 Ben Elliston <bje@au.ibm.com>
4280
4281 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
4282 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
4283 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
4284 * doc/extend.texi (X86 Built-in Functions): Add index entries for
4285 __builtin_infq and __builtin_huge_valq.
4286
ec4b52e7 42872009-03-28 Anatoly Sokolov <aesok@post.ru>
4288
4289 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
4290 atmega8m1 devices.
4291 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
4292 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
4293
43fb76c1 42942009-03-28 Xinliang David Li <davidxl@google.com>
4295
89871bab 4296 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
43fb76c1 4297 (do_dbg_cnt): New function.
4298
b5cebd44 42992009-03-28 Jan Hubicka <jh@suse.cz>
4300
4301 Merge from pretty-ipa:
4302
4303 2009-03-27 Jan Hubicka <jh@suse.cz>
aca60c7b 4304
b5cebd44 4305 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
4306 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
4307 * passes.c (function_called_by_processed_nodes_p): New.
4308 * ipa-pure-const.c (check_call): Fix handling of operands.
4309 (analyze_function): Dump debug output for skipped bodies.
4310 (local_pure_const): Use function_called_by_processed_nodes_p.
4311 * dwarf2out.c (reference_to_unused): Use output.
4312 * passes.c (do_per_function_toporder): Likewise.
4313
4314 2008-11-12 Jan Hubicka <jh@suse.cz>
4315
4316 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
4317 * ipa-pure-const.c (funct_state_d): Add can throw field; make
4318 state_set_in_source enum
4319 (check_decl): Ignore memory tags; do not set fake looping flags;
4320 dump diagnostics.
4321 (check_operand, check_tree, check_rhs_var, check_lhs_var,
4322 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
4323 (check_call, analyze_function): Rewrite.
4324 (check_stmt): New.
4325 (add_new_function): Update call of analyze_function.
4326 (generate_summary): Add call of analyze_function.
4327 (propagate): Propagate can_throw; handle state_set_in_source correctly.
4328 (local_pure_const): New function.
4329 (pass_local_pure_const): New pass.
4330 * ipa-inline.c (inline_transform): Set after_inlining.
4331 * tree-eh.c (stmt_can_throw_external): New.
4332 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
4333 work with aliasing built.
4334 * tree-flow.h (stmt_can_throw_external): New.
4335 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
4336 and local pure/const pass in early and late optimization queue.
aca60c7b 4337
1c4607fd 43382009-03-28 Martin Jambor <mjambor@suse.cz>
4339
4340 * fold-const.c (get_pointer_modulus_and_residue): New parameter
4341 allow_func_align.
4342 (fold_binary): Allow function decl aligment consideration is the
4343 second argument is integer constant one.
4344 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
4345 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
4346 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
4347
b0d29d1c 43482009-03-28 Jan Hubicka <jh@suse.cz>
4349
4350 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
4351 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
4352 * function.h (rtl_data): Add nothrow flag.
4353 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
4354 set DECL_NOTHROW for AVAILABLE functions.
4355
bf4a1edf 43562009-03-28 Jakub Jelinek <jakub@redhat.com>
4357
69dfb43a 4358 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
4359 following vector keyword has expansion starting with pixel or bool
4360 keyword, expand vector to __vector and pixel or bool to __pixel or
4361 __bool.
4362
bf4a1edf 4363 PR c++/39554
4364 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
4365 warn_if_disallowed_function_p): Removed.
4366 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
4367 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
4368 warning_if_disallowed_function_p.
4369 * flags.h (warn_if_disallowed_function_p,
4370 warn_disallowed_functions): Removed.
4371 * common.opt (Wdisallowed-function-list=): Removed.
4372 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
4373
c256d781 43742009-03-28 Richard Guenther <rguenther@suse.de>
4375
4376 PR tree-optimization/38723
4377 * tree-ssa-pre.c (compute_avail): Add all default definitions to
4378 the entry block.
4379
74a5c8eb 43802009-03-28 Jan Hubicka <jh@suse.cz>
4381
4382 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
4383 test introduced by my previous patch.
4384
59ce9604 43852009-03-28 Richard Guenther <rguenther@suse.de>
4386
4387 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
4388 the PHIs value undefined.
4389
6cb239e5 43902009-03-28 Jan Hubicka <jh@suse.cz>
4391
4392 * tree-pass.h (pass_fixup_cfg): New pass.
4393 * ipa-inline.c (inline_transform): Set
4394 always_inline_functions_inlined/after_inlining.
4395 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
4396 (pass_fixup_cfg): New pass.
4397 * passes.c (init_optimization_passes): Add fixup_cfg.
4398
aeb38861 43992009-03-28 Richard Guenther <rguenther@suse.de>
4400
4401 PR tree-optimization/38458
4402 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
4403 argument use the arguments copy-of value.
4404
8edeb88b 44052009-03-28 Richard Guenther <rguenther@suse.de>
4406
4407 PR tree-optimization/38180
4408 * tree-ssa-ccp.c (get_default_value): Simplify.
4409 (likely_value): Likewise.
4410 (surely_varying_stmt_p): Properly handle VOP case.
4411 (ccp_initialize): Likewise.
4412 (ccp_fold): Handle propagating through *&.
4413 (fold_const_aggregate_ref): Also handle decls.
4414
09fc9532 44152009-03-28 Jan Hubicka <jh@suse.cz>
4416
4417 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
4418 * cgraph.h (cgraph_node): Likewise.
4419 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
4420 (cgraph_reset_node): Use process flag.
4421 (cgraph_mark_functions_to_output): Likewise.
4422 (cgraph_expand_function): Likewise.
4423 (cgraph_expand_all_functions): Likewise.
4424 (cgraph_output_in_order): Likewise.
4425 * dwarf2out.c (reference_to_unused): Likewise.
4426 * passes.c do_per_function_toporder): Likewise.
4427
326a9581 44282009-03-28 Jan Hubicka <jh@suse.cz>
4429
4430 Bring from lto-branch:
aca60c7b 4431
326a9581 4432 2008-09-03 Doug Kwan <dougkwan@google.com>
4433
4434 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
4435 enums instead of reason strings.
4436 * cgraph.c (cgraph_create_edge): Same.
4437 (cgraph_inline_failed_string): New function.
4438 * cgraph.h (cgraph_inline_failed_t): New enum type.
4439 (cgraph_inline_failed_string): New prototype.
4440 (struct cgraph_edge): Change type of INLINED_FAILED from constant
4441 char pointer to cgraph_inline_failed_t.
4442 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
4443 (cgraph_default_inline_p): Ditto.
4444 * gcc/cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
4445 to cgraph_inline_failed_t pointer.
4446 * cif-code.def: New file.
4447 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
4448 reason string.
4449 (cgraph_check_inline_limits): Change type of REASON to pointer to
4450 cgraph_inline_failed_t. Replace reason strings with enums.
4451 (cgraph_default_inline_p): Ditto.
4452 (cgraph_recursive_inlining_p): Ditto.
4453 (update_caller_keys): Change type of FAILED_REASON to
4454 cgraph_inline_failed_t.
4455 (cgraph_set_inline_failed): Change type of REASON to pointer to
4456 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
4457 convert enums to strings for text output.
4458 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
4459 to be of type cgraph_inline_failed_t. Replace reason strings with
4460 enums. Call cgraph_inline_failed_string to covert enums
4461 to strings for text output.
4462 (cgraph_decide_inlining): Replace reason strings with enums.
4463 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
4464 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
4465 for text output.
4466 * tree-inline.c (expand_call_inline): Change type of REASON
4467 to cgraph_inline_failed_t. Replace reason strings with enums.
4468 Call cgraph_inline_failed_string for text output.
4469 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
4470 (cgraph.o): Ditto.
4471
77b5eabc 44722009-03-28 Jan Hubicka <jh@suse.cz>
4473
4474 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
4475 cgraph_clone_node): Remove master clone handling.
4476 (cgraph_is_master_clone, cgraph_master_clone): Remove.
4477 * cgraph.h (master_clone): Remove.
4478 (cgraph_is_master_clone, cgraph_master_clone): Remove.
4479 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
4480 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
4481
cc76f102 44822009-03-28 Jan Hubicka <jh@suse.cz>
4483
4484 * cgraph.c (cgraph_function_body_availability): Functions declared
4485 inline are always safe to assume that it is not going to be replaced.
4486
63295314 44872009-03-28 Richard Guenther <rguenther@suse.de>
4488
4489 PR tree-optimization/38513
4490 * tree-ssa-pre.c (eliminate): Remove redundant stores.
4491 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
4492 EXC_PTR_EXPR and FILTER_EXPR.
4493 (get_ref_from_reference_ops): Likewise.
4494
d360ad90 44952009-03-28 Richard Guenther <rguenther@suse.de>
4496
4497 PR tree-optimization/38968
4498 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
4499 Use FLOOR_MOD_EXPR to compute misalignment.
4500
c82f3b60 45012009-03-28 Richard Guenther <rguenther@suse.de>
4502
4503 PR tree-optimization/37795
4504 * tree.h (combine_comparisons): Declare.
4505 * fold-const.c (combine_comparisons): Export.
4506 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
4507 comparisons.
4508 (ifcombine_iforif): Use combine_comparisons.
4509
a5bfef5b 45102009-03-28 Jan Hubicka <jh@suse.cz>
4511
4512 * tree-eh.c (inlinable_call_p): New function.
4513 (make_eh_edges): Use it.
4514 (verify_eh_edges): Use it.
4515 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
4516 * except.c (reachable_next_level): Add inlinable_function argument
4517 (sjlj_find_directly_reachable_regions): Update.
4518 (add_reachable_handler): Do not set saw_any_handlers.
4519 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
4520 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
4521 Add new inlinable call parameter.
4522 (can_throw_internal, can_throw_external): Update.
4523 * except.h (can_throw_internal_1, can_throw_external_1,
4524 foreach_reachable_handler): Update declaration.
4525
f2397fc4 45262009-03-28 Joseph Myers <joseph@codesourcery.com>
4527
4528 * config/arm/t-arm-coff, config/h8300/coff.h,
4529 config/i386/i386-aout.h, config/i386/i386-coff.h,
4530 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
4531 config/pdp11/2bsd.h, config/rs6000/aix41.h,
4532 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
4533 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
4534 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
4535 sys-types.h: Remove.
4536 * Makefile.in: Remove protoize and fixproto support and references
4537 in comments.
4538 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
4539 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
4540 Remove.
4541 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
4542 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
4543 unprotoize$(exeext).
4544 (rest.encap): Don't depend on $(STMP_FIXPROTO)
4545 (.PHONY): Don't depend on proto.
4546 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
4547 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
4548 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
4549 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
4550 build/gen-protos.o, build/scan.o, xsys-protos.h,
4551 build/fix-header$(build_exeext), build/fix-header.o,
4552 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
4553 stmp-install-fixproto): Remove.
4554 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
4555 SYSCALLS.c or fixproto files.
4556 (install-common): Don't install protoize.
4557 (install-headers-tar, install-headers-cpio, install-headers-cp):
4558 Don't depend on $(STMP_FIXPROTO).
4559 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
4560 install fixproto files or write out fixproto settings.
4561 (uninstall): Don't uninstall protoize.
4562 * config.gcc (use_fixproto): Remove.
4563 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
4564 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
4565 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
4566 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
4567 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
4568 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
4569 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
4570 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
4571 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
4572 * config/t-vxworks (STMP_FIXPROTO): Remove.
4573 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
4574 STMP_FIXPROTO): Remove.
4575 * config.in, configure: Regenerate.
4576 * crtstuff.c (gid_t, uid_t): Don't undefine.
4577 * doc/install.texi: Change m68k-coff to m68k-elf in example.
4578 (arm-*-coff, arm-*-aout: Remove target entries.
4579 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
4580 Remove mention of AIX 4.1.
4581 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
4582 * doc/invoke.texi (Running Protoize): Remove.
4583 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
4584 (Protoize Caveats): Remove.
4585 * tsystem.h: Update comments on headers assumed to exist.
4586
08ed847d 45872009-03-27 Vladimir Makarov <vmakarov@redhat.com>
4588
4589 * genautomata.c: Add a new year to the copyright. Add a new
4590 reference.
4591 (struct insn_reserv_decl): Add comments for member bypass_list.
4592 (find_bypass): Remove.
4593 (insert_bypass): New.
4594 (process_decls): Use insert_bypass.
4595 (output_internal_insn_latency_func): Output all bypasses with the
4596 same input insn in one switch case.
4597
4598 * rtl.def (define_bypass): Describe bypass choice.
4599 * doc/md.texi (define_bypass): Ditto.
4600
8e353ea6 46012009-03-27 Richard Guenther <rguenther@suse.de>
4602
4603 * gimplify.c (mark_addressable): Export.
4604 * tree-flow.h (mark_addressable): Declare.
4605 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
4606 * tree-ssa.c (verify_phi_args): Verify that address taken
4607 variables have TREE_ADDRESSABLE set.
4608
46092009-03-27 Richard Guenther <rguenther@suse.de>
4610
4611 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
4612 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
4613 Do not mark decls TREE_ADDRESSABLE.
4614 (build_fold_addr_expr): Adjust.
4615 (fold_addr_expr): Remove.
4616 (fold_unary): Use build_fold_addr_expr.
4617 (fold_comparison): Likewise.
4618 (split_address_to_core_and_offset): Likewise.
4619 * coverage.c (tree_coverage_counter_addr): Mark the array decl
4620 TREE_ADDRESSABLE.
4621 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
4622 (gimplify_modify_expr_to_memcpy): Mark source and destination
4623 addressable.
4624 * omp-low.c (create_omp_child_function): Mark the object decl
4625 TREE_ADDRESSABLE.
4626 (lower_rec_input_clauses): Mark the var we take the address of
4627 TREE_ADDRESSABLE.
4628 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
4629
16fe3089 46302009-03-27 H.J. Lu <hongjiu.lu@intel.com>
4631
4632 PR middle-end/39315
4633 * cfgexpand.c (expand_one_stack_var_at): Change alignment
4634 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
4635
9d1d1fab 46362009-03-27 Richard Guenther <rguenther@suse.de>
4637
4638 PR tree-optimization/39120
4639 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
4640 constraints.
4641 (handle_lhs_call): Process return constraints. Add escape
4642 constraints if necessary.
4643 (handle_const_call): Fill out return constraints. Make nested
4644 case more precise. Avoid consttmp if possible.
4645 (handle_pure_call): Fill out return constraints. Avoid
4646 callused if possible.
4647 (find_func_aliases): Simplify call handling.
4648
46492009-03-27 Richard Guenther <rguenther@suse.de>
4650
4651 PR tree-optimization/39120
4652 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
4653 as a representative.
4654 (solve_graph): Do propagate CALLUSED.
4655 (handle_pure_call): Use a scalar constraint from CALLUSED for
4656 the return value.
4657 (find_what_p_points_to): CALLUSED shall not appear in poins-to
4658 solutions.
4659
7cfdc2f0 46602009-03-27 H.J. Lu <hongjiu.lu@intel.com>
4661
4662 PR c/39323
4663 * c-common.c (handle_aligned_attribute): Properly check alignment
4664 overflow. Use (1U << i) instead of (1 << i).
4665
aca60c7b 4666 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
7cfdc2f0 4667
4668 * expr.h (get_mem_align_offset): Updated.
4669
4670 * tree.h (tree_decl_common): Change align to "unsigned int" and
4671 move it before pointer_alias_set.
4672
3f863bef 46732009-03-27 H.J. Lu <hongjiu.lu@intel.com>
4674 Jakub Jelinek <jakub@redhat.com>
4675
4676 PR target/38034
4677 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
4678 gr_register_operand with gr_reg_or_0_operand.
4679 (cmpxchg_rel_di): Likewise.
4680 (sync_lock_test_and_set<mode>): Likewise.
4681
9680c846 46822009-03-27 H.J. Lu <hongjiu.lu@intel.com>
4683
4684 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
4685 (true_regnum): Likewise.
4686
4687 * rtlanal.c (subreg_info): Moved to ...
4688 * rtl.h (subreg_info): Here. New.
4689 (subreg_get_info): New.
4690
4691 * rtlanal.c (subreg_get_info): Make it extern.
4692
0e4d11df 46932009-03-27 H.J. Lu <hongjiu.lu@intel.com>
4694
4695 PR target/39472
4696 * config/i386/i386.c (ix86_abi): New.
4697 (override_options): Handle -mabi=.
aca60c7b 4698 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
0e4d11df 4699 (ix86_call_abi_override): Likewise.
4700 (init_cumulative_args): Likewise.
4701 (function_arg_advance): Likewise.
4702 (function_arg_64): Likewise.
4703 (function_arg): Likewise.
4704 (ix86_pass_by_reference): Likewise.
4705 (ix86_function_value_regno_p): Likewise.
4706 (ix86_build_builtin_va_list_abi): Likewise.
4707 (setup_incoming_varargs_64): Likewise.
4708 (is_va_list_char_pointer): Likewise.
4709 (ix86_init_machine_status): Likewise.
aca60c7b 4710 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
0e4d11df 4711 (ix86_function_type_abi): Return enum calling_abi. Rewrite
4712 for 64bit. Replace DEFAULT_ABI with ix86_abi.
aca60c7b 4713 (ix86_function_abi): Make it static and return enum calling_abi.
0e4d11df 4714 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
4715 with ix86_abi.
4716 (ix86_fn_abi_va_list): Updated.
4717
4718 * config/i386/i386.h (ix86_abi): New.
4719 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
4720 (CONDITIONAL_REGISTER_USAGE): Likewise.
4721 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
4722 (machine_function): Likewise.
4723
4724 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
4725 with ix86_abi.
4726 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
4727 (STACK_BOUNDARY): Likewise.
4728 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
4729
4730 * config/i386/i386.opt (mabi=): New.
4731
4732 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
4733 return enum calling_abi.
4734 (ix86_function_type_abi): Likewise.
4735 (ix86_function_abi): Removed.
4736
4737 * doc/invoke.texi: Document -mabi= option for x86.
4738
656ec810 47392009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4740
4741 * builtins.c (real_dconstp): Delete.
4742 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
4743
cb3582e7 47442009-03-27 Dodji Seketeli <dodji@redhat.com>
4745 Jakub Jelinek <jakub@redhat.com>
4746
4747 PR debug/37959
4748 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
4749 (gen_subprogram_die): When a function is explicit, generate the
4750 DW_AT_explicit attribute.
4751 * langhooks.h (struct lang_hooks_for_decls): Add
4752 function_decl_explicit_p langhook.
4753 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
4754 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
4755
38150ede 47562009-03-27 Jakub Jelinek <jakub@redhat.com>
4757
3f95c690 4758 * builtins.c (fold_builtin_memory_op): Optimize memmove
4759 into memcpy if we can prove source and destination don't overlap.
4760
38150ede 4761 * tree-inline.c: Include gt-tree-inline.h.
4762 (clone_fn_id_num): New variable.
4763 (clone_function_name): New function.
4764 (tree_function_versioning): Use it.
4765 * Makefile.in (GTFILES): Add tree-inline.c.
4766
08da3d21 47672009-03-27 Mark Mitchell <mark@codesourcery.com>
4768
4769 * BASE-VER: Change to 4.5.0.
4770
e19b015b 47712009-03-27 Xinliang David Li <davidxl@google.com>
4772
4773 PR tree-optimization/39557
4774 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
4775
b87f0847 47762009-03-27 Xinliang David Li <davidxl@google.com>
4777
4778 PR tree-optimization/39548
89871bab 4779 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
b87f0847 4780 candidate check.
4781
545ba0d7 47822009-03-27 H.J. Lu <hongjiu.lu@intel.com>
4783
4784 * c-common.c (pointer_int_sum): Use %wd on return from
4785 tree_low_cst.
4786
482c9a19 47872009-03-27 H.J. Lu <hongjiu.lu@intel.com>
4788
4789 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
4790 on return from tree_low_cst.
4791
1f1d68a6 47922009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
4793
4794 PR c++/36799
aca60c7b 4795 * ginclude/stdarg.h (va_copy): Define also for
4796 __GXX_EXPERIMENTAL_CXX0X__.
1f1d68a6 4797
d924b670 47982009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4799
4800 PR c++/35652
4801 * builtins.h (c_strlen): Do not warn here.
4802 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
4803 * c-common.c (pointer_int_sum): Take an explicit location.
4804 Warn about offsets out of bounds.
4805 * c-common.h (pointer_int_sum): Adjust declaration.
4806
1ab73152 48072009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4808
d924b670 4809 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
4810 markup glitch.
1ab73152 4811
f4858d06 48122009-03-26 Jakub Jelinek <jakub@redhat.com>
4813
4814 PR c++/39554
4815 * opts.c (warn_if_disallowed_function_p): Don't assume
4816 get_callee_fndecl must return non-NULL.
4817
d9cee1b1 48182009-03-26 Vladimir Makarov <vmakarov@redhat.com>
4819
4820 PR rtl-optimization/39522
4821 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
4822 when reg_reloaded_valid is set.
4823
204cb876 48242009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4825
4826 * config/spu/divv2df3.c: New file.
4827 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
4828 (DPBIT_FUNCS): Filter out _div_df.
4829
1fd36c3a 48302009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
4831
4832 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
4833 a jump insn, count that jump in the distance to the loop start.
4834
dc9b0799 48352009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
4836
4837 PR target/39523
4838 * config/sh/sh.c (calc_live_regs): Fix condition for global
4839 registers except PIC_OFFSET_TABLE_REGNUM.
4840
6609be22 48412009-03-25 Kai Tietz <kai.tietz@onevision.com>
4842
4843 PR/39518
4844 * doc/invoke.texi (-mconsole): New.
4845 (-mcygwin): New.
4846 (-mno-cygwin): New.
4847 (-mdll): New.
4848 (-mnop-fun-dllimport): New.
4849 (-mthread): New.
4850 (-mwin32): New.
4851 (-mwindows): New.
4852 (sub section "i386 and x86-64 Windows Options"): New.
4853
2ccb7f3f 48542009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
4855
4856 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
4857 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
4858
5211387e 48592009-03-25 Richard Guenther <rguenther@suse.de>
4860
4861 PR middle-end/39497
4862 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
4863 of -Wno-error.
4864
686d79e0 48652009-03-25 Andrey Belevantsev <abel@ispras.ru>
4866
4867 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
4868 neither of haifa/selective schedulers are working.
4869
850fc3f0 48702009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4871
4872 * doc/invoke.texi (Debugging Options): Fix description of
4873 -fno-merge-debug-strings.
4874
10178ded 48752009-03-24 Hans-Peter Nilsson <hp@axis.com>
4876
d1640684 4877 * config/cris/libgcc.ver: New version-script.
4878 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
4879
10178ded 4880 * configure.ac <GAS features, nop mnemonic>: Add pattern
4881 crisv32-*-* for "nop".
aca60c7b 4882 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
10178ded 4883 * configure: Regenerate.
4884
416dafb3 48852009-03-24 Ira Rosen <irar@il.ibm.com>
4886
4887 PR tree-optimization/39529
4888 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
4889 mark_sym_for_renaming for the tag copied to the new vector
4890 pointer.
4891
68ecbaec 48922009-03-24 Arthur Loiret <aloiret@debian.org>
4893
aca60c7b 4894 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
68ecbaec 4895 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
4896 EXTRA_SPEC_FUNCTIONS.
4897 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
4898 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
4899 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
4900 -march and -mtune options.
4901
f8873a45 49022009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
4903
4904 * config/m68k/t-rtems: Add m5329 multilib.
4905
ab977c1f 49062009-03-24 Dodji Seketeli <dodji@redhat.com>
4907 Jakub Jelinek <jakub@redhat.com>
4908
4909 PR debug/39524
4910 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
4911 nodes.
4912
4390875c 49132009-03-23 Jakub Jelinek <jakub@redhat.com>
4914
4915 PR c/39495
4916 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
4917 instead of c_parser_expression_conv, if original_code isn't one of the
4918 4 allowed comparison codes, fail.
4919
9fac1c66 49202009-03-23 Richard Guenther <rguenther@suse.de>
4921
4922 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
4923 * tree.h (struct tree_type): Likewise.
4924 * reload.h (struct insn_chain): Likewise.
4925 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
4926 * function.h (struct function): Likewise.
4927 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
4928
b7d1c9e6 49292009-03-23 Jakub Jelinek <jakub@redhat.com>
4930
4931 PR tree-optimization/39516
4932 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
4933
f824d860 49342009-03-23 Bingfeng Mei <bmei@broadcom.com>
4935
89871bab 4936 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
f824d860 4937 should be set true if BITS_PER_WORD of target is bigger than 32
4938
f8cf5d4c 49392009-03-22 Hans-Peter Nilsson <hp@axis.com>
4940
4941 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
4942 Translate -B-options to -rpath-link. Correct existing
4943 rpath-link and conditionalize on !nostdlib.
4944
8898b2ef 49452009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4946
4947 * doc/extend.texi (Function Attributes, Variable Attributes):
4948 Fix typos.
4949 * doc/invoke.texi (Debugging Options, Optimize Options)
4950 (i386 and x86-64 Options, MCore Options): Likewise.
4951
4b1ab129 49522009-03-20 Jakub Jelinek <jakub@redhat.com>
4953
4954 PR debug/37890
4955 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
4956 it for block local namespace aliases.
4957 (gen_decl_die): Pass context_die to gen_namespace_die.
4958
e060ba36 49592009-03-19 Jakub Jelinek <jakub@redhat.com>
4960
4961 PR c/39495
4962 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
4963 minimum or maximum value.
4964
42f43a38 49652009-03-19 Alexandre Oliva <aoliva@redhat.com>
4966
4967 * reginfo.c (globalize_reg): Recompute derived reg sets.
4968
76d89866 49692009-03-19 Ozkan Sezer <sezeroz@gmail.com>
4970
4971 PR target/39063
4972 * libgcc2.c (mprotect): Do not use signed arguments for
4973 VirtualProtect, use DWORD arguments. Also fix the 'may
4974 be used uninitialized' warning for the np variable.
4975
99198add 49762009-03-19 Jakub Jelinek <jakub@redhat.com>
4977
4978 PR target/39496
4979 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
4980 functions using regparm calling conventions when not optimizing.
4981 (ix86_function_sseregparm): Similarly for sseregparm calling
4982 conventions.
4983
63ca8934 49842009-03-19 Li Feng <nemokingdom@gmail.com>
4985
4986 PR middle-end/39500
4987 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
4988 dependence if the first conflict is after niter iterations.
4989
c5fe58d7 49902009-03-19 Hans-Peter Nilsson <hp@axis.com>
4991
4992 PR middle-end/38609
4993 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
4994 functions with dynamic stack-pointer adjustments.
4995
d4669bca 49962009-03-19 Ben Elliston <bje@au.ibm.com>
4997
4998 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
4999 option; change to -msdata=data.
5000
286c29e2 50012009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5002
5003 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
5004 and -fopenmp.
5005
0e55c4d0 50062009-03-18 Eric Botcazou <ebotcazou@adacore.com>
5007
5008 PR target/35180
5009 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
5010
5de57ebe 50112009-03-18 Sandra Loosemore <sandra@codesourcery.com>
5012
5013 * doc/invoke.texi (Code Gen Options): Expand discussion of
5014 -fno-common.
5015
0ac758f7 50162009-03-18 Jakub Jelinek <jakub@redhat.com>
5017
5018 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
5019 * matrix-reorg.c (struct matrix_info): Likewise.
5020 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
5021 * rtl.h (struct mem_attrs): Likewise.
5022 * df.h (struct df): Likewise.
5023 * tree-data-ref.h (struct data_dependence_relation): Likewise.
5024 * ira-int.h (struct ira_allocno): Likewise.
5025 * df-scan.c (struct df_collection_rec): Likewise.
5026 * ira.c (struct equivalence): Likewise.
5027 * function.c (struct temp_slot): Likewise.
5028 * cfgloop.h (struct loop): Likewise.
5029
f24ccada 5030 PR debug/39485
5031 * function.c (use_register_for_decl): When not optimizing, disregard
5032 register keyword for variables with types containing methods.
5033
8fa85fc5 50342009-03-18 Sebastian Pop <sebastian.pop@amd.com>
5035
5036 PR middle-end/39447
5037 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
5038 (is_simple_operand): Call contains_component_ref_p before calling data
5039 reference analysis that would fail on COMPONENT_REFs.
5040
5041 * tree-vrp.c (search_for_addr_array): Fix formatting.
5042
a39f4102 50432009-03-18 Richard Guenther <rguenther@suse.de>
5044
5045 * tree-vect-transform.c (vect_loop_versioning): Fold the
5046 generated comparisons.
5047 * tree-vectorizer.c (set_prologue_iterations): Likewise.
5048 (slpeel_tree_peel_loop_to_edge): Likewise.
5049
b8048da5 50502009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5051
fad6b6bb 5052 PR middle-end/37805
5053 * opts.c (print_specific_help): In addition to `undocumented',
5054 accept `separate' and `joined' flags if passed alone. Describe
5055 output by the first matched one of those.
5056 (common_handle_option): Skip over empty strings.
5057 * gcc.c (display_help): Fix help string for `--help='.
5058 * doc/invoke.texi (Option Summary, Overall Options): With
5059 `--help=', classes and qualifiers can both be repeated, but
5060 only the latter can be negated. One should not pass only
5061 negated qualifiers. Fix markup and examples.
5062
b8048da5 5063 Revert
5064 2008-10-14 Jakub Jelinek <jakub@redhat.com>
5065 PR middle-end/37805
5066 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
5067 and -fhelp=separate.
5068
9247818a 50692009-03-17 Jing Yu <jingyu@google.com>
5070
5071 PR middle-end/39378
a3b7452d 5072 * function.h (struct rtl_data): Move is_thunk from here...
5073 (struct function): ...to here.
5074 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
9247818a 5075 * varasm.c (assemble_start_function): Change is_thunk from crtl to
5076 cfun.
a3b7452d 5077 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
5078 cfun.
5079 (alpha_does_function_need_gp, alpha_start_function): Likewise.
5080 (alpha_output_function_end_prologue): Likewise.
5081 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
5082 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
5083 (rs6000_output_function_epilogue): Likewise.
5084 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
9247818a 5085
d849db06 50862009-03-17 Uros Bizjak <ubizjak@gmail.com>
5087
5088 PR target/39482
5089 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
5090 from different units in a single alternative.
5091 (*truncdfsf_i387): Ditto.
5092 (*truncxfsf2_mixed): Ditto.
5093 (*truncxfdf2_mixed): Ditto.
5094
31334434 50952009-03-17 Jakub Jelinek <jakub@redhat.com>
5096
169f8686 5097 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
5098 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
5099
4595b0f9 5100 PR debug/39474
5101 * tree-ssa-live.c (remove_unused_locals): Don't remove local
5102 unused non-artificial variables when not optimizing.
5103
157e283b 5104 PR debug/39471
5105 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
5106 DW_TAG_imported_module even if decl is IMPORTED_DECL with
5107 NAMESPACE_DECL in its DECL_INITIAL.
5108
979d3efc 5109 PR middle-end/39443
5110 * optabs.c (set_user_assembler_libfunc): New function.
5111 * expr.h (set_user_assembler_libfunc): New prototype.
5112 * c-common.c: Include libfuncs.h.
5113 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
5114 for memcmp, memset, memcpy, memmove and abort.
5115 * Makefile.in (c-common.o): Depend on libfuncs.h.
5116
31334434 5117 PR debug/39412
5118 * dwarf2out.c (gen_inlined_enumeration_type_die,
5119 gen_inlined_structure_type_die, gen_inlined_union_type_die,
5120 gen_tagged_type_instantiation_die): Removed.
5121 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
5122 do nothing.
5123
c158ae09 51242009-03-17 Janis Johnson <janis187@us.ibm.com>
5125
5126 PR testsuite/38526
5127 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
5128 its use.
5129 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
5130 (check-parallel-%): Ditto.
5131 (check-consistency): Ditto.
5132
d4138574 51332009-03-17 Kai Tietz <kai.tietz@onevision.com>
5134
5135 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
5136 local variable rhs by NULL_TREE.
5137
dc8c96bb 51382009-03-17 H.J. Lu <hongjiu.lu@intel.com>
5139
5140 PR target/39477
d849db06 5141 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
dc8c96bb 5142
462bc935 51432009-03-17 H.J. Lu <hongjiu.lu@intel.com>
5144
5145 PR target/39476
d849db06 5146 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
462bc935 5147
51482009-03-17 H.J. Lu <hongjiu.lu@intel.com>
4543b422 5149
5150 PR target/39473
5151 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
5152 for ms->sysv ABI calls only in 64bit mode.
5153
5154 * config/i386/i386.md (untyped_call): Support 32bit.
5155
ff8d1746 51562009-03-16 H.J. Lu <hongjiu.lu@intel.com>
5157
5158 * doc/extend.texi: Replace x86_65 with x86_64.
5159
1095b81d 51602009-03-16 Jakub Jelinek <jakub@redhat.com>
5161
5162 PR tree-optimization/39455
5163 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
5164 mismatches for POINTER_TYPE_P (type).
5165 (number_of_iterations_le): Likewise.
5166
15d6a8ce 51672009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
5168
5169 * config/picochip/picochip.c: Removed profiling support.
5170 * config/picochip/picochip.md: Removed profiling instruction.
5171 * config/picochip/picochip.h: Removed profiling builtin.
5172
5bc96548 51732009-03-16 Joseph Myers <joseph@codesourcery.com>
5174
5175 * doc/install.texi (--with-host-libstdcxx): Document.
5176
7846db34 51772009-03-14 Anatoly Sokolov <aesok@post.ru>
5178
5179 PR target/34299
5180 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
5181 generate a warning if the function name does not begin with
5182 "__vector" and the function has either the 'signal' or 'interrupt'
5183 attribute, from here to ...
5184 (avr_declare_function_name): ...here. New function.
5185 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
5186 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
5187
6026d749 51882009-03-14 Jakub Jelinek <jakub@redhat.com>
5189
5190 PR bootstrap/39454
5191 * cse.c (fold_rtx): Don't modify original const_arg1 when
5192 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
5193 separate variable instead.
5194 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
5195 from out of range shift counts.
5196 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
5197
7dfbd804 51982009-03-13 Catherine Moore <clm@codesourcery.com>
747c6be5 5199
d849db06 5200 * gcc/config/i386/x-mingw32 (host-mingw32.o): Replace
747c6be5 5201 diagnostic.h with $(DIAGNOSTIC_H).
5202
7dfbd804 52032009-03-12 Jakub Jelinek <jakub@redhat.com>
1f477a18 5204
5205 PR target/39431
5206 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
5207 predicate.
5208 * config/i386/sync.md (sync_compare_and_swap<mode>,
5209 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
5210 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
5211 into a register.
5212 (sync_double_compare_and_swapdi_pic,
5213 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
5214 cmpxchg8b_pic_memory_operand instead of just memory_operand.
5215
7e17a1bf 52162009-03-12 H.J. Lu <hongjiu.lu@intel.com>
5217
5218 PR target/39445
d849db06 5219 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
7e17a1bf 5220
01a3edef 52212009-03-12 H.J. Lu <hongjiu.lu@intel.com>
5222
5223 PR target/39327
5224 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
5225 (avx_addsubv4df3): Likewise.
5226 (*avx_addsubv4sf3): Likewise.
5227 (sse3_addsubv4sf3): Likewise.
5228
57183b55 52292009-03-12 H.J. Lu <hongjiu.lu@intel.com>
5230
5231 PR target/38824
d849db06 5232 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
57183b55 5233
3b95aad3 52342009-03-12 Vladimir Makarov <vmakarov@redhat.com>
5235
5236 PR debug/39432
5237 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
5238 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
5239 registers for allocnos created from user-defined variables.
5240
8d72495d 52412009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5242
5243 PR target/39181
5244 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
5245 of non-integer mode as well.
5246
cf219ecd 52472009-03-11 Adam Nemet <anemet@caviumnetworks.com>
5248
5249 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
5250 for functions for which the parameter types are unknown.
5251
76cbc2a0 52522009-03-11 Jakub Jelinek <jakub@redhat.com>
5253
5254 PR target/39137
d849db06 5255 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
76cbc2a0 5256 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
5257 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
5258 * config/i386/i386.c (ix86_local_alignment): For
5259 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
5260 long long variables on the stack to avoid dynamic realignment.
5261 Allow the first argument to be a decl rather than type.
5262 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
5263
18061948 52642009-03-11 Nick Clifton <nickc@redhat.com>
5265
5266 PR target/5362
a37dec0c 5267 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
5268 options.
5269 Add description to mno-lsim option.
5270 * config/mcore/mcore.h: Remove comment about deprecated m4align
5271 option.
5272 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
5273 * doc/invoke.texi: Add description of mno-lsim and
5274 mstack-increment options.
5275
18061948 5276 * config/fr30/fr30.opt: Document the -mno-lsim option.
5277 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
5278 and -mno-lsim options.
5279
944017fd 52802009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5281
5282 * fold-const.c (fold_comparison): Only call fold_inf_compare
5283 if the mode supports infinities.
5284
93ef9154 52852009-03-11 Jason Merrill <jason@redhat.com>
5286
5287 PR debug/39086
5288 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
5289 end already did. Notice GIMPLE_CALL modifications of the result.
5290 Don't copy debug information from an ignored decl or a decl from
5291 another function.
5292
e927e2b8 52932009-03-10 Richard Guenther <rguenther@suse.de>
5294 Nathan Froyd <froydnj@codesourcery.com>
5295
5296 PR middle-end/37850
d849db06 5297 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
e927e2b8 5298 (__divMODE3): Likewise.
5299
48855189 53002009-03-09 Jakub Jelinek <jakub@redhat.com>
5301
5302 PR tree-optimization/39394
5303 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
5304 DECL_SIZE_UNIT of variable length FIELD_DECLs.
5305
af7eac22 53062009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5307
5308 * recog.c (verfiy_changes): Disallow renaming of hard regs in
5309 inline asms for register asm ("") declarations.
5310
4ce9876e 53112009-03-09 Eric Botcazou <ebotcazou@adacore.com>
5312
5313 * fold-const.c (fold_unary): Fix comment.
5314
928059d5 53152009-03-07 Jan Hubicka <jh@suse.cz>
5316
5317 PR target/39361
0648196e 5318 * tree-inline.c (setup_one_parameter): Do replacement of const
5319 argument by constant in SSA form.
928059d5 5320
c9b50df7 53212009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5322
5323 PR middle-end/38028
5324 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
5325 determine alignment passed to assign_stack_local.
5326 (assign_parms_unsplit_complex): Likewise.
5327 * except.c (sjlj_build_landing_pads): Likewise.
5328
ebcb0478 53292009-03-06 Jakub Jelinek <jakub@redhat.com>
5330
82eb5a11 5331 PR middle-end/39360
5332 * tree-flow.h (add_referenced_var): Return bool instead of void.
5333 * tree-dfa.c (add_referenced_var): Return result of
5334 referenced_var_check_and_insert call.
5335 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
5336 of referenced_var_check_and_insert.
5337
ebcb0478 5338 PR debug/39372
d849db06 5339 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
ebcb0478 5340 (gen_variable_die): Emit DW_AT_location on abstract static variable's
5341 DIE, don't emit it if abstract origin already has it.
5342 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
5343 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
5344
6d92fc03 53452009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
5346
aca60c7b 5347 * genpreds.c (needs_variable): Fix parentheses at variable name
6d92fc03 5348 detection.
5349 (write_tm_constrs_h): Indent generated code.
5350
1fe1c6f5 53512009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5352
5353 * doc/extend.texi (Function Attributes): Add documentation
5354 for isr attributes.
5355
5a798e1e 53562009-03-06 Jakub Jelinek <jakub@redhat.com>
5357
5358 PR debug/39387
5359 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
5360 take locus from its DECL_SOURCE_LOCATION instead of input_location.
5361
05f566a9 53622009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
5363
5364 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
5365 the loop as bad.
5366
227f485e 53672009-03-05 Jakub Jelinek <jakub@redhat.com>
5368
5369 PR debug/39379
5370 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
5371 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
5372
a6ccab35 53732009-03-05 Uros Bizjak <ubizjak@gmail.com>
5374
5375 * config/i386/i386.md (R8_REG, R9_REG): New constants.
5376 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
5377 constants instead of magic numbers.
5378 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
5379 (QI_REG_P): Ditto.
5380 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
5381 (x86_64_ms_abi_int_parameter_registers): Ditto.
5382 (x86_64_int_return_registers): Ditto.
0d22f439 5383 (ix86_maybe_switch_abi): Ditto.
a6ccab35 5384 (ix86_expand_call): Ditto for clobbered_registers array.
5385 (ix86_hard_regno_mode_ok): Ditto.
5386 (x86_extended_QIreg_mentioned_p): Ditto.
5387
ea138c98 53882009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
5389
a6ccab35 5390 PR tree-optimization/39349
1595fd95 5391 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
5392
ea138c98 5393 * combine.c (gen_lowpart_for_combine): Use omode when generating
5394 clobber.
5395
242753ba 53962009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
5397
a6ccab35 5398 PR rtl-optimization/39235
242753ba 5399 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
5400
7299be85 54012009-03-04 Zdenek Dvorak <ook@ucw.cz>
5402
5403 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
5404
a4c8b601 54052009-03-04 Richard Guenther <rguenther@suse.de>
5406
5407 PR tree-optimization/39362
5408 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
5409 that occur in abnormal PHIs should be varying.
5410
76610704 54112009-03-04 Zdenek Dvorak <ook@ucw.cz>
5412
5413 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
5414 Extend comments.
5415 (simple_iv): Take loop as an argument instead of statement.
5416 * tree-scalar-evolution.h (simple_iv): Declaration changed.
5417 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
5418 to simple_iv.
5419 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
5420 Ditto.
5421 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
5422 * matrix-reorg.c (analyze_transpose): Ditto.
5423 * tree-data-ref.c (dr_analyze_innermost): Ditto.
5424 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
5425 * tree-predcom.c (ref_at_iteration): Ditto.
5426 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
5427
f13e5f6d 54282009-03-04 Richard Guenther <rguenther@suse.de>
5429
5430 PR tree-optimization/39358
5431 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
5432 escaped_id and callused_id.
5433 (solve_graph): Likewise.
5434
0cb9a712 54352009-03-04 Richard Guenther <rguenther@suse.de>
5436
5437 PR tree-optimization/39339
5438 * tree-sra.c (try_instantiate_multiple_fields): Make it
5439 no longer ICE on the above.
5440
cfb75cdf 54412009-03-03 Joseph Myers <joseph@codesourcery.com>
5442
5443 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
5444 that fits within Pmode.
5445
838bd0ed 54462009-03-03 Steve Ellcey <sje@cup.hp.com>
5447
5448 PR middle-end/10109
5449 * tm.texi (LIBCALL_VALUE): Update description.
5450
e5e13288 54512009-03-03 Steve Ellcey <sje@cup.hp.com>
5452
5453 PR middle-end/34443
5454 * doc/extend.texi (section): Update description.
5455
463cc256 54562009-03-03 H.J. Lu <hongjiu.lu@intel.com>
5457
5458 PR middle-end/39345
5459 * tree-inline.c (remapped_type): New.
5460 (can_be_nonlocal): Call remapped_type instead of remap_type.
5461
072866b6 54622009-03-03 Jakub Jelinek <jakub@redhat.com>
5463
5464 PR fortran/39354
5465 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
5466 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
5467
b430e8d9 54682009-03-03 Richard Guenther <rguenther@suse.de>
5469
5470 PR middle-end/39272
5471 * tree.c (tree_nonartificial_location): New function.
5472 * tree.h (tree_nonartificial_location): Declare.
5473 * builtins.c (expand_builtin_memory_chk): Provide location
5474 of the call location for artificial function pieces.
5475 (maybe_emit_chk_warning): Likewise.
5476 (maybe_emit_sprintf_chk_warning): Likewise.
5477 (maybe_emit_free_warning): Likewise.
5478 * expr.c (expand_expr_real_1): Likewise.
5479
bc79a76b 54802009-03-03 Jakub Jelinek <jakub@redhat.com>
5481
5482 PR tree-optimization/39343
5483 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
5484 COMPONENT_REF t has ARRAY_TYPE.
5485
41c18990 54862009-03-02 Sebastian Pop <sebastian.pop@amd.com>
5487
5488 PR middle-end/39335
5489 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
5490 when the type precision of the induction variable should be
5491 larger than the type precision of nit.
5492 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
5493 * graphite.c (graphite_loop_normal_form): Same.
5494 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
5495
32096e82 54962009-03-02 Uros Bizjak <ubizjak@gmail.com>
5497
5498 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
5499 (*call_1_rex64_ms_sysv): Use named constants instead of magic
a6ccab35 5500 numbers to describe clobbered registers.
32096e82 5501 (*call_value_0_rex64_ms_sysv): Ditto.
a6ccab35 5502 * config/i386/mmx.md (mmx_emms): Ditto.
5503 (mmx_femms): Ditto.
32096e82 5504
b8f6667e 55052009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
5506
5507 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
5508 of ABI_64.
5509
a08dfd55 55102009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5511
5512 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
5513 (spu_section_type_flags): New function.
5514
c81d1104 55152009-03-02 Uros Bizjak <ubizjak@gmail.com>
5516
5517 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
5518 reg_class_contents of FLOAT_REGS into a temporary.
5519
ed243388 55202009-03-02 Richard Guenther <rguenther@suse.de>
c81d1104 5521 Ira Rosen <irar@il.ibm.com>
ed243388 5522
5523 PR tree-optimization/39318
5524 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
5525 information to the vectorized statement.
5526
c4bb7475 55272009-03-01 Uros Bizjak <ubizjak@gmail.com>
5528
4d5fae72 5529 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
5530 variable. Use defined names instead of magic constants for REX SSE
5531 registers.
c4bb7475 5532
d2263ebb 55332009-03-01 Richard Guenther <rguenther@suse.de>
5534
5535 PR tree-optimization/39331
5536 * omp-low.c (lower_send_shared_vars): Do not receive new
5537 values for the reference of DECL_BY_REFERENCE parms or results.
5538
4b5d70fd 55392009-03-01 Jan Hubicka <jh@suse.cz>
5540
5541 PR debug/39267
5542 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
5543 BLOCK_NONLOCALIZED_VAR): New macros.
5544 (tree_block): Add nonlocalized_vars.
79283bdc 5545 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
5546 gen_decl_die): Add origin argument. Allow generation of die with
5547 origin at hand only.
4b5d70fd 5548 (gen_member_die, gen_type_die_with_usage, force_decl_die,
79283bdc 5549 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
5550 of gen_*.
4b5d70fd 5551 (gen_block_die): Fix checking for unused blocks.
5552 (process_scope_var): Break out from .... ; work with origins only.
5553 (decls_for_scope) ... here; process nonlocalized list.
5554 (dwarf2out_ignore_block): Look for nonlocalized vars.
79283bdc 5555 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
5556 vars.
4b5d70fd 5557 (dump_scope_block): Dump them.
5558 * tree-inline.c (remap_decls): Handle nonlocalized vars.
5559 (remap_block): Likewise.
5560 (can_be_nonlocal): New predicate.
5561 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
5562
9af964d4 55632009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5564
5565 * configure: Regenerate.
5566
a43fd3a5 55672009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5568
e6a03973 5569 * optc-gen.awk: No need to duplicate option flags twice.
d849db06 5570 Reuse help texts for duplicate options which do not have any.
e6a03973 5571
53f9a00b 5572 * gcc.c (display_help): Document --version.
5573
0445c349 5574 * gcc.c (main): If print_help_list and verbose_flag, ensure
5575 driver output comes before subprocess output.
5576
1df76a79 5577 * optc-gen.awk: Assign all remaining fields to help string,
5578 space-separated, for multi-line help in *.opt.
5579
d7381490 5580 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
5581 -Wno-pedantic-ms-format is for MinGW targets only.
5582
a43fd3a5 5583 * doc/options.texi (Option file format): Fix bad indentation,
5584 restoring dropped sentence.
5585
3d280f42 55862009-02-28 Jan Hubicka <jh@suse.cz>
5587
5588 * tree-inline.c (tree_function_versioning): Output debug info.
5589
12e12890 55902009-02-28 Jan Hubicka <jh@suse.cz>
5591
5592 PR debug/39267
5593 * tree-inline.c (setup_one_parameter): Do not copy propagate
5594 arguments when not optimizing.
5595
5e56456b 55962009-02-28 H.J. Lu <hongjiu.lu@intel.com>
5597
5598 PR target/39327
5599 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
5600 (avx_addsubv4df3): Likewise.
5601 (*avx_addsubv4sf3): Likewise.
5602 (sse3_addsubv4sf3): Likewise.
5603 (*avx_addsubv2df3): Likewise.
5604 (sse3_addsubv2df3): Likewise.
5605 (avx_unpckhps256): Correct item selectors.
5606 (avx_unpcklps256): Likewise.
5607 (avx_unpckhpd256): Likewise.
5608 (avx_unpcklpd256): Likewise.
5609
a8305131 56102009-02-28 Jan Hubicka <jh@suse.cz>
5611
5612 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
5613 static vars.
5614 (copy_arguments_for_versioning): If var is declared don't declare it.
5615 (tree_function_versioning): First setup substitutions and then copy
5616 args.
5617
89f29a1b 56182009-02-27 Jan Hubicka <jh@suse.cz>
5619
5620 PR debug/39267
5621 * cgraph.h (varpool_output_debug_info): Remove.
5622 * cgraphunit.c (varpool_output_debug_info): Remove.
5623 * dwarf2out.c (deferred_locations_struct): New struct
5624 (deferred_locations): New type.
5625 (deferred_locations_list): New static var.
5626 (deffer_location): New function.
5627 (gen_variable_die): Use it.
5628 (decls_for_scope): Output info on local static vars.
5629 (dwarf2out_finish): Process deferred locations.
5630 * varpool.c (varpool_output_debug_info): Remove.
5631
cee43f7e 56322009-02-27 Jan Hubicka <jh@suse.cz>
5633
5634 PR debug/39267
5635 * tree.h (TREE_PROTECTED): Fix comment.
5636 (BLOCK_HANDLER_BLOCK): Remove.
5637 (struct tree_block): Remove handler_block add body_block.
5638 (inlined_function_outer_scope_p): New.
5639 (is_body_block): Remove.
5640 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
5641 * dwarf2out.c (is_inlined_entry_point): Remove.
5642 (add_high_low_attributes): Use inlined_function_outer_scope_p.
a12d48b6 5643 (gen_block_die): Use is_inlined_entry_point check. Remove body block
5644 code.
cee43f7e 5645 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
5646 * gimplify.c (gimplify_expr): Gimplify body blocks.
a12d48b6 5647 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
5648 block with multiple subblocks.
cee43f7e 5649 (dump_scope_block): Prettier output; dump more flags and info.
5650 (dump_scope_blocks): New.
5651 (remove_unused_locals): Use dump_scope_blocks.
5652 * tree-flow.h (dump_scope_blocks): Declare.
5653 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
5654 * stmt.c (is_body_block): Remove.
5655 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
5656 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
5657
74e261f8 56582009-02-27 Sebastian Pop <sebastian.pop@amd.com>
5659
5660 PR middle-end/39308
89871bab 5661 * graphite.c (graphite_loop_normal_form): Do not call
74e261f8 5662 number_of_iterations_exit from a gcc_assert.
5663
512d9edf 56642009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5665
aca60c7b 5666 * gcc/config/s390/s390.c (s390_swap_cmp): Look for conditional
512d9edf 5667 jumps if COND is NULL.
5668 (find_cond_jump): New function.
5669 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
5670 * gcc/config/s390/s390.md: Remove z10_cobra attribute value.
5671
f8fff44e 56722009-02-26 Uros Bizjak <ubizjak@gmail.com>
5673
5674 * config/alpha/alpha.h (alpha_expand_mov): Return false if
5675 force_const_mem returns NULL_RTX.
5676
673c690d 56772009-02-26 Jan Hubicka <jh@suse.cz>
5678
5679 PR debug/39267
5680 * cgraph.h (varpool_output_debug_info): Remove.
5681 * cgraphunit.c (varpool_output_debug_info): Remove.
5682 * dwarf2out.c (deferred_locations_struct): New struct
5683 (deferred_locations): New type.
5684 (deferred_locations_list): New static var.
5685 (deffer_location): New function.
5686 (gen_variable_die): Use it.
5687 (decls_for_scope): Output info on local static vars.
5688 (dwarf2out_finish): Process deferred locations.
5689 * varpool.c (varpool_output_debug_info): Remove.
5690
a330630f 56912009-02-25 H.J. Lu <hongjiu.lu@intel.com>
7216a350 5692
5693 PR rtl-optimization/39241
5694 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
5695 to subreg_offset_representable_p.
5696
1e176869 56972009-02-25 Paolo Bonzini <bonzini@gnu.org>
5698
5699 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
5700 execute function prototype. Get f and nregs from max_reg_num
5701 and get_insns. Remove the first backward pass as it's dead,
5702 guard the forward pass by flag_expensive_optimizations.
5703 (rest_of_handle_regmove): Delete.
5704 (pass_regmove): Replace it with regmove_optimize.
5705
28efe441 57062009-02-25 Martin Jambor <mjambor@suse.cz>
5707
5708 PR tree-optimization/39259
5709 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
a6ccab35 5710 calls_alloca function flags.
28efe441 5711 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
5712 calls are detected.
5713
e7dd8234 57142009-02-25 Paolo Bonzini <bonzini@gnu.org>
5715
5716 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
5717 flags_set_1_rtx, flags_set_1_set): Delete.
5718 (regmove_optimize): Do not call mark_flags_life_zones.
5719
3e0af691 57202009-02-24 Julian Brown <julian@codesourcery.com>
5721
5722 PR target/35965
5723 * config/arm/arm.c (require_pic_register): Only set
5724 cfun->machine->pic_reg once per function.
5725
95e9d9cd 57262009-02-24 Sandra Loosemore <sandra@codesourcery.com>
5727
5728 * doc/invoke.texi (Link Options): Document an easier way to pass
f8fff44e 5729 options that take arguments to the GNU linker using -Xlinker and -Wl.
95e9d9cd 5730
bbe1a1e9 57312009-02-24 Steve Ellcey <sje@cup.hp.com>
5732
5733 PR target/33785
5734 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
5735
dbc4ace1 57362009-02-24 Richard Guenther <rguenther@suse.de>
5737
5738 PR debug/39285
5739 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
5740
29474274 57412009-02-24 Richard Guenther <rguenther@suse.de>
7216a350 5742 Zdenek Dvorak <ook@ucw.cz>
29474274 5743
5744 PR tree-optimization/39233
5745 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
5746 from converting them to a generic type.
5747
70c06b9d 57482009-02-23 Sebastian Pop <sebastian.pop@amd.com>
5749
5750 PR tree-optimization/39260
5751 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
5752 contains a condition with a real type.
5753 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
5754
a9d778f8 57552009-02-23 Jason Merrill <jason@redhat.com>
5756
5757 PR c++/38880
5758 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
5759 narrowing_initializer_constant_valid_p.
89871bab 5760 (narrowing_initializer_constant_valid_p): Don't return
a9d778f8 5761 null_pointer_node for adding a pointer to itself.
5762
8b7d416a 57632009-02-23 Jan Hubicka <jh@suse.cz>
5764
5765 PR c/12245
f8fff44e 5766 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
5767 resizing.
8b7d416a 5768
36267649 57692009-02-23 Jan Hubicka <jh@suse.cz>
5770
f8fff44e 5771 PR tree-optimization/37709
5772 * tree.c (block_ultimate_origin): Move here from dwarf2out.
5773 * tree.h (block_ultimate_origin): Declare.
5774 * dwarf2out.c (block_ultimate_origin): Move to tree.c
36267649 5775 * tree-ssa-live.c (remove_unused_scope_block_p):
5776 Eliminate blocks containig no instructions nor live variables nor
5777 nested blocks.
5778 (dump_scope_block): New function.
5779 (remove_unused_locals): Enable removal of dead blocks by default;
f8fff44e 5780 enable dumping at TDF_DETAILS.
36267649 5781
a330630f 57822009-02-21 H.J. Lu <hongjiu.lu@intel.com>
d9984eae 5783
5784 * config/i386/i386.c (classify_argument): Don't allow COImode
5785 and OImode.
5786 (function_arg_advance_32): Don't allow OImode.
5787 (function_arg_32): Likewise.
5788 (function_value_32): Likewise.
5789 (return_in_memory_32): Likewise.
5790 (function_arg_64): Remove OImode comment.
5791
a330630f 57922009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f65f962c 5793
5794 PR target/39261
5795 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
5796 ix86_expand_vector_set for V4DImode in 64bit mode only.
5797 (ix86_expand_vector_init_one_var): Likewise.
5798
c08b0c04 57992009-02-21 Sebastian Pop <sebastian.pop@amd.com>
5800
5801 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
5802
c0efe3c3 58032009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
5804
71cca459 5805 PR bootstrap/39257
c0efe3c3 5806 * loop-iv.c: Revert last change.
5807 * emit-rtl.c: Likewise.
5808
a330630f 58092009-02-21 H.J. Lu <hongjiu.lu@intel.com>
6c37e539 5810
5811 PR target/39256
5812 * config/i386/i386.c (type_natural_mode): Remove an extra
5813 space in the warning message.
5814 (function_value_32): Handle 32-byte vector modes.
5815 (return_in_memory_32): Likewise.
5816
c2c24c89 58172009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
5818
5819 * loop-iv.c (truncate_value): New function.
5820 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
5821 of lowpart_subreg.
5822 (lowpart_subreg): Move to...
5823 * emit-rtl.c: ...here.
5824
59c236cd 58252009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
09869175 5826
59c236cd 5827 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
5828 accidental and undocumented change at revision 140860.
5829
54ad443f 58302009-02-21 Joseph Myers <joseph@codesourcery.com>
5831
5832 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
5833 take gimple_seq * arguments.
5834 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
5835 types_compatible_p langhook.
5836
fb20d2ee 58372009-02-20 Mark Mitchell <mark@codesourcery.com>
09869175 5838 Joseph Myers <joseph@codesourcery.com>
fb20d2ee 5839
5840 * config/arm/arm.c (arm_builtin_va_list): New function.
5841 (arm_expand_builtin_va_start): Likewise.
5842 (arm_gimplify_va_arg_expr): Likewise.
5843 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
5844 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
5845 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
5846 (va_list_type): New variable.
5847 (arm_mangle_type): Mangle va_list_type appropriately.
5848
86482d6b 58492009-02-20 Jakub Jelinek <jakub@redhat.com>
5850
5851 PR middle-end/39157
5852 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
5853 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
5854 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
5855 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
5856 parameter to 1000 for -O1 by default.
5857 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
5858 parameter.
5859 * loop-invariant.c: Include params.h.
5860 (move_loop_invariants): Don't call move_single_loop_invariants on
5861 very large loops.
5862
9a0cf170 58632009-02-20 Jaka Mocnik <jaka@xlab.si>
5864
5865 * calls.c (emit_library_call_value_1): Use slot_offset instead of
5866 offset when calculating bounds for indexing stack_usage_map. Fixes
5867 a buffer overflow with certain target setups.
5868
4681dd41 58692009-02-20 Jakub Jelinek <jakub@redhat.com>
5870
5871 PR target/39240
5872 * calls.c (expand_call): Clear try_tail_call if caller and callee
5873 disagree in promotion of function return value.
5874
2d9d8740 58752009-02-19 Jakub Jelinek <jakub@redhat.com>
5876
5877 PR target/39175
5878 * c-common.c (c_determine_visibility): If visibility changed and
5879 DECL_RTL has been already set, call make_decl_rtl to update symbol
5880 flags.
5881
e3040053 58822009-02-19 H.J. Lu <hongjiu.lu@intel.com>
5883
5884 PR c++/39188
5885 * varasm.c (assemble_variable): Don't check DECL_NAME when
5886 globalizing a variable.
5887
ad0e7a06 58882009-02-19 Joseph Myers <joseph@codesourcery.com>
5889
5890 PR c/38483
5891 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
5892 expression before any __builtin_trap call.
5893 * c-typeck.c (build_function_call): Convert and check function
5894 arguments before generating a call to a trap. Evaluate the
5895 function arguments before the trap.
5896
a7a2dd08 58972009-02-19 Uros Bizjak <ubizjak@gmail.com>
5898
5899 PR target/39228
5900 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
5901 (UNSPEC_FXAM_MEM): New unspec.
5902 (fxam<mode>2_i387_with_temp): New insn and split pattern.
5903 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
5904 memory using fxam<mode>2_i387_with_temp to remove excess precision.
5905
c5168a9e 59062009-02-19 Richard Guenther <rguenther@suse.de>
5907
5908 PR tree-optimization/39207
5909 PR tree-optimization/39074
5910 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
5911 storedanything_tree): New.
5912 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
a7a2dd08 5913 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
c5168a9e 5914 (build_succ_graph): Add edges from STOREDANYTHING to all
5915 non-direct nodes.
5916 (init_base_vars): Initialize STOREDANYTHING.
5917 (compute_points_to_sets): Free substitution info after
5918 building the succ graph.
5919 (ipa_pta_execute): Likewise.
5920
5921 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
5922 field.
5923 (do_ds_constraint): Do not add to special var or non-pointer
5924 field solutions.
5925 (type_could_have_pointers): Split out from ...
5926 (could_have_pointers): ... here. For arrays use the element type.
5927 (create_variable_info_for): Initialize may_have_pointers.
5928 (new_var_info): Likewise.
5929 (handle_lhs_call): Make the HEAP variable unknown-sized.
5930 (intra_create_variable_infos): Use a type with pointers for
5931 PARM_NOALIAS, make it unknown-sized.
5932
f36b5ce0 59332009-02-18 H.J. Lu <hongjiu.lu@intel.com>
5934
5935 PR target/39224
a7a2dd08 5936 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
f36b5ce0 5937
807bf718 59382009-02-18 Jason Merrill <jason@redhat.com>
5939
5940 PR target/39179
5941 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
5942 value if DECL_EXTERNAL.
5943 * tree-sra.c (sra_walk_gimple_assign): Likewise.
5944 * target.h (gcc_target::binds_local_p): Clarify "module".
5945 * tree.h (TREE_PUBLIC): Clarify "module".
5946
f29980e5 59472009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
5948
5949 PR target/38891
5950 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
5951 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
5952
58beda63 59532009-02-17 H.J. Lu <hongjiu.lu@intel.com>
5954
5955 PR target/39082
5956 * c.opt (Wabi): Support C and ObjC.
5957 (Wpsabi): New.
5958
5959 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
5960
5961 * config/i386/i386.c (classify_argument): Warn once about the ABI
5962 change when passing union with long double.
5963
5964 * doc/invoke.texi: Update -Wabi for warning psABI changes.
5965
22d77a94 59662009-02-18 Joseph Myers <joseph@codesourcery.com>
5967
5968 PR c/35447
5969 * c-parser.c (c_parser_compound_statement): Always enter and leave
5970 a scope.
5971
492e3336 59722009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5973
5974 PR target/34587
5975 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
5976
b6eab06c 59772009-02-18 Jakub Jelinek <jakub@redhat.com>
5978
5979 PR tree-optimization/36922
5980 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
5981 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
5982 Likewise.
5983
4f0507c2 59842009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
5985
5986 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
5987 to 0 for EABI64.
5988
be83ab34 59892009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
5990
5991 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
5992
aa6a48b8 59932009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
5994
5995 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
5996 tree sharing.
5997
0f604f19 59982009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
5999 Richard Sandiford <rdsandiford@googlemail.com>
6000
6001 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
6002 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
6003 (loongson_biadd): ...this.
6004
1ab8a912 60052009-02-17 Richard Guenther <rguenther@suse.de>
6006
6007 PR tree-optimization/39202
6008 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
6009 a var make sure to follow existing collapses.
6010
aa03bd5e 60112009-02-17 Richard Guenther <rguenther@suse.de>
6012
6013 PR middle-end/39214
6014 * langhooks.c (lhd_print_error_function): Check for NULL block.
6015
f46bc821 60162009-02-17 Richard Guenther <rguenther@suse.de>
6017
6018 PR tree-optimization/39204
6019 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
6020 of the PHI arg.
6021
974645ce 60222009-02-17 Uros Bizjak <ubizjak@gmail.com>
6023
6024 * config/soft-fp/double.h: Update from glibc CVS.
6025
7197c469 60262009-02-17 Richard Guenther <rguenther@suse.de>
6027
6028 PR tree-optimization/39207
6029 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
6030 strict-aliasing warnings for pointers pointing to NULL.
6031
1646bf33 60322009-02-16 Joseph Myers <joseph@codesourcery.com>
6033
6034 PR c/35446
6035 * c-parser.c (c_parser_braced_init): Call pop_init_level when
6036 skipping until next close brace.
6037
0fb2a998 60382009-02-16 H.J. Lu <hongjiu.lu@intel.com>
6039
6040 PR target/37049
6041 * config/i386/i386.c (ix86_expand_push): Set memory alignment
6042 to function argument boundary.
6043
a1a75b07 60442009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
6045
6046 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
6047 in the lea_add. Reload eventually constraints it properly.
6048 * config/picochip/constraints.md : Remove the target constraint
6049 "b", since it is not needed anymore.
6050
320084b9 60512009-02-16 Jakub Jelinek <jakub@redhat.com>
6052
6053 * gthr-dce.h: Uglify function parameter and local variable names.
6054 * gthr-gnat.h: Likewise.
6055 * gthr-mipssde.h: Likewise.
6056 * gthr-nks.h: Likewise.
6057 * gthr-posix95.h: Likewise.
6058 * gthr-posix.h: Likewise.
6059 * gthr-rtems.h: Likewise.
6060 * gthr-single.h: Likewise.
6061 * gthr-solaris.h: Likewise.
6062 * gthr-tpf.h: Likewise.
6063 * gthr-vxworks.h: Likewise.
6064 * gthr-win32.h: Likewise.
6065
fde73de8 60662009-02-15 H.J. Lu <hongjiu.lu@intel.com>
6067
6068 PR target/39196
6069 * config/i386/i386.md: Restrict the new peephole2 to move
6070 between MMX/SSE registers.
6071
b5c49426 60722009-02-15 Richard Guenther <rguenther@suse.de>
6073
6074 Revert
6075 2009-02-13 Richard Guenther <rguenther@suse.de>
6076
6077 * configure.ac: Enable LFS.
6078 * configure: Re-generate.
6079 * config.in: Likewise.
6080
70ca06f8 60812009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6082
6083 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
6084 spu_srqwbyte, spu_srqwbytebc): Define.
6085 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
6086 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
6087 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
6088 "shrqby_<mode>"): New insn-and-split patterns.
6089 * config/spu/spu.c (expand_builtin_args): Determine and return
6090 number of operands using spu_builtin_description data.
6091 (spu_expand_builtin_1): Use it.
6092
c49d20be 60932009-02-13 Steve Ellcey <sje@cup.hp.com>
6094
6095 PR target/38056
6096 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
6097 TARGET_CONST_GP.
6098
c81f43ee 60992009-02-13 H.J. Lu <hongjiu.lu@intel.com>
6100
6101 PR target/39149
6102 * config/i386/i386.c (override_options): Correct warning
a6ccab35 6103 messages for -malign-loops, -malign-jumps and -malign-functions.
c81f43ee 6104
bc0a240f 61052009-02-13 H.J. Lu <hongjiu.lu@intel.com>
6106
6107 PR target/39152
6108 * config/i386/i386.md: Restrict the new peephole2 to move
6109 between the general purpose registers.
6110
79a817bf 61112009-02-13 H.J. Lu <hongjiu.lu@intel.com>
6112
6113 PR target/39162
6114 * config/i386/i386.c (type_natural_mode): Add a new argument.
a7a2dd08 6115 Return the original mode and warn ABI change if vector size is 32byte.
79a817bf 6116 (function_arg_advance): Updated.
6117 (function_arg): Likewise.
6118 (ix86_function_value): Likewise.
6119 (ix86_return_in_memory): Likewise.
6120 (ix86_sol10_return_in_memory): Likewise.
6121 (ix86_gimplify_va_arg): Likewise.
6122 (function_arg_32): Don't warn ABX ABI change here.
6123 (function_arg_64): Likewise.
6124
a330630f 61252009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
27440859 6126
6127 * loop-iv.c (implies_p): In the final case, test that operands 0
6128 of the two comparisons match.
6129
462ce619 6130 * config/bfin/bfin.c (find_prev_insn_start): New function.
6131 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
6132 (find_next_insn_start): Move.
6133
76549266 61342009-02-13 Richard Guenther <rguenther@suse.de>
6135
6136 * configure.ac: Enable LFS.
6137 * configure: Re-generate.
6138 * config.in: Likewise.
6139
1bbf1c2f 61402009-02-13 Joseph Myers <joseph@codesourcery.com>
6141
6142 PR c/35444
6143 * c-parser.c (c_parser_parms_list_declarator): Discard pending
6144 sizes on syntax error after some arguments have been parsed.
6145
ce2801fe 61462009-02-12 Jakub Jelinek <jakub@redhat.com>
6147
6148 * doc/invoke.texi (-fira): Remove.
6149
ac502adf 61502009-02-12 H.J. Lu <hongjiu.lu@intel.com>
6151
6152 * caller-save.c: Replace regclass.c with reginfo.c in comments.
6153 * recog.c: Likewise.
6154 * rtl.h: Likewise.
6155
8b21beb2 61562009-02-12 Uros Bizjak <ubizjak@gmail.com>
6157
6158 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
6159 (umul_ppmm): Likewise.
6160 (count_leading_zeros): Likewise.
6161 (count_trailing_zeros): Likewise.
6162 (UMUL_TIME): Likewise.
6163
61642009-02-12 H.J. Lu <hongjiu.lu@intel.com>
6165
24200b28 6166 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
6167 soft-fp/t-softfp to tmake_file.
8b21beb2 6168
6169 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
24200b28 6170 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
6171 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
6172 IA64_BUILTIN_INFQ]: New.
8b21beb2 6173 (ia64_init_builtins): Initialize __builtin_infq,
6174 __builtin_fabsq and __builtin_copysignq if not HPUX.
6175 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
6176 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
6177
6178 * config/ia64/lib1funcs.asm (__divtf3): Define only if
6179 SHARED is defined.
6180 (__fixtfti): Likewise.
6181 (__fixunstfti): Likewise.
6182 (__floattitf): Likewise.
6183
6184 * config/ia64/libgcc-glibc.ver: New.
6185 * config/ia64/t-fprules-softfp: Likewise.
6186 * config/ia64/sfp-machine.h: Likewise.
6187
6188 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
6189 (LIBGCC2_TF_CEXT): Likewise.
6190 (TF_SIZE): Likewise.
6191 (TARGET_INIT_LIBFUNCS): Likewise.
6192
24200b28 6193 * config/ia64/t-glibc (SHLINB_MAPFILES):
a7a2dd08 6194 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
8b21beb2 6195
cffe3086 61962009-02-12 H.J. Lu <hongjiu.lu@intel.com>
6197
6198 * config/i386/i386.c (construct_container): Rewrite processing
6199 BLKmode with X86_64_SSE_CLASS.
6200
fbfa3312 62012009-02-12 Paolo Bonzini <bonzini@gnu.org>
6202
6203 PR target/39152
6204 * config/i386/i386.md: Replace simplify_replace_rtx with
6205 replace_rtx in the new peephole2.
6206
38b64900 62072009-02-12 Nathan Sidwell <nathan@codesourcery.com>
6208
6209 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
6210 loop unrolling do not happen at -O2.
6211
674ca8bf 62122009-02-12 Michael Matz <matz@suse.de>
6213
6214 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
6215
e1b3cc49 62162009-02-12 Jakub Jelinek <jakub@redhat.com>
6217
6218 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
6219 for -g3.
6220
0fbcd2eb 62212009-02-12 Ben Elliston <bje@au.ibm.com>
6222
6223 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
6224 patterns when updating the back chain. Missed in the 2009-02-10
6225 change.
6226
0e86dff0 62272009-02-11 Janis Johnson <janis187@us.ibm.com>
6228
6229 * doc/extend.texi (Decimal Floating Types): Update identifier of
6230 draft TR and list of missing support.
6231
2a92826d 62322009-02-11 Jakub Jelinek <jakub@redhat.com>
6233
6234 PR middle-end/39154
6235 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
6236 bit to variable length decl's flags, add it also to its
6237 pointer replacement variable.
6238
73c5e2aa 62392009-02-11 Uros Bizjak <ubizjak@gmail.com>
6240 Jakub Jelinek <jakub@redhat.com>
6241
6242 PR target/39118
6243 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
6244 (memory_blockage): New expander.
6245 (*memory_blockage): New insn pattern.
6246 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
6247 instead of general blockage at the end of function prologue when
6248 frame pointer is used to access red zone area. Do not emit blockage
6249 when profiling, it is emitted in generic code.
6250 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
6251 function epilogue when frame pointer is used to access red zone area.
6252
486a1b16 62532009-02-11 Paolo Bonzini <bonzini@gnu.org>
6254
b899e808 6255 PR target/38824
486a1b16 6256 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
6257 by arithmetic with memory operands.
6258 * config/i386/predicates.md (commutative_operator): New.
6259
560db68e 62602009-02-10 Janis Johnson <janis187@us.ibm.com>
6261
6262 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
6263 bulleted lists.
6264
892fdb03 62652009-02-10 Eric Botcazou <ebotcazou@adacore.com>
6266
6267 * alias.h (record_alias_subset): Declare.
6268 * alias.c (record_alias_subset): Make global.
6269
4ef8346d 62702009-02-10 Nick Clifton <nickc@redhat.com>
6271
6272 * tree-parloops.c: Change license to GPLv3.
6273 * ipa-struct-reorg.c: Change license to GPLv3.
6274 * ipa-struct-reorg.h: Change license to GPLv3.
6275
fc92befb 62762009-02-10 Steve Ellcey <sje@cup.hp.com>
6277
6278 PR c/39084
6279 * c-decl.c (start_struct): Return NULL on error.
6280
e15deb4b 62812009-02-10 Jakub Jelinek <jakub@redhat.com>
6282
16ccc50c 6283 PR middle-end/39124
6284 * cfgloopmanip.c (remove_path): Call remove_bbs after
6285 cancel_loop_tree, not before it.
6286
e15deb4b 6287 PR target/39139
73c5e2aa 6288 * function.h (struct function): Add has_local_explicit_reg_vars bit.
e15deb4b 6289 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
6290 VAR_DECLs were seen.
6291 * tree-ssa-live.c (remove_unused_locals): Recompute
6292 cfun->has_local_explicit_reg_vars.
6293 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
6294 copies or clearings if cfun->has_local_explicit_reg_vars.
6295
a9c1f295 62962009-02-10 Uros Bizjak <ubizjak@gmail.com>
6297
6298 PR target/39118
6299 * config/i386/i386.c (expand_prologue): Emit blockage at the end
6300 of function prologue when frame pointer is used to access
6301 red zone area.
6302
c85b2faf 63032009-02-10 Richard Guenther <rguenther@suse.de>
6304
6305 PR middle-end/39127
6306 * gimplify.c (gimple_regimplify_operands): Always look if
6307 we need to create a temporary.
6308
8d093dba 63092009-02-10 Richard Guenther <rguenther@suse.de>
6310
6311 PR tree-optimization/39132
6312 * tree-loop-distribution.c (todo): New global var.
6313 (generate_memset_zero): Trigger TODO_rebuild_alias.
6314 (tree_loop_distribution): Return todo.
6315
edd93683 63162009-02-10 H.J. Lu <hongjiu.lu@intel.com>
6317
6318 PR target/39119
6319 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
6320 (x86_64_reg_class_name): Removed.
6321 (classify_argument): Return 0 if bytes > 32. Return 0 if the
6322 first one isn't X86_64_SSE_CLASS or any other ones aren't
6323 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
6324 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
6325 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
6326 and 3 X86_64_SSEUP_CLASS.
6327 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
6328 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
6329
2b6975a6 63302009-02-10 Ben Elliston <bje@au.ibm.com>
6331
6332 * config/rs6000/rs6000.md (allocate_stack): Always use an update
6333 form instruction to update the stack back chain word, even if the
6334 user has disabled the generation of update instructions.
6335 (movdi_<mode>_update_stack): New.
6336 (movsi_update_stack): Likewise.
6337 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
6338 always use an update form instruction to update the stack back
6339 chain word.
6340
a72d4b7d 63412009-02-09 Sebastian Pop <sebastian.pop@amd.com>
6342
6343 PR middle-end/38953
73c5e2aa 6344 * graphite.c (if_region_set_false_region): After moving a region in
6345 the false branch of a condition, remove the empty dummy basic block.
a72d4b7d 6346 (gloog): Remove wrong fix for PR38953.
6347
1f915911 63482009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6349
6350 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
6351 generation due to implicit sign extension.
6352
bbe1fc8f 63532009-02-09 Eric Botcazou <ebotcazou@adacore.com>
6354
6355 PR middle-end/38981
6356 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
6357 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
6358
fd494669 63592009-02-09 Richard Guenther <rguenther@suse.de>
6360
6361 PR middle-end/35202
6362 * convert.c (convert_to_real): Disable (float)fn((double)x)
6363 to fnf(x) conversion if errno differences may occur and
6364 -fmath-errno is set.
6365
a64bd5e4 63662009-02-07 Anatoly Sokolov <aesok@post.ru>
6367
6368 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
6369 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
6370 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
6371
9e830260 63722009-02-06 Joseph Myers <joseph@codesourcery.com>
6373
6374 PR c/35434
6375 * c-common.c (handle_alias_attribute): Disallow attribute for
6376 anything not a FUNCTION_DECL or VAR_DECL.
6377
42dc1cf5 63782009-02-06 Janis Johnson <janis187@us.ibm.com>
6379
6380 PR c/39035
6381 * real.c (do_compare): Special-case compare of zero against
6382 decimal float value.
6383
0af147a4 63842009-02-06 Joseph Myers <joseph@codesourcery.com>
6385
6386 PR c/36432
6387 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
6388 as indicating flexible array members unless the field itself is
6389 being declarared as the incomplete array.
6390
68b2f511 63912009-02-06 Jan Hubicka <jh@suse.cz>
6392
6393 PR tree-optimization/38844
6394 * ipa-inline.c (try_inline): Stop inlining recursion when edge
6395 is already inlined.
6396
dac59c04 63972009-02-06 Richard Guenther <rguenther@suse.de>
6398
6399 PR middle-end/38977
6400 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
6401 fork because we may expand it as __gcov_fork.
6402
2314f2ef 64032009-02-06 Nick Clifton <nickc@redhat.com>
6404
a9c1f295 6405 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
2314f2ef 6406
3d2d7de7 64072009-02-06 Paolo Bonzini <bonzini@gnu.org>
6408
6409 PR tree-optimization/35659
6410 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
6411 vn_phi_eq): Shortcut if hashcode does not match.
6412 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
6413 NULL operands.
6414 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
6415 and avoid iterative_hash_expr.
6416 (FOR_EACH_VALUE_ID_IN_SET): New.
6417 (value_id_compare): Remove.
6418 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
6419 sort expressions by value id.
6420
07d27c98 64212009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
6422
6423 PR target/38991
6424 * config/sh/predicates.md (general_movsrc_operand): Don't check
6425 the subreg of system registers here.
6426
f014e39d 64272009-02-05 Jakub Jelinek <jakub@redhat.com>
6428
6429 PR c++/39106
6430 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
6431 on the copied decl.
6432
99e9b19f 64332009-02-05 Paolo Bonzini <bonzini@gnu.org>
6434
6435 PR rtl-optimization/39110
6436 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
6437 addresses, not aligned ones.
6438
707dd2b0 64392009-02-05 Daniel Berlin <dberlin@dberlin.org>
6440 Richard Guenther <rguenther@suse.de>
6441
6442 PR tree-optimization/39100
6443 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
6444 comment says and add edges.
6445
c34f8a78 64462009-02-05 Joseph Myers <joseph@codesourcery.com>
6447
6448 PR c/35435
6449 * c-common.c (handle_tls_model_attribute): Ignore attribute for
6450 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
6451
89871bab 64522009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
7f28086c 6453
6454 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
6455 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
6456 register_bb_in_sese, new_sese, free_sese): Moved.
6457 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
6458 outermost_loop_in_scop, build_scop_iteration_domain,
6459 expand_scalar_variables_ssa_name, get_vdef_before_scop,
6460 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
6461 Use loop_in_sese_p instead of loop_in_scop_p.
6462 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
6463 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
6464 (scopdet_basic_block_info): Fix bug in scop detection.
6465 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
6466 eq_loop_to_cloog_loop): Remove.
6467 (nb_loops_around_loop_in_scop, nb_loop
6468 ref_nb_loops): Moved here...
6469 * graphite.h (ref_nb_loops): ... from here.
6470 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
6471 (loop_domain_dim, loop_iteration_vector_dim): Remove.
6472 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
6473 * testsuite/gcc.dg/graphite/scop-19.c: New
6474
0eee494e 64752009-02-04 Paolo Bonzini <bonzini@gnu.org>
6476 Hans-Peter Nilsson <hp@axis.com>
6477
6478 PR rtl-optimization/37889
6479 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
6480 Move offset handling from PLUS to before the switch. Use new
6481 arguments when considering SYMBOL_REFs too.
6482 (rtx_addr_can_trap_p): Pass dummy offset and size.
6483 (enum may_trap_p_flags): Remove.
6484 (may_trap_p_1): Pass size from MEM_SIZE.
6485
6486 PR rtl-optimization/38921
6487 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
6488 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
6489 * rtlanal.c (may_trap_after_code_motion_p): Delete.
6490 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
6491
810c9e65 64922009-02-04 H.J. Lu <hongjiu.lu@intel.com>
6493
6494 AVX Programming Reference (January, 2009)
6495 * config/i386/sse.md (*vpclmulqdq): New.
6496
73d3c8f2 64972009-02-04 Jakub Jelinek <jakub@redhat.com>
6498
6499 PR tree-optimization/38977
6500 PR gcov-profile/38292
6db00048 6501 * calls.c (special_function_p): Disregard __builtin_ prefix.
73d3c8f2 6502
fe898823 65032009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
6504
6505 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
6506 non-indexable addresses even before reload.
6507
51428eb1 65082009-02-03 Joseph Myers <joseph@codesourcery.com>
6509
6510 PR c/29129
6511 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
6512 as having variable size. Do not give an error for unnamed
6513 parameters with [*] declarators. Give a warning for type names
6514 with [*] declarators and mark them as variable size.
6515 * c-parser.c (c_parser_sizeof_expression): Do not give an error
6516 for sizeof applied to [*] type names.
6517
4f4106ef 65182009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
6519
6520 PR C++/36607
6521 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
6522
5a371c77 65232009-02-03 Jakub Jelinek <jakub@redhat.com>
6524
6525 * gcc.c (process_command): Update copyright notice dates.
6526 * gcov.c (print_version): Likewise.
6527 * gcov-dump.c (print_version): Likewise.
6528 * mips-tfile.c (main): Likewise.
6529 * mips-tdump.c (main): Likewise.
6530
e5d71db4 65312009-02-03 Joseph Myers <joseph@codesourcery.com>
6532
6533 PR c/35433
6534 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
6535 for composite type involving a zero-length array type.
6536
14e882ea 65372009-02-03 Jakub Jelinek <jakub@redhat.com>
6538
fbcb9be4 6539 PR target/35318
6540 * function.c (match_asm_constraints_1): Skip over
6541 initial optional % in the constraint.
6542
14e882ea 6543 PR inline-asm/39059
6544 * c-parser.c (c_parser_postfix_expression): If fixed point is not
6545 supported, don't accept FIXED_CSTs.
6546 * c-decl.c (finish_declspecs): Error if fixed point is not supported
6547 and _Sat is used without _Fract/_Accum. Set specs->type to
6548 integer_type_node for cts_fract/cts_accum if fixed point is not
6549 supported.
6550
f4b3ca46 65512009-02-02 Catherine Moore <clm@codesourcery.com>
6552
a9c1f295 6553 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
f4b3ca46 6554
0a959c1d 65552009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
6556
6557 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
6558 (ABI_HAS_64BIT_SYMBOLS): Use it.
6559 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
6560
2f02c19f 65612009-02-02 Paul Brook <paul@codesourcery.com>
6562
6563 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
6564
cde8f1c8 65652009-02-02 Jakub Jelinek <jakub@redhat.com>
6566
6567 PR inline-asm/39058
6568 * recog.h (asm_operand_ok): Add constraints argument.
6569 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
6570 recurse on matching constraint.
6571 (check_asm_operands): Pass constraints as 3rd argument to
6572 asm_operand_ok. Don't look up matching constraint here.
6573 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
6574 to asm_operand_ok.
6575
e366f125 65762009-02-02 Ben Elliston <bje@au.ibm.com>
6577
6578 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
6579 TARGET_NARROW_VOLATILE_BITFIELD macro names.
6580
a3caf955 65812009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6582
a2853397 6583 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
6584 information. Remove some obsolete information. Reorganize.
6585
a3caf955 6586 * config/pa/fptr.c: Revert license to GPL 2.
6587 * config/pa/milli64.S: Likewise.
6588
8cae609c 65892009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
6590
6591 PR target/38904
6592 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
6593 LIBRARY name in, instead of hard-coding it.
6594 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
6595 extra target make frag to tmake_files according to EH model.
6596 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
6597 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
6598 frags that define makefile variable EH_MODEL appropriately.
6599 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
6600 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
6601 to "-sjlj" according to type of EH configured.
6602 (LIBGCC_SONAME): Concatenate it to shared library base name.
6603 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
6604 to "_sjlj" according to type of EH configured.
6605 (LIBGCC_SONAME): Concatenate it to shared library base name.
6606 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
6607 (SHLIB_LINK): Add missing semicolon to if-else construct.
6608 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
6609 string value of "pe_dll" command-line option.
6610 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
6611 (SHLIB_SONAME): Use it when overriding t-cygming default.
6612 (SHLIB_IMPLIB): Override t-cygming default.
6613 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
6614 string value of "pe_dll" command-line option.
6615
27ed8c87 66162009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
6617
6618 PR target/38952
6619 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
6db00048 6620 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
27ed8c87 6621
98de8b69 66222009-01-31 Richard Guenther <rguenther@suse.de>
6623
6624 PR tree-optimization/38937
6625 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
6626 computing the transitive closure.
6627
c019af4d 66282009-01-30 Richard Guenther <rguenther@suse.de>
6629
6630 PR tree-optimization/39041
6631 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
6632 Propagate variable indices only if the types match for this stmt.
6633
709cdea6 66342009-01-30 Jakub Jelinek <jakub@redhat.com>
6635
6636 PR target/39013
6637 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
6638 inline but never defined.
6639
a7a2dd08 66402009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
26e8b800 6641
6642 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
6643 (*insv_h_di_reg_extimm): New insn.
6644 (*insv_l<mode>_reg_extimm): New insn.
6645
66462009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
3b31ea78 6647
6648 * config/picochip/picochip.c (flag_conserve_stack): set
6649 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
6650 fconserve-stack. Reduce call-overhead used by inliner.
6651
26e8b800 66522009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
c45dd88a 6653
6654 PR/38157
6655 * common.opt (flag_conserve_stack): Initialised to zero.
6656
dbc128e8 66572009-01-30 Kai Tietz <kai.tietz@onevision.com>
6658
6659 PR/39002
6660 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
6661 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
6662 method.
6663
ac50b6ef 66642009-01-29 H.J. Lu <hongjiu.lu@intel.com>
6665
6666 * ira-color.c (allocno_reload_assign): Update comments.
6667 * regmove.c (regmove_optimize): Likewise.
6668
6669 * ra.h: Removed.
6670
3bef4012 66712009-01-29 Robert Millan <rmh@aybabtu.com>
6672
6673 * gcc/config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
6674 * gcc/config/i386/kopensolaris-gnu.h: New file. Undefine
6675 `MD_UNWIND_SUPPORT'.
6676 * gcc/config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
6677
82b19557 66782009-01-29 Kazu Hirata <kazu@codesourcery.com>
6679
6680 PR tree-optimization/39007
6681 * tree-loop-distribution.c (generate_builtin): Use
6682 recompute_dominator to compute the immediate dominator of the
6683 basic block just after the loop.
6684
a330630f 66852009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
53ae77bf 6686
6687 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
6688 (ASM_OUTPUT_DWARF_PCREL): Define.
6689
a330630f 66902009-01-29 Vladimir Makarov <vmakarov@redhat.com>
cf709bf6 6691
6692 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
6693 * doc/passes.texi: Remove entries about regclass, local-alloc, and
6694 global. Modify entries about regmove and IRA.
6695
6696 * ra-conflict.c: Remove the file.
6697
6698 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
6699
6700 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
6701 (pass_regclass_init): Rename to pass_reginfo_init.
6702
6703 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
6704
6705 * toplev.h (flag_ira): Remove.
6706
6707 * caller-save.c (setup_save_areas): Remove flag_ira.
6708
6db00048 6709 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
cf709bf6 6710
6711 * global.c: Remove the file.
6712
aca60c7b 6713 * opts.c (decode_options): Remove flag_ira.
cf709bf6 6714
6715 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
6716
6717 * regmove.c: Modify file description.
6718 (find_use_as_address, try_auto_increment): Define them only if
6719 AUTO_INC_DEC is defined.
6720 (replacement_quality, replace_in_call_usage, fixup_match_1,
6721 stable_and_no_regs_but_for_p): Remove.
6722 (reg_set_in_bb): Make it static.
6723 (regmove_optimize): Remove flag_ira and code which worked for
6724 !flag_ira.
6725
6726 * local-alloc.c: Remove the file.
6727
6728 * common.opt (fira): Remove.
6729
6730 * ira.c: Include except.h.
6731 (eliminable_regset): Move from global.c.
6732 (mark_elimination): Ditto. Remove flag_ira.
6733 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
6734 equiv_mem_modified, validate_equiv_mem_from_store,
6735 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
6736 contains_replace_regs, memref_referenced_p, memref_used_between_p,
6737 no_equiv, recorded_label_ref): Move from local-alloc.c.
6738 (update_equiv_regs): Ditto. Make it static.
6739 (print_insn_chain, print_insn_chains): Move it from global.c.
6db00048 6740 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
cf709bf6 6741 (build_insn_chain): Ditto. Make it static.
6742 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
6743 Rename to init_live_subregs.
6744 (gate_ira): Remove flag_ira.
6745
6746 * regclass.c: Rename reginfo.c. Change file description.
6747 (FORBIDDEN_INC_DEC_CLASSES): Remove.
a9c1f295 6748 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
cf709bf6 6749 (init_reg_sets_1): Remove code for evaluation of
6750 reg_class_superclasses and losing_caller_save_reg_set.
6751 (init_regs): Remove init_reg_autoinc.
6752 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
6753 ok_for_base_p_nonstrict): Remove.
6db00048 6754 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
cf709bf6 6755 (pass_regclass_init): Rename to pass_reginfo_init. Modify
6756 corresponding entries.
6757 (dump_regclass, record_operand_costs, scan_one_insn,
6758 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
6759 record_address_regs, auto_inc_dec_reg_p): Remove.
6760 (gt-regclass.h): Rename to gt-reginfo.h.
6761
6762 * rtl.h (dump_global_regs, retry_global_alloc,
6db00048 6763 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
cf709bf6 6764
6765 * Makefile.in (RA_H): Remove.
6766 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
6767 Rename regclass.o to reginfo.o.
6768 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
6769 gt-reginfo.h.
6770 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
6771 (GTFILES): Rename regclass.c to reginfo.c.
6772
6773 * passes.c (init_optimization_passes): Remove pass_local_alloc and
6db00048 6774 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
cf709bf6 6775
6776 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
6777 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
6778 Remove flag_ira.
a7a2dd08 6779 (finish_spills): Ditto. Remove code for !flag_ira.
89871bab 6780
237805dd 67812009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
b85ccd2c 6782
6783 PR middle-end/35854
6784 * doc/invoke.texi (rtl debug options): Complete rewrite.
6785 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
6786 to auto_inc_dec".
6787 * mode-switching.c (pass_mode_switching): Rename pass from
6788 "mode-sw" to "mode_sw".
6789 * except.c (pass_convert_to_eh_ranges): Rename pass from
6790 "eh-ranges" to "eh_ranges".
6791 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
6792 to "subreg1".
89871bab 6793
6794
de353418 67952009-01-29 Andrey Belevantsev <abel@ispras.ru>
6796 Alexander Monakov <amonakov@ispras.ru>
6797
6798 PR middle-end/38857
6799 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
6800 register.
6801 (move_exprs_to_boundary): Change return type and pass through
6802 should_move from move_op. Relax assert. Update usage ...
6803 (schedule_expr_on_boundary): ... here. Use should_move instead of
6804 cant_move.
6805 (move_op_orig_expr_found): Indicate that insn was disconnected from
6806 stream.
6807 (code_motion_process_successors): Do not call after_merge_succs
6808 callback if original expression was not found when traversing any of
6809 the branches.
6810 (code_motion_path_driver): Change return type. Update prototype.
6811 (move_op): Update comment. Add a new parameter (should_move). Update
6812 prototype. Set *should_move based on indication provided by
6813 move_op_orig_expr_found.
6814
2fdf186f 68152009-01-28 Pat Haugen <pthaugen@us.ibm.com>
6816
6817 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
6818 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
6819 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
6820 * config/rs6000/rs6000.c (rs6000_override_options): Default
6821 avoid-indexed-addresses on for Power6, off for everything else.
6822 (avoiding_indexed_address_p): New function.
6823 (rs6000_legitimize_address): Use it.
6824 (rs6000_legitimate_address): Likewise.
6825 * config/rs6000/rs6000.md (movXX_updateX): Likewise
6826
c6b3a2da 68272009-01-28 Kazu Hirata <kazu@codesourcery.com>
6828
6829 PR tree-optimization/38997
6830 * tree-loop-distribution.c (generate_memset_zero): Use
6831 POINTER_PLUS_EXPR for a pointer addition.
6832
21676467 68332009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
6834
6835 * config/s390/s390.md (bswap<mode>2): New pattern added.
6836
d3bada4b 68372009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
6838
6839 * config/s390/s390.md (*tls_load_31): Added type attribute.
6840
9925e185 68412009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
6842
6843 * config/s390/s390.md: Fix a few comments.
6844
94ab3c8a 68452009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
6846
6847 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
6848 (*tm<mode>_full): Fixed z10prop attribute.
6849 (*tst<mode>_extimm): Fixed z10prop attribute.
6850 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
6851 (*tstqiCCT_cconly): Fixed z10prop attribute.
6852 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
6853 (*movsi_larl): Fixed z10prop attribute.
6854 (*movsi_zarch): Fixed z10prop attribute.
6855 (*movsi_eas): Fixed z10prop attribute.
6856 (*movhi): Fixed z10prop attribute.
6857 (*movqi): Fixed z10prop attribute.
6858 (*movstrictqi): Fixed z10prop attribute.
6859 (*mov<mode>): Fixed z10prop attribute.
6860 (*movcc): Fixed z10prop attribute.
6861 (*sethighpartdi_64): Fixed z10prop attribute.
6862 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
6863 (*negdi2_sign_cc): Fixed z10prop attribute.
6864 (*negdi2_sign): Fixed z10prop attribute.
6865 (*absdi2_sign_cc): Fixed z10prop attribute.
6866 (*absdi2_sign): Fixed z10prop attribute.
6867 (*negabsdi2_sign_cc): Fixed z10prop attribute.
6868 (*negabsdi2_sign): Fixed z10prop attribute.
6869 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
6870 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
6871 (doloop_si64): Fixed z10prop attribute.
6872 (doloop_si31): Fixed z10prop attribute.
6873 (doloop_long): Fixed z10prop attribute.
6874 (indirect_jump): Fixed z10prop attribute.
6875 (nop): Fixed z10prop attribute.
6876 (main_base_64): Fixed z10prop attribute.
6877 (reload_base_64): Fixed z10prop attribute.
6878
d1b5f73a 68792009-01-28 Jakub Jelinek <jakub@redhat.com>
6880
6881 PR rtl-optimization/38740
a7a2dd08 6882 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
6883 if !optimize.
d1b5f73a 6884 * config/mips/mips.c (mips_reorg): Likewise.
6885
3dc4c394 68862009-01-28 Richard Guenther <rguenther@suse.de>
6887
6888 PR tree-optimization/38926
6889 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
6890 with the correct value id to a value.
6891 (do_regular_insertion): Use the value number of edoubleprime
6892 for the value number of the expr.
6893
6894 Revert
6895 2008-08-21 Richard Guenther <rguenther@suse.de>
6db00048 6896
c9e47fec 6897 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
6898 a PHI ask VN if it is already available.
6899 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
6900 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
3dc4c394 6901
61349811 69022009-01-28 Jakub Jelinek <jakub@redhat.com>
6903
6904 PR middle-end/38934
6905 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
6906 set to varying whenever max has TREE_OVERFLOW set, similarly
6907 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
6908
a98de126 69092009-01-28 Richard Guenther <rguenther@suse.de>
6910
6911 PR middle-end/38908
6912 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
6913 uninitialized aggregate uses in call arguments.
6914
7f70ef19 69152009-01-28 Paolo Bonzini <bonzini@gnu.org>
6916
6917 PR tree-optimization/38984
6918 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
6919 the nothing_id variable if -fno-delete-null-pointer-checks.
6920
8d4c7d80 69212009-01-28 Uros Bizjak <ubizjak@gmail.com>
6922
6923 PR target/38988
6924 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
6925 (set_got_offset_rex64): Ditto.
6926
2687629f 69272009-01-27 H.J. Lu <hongjiu.lu@intel.com>
6928
6929 PR target/38941
6930 * doc/extend.texi: Improve local variable with asm reg.
6931
7a6a48c9 69322009-01-27 Adam Nemet <anemet@caviumnetworks.com>
6933
6934 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
6935 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
6936 was not supplied then set warn_packed_bitfield_compat to the
6937 default value of 1.
6938 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
6939 against 1.
6940
57a28426 69412009-01-27 Richard Guenther <rguenther@suse.de>
6942
6943 PR tree-optimization/38503
6944 * cfgexpand.c (expand_gimple_basic_block): Ignore
6945 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
6946 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
6947 variables that cannot have TBAA applied.
6948 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
6949 statements.
6950
c9e47fec 69512009-01-27 Uros Bizjak <ubizjak@gmail.com>
9a7965a1 6952
6953 PR middle-end/38969
6954 * calls.c (initialize_argument_information): Do not wrap complex
6955 arguments in SAVE_EXPR.
6956
f1d36ba6 69572009-01-26 Andreas Tobler <a.tobler@schweiz.org>
6958
6959 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
c3f75928 6960 (INSTALL_LIBGCC): Revert typo commit.
f1d36ba6 6961
234294b2 69622009-01-26 Richard Guenther <rguenther@suse.de>
6963
6964 PR tree-optimization/38745
6965 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
6966 from special handling.
6967
1fdf9a6c 69682009-01-26 Richard Guenther <rguenther@suse.de>
6969
6970 PR tree-optimization/38745
6971 * tree-ssa.c (execute_update_addresses_taken): Do not include
6972 variables that cannot possibly be a register in not_reg_needs.
6973 Do not clear TREE_ADDRESSABLE on vars that may not become
6974 registers.
6975 * tree-ssa.c (update_alias_info_1): Include those in the set
6976 of addressable vars.
6977
f0e4d727 69782009-01-26 Richard Guenther <rguenther@suse.de>
6979
6980 PR middle-end/38851
6981 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
6982 * tree-ssa-dse.c: Include langhooks.h
6983 (execute_simple_dse): Remove stores with zero size.
6984
e7e7c0fe 69852009-01-24 Jakub Jelinek <jakub@redhat.com>
6986
6987 PR c/38957
6988 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
6989 as PLUS_EXPR.
6990
e6d46e27 69912009-01-24 Julian Brown <julian@codesourcery.com>
6992
6993 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
6994 config/arm/linux-atomic.c.
6995 * config/arm/linux-atomic.c: New.
6996
9a6bab39 69972009-01-24 Eric Botcazou <ebotcazou@adacore.com>
6998
6999 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
7000 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
7001 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
7002
1d86d4d7 70032009-01-24 H.J. Lu <hongjiu.lu@intel.com>
7004
7005 PR c/38938
d83d28c1 7006 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
1d86d4d7 7007 properly.
7008
8db3fb7b 70092009-01-24 Sebastian Pop <sebastian.pop@amd.com>
7010
7011 PR tree-optimization/38953
7012 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
7013 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
7014 (gloog): Split the exit of the scop when the scop exit is a loop exit.
7015 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
7016 changed the CFG.
7017
c52acdd2 70182009-01-24 Paul Brook <paul@codesourcery.com>
7019
7020 * config/arm/neon.md (neon_type): Move to arm.md.
7021 (neon_mov<VSTRUCT>): Add neon_type attribute.
7022 * config/arm/arm.md (neon_type): Move to here.
7023 (conds): Add "unconditioal" and use as default for NEON insns.
7024
f3d84bf8 70252009-01-24 Ben Elliston <bje@au.ibm.com>
7026
7027 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
7028 void *' warning from -Wc++-compat.
7029 * Makefile.in (dominance.o-warn): Remove.
7030
a330630f 70312009-01-23 Paolo Bonzini <bonzini@gnu.org>
cd30b839 7032
7033 PR tree-optimization/38932
7034 * fold-const.c (fold_unary_ignore_overflow): New.
7035 * tree.h (fold_unary_ignore_overflow): Declare.
7036 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
7037 * tree-ssa-sccvn.c (visit_reference_op_load,
7038 simplify_unary_expression): Likewise.
7039
9fd767c5 70402009-01-22 Adam Nemet <anemet@caviumnetworks.com>
7041
7042 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
7043 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
7044 regardless of their type.
7045 * c-common.c (handle_packed_attribute): Don't ignore packed on
7046 bitfields.
7047 * c.opt (Wpacked-bitfield-compat): New warning option.
7048 * stor-layout.c (place_field): Warn if offset of a field changed.
7049 * doc/extend.texi (packed): Mention the ABI change.
7050 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
7051 (Warning Options): Add it to the list.
7052
71ee8477 70532009-01-22 H.J. Lu <hongjiu.lu@intel.com>
7054
7055 * c-opts.c (c_common_post_options): Fix a typo in comments.
7056
1a07ca64 70572009-01-22 Steve Ellcey <sje@cup.hp.com>
7058
7059 PR middle-end/38615
7060 * gimplify.c (gimplify_init_constructor): Fix promotion of const
7061 variables to static.
7062 * doc/invoke.texi (-fmerge-all-constants): Update description.
7063
a6f6ff30 70642009-01-22 Uros Bizjak <ubizjak@gmail.com>
7065
7066 PR target/38931
7067 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
7068 (*movdi_1_rex64): Use type "mmx" for alternative 5.
7069
93fa3baa 70702009-01-22 Richard Earnshaw <rearnsha@arm.com>
7071
7072 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
7073 a word boundary.
7074 (LOCAL_ALIGNMENT): Similarly.
7075
da941808 70762009-01-22 Mark Shinwell <shinwell@codesourcery.com>
a6f6ff30 7077 Joseph Myers <joseph@codesourcery.com>
da941808 7078
7079 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
7080 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
7081 * config/arm/arm-tune.md: Regenerate.
7082 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
7083 -march=iwmmxt2.
7084
00bd398c 70852009-01-22 Mark Shinwell <shinwell@codesourcery.com>
7086
7087 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
7088 version number to five.
7089
b2694749 70902009-01-22 Dodji Seketeli <dodji@redhat.com>
7091
7092 PR c++/38930
aca60c7b 7093 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
b2694749 7094 * c-common.c (set_underlying_type): Likewise.
7095 (is_typedef_decl ): Likewise
7096 * tree.h: Likewise
7097 (set_underlying_type): Likewise.
7098 (is_typedef_type): Likewise.
7099
8aad8efd 71002009-01-21 Vladimir Makarov <vmakarov@redhat.com>
7101
7102 PR middle-end/38587
7103 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
7104 crossing setjmps.
7105
8f057ffc 71062009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
7107
7108 PR bootstrap/37660
7109 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
7110 (LIBGCC_SPEC): Don't define.
7111 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
7112
f92492f7 71132009-01-21 Uros Bizjak <ubizjak@gmail.com>
7114
7115 PR rtl-optimization/38879
7116 * alias.c (base_alias_check): Unaligned access via AND address can
7117 alias all surrounding object types except those with sizes equal
7118 or wider than the size of unaligned access.
7119
c973dc47 71202009-01-21 Dodji Seketeli <dodji@redhat.com>
7121
7122 PR c++/26693
aca60c7b 7123 * c-decl.c (clone_underlying_type): Move this ...
c973dc47 7124 * c-common.c (set_underlying_type): ... here.
f92492f7 7125 Also, make sure the function properly sets TYPE_STUB_DECL() on
c973dc47 7126 the newly created typedef variant type.
7127 (is_typedef_decl ): New entry point.
7128 * tree.h: Added a new member member_types_needing_access_check to
7129 struct tree_decl_non_common.
7130 (set_underlying_type): New entry point.
7131 (is_typedef_type): Likewise.
7132
6e93a4c8 71332009-01-21 Bingfeng Mei <bmei@broadcom.com>
7134
7135 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
7136 Check whether two instructions have memory references that
7137 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
7138 are helper functions for traversing.
7139 * alias.h (insn_alias_sets_confilict_p): New prototypes.
7140 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
7141 not to draw dependency edge for instructions with non-conflicting
7142 alias sets.
7143
a698e1ec 71442009-01-20 Joseph Myers <joseph@codesourcery.com>
7145
7146 PR other/38758
a7a2dd08 7147 * longlong.h: Update copyright years. Use soft-fp license notice.
7148 Sync __clz_tab declaration with glibc.
a698e1ec 7149
b84fdfe2 71502009-01-20 Steve Ellcey <sje@cup.hp.com>
7151
7152 PR target/30687
7153 * doc/extend.texi (syscall_linkage): New.
7154 (version_id): Modify.
7155
c4d6ac81 71562009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
f92492f7 7157 Richard Guenther <rguenther@suse.de>
c4d6ac81 7158
7159 PR tree-optimization/38747
7160 PR tree-optimization/38748
7161 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
7162 conversion if the base address is an indirect reference and the
7163 aliasing sets could cause issues.
7164
d3399492 71652009-01-20 Sebastian Pop <sebastian.pop@amd.com>
7166
89871bab 7167 * common.opt (fgraphite, fgraphite-identity): Add comment for
d3399492 7168 explaining why these options are not documented.
7169
aa3f15b6 71702009-01-20 Sebastian Pop <sebastian.pop@amd.com>
7171
7172 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
7173 gimple_call_lhs is NULL.
7174
a330630f 71752009-01-20 Paolo Bonzini <bonzini@gnu.org>
e077413c 7176
7177 PR target/38868
7178 * emit-rtl.c (adjust_address_1): Make sure memref is never
7179 overwritten.
7180
8c2fa2f7 71812009-01-20 Ben Elliston <bje@au.ibm.com>
7182
7183 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
f92492f7 7184 const qualifier from arg parameter. Remove unnecessary cast to char *.
8c2fa2f7 7185 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
7186 const qualifier from arg 2.
7187
94cd11b9 71882009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
7189
f92492f7 7190 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
94cd11b9 7191
c950adc6 71922009-01-19 Vladimir Makarov <vmakarov@redhat.com>
7193
7194 PR c/38869
7195 * rtl.h (reinit_regs): New prototype.
7196 * regclass.c: Include ira.h.
7197 (reinit_regs): New.
7198 * Makefile.in (regclass.o): Add ira.h.
7199 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
7200
02421213 72012009-01-18 H.J. Lu <hongjiu.lu@intel.com>
7202
7203 PR target/38736
7204 * c-common.c (handle_aligned_attribute): Use
7205 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
7206 default alignment value.
7207
7208 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
7209
7210 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
7211 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
7212
7213 * doc/extend.texi: Update __attribute__ ((aligned)). Document
7214 __BIGGEST_ALIGNMENT__.
7215
7216 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
7217
2ac47fdf 72182009-01-18 Richard Guenther <rguenther@suse.de>
7219
7220 PR tree-optimization/38819
7221 * tree-flow.h (operation_could_trap_helper_p): Declare.
7222 * tree-eh.c (operation_could_trap_helper_p): Export.
7223 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
7224 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
7225 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
7226 are about to insert a possibly trapping instruction and fail
7227 in this case.
7228
b338dafb 72292009-01-18 Andreas Schwab <schwab@suse.de>
7230
7231 * doc/install.texi (Configuration): Remove obsolete paragraph
7232 about use of --with-gnu-ld with --with-gnu-as.
7233
91f54ca3 72342009-01-18 Kazu Hirata <kazu@codesourcery.com>
7235
7236 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
7237 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
7238 Follow spelling conventions.
7239
76cd80c7 72402009-01-18 Ben Elliston <bje@au.ibm.com>
7241
7242 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
7243 C++ warning about implicit conversion from void * to struct
7244 bitmap_head_def *.
7245 (bitmap_obstack_free): Likewise for bitmap_element *.
df1573c4 7246 * Makefile.in (bitmap.o-warn): Remove.
76cd80c7 7247
89bcc083 72482009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
7249
7250 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
7251
3c560c26 72522009-01-17 Sebastian Pop <sebastian.pop@amd.com>
7253 Tobias Grosser <tobi.grosser@amd.com>
7254
7255 * graphite.c (graphite_trans_scop_block): Do not block single
7256 nested loops.
7257
e106fc2e 72582009-01-16 Alexandre Oliva <aoliva@redhat.com>
7259
7260 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
7261 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
7262 test with assertion.
7263
cd6342bd 72642009-01-16 Richard Guenther <rguenther@suse.de>
7265
7266 PR tree-optimization/38835
7267 PR middle-end/36227
7268 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
7269 and INT + PTR -> (INT)(PTR p+ INT) folding.
7270 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
7271
298bbd8d 72722009-01-16 Adam Nemet <anemet@caviumnetworks.com>
7273
7274 PR target/38554
7275 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
7276 the subreg from a lowpart subreg if it is also casting the value.
7277
9e5f07d3 72782009-01-16 Sebastian Pop <sebastian.pop@amd.com>
7279 Tobias Grosser <tobi.grosser@amd.com>
7280
7281 * graphite.c (compare_prefix_loops): New.
7282 (build_scop_canonical_schedules): Rewritten.
7283 (graphite_transform_loops): Move build_scop_canonical_schedules
7284 after build_scop_iteration_domain.
7285
35fb1eb0 72862009-01-16 Sebastian Pop <sebastian.pop@amd.com>
7287 Tobias Grosser <tobi.grosser@amd.com>
7288
89871bab 7289 * graphite.c (add_conditions_to_domain): Add the loops to
35fb1eb0 7290 the dimension of the iteration domain. Do copy the domain
7291 only when it exists.
7292 (build_scop_conditions_1): Do not call add_conditions_to_domain.
7293 (add_conditions_to_constraints): New.
7294 (can_generate_code_stmt, can_generate_code): Removed.
7295 (gloog): Do not call can_generate_code.
7296 (graphite_transform_loops): Call add_conditions_to_constraints
7297 after building the iteration domain.
7298
99e2edfd 72992009-01-16 Jakub Jelinek <jakub@redhat.com>
7300
7301 PR tree-optimization/38789
7302 * tree-ssa-threadedge.c
7303 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
7304 __builtin_constant_p.
7305
237805dd 73062009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cff725a2 7307
7308 * dce.c (delete_unmarked_insns): Reversed the order that insns are
7309 examined before deleting them.
89871bab 7310
daaa06b2 73112009-01-16 Richard Earnshaw <rearnsha@arm.com>
7312
7313 * function.c (aggregate_value_p): Correctly extract the function
7314 type from CALL_EXPR_FN lookup.
7315
237805dd 73162009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
e262db7d 7317
7318 * config/picochip/picochip.c (picochip_override_options): Revert
7319 CFI asm flag disable commited previously.
7320
d635c475 73212009-01-15 Sebastian Pop <sebastian.pop@amd.com>
7322 Tobias Grosser <tobi.grosser@amd.com>
7323 Jan Sjodin <jan.sjodin@amd.com>
7324
7325 * graphite.c (scan_tree_for_params): On substractions negate
7326 all the coefficients of the term.
7327 (clast_to_gcc_expression_red): New. Handle reduction expressions
7328 of more than two operands.
7329 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
7330 (get_vdef_before_scop): Handle also the case of default definitions.
7331
f5b7c8a5 73322009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
7333
7334 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
7335 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
7336 Also use them when walking CALL_INSN_FUNCTION_USAGE.
7337
9e1c1bf0 73382009-01-15 H.J. Lu <hongjiu.lu@intel.com>
7339 Joey Ye <joey.ye@intel.com>
7340
7341 PR middle-end/37843
7342 * cfgexpand.c (expand_stack_alignment): Don't update stack
7343 boundary nor check incoming stack boundary here.
7344 (gimple_expand_cfg): Update stack boundary and check incoming
7345 stack boundary here.
7346
237805dd 73472009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
66aca59d 7348
f92492f7 7349 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
89871bab 7350
eb940a48 73512009-01-14 Jakub Jelinek <jakub@redhat.com>
7352
7353 PR rtl-optimization/38245
7354 * calls.c (expand_call): Add stack arguments to
7355 CALL_INSN_FUNCTION_USAGE even for pure calls (when
7356 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
7357 in regs and partially in memory or BLKmode arguments.
7358 (emit_library_call_value_1): Add stack arguments to
7359 CALL_INSN_FUNCTION_USAGE even for pure calls (when
7360 ACCUMULATE_OUTGOING_ARGS).
7361 * dce.c: Include tm_p.h.
7362 (find_call_stack_args): New function.
7363 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
7364 argument.
7365 (mark_insn): Call find_call_stack_args for CALL_Ps.
7366 (prescan_insns_for_dce): Walk insns backwards in bb rather than
7367 forwards. Allocate and free arg_stores bitmap if needed, pass it
7368 down to deletable_insn_p, don't mark stores set in arg_stores
7369 bitmap, clear the bitmap at the beginning of each bb.
7370 * Makefile.in (dce.o): Depend on $(TM_P_H).
7371
26f62ff4 73722009-01-14 Michael Meissner <gnu@the-meissners.org>
7373
7374 PR target/22599
f92492f7 7375 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
7376 to make sure the insn is a conditional test (bug 22599). Reformat a
7377 few long lines.
26f62ff4 7378
87736b69 73792009-01-14 Sebastian Pop <sebastian.pop@amd.com>
7380
7381 PR middle-end/38431
7382 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
7383 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
7384 (gloog): Do not call cleanup_tree_cfg.
89871bab 7385 (graphite_transform_loops): Call cleanup_tree_cfg after all
87736b69 7386 scops have been code generated.
7387
4dbb1e0c 73882009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
7389 * doc/gty.texi (Invoking the garbage collector): Added new node
7390 and section documenting ggc_collect.
7391
48d49ced 73922009-01-14 Richard Guenther <rguenther@suse.de>
7393
7394 PR tree-optimization/38826
7395 PR middle-end/38477
7396 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
7397 initialization notes only if we actually emitted a warning.
7398 (intra_create_variable_infos): Add constraints for a result decl
7399 that is passed by hidden reference.
7400 (build_pred_graph): Mark all related variables non-direct on
7401 address-taking.
7402
bef7b1de 74032009-01-14 Nick Clifton <nickc@redhat.com>
7404
7405 * ira-conflicts.c: Include addresses.h for the definition of
7406 base_reg_class.
f92492f7 7407 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
7408 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
bef7b1de 7409
cab55469 74102009-01-13 Vladimir Makarov <vmakarov@redhat.com>
7411
7412 PR target/38811
7413 * Makefile.in (ira-lives.o): Add except.h.
7414
7415 * ira-lives.c: Include except.h.
7416 (process_bb_node_lives): Process can_throw_internal.
7417
cac5cd08 74182009-01-13 Jakub Jelinek <jakub@redhat.com>
7419
7420 PR rtl-optimization/38774
7421 * combine.c (simplify_set): When undoing cc_use change, don't do
7422 PUT_CODE on the newly created comparison, but instead put back the
7423 old comparison.
7424
309ef6b4 74252009-01-13 Joseph Myers <joseph@codesourcery.com>
7426
7427 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
7428 values. Remove duplicate arm8 entry.
7429
1ffa850c 74302009-01-13 Sebastian Pop <sebastian.pop@amd.com>
7431
7432 PR tree-optimization/38786
7433 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
7434 the SSA_NAME case of expand_scalar_variables_expr.
7435 Set the type of an expression to the type of its assign statement.
7436 (expand_scalar_variables_expr): Also gather the scalar computation
7437 used to index the memory access. Do not pass loop_p.
7438 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
7439 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
8d4c7d80 7440 the gimple_stmt_iterator where it inserts new code.
7441 Do not pass loop_p.
1ffa850c 7442 (copy_bb_and_scalar_dependences): Do not pass loop_p.
7443 (translate_clast): Update call to copy_bb_and_scalar_dependences.
7444
de540910 74452009-01-13 Sebastian Pop <sebastian.pop@amd.com>
7446
7447 * graphite.h (debug_value): Removed.
7448 * graphite.c (debug_value): Removed.
7449
3d1f6e40 74502009-01-13 Richard Earnshaw <rearnsha@arm.com>
7451
f92492f7 7452 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
7453 ldrd/strd with two 32-bit instructions.
3d1f6e40 7454
0f978633 74552009-01-13 Richard Earnshaw <rearnsha@arm.com>
7456
f92492f7 7457 * config/arm/arm.c (struct processors): Pass for speed down into
7458 cost helper functions.
0f978633 7459 (const_ok_for_op): Handle COMPARE and inequality nodes.
7460 (arm_rtx_costs_1): Rewrite.
7461 (arm_size_rtx_costs): Update prototype.
7462 (arm_rtx_costs): Pass speed down to helper functions.
7463 (arm_slowmul_rtx_costs): Rework cost calculations.
7464 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
7465 (arm_9e_rtx_costs): Likewise.
7466
d6c48eee 74672009-01-13 Uros Bizjak <ubizjak@gmail.com>
7468
7469 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
f92492f7 7470 relocations of local symbols wider than UNITS_PER_WORD are not valid.
d6c48eee 7471 (alpha_legitimize_address): Do not split local symbols wider than
7472 UNITS_PER_WORD into HIGH/LO_SUM parts.
7473
91e64380 74742009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
7475
7476 PR bootstrap/38580
7477 * gcc.c (process_command): Replace call to execvp with calls
7478 to pex_one and exit.
7479
4addc9bf 74802009-01-03 Anatoly Sokolov <aesok@post.ru>
7481
7482 PR target/29141
7483 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
7484 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
7485 variant for devices with 3-byte PC.
aca60c7b 7486 (__tablejump_elpm__): New.
4addc9bf 7487
f0d0d842 74882009-01-12 Jakub Jelinek <jakub@redhat.com>
7489
7490 PR c/32041
7491 * c-parser.c (c_parser_postfix_expression): Allow `->' in
7492 offsetof member-designator, handle it as `[0].'.
7493
55e0e460 74942009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7495
7496 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
7497 function when not using named sections on targets with named sections
7498 if branch distance is less than 262132.
7499
afb33771 75002009-01-12 Richard Earnshaw <rearnsha@arm.com>
7501
7502 * combine.c (combine_instructions): Recompute
7503 optimize_this_for_speed_p for each BB in the main combine loop.
7504
a6c1b5f0 75052009-01-12 Tomas Bily <tbily@suse.cz>
7506
7507 PR middlend/38385
d6c48eee 7508 * tree-loop-distribution.c (prop_phis): New function.
7509 (generate_builtin): Call prop_phis.
7510 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
a6c1b5f0 7511
3a43bfe9 75122009-01-12 Jakub Jelinek <jakub@redhat.com>
7513
7514 PR tree-optimization/38807
7515 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
7516 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
7517
95fb59aa 75182009-01-11 Adam Nemet <anemet@caviumnetworks.com>
7519
7520 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
7521 subreg of op0 to the original op0.
7522
237805dd 75232009-01-11 Laurent GUERBY <laurent@guerby.net>
e0b61fdb 7524
7525 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
89871bab 7526
a32384d7 75272009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
7528
7529 PR debug/7055
7530 * gcc/mips-tfile.c (parse_def): Fix parsing of def strings
7531 starting with digits.
7532
a9467ac5 75332009-01-10 Jakub Jelinek <jakub@redhat.com>
7534
7535 PR target/38695
7536 * config/arm/arm.c (arm_is_long_call_p): Don't call
7537 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
7538
100329af 75392009-01-09 Steven Bosscher <steven@gcc.gnu.org>
7540
7541 * regrename.c (regrename_optimize): Fix dumping.
7542 (find_oldest_value_reg): Preserve REG_POINTER.
7543 (copy_hardreg_forward_1): Likewise.
7544
51e52fe3 75452009-01-09 Diego Novillo <dnovillo@google.com>
7546
6db00048 7547 * gimple.h (struct gimple_statement_base) <uid>: Document
51e52fe3 7548 the restrictions on its use.
7549 (gimple_uid): Tidy.
7550 (gimple_set_uid): Tidy.
7551
e1e05028 75522009-01-09 Jakub Jelinek <jakub@redhat.com>
7553
7554 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
7555 zero guard even if align_bytes != 0 and count is smaller than
7556 size_needed.
7557
a330630f 75582009-01-09 Vladimir Makarov <vmakarov@redhat.com>
0c42b4f4 7559
7560 PR rtl-optimization/38495
d6c48eee 7561 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
0c42b4f4 7562 (add_range_and_copies_from_move_list): Print all added ranges.
7563 Add ranges to memory optimized destination.
7564
8f538fc3 75652009-01-09 Jakub Jelinek <jakub@redhat.com>
7566
ede11ffa 7567 PR target/38686
7568 PR target/38708
7569 * config/i386/i386.c (override_options): Reject
7570 -mstringop-strategy=rep_8byte with -m32.
7571 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
7572 to 1. Do count comparison against epilogue_size_needed at compile
7573 time even when count_exp was constant forced into register. For
7574 size_needed don't jump to epilogue, instead just avoid aligning
7575 and invoke the body algorithm. If need_zero_guard, add zero guard
7576 even if count is non-zero, but smaller than size_needed + number of
7577 bytes that could be stored for alignment.
7578 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
7579 to 1. If need_zero_guard, add zero guard even if count is non-zero,
7580 but smaller than size_needed + number of bytes that could be stored
7581 for alignment. Compare size_needed with epilogue_size_needed instead
7582 of desired_align - align, don't adjust size_needed, pass
7583 epilogue_size_needed to the epilogue expanders.
7584
8f538fc3 7585 PR c/35742
d6c48eee 7586 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
8f538fc3 7587
21a47bc9 75882009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7589
7590 * pa.c (last_address): Change to unsigned.
7591 (update_total_code_bytes): Change argument to unsigned. Don't
7592 check if insn addresses are set.
7593 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
7594 addresses are not set.
7595 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
7596
ce090c51 75972009-01-09 Nick Clifton <nickc@redhat.com>
7598
7599 * config/sh/symbian.c: Replace uses of DECL_INLINE with
7600 DECL_DECLARED_INLINE_P.
7601
4e7cb1c5 76022009-01-09 Jakub Jelinek <jakub@redhat.com>
7603
70b6a6e8 7604 PR middle-end/38347
7605 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
7606 GET_MODE (op0) in operand_subword_force calls.
7607
4e7cb1c5 7608 PR middle-end/38771
7609 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
7610 fold_convert arg0 operands to TREE_TYPE (op0) first.
7611
d0388252 76122009-01-08 Vladimir Makarov <vmakarov@redhat.com>
7613
7614 * params.def (ira-max-conflict-table-size): Decrease default value
7615 to 1000.
7616
12c697cd 76172009-01-08 Jakub Jelinek <jakub@redhat.com>
7618
7619 PR tree-optimization/37031
7620 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
7621 on parameter_set.
7622 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
7623 allocate it using gc instead of heap, use VEC_quick_push instead of
7624 VEC_safe_push.
7625 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
7626 instead of heap, use VEC_quick_push instead of VEC_safe_push.
7627 * tree-data-ref.h (struct access_matrix): Change matrix to gc
7628 allocated vector from heap allocated.
7629 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
7630 * tree-loop-linear.c (linear_transform_loops): Allocate nest
7631 vector only after perfect_loop_nest_depth call.
7632
59835a90 76332009-01-08 Sebastian Pop <sebastian.pop@amd.com>
7634 Jan Sjodin <jan.sjodin@amd.com>
7635
7636 PR tree-optimization/38559
7637 * graphite.c (debug_value, copy_constraint,
7638 swap_constraint_variables, scale_constraint_variable, ): New.
7639 (get_lower_bound, get_upper_bound): Removed.
7640 (graphite_trans_bb_strip_mine): Clean up this code that works
7641 only for constant number of iterations. Fully copy upper and
7642 lower bound constraints, not only the constant part of them.
7643 * graphite.h (debug_value): Declared.
7644
1c48f190 76452009-01-08 Ira Rosen <irar@il.ibm.com>
7646
7647 PR tree-optimization/37194
7648 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
89871bab 7649 Don't add the cost of cost model guard in prologue to scalar
1c48f190 7650 outside cost in case of known number of iterations.
7651
9538c1d1 76522009-01-07 Nathan Froyd <froydnj@codesourcery.com>
7653 Alan Modra <amodra@bigpond.net.au>
7654
7655 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
7656 non-word-aligned REG+CONST addressing.
7657
292add68 76582009-01-07 Uros Bizjak <ubizjak@gmail.com>
7659
7660 PR target/38706
7661 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
7662 free_after_compilation when outputting a thunk.
7663 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
7664 Do not call free_after_compilation here.
7665
bbc3ff90 76662009-01-07 Uros Bizjak <ubizjak@gmail.com>
7667
7668 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
bbc3ff90 7669 (ix86_valid_target_attribute_inner_p): Ditto.
7670
145bdf6a 76712009-01-07 Jan Sjodin <jan.sjodin@amd.com>
7672
7673 PR tree-optimization/38492
7674 PR tree-optimization/38498
7675 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
7676 * tree-chrec.h (scev_is_linear_expression): Declared.
7677 * graphite.c (graphite_cannot_represent_loop_niter): New.
7678 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
7679 (graphite_loop_normal_form): Use gcc_assert.
7680 (scan_tree_for_params): Use CASE_CONVERT.
7681 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
7682 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
7683 Use gcc_assert. Discard scops that contain unhandled cases.
7684 (build_scop_conditions): Return a boolean status for unhandled cases.
7685 (strip_mine_profitable_p): Print the loop number, not its depth.
7686 (is_interchange_valid): Pass the depth of the loop nest, don't
7687 recompute it wrongly.
7688 (graphite_trans_bb_block): Same.
7689 (graphite_trans_bb_block): Print tentative of loop blocking.
7690 (graphite_trans_scop_block): Do not print that the loop has been
7691 blocked.
7692 (graphite_transform_loops): Do not handle scops that contain condition
7693 scalar phi nodes.
7694
b49a1e34 76952009-01-07 H.J. Lu <hongjiu.lu@intel.com>
7696
7697 AVX Programming Reference (December, 2008)
7698 * config/i386/avxintrin.h (_mm256_stream_si256): New.
7699 (_mm256_stream_pd): Likewise.
7700 (_mm256_stream_ps): Likewise.
7701
7702 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
7703 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
7704 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
7705 (bdesc_special_args): Add __builtin_ia32_movntdq256,
7706 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
7707 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
7708 (ix86_expand_special_args_builtin): Likewise.
7709
7710 * config/i386/sse.md (AVXMODEDI): New.
7711 (avx_movnt<mode>): Likewise.
7712 (avx_movnt<mode>): Likewise.
7713 (<sse>_movnt<mode>): Remove AVX support.
7714 (sse2_movntv2di): Likewise.
7715
4f1351a2 77162009-01-07 Richard Guenther <rguenther@suse.de>
7717
7718 PR middle-end/38751
7719 * fold-const.c (extract_muldiv): Remove obsolete comment.
7720 (fold_plusminus_mult_expr): Undo MINUS_EXPR
7721 to PLUS_EXPR canonicalization for the canonicalization.
7722
aad359a1 77232009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
7724
7725 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
7726 hosted cross-compilers generating less efficient code.
7727
2061be83 77282009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
7729
7730 * function.h (rtl_data): Add a dbr_scheduled_p field.
7731 * reorg.c (dbr_schedule): Set it.
7732 (gate_handle_delay_slots): Check it.
7733 * config/mips/mips.c (mips_base_delayed_branch): Delete.
7734 (mips_reorg): Check flag_delayed_branch instead of
7735 mips_base_delayed_branch.
7736 (mips_override_options): Don't set mips_base_delayed_branch
7737 or flag_delayed_branch.
7738
6b806743 77392009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
7740
7741 PR rtl-optimization/38426.
7742 * ira.c (ira): Set current_function_is_leaf earlier.
7743
095050fc 77442009-01-06 Jakub Jelinek <jakub@redhat.com>
7745
7746 PR rtl-optimization/38722
7747 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
7748 too early, only set a flag and modify after last possible
7749 undo_all point.
7750
0c87fb2b 77512009-01-06 Janis Johnson <janis187@us.ibm.com>
7752
7753 PR c/34252
7754 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
7755 * real.c (decimal_single_format): Correct values of emin and emax.
7756 (decimal_double_format): Ditto.
7757 (decimal_quad_format): Ditto.
7758 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
7759 computation of DECnn_MIN and DECnn_MAX for corrected values of
7760 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
7761 __DECnn_MIN__, and adjust its computation for the corrected value
7762 of emin.
7763
710ab45a 77642009-01-06 Jan Hubicka <jh@suse.cz>
7765
7766 PR target/38744
f92492f7 7767 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
710ab45a 7768
0a46e111 77692009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
7770
7771 * doc/contrib.texi (Contributors): Slightly adjust the end note.
7772 Add Robert Clark to the list of testers.
7773
30095c10 77742009-01-06 Jan Hubicka <jh@suse.cz>
237805dd 7775 Kai Tietz <kai.tietz@onevision.com>
30095c10 7776
f92492f7 7777 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
7778 * config/i386/i386.c (ix86_expand_call): Add clobbers.
30095c10 7779
acb79b5c 77802009-01-06 Jan Hubicka <jh@suse.cz>
237805dd 7781 Kai Tietz <kai.tietz@onevision.com>
acb79b5c 7782
f92492f7 7783 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
7784 for w64 ABI.
7785 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
acb79b5c 7786 (ix86_nsaved_regs): Count only general purpose regs.
7787 (ix86_nsaved_sseregs): New.
7788 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
7789 to 16 for w64; compute padding and size of sse reg save area.
bbc3ff90 7790 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
7791 general purpose regs.
acb79b5c 7792 (ix86_emit_save_sse_regs_using_mov): New.
7793 (ix86_expand_prologue): Save SSE regs if needed.
7794 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
7795 (ix86_emit_restore_sse_regs_using_mov): New.
7796 (ix86_expand_epilogue): Save SSE regs if needed.
7797
90a81a4b 77982009-01-06 Jan Hubicka <jh@suse.cz>
237805dd 7799 Kai Tietz <kai.tietz@onevision.com>
90a81a4b 7800
f92492f7 7801 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
7802 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
7803 functions when accumulate outgoing args is off.
90a81a4b 7804
7521b07f 78052009-01-06 H.J. Lu <hongjiu.lu@intel.com>
7806
7807 PR bootstrap/38742
7808 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
7809 before using pseudos_have_intersected_live_ranges_p.
7810
7811 * ira-int.h (ira_assert): Always define.
7812
dbd61cd0 78132009-01-06 H.J. Lu <hongjiu.lu@intel.com>
7814
7815 AVX Programming Reference (December, 2008)
7816 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
7817 (_mm256_permute2_pd): Likewise.
7818 (_mm_permute2_ps): Likewise.
7819 (_mm256_permute2_ps): Likewise.
7820 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
7821 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
7822
7823 * config/i386/i386.c (ix86_builtins): Remove
7824 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
7825 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
7826 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
7827 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
7828 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
7829 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
7830 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
7831 __builtin_ia32_vpermil2ps256.
7832 (ix86_init_mmx_sse_builtins): Updated.
7833 (ix86_expand_args_builtin): Likewise.
7834
c4b36071 78352009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7836
dbd61cd0 7837 * pa.c (output_call): Relocate non-jump insns in the delay slot of
7838 long absolute calls when generating PA 2.0 code.
c4b36071 7839
95c83f01 78402009-01-05 Vladimir Makarov <vmakarov@redhat.com>
7841
7842 PR rtl-optimization/38583
7843 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
7844
7845 * params.def (ira-max-conflict-table-size): New.
7846
7847 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
89871bab 7848
95c83f01 7849 * ira.h (ira_conflicts_p): New external definition.
89871bab 7850
95c83f01 7851 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
7852 table. Report this. Return result of building.
7853 (ira_build_conflicts): Use ira_conflicts_p. Check result of
7854 building conflict table.
7855
bbc3ff90 7856 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
95c83f01 7857 (ira_color): Use ira_conflicts_p.
89871bab 7858
95c83f01 7859 * global.c: Include ira.h.
7860 (pseudo_for_reload_consideration_p, build_insn_chain): Use
7861 ira_conflicts_p.
7862
7863 * Makefile.in (global.o): Add ira.h.
89871bab 7864
95c83f01 7865 * ira-build.c (mark_all_loops_for_removal,
7866 propagate_some_info_from_allocno): New.
7867 (remove_unnecessary_allocnos): Call
7868 propagate_some_info_from_allocno.
7869 (remove_low_level_allocnos): New.
7870 (remove_unnecessary_regions): Add parameter. Call
7871 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
7872 parameter to remove_unnecessary_regions.
7873 (ira_build): Remove all regions but root if the conflict table was
7874 not built. Update conflict hard regs for allocnos crossing calls.
7875
7876 * ira.c (ira_conflicts_p): New global.
7877 (ira): Define and use ira_conflicts_p.
7878
7879 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
7880 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
bbc3ff90 7881 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
89871bab 7882
da279129 78832009-01-06 Ben Elliston <bje@au.ibm.com>
7884
7885 * gengtype-lex.l (YY_NO_INPUT): Define.
7886
7ec31215 78872009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
7888
7889 PR c/34911
da279129 7890 * c-common.c (handle_vector_size_attribute): Also reject
7891 BOOLEAN_TYPE types.
7ec31215 7892
d51c4d4c 78932009-01-05 Sebastian Pop <sebastian.pop@amd.com>
7894
7895 PR tree-optimization/38492
7896 * graphite.c (rename_map_elt, debug_rename_elt,
bbc3ff90 7897 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
7898 rename_map_elt_info, eq_rename_map_elts,
7899 get_new_name_from_old_name, bb_in_sese_p): Moved around.
d51c4d4c 7900 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
7901 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
7902 (sese_build_livein_liveouts): New.
7903 (new_sese, free_sese): New.
7904 (new_scop): Call new_sese.
7905 (free_scop): Call free_sese.
7906 (rename_variables_from_edge, rename_phis_end_scop): Removed.
7907 (register_old_new_names): Renamed register_old_and_new_names.
7908 (register_scop_liveout_renames, add_loop_exit_phis,
7909 insert_loop_close_phis, struct igp,
7910 default_liveout_before_guard, add_guard_exit_phis,
7911 insert_guard_phis, copy_renames): New.
7912 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
7913 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
7914 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
7915 (scop_adjust_phis_for_liveouts): New.
7916 (gloog): Call scop_adjust_phis_for_liveouts.
7917
7918 * graphite.h (struct sese): Documented. Added fields liveout,
bbc3ff90 7919 num_ver and livein.
d51c4d4c 7920 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
7921 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
7922 (struct scop): Added field liveout_renames.
7923 (SCOP_LIVEOUT_RENAMES): New.
7924
57c0fd3c 79252009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
7926
7927 PR tree-optimization/38510
7928 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
7929 (translate_clast): Call recompute_all_dominators before
7930 graphite_verify.
7931 (gloog): Call recompute_all_dominators before graphite_verify.
7932
79332009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
237805dd 7934 Jan Sjodin <jan.sjodin@amd.com>
57c0fd3c 7935
7936 PR tree-optimization/38500
7937 * graphite.c (create_sese_edges): Call fix_loop_structure after
7938 splitting blocks.
7939
237805dd 79402009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
e4c85211 7941
7942 * config.gcc: Add m32r*-*-rtems*.
7943 * config/m32r/rtems.h: New file.
7944
e7ae053d 79452009-01-05 Ben Elliston <bje@au.ibm.com>
7946
7947 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
7948 (.po.pox): Likewise.
7949 (po/gcc.pot): Likewise.
7950
aad5aaaf 79512009-01-04 David S. Miller <davem@davemloft.net>
7952
7953 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
7954 (STARTING_FRAME_OFFSET): Always set to zero.
7955
f323bb78 79562009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
7957
7958 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
7959 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
7960 fixed-point types, and vectors of the same.
7961
b73796fa 79622009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
7963
7964 * config/mips/sync.md (*mb_barrier): Rename to...
7965 (*memory_barrier): ...this.
7966
c17add59 79672009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
7968
7969 * doc/extend.texi (Function Attributes): Move @cindex after @item
6c6bce65 7970 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
c17add59 7971 and put in alphabetical order. Fix 'target' name and put in order.
7972 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
7973 typos.
7974
dc178856 79752009-01-04 Uros Bizjak <ubizjak@gmail.com>
7976
7977 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
7978 (memory_barrier): Expand as unspec instead of unspec_volatile.
7979 Remove mem:BLK from insn operands. Use Pmode scratch register.
7980 (*memory_barrier): Define as unspec instead of unspec_volatile.
7981 Use (match_dup 0) as input operand.
7982
7983 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
7984 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
7985 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
7986 scratch register. Remove operand 1.
7987 (*stbar): Define as unspec instead of unspec_volatile.
7988 Use (match_dup 0) as input operand, remove (const_int 8).
7989 (*membar): Define as unspec instead of unspec_volatile.
7990 Use (match_dup 0) as input operand, remove input operand 2.
7991
7992 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
7993 (memory_barrier): Expand as unspec instead of unspec_volatile.
7994 Remove mem:BLK from insn operands. Use Pmode scratch register.
7995 (*memory_barrier): Define as unspec instead of unspec_volatile.
7996 Use (match_dup 0) as input operand.
7997
7998 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
7999 Remove mem:BLK from insn operands. Use Pmode scratch register.
8000 Set volatile flag on operand 0.
8001 (*memory_barrier): New insn pattern.
8002
8003 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
8004 insn operands.
8005 (*memory_barrier): Use (match_dup 0) as input operand.
8006
8007 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
8008 Remove mem:BLK from insn operands. Use Pmode scratch register.
8009 Set volatile flag on operand 0.
bbc3ff90 8010 (*mb_internal): New insn pattern.
dc178856 8011
8012 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
8013
fef299ce 80142009-01-04 Steven Bosscher <steven@gcc.gnu.org>
8015
8016 PR middle-end/38586
8017 * function.c (struct temp_slot): Move to the section of the file
8018 that deals with temp slots. Remove field 'address'.
8019 (temp_slot_address_table): New hash table of address -> temp slot.
8020 (struct temp_slot_address_entry): New struct, items for the table.
8021 (temp_slot_address_compute_hash, temp_slot_address_hash,
8022 temp_slot_address_eq, insert_temp_slot_address): Support functions
8023 for the new table.
8024 (find_temp_slot_from_address): Rewrite to use the new hash table.
8025 (remove_unused_temp_slot_addresses): Remove addresses of temp
8026 slots that have been made available.
8027 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
8028 worker function for remove_unused_temp_slot_addresses.
8029 (assign_stack_temp_for_type): Don't clear the temp slot address list.
8030 Add the temp slot address to the address -> temp slot map.
8031 (update_temp_slot_address): Update via insert_temp_slot_address.
8032 (free_temp_slots): Call remove_unused_temp_slot_addresses.
8033 (pop_temp_slots): Likewise.
8034 (init_temp_slots): Allocate the address -> temp slot map, or empty
8035 the map if it is already allocated.
8036 (prepare_function_start): Initialize temp slot processing.
8037
961c8f72 80382009-01-04 Steven Bosscher <steven@gcc.gnu.org>
8039
8040 PR middle-end/38584
8041 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
8042 Calculate the size of all stack vars assuming no packing of stack
8043 vars will happen, replacing a quadratic algorithm with a linear one.
8044
c2ef487a 80452009-01-03 Jakub Jelinek <jakub@redhat.com>
8046
8047 PR target/38707
8048 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
8049 can't be used.
8050
d2472193 80512009-01-03 Diego Novillo <dnovillo@google.com>
8052
8053 * doc/contrib.texi: Update contributions.
8054
062b4460 80552009-01-03 Jakub Jelinek <jakub@redhat.com>
8056
6f52ebeb 8057 PR c++/38705
8058 * builtins.c (fold_builtin_memory_op): Give up if either operand
8059 is volatile. Set srctype or desttype to non-qualified version
8060 of the other type.
8061
062b4460 8062 PR c/38700
8063 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
8064 and FUNCTION_DECLs.
8065
237805dd 80662009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
7e009ff5 8067
8068 PR rtl-optimization/35805
8069 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
8070 problem if fast dce is able to remove any instructions.
8071 * dce.c (dce_process_block): Fix dump message.
89871bab 8072
c9f77b30 80732009-01-02 Mark Mitchell <mark@codesourcery.com>
8074
8075 PR 33649
8076 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
8077
e70f5f27 80782009-01-02 Jakub Jelinek <jakub@redhat.com>
8079
8080 PR middle-end/38690
8081 * tree-flow.h (op_code_prio, op_prio): New prototypes.
8082 * tree-pretty-print.c (op_code_prio): New function.
8083 (op_prio): No longer static. Use op_code_prio.
8084 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
8085 Use op_prio and op_code_prio to determine if () should be
8086 printed around operand(s) or not.
8087
8088 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
8089 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
8090 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
8091 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
8092 pp_character instead of pp_string for single letter printing.
8093
db8edef0 80942009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
8095
8096 * doc/extend.texi: Fix '#pragma GCC option' typo.
8097
237805dd 80982009-01-02 Richard Guenther <rguenther@suse.de>
6d37614e 8099
e6f4e61f 8100 * doc/install.texi (--enable-checking): Mention different
8101 default for stage1.
8102 (--enable-stage1-checking): Document.
6d37614e 8103
d3a42176 81042009-01-01 Andrew Pinski <pinskia@gmail.com>
8105
8106 PR middle-end/30142
8107 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
8108 case to be an error.
8109
5c8520a4 81102009-01-02 Ben Elliston <bje@au.ibm.com>
8111
8112 * config/fp-bit.h (pack_d): Constify argument.
8113 * config/fp-bit.c (makenan): Constify return type. Remove casts.
8114 (isnan): Constify argument.
8115 (isinf): Likewise.
8116 (iszero): Likewise.
8117 (pack_d): Likewise.
8118 (_fpadd_parts): Constify return type.
8119 (_fpmul_parts): Likewise.
8120 (_fpdiv_parts): Likewise.
8121
d241bf0d 81222009-01-01 Jakub Jelinek <jakub@redhat.com>
8123
8124 PR c/36489
8125 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
8126 warn about overwriting initializer with side-effects or
8127 -Woverride-init if !IMPLICIT.
8128 (output_init_element): Likewise. Pass IMPLICIT down to
8129 add_pending_init.
8130 (process_init_element): Add IMPLICIT argument. Pass it down
8131 to output_init_element.
8132 (push_init_element, pop_init_level, set_designator): Adjust
8133 process_init_element callers.
8134 (set_nonincremental_init, set_nonincremental_init_from_string):
8135 Adjust add_pending_init callers.
8136 (output_pending_init_elements): Adjust output_init_element callers.
8137 * c-tree.h (process_init_element): Adjust prototype.
8138 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
8139 process_init_element callers.
7dfbd804 8140
8141\f
8142Copyright (C) 2009 Free Software Foundation, Inc.
8143
8144Copying and distribution of this file, with or without modification,
8145are permitted in any medium without royalty provided the copyright
8146notice and this notice are preserved.