invoke.texi (Options for Debugging Your Program or GCC): Explain static numbering...
[gcc.git] / gcc / ChangeLog
1 2010-11-24 Basile Starynkevitch <basile@starynkevitch.net>
2
3 * doc/invoke.texi (Options for Debugging Your Program or GCC):
4 Explain static numbering of dump files.
5
6 2010-11-24 Joseph Myers <joseph@codesourcery.com>
7
8 * common.opt (user_vect_verbosity_level): New Variable entry.
9 (ftree-vectorizer-verbose=): Mark as UInteger.
10 * flag-types.h (enum vect_verbosity_levels): Move from enum
11 verbosity_levels in tree-vectorizer.h.
12 * opts.c: Don't include tree.h.
13 (vect_set_verbosity_level): Move from tree-vectorizer.c. Use
14 gcc_options parameter; take integer option argument.
15 (common_handle_option): Update call to vect_set_verbosity_level.
16 * tree-vectorizer.c (user_vect_verbosity_level): Remove.
17 (vect_set_verbosity_level): Move to opts.c.
18 (vect_verbosity_level, vect_print_dump_info): Update for change of
19 enum name.
20 * tree-vectorizer.h (enum verbosity_levels): Move to flag-types.h.
21 (vect_print_dump_info): Update for change of enum name.
22 * tree.h (vect_set_verbosity_level): Remove.
23 * Makefile.in (opts.o): Update dependencies.
24
25 2010-11-24 Jakub Jelinek <jakub@redhat.com>
26
27 PR middle-end/46629
28 * cfgexpand.c (maybe_cleanup_end_of_block): Test NEXT_INSN (insn)
29 instead of insn with any_condjump_p.
30
31 2010-11-24 Mingjie Xing <mingjie.xing@gmail.com>
32
33 * config/mips/loongson.md: Change the description comment of the file
34 and update the copyright years.
35 (define_insn "<u>div<mode>3): Add loongson3a support.
36 (define_insn "<u>mod<mode>3"): Likewise.
37 * config/mips/mips.md: Rename mul<mode>3_mul3_ls2ef to
38 mul<mode>3_mul3_loongson.
39 (define_expand "mul<mode>3"): Add TARGET_LOONGSON_3A.
40 (define_insn "mul<mode>3_mul3_loongson"): Add loongson3a support.
41
42 2010-11-23 Joseph Myers <joseph@codesourcery.com>
43
44 * common.opt (initial_max_fld_align, flag_debug_asm,
45 flag_dump_rtl_in_asm, flag_dump_all_passed, rtl_dump_and_exit,
46 flag_print_asm_name, graph_dump_format, help_printed,
47 help_columns, flag_opts_finished): New Variable entries.
48 (fdbg-cnt-list, fdbg-cnt=, fdebug-prefix-map=, frandom-seed,
49 frandom-seed=): Mark deferred.
50 (fsched-verbose=): Use UInteger and Var.
51 * flags.h (set_struct_debug_option, flag_print_asm_name,
52 rtl_dump_and_exit, flag_debug_asm, flag_dump_rtl_in_asm,
53 graph_dump_format): Don't declare here.
54 * haifa-sched.c (sched_verbose_param, fix_sched_param): Remove.
55 * opts-global.c: Include dbgcnt.h and debug.h.
56 (decode_options): Pass location to finish_options.
57 (handle_common_deferred_options): Check flag_dump_all_passed.
58 Handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list, OPT_fdebug_prefix_map_,
59 OPT_frandom_seed and OPT_frandom_seed_. Don't assert on
60 OPT_fstack_limit.
61 * opts.c: Don't include toplev.h, dbgcnt.h or debug.h.
62 (set_struct_debug_option): Add location_t parameter. Update
63 recursive call. Use error_at.
64 (default_options_optimization): Use error_at.
65 (finish_options): Add location_t parameter. Use
66 opts->x_flag_opts_finished instead of first_time_p. Use
67 opts->x_optimize instead of optimize. Use error_at. Pass
68 location to inform.
69 (print_filtered_help): Use opts->x_help_printed to track what
70 options have been printed.
71 (print_specific_help): Use opts->x_help_columns to track number of
72 columns.
73 (common_handle_option): Pass locations and gcc_options pointers to
74 more functions. Use warning_at instead of fnotice and warning.
75 Don't handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list or
76 OPT_fdebug_prefix_map_. Use error_at. Set
77 opts->x_initial_max_fld_align; don't set maximum_field_alignment.
78 Don't handle OPT_frandom_seed or OPT_frandom_seed_. Don't handle
79 OPT_fsched_verbose_.
80 (handle_param): Add location_r parameter. Use error_at.
81 (set_debug_level): Add location_r parameter. Use error_at and
82 warning_at.
83 (setup_core_dumping): Add diagnostic_context parameter.
84 (decode_d_option): Add gcc_options, location_t and
85 diagnostic_context parameters and use them instead of global
86 state. Use warning_at.
87 (enable_warning_as_error): Use error_at.
88 * opts.h (finish_options): Update prototype.
89 (set_struct_debug_option): Declare here.
90 * rtl.h (fix_sched_param): Remove.
91 * stor-layout.c (initial_max_fld_align): Remove.
92 * toplev.c (rtl_dump_and_exit, flag_print_asm_name,
93 graph_dump_format, flag_debug_asm, flag_dump_rtl_in_asm): Remove.
94 (process_options): Set maximum_field_alignment.
95 * tree.h (initial_max_fld_align) Don't declare here.
96 * Makefile.in (opts.o, opts-global.o): Update dependencies.
97
98 2010-11-23 Joseph Myers <joseph@codesourcery.com>
99
100 * flag-types.h (struct visibility_flags): Don't declare here.
101 * flags.h (strip_off_ending, fast_math_flags_set_p,
102 fast_math_flags_struct_set_p): Declare here.
103 (visibility_options): Don't declare here.
104 * opts-common.c (option_enabled, get_option_state): Move from
105 opts.c.
106 * opts-global.c: Include diagnostic.h instead of
107 diagnostic-core.h. Include tree.h, langhooks.h, lto-streamer.h
108 and toplev.h.
109 (const_char_p, ignored_options, in_fnames, num_in_fnames,
110 write_langs, complain_wrong_lang, postpone_unknown_option_warning,
111 print_ignored_options, unknown_option_callback,
112 post_handling_callback, lang_handle_option, add_input_filename,
113 read_cmdline_options, initial_lang_mask, init_options_once,
114 decode_cmdline_options_to_array_default_mask,
115 set_default_handlers, decode_options): Move from opts.c.
116 (print_ignored_options): Use warning_at instead of saving and
117 restoring input_location.
118 * opts.c: Include <signal.h> and <sys/resource.h>. Include rtl.h
119 instead of expr.h. Don't include langhooks.h, except.h or
120 lto-streamer.h. Add more comments on includes.
121 (strip_off_ending, setup_core_dumping, decode_d_option): Move from
122 toplev.c.
123 (visibility_options): Move to c-family/c-common.c.
124 (const_char_p, ignored_options, in_fnames, num_in_fnames,
125 write_langs, complain_wrong_lang, postpone_unknown_option_warning,
126 print_ignored_options, unknown_option_callback,
127 post_handling_callback, lang_handle_option, add_input_filename,
128 read_cmdline_options, initial_lang_mask, init_options_once,
129 decode_cmdline_options_to_array_default_mask,
130 set_default_handlers, decode_options): Move to opts-global.c.
131 (target_handle_option, default_options_optimization,
132 finish_options, common_handle_option): Remove static.
133 (option_enabled, get_option_state): Move to opts-common.c.
134 * opts.h (common_handle_option, target_handle_option,
135 finish_options, default_options_optimization): Declare.
136 * toplev.c: Don't include <signal.h> or <sys/resource.h>.
137 (setup_core_dumping, strip_off_ending, decode_d_option): Move to
138 opts.c.
139 * toplev.h (strip_off_ending, decode_d_option,
140 fast_math_flags_set_p, fast_math_flags_struct_set_p): Don't
141 declare here.
142 * Makefile.in (opts.o, opts-global.o): Update dependencies.
143
144 2010-11-23 Dave Korn <dave.korn.cygwin@gmail.com>
145
146 PR driver/42690
147 * gcc.c (LINK_COMMAND_SPEC): Remove hard-coded pass-through plugin
148 options, replace by call of pass-through-libs spec function to process
149 link_gcc_c_sequence spec.
150 (lto_libgcc_spec): Delete variable.
151 (static_specs[]): Remove related entry.
152 (static_spec_functions[]): Add new entry for pass-through-libs.
153 (main): Don't generate deleted lto_libgcc_spec.
154 (pass_through_libs_spec_func): New function to implement the new
155 pass-through-libs spec function.
156 * doc/invoke.texi (pass-through-libs): Document new spec function.
157
158 2010-11-23 Joseph Myers <joseph@codesourcery.com>
159
160 * doc/options.texi (Warning, Optimization): Document.
161
162 2010-11-23 Jan Hubicka <jh@suse.cz>
163
164 * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro.
165 (tree_decl_with_vis): Add implicit_section_name_p.
166 * targhooks.h (default_function_section): Declare.
167 * target.def (function_section): New hook.
168 * defaults.h (HOT_TEXT_SECTION_NAME,
169 UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
170 * predict.c (choose_function_section): Remove.
171 (estimate_bb_frequencies): Do not use choose_function_section.
172 * coretypes.h (enum node_frequency): Move here from cgraph.h
173 * cgraph.h (enum node_frequency): Remove.
174 * varasm.c (initialize_cold_section_name, unlikely_text_section,
175 unlikely_text_section_p): Remove.
176 (named_subsection_entry): New structure.
177 (get_text_section): New function.
178 (default_function_section): New function.
179 (function_section_1): Break out from ...; handle profile info.
180 (function_section): ... here.
181 (unlikely_text_section): Remove.
182 (unlikely_text_section_p): Use function_section_1.
183 (assemble_start_function): Do not initialize cold section.
184 (default_section_type_flags): Do not special case cold subsection.
185 (switch_to_section): Likewise.
186 * output.h (get_text_section): Define.
187 * config/i386/winnt.c: Do not special case cold section.
188 * config/darwin-protos.h (darwin_function_section): Declare.
189 * config/microblaze/microblaze.h (HOT_TEXT_SECTION_NAME,
190 UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
191 * config/ia64/hpux.h (HOT_TEXT_SECTION_NAME,
192 UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
193 (TARGET_ASM_FUNCTION_SECTION): Define to ia64_hpux_function_section.
194 * config/ia64/ia64.c (ia64_hpux_function_section): New function.
195 * config/darwin.c (machopic_select_section): Use
196 darwin_function_section.
197 (darwin_function_section): New function.
198 * config/darwin.h (HOT_TEXT_SECTION_NAME,
199 UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
200 (TARGET_ASM_FUNCTION_SECTION): Define.
201 * system.h (HOT_TEXT_SECTION_NAME,
202 UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Poison.
203
204 2010-11-23 Iain Sandoe <iains@gcc.gnu.org>
205
206 * config/darwin.h (LINK_COMMAND_SPEC_A): Use %(link_gcc_c_sequence).
207 LINK_GCC_C_SEQUENCE_SPEC: Define new macro.
208
209 2010-11-23 Jakub Jelinek <jakub@redhat.com>
210
211 PR middle-end/46499
212 * cfgexpand.c (maybe_cleanup_end_of_block): Remove also BARRIERs
213 following unconditional jumps.
214
215 2010-11-23 Richard Guenther <rguenther@suse.de>
216
217 * doc/md.texi (386 constraints): Clarify A constraint documentation.
218
219 2010-11-23 Basile Starynkevitch <basile@starynkevitch.net>
220 Jeremie Salvucci <jeremie.salvucci@free.fr>
221
222 * gengtype.c (enum typekind, struct options)
223 (struct nested_ptr_data, struct pair, NUM_PARAM)
224 (enum gc_used_num, struct type, UNION_P, UNION_OR_STRUCT_P):
225 Move to gengtype.h.
226 (string_type, scalar_nonchar, scalar_nonchar, scalar_char):
227 Remove static, add zero state_number.
228 (typedefs, structures, param_structs, variables): Remove static.
229 (create_option): Remove.
230 (create_string_option, create_type_option, create_nested_option):
231 New functions.
232 (create_nested_ptr_option): Use create_nested_option.
233 (note_variable, adjust_field_rtx_def, adjust_field_type): Call the
234 new create*option functions.
235 (process_gc_options): Adjust for discriminated option.
236 (output_mangled_typename): Handle TYPE_NONE.
237 (walk_type): Test option kinds.
238 (write_types_process_field): Handle TYPE_NONE and TYPE_ARRAY.
239 (write_func_for_structure, write_type, write_local, write_root)
240 (write_roots, note_def_vec, dump_options): Adjust for
241 discriminated option.
242
243 * gengtype.h
244 (typedefs, structures, param_structs, variables, enum typekind):
245 Move from gengtype.c
246 (enum option_kind): New discriminating enumeration.
247 (struct options): Becomes discriminated.
248 (struct nested_ptr_data): Nove from gengtype.c
249 (create_string_option, create_type_option, create_nested_option)
250 (create_nested_ptr_option): New functions
251 (struct pair, enum_gc_used_enum, NUM_PARAM, struct type, UNION_P)
252 (UNION_OR_STRUCT_P): Move from gengtype.c
253
254 * gengtype-parse.c (str_optvalue_opt, type_optvalue, option): Make
255 discriminated options.
256
257 2010-11-23 Richard Guenther <rguenther@suse.de>
258
259 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid doing work
260 twice. Avoid re-allocating the ops vector all the time.
261
262 2010-11-23 Richard Guenther <rguenther@suse.de>
263
264 * tree-ssa-alias.c (refs_may_alias_p_1): Avoid calls to
265 is_gimple_min_invariant, group tree code checks to allow
266 combining them.
267 (stmt_may_clobber_ref_p_1): Check for SSA_NAME instead
268 of is_gimple_reg.
269
270 2010-11-23 Eric Botcazou <ebotcazou@adacore.com>
271
272 * config.gcc (sparc*-*-*): Reorder.
273
274 2010-11-23 Basile Starynkevitch <basile@starynkevitch.net>
275
276 * gengtype.c (header_dot_h_frul, source_dot_c_frul):
277 Remove ENABLE_CHECKING around DBGPRINTF.
278
279 2010-11-22 Joseph Myers <joseph@codesourcery.com>
280
281 * common.opt (exit_after_options, write_symbols, debug_info_level,
282 use_gnu_debug_info_extensions): New Variable entries.
283 (fprofile-dir=): Use Var.
284 * flag-types.h (enum debug_info_level): Rename to enum
285 debug_info_levels.
286 * flags.h (write_symbols, debug_info_level,
287 use_gnu_debug_info_extensions): Remove declarations.
288 * opts.c (exit_after_options, write_symbols, debug_info_level):
289 Remove.
290 (set_struct_debug_option): Make static variables const.
291 (use_gnu_debug_info_extensions): Remove.
292 (set_debug_level, print_filtered_help, print_specific_help,
293 fast_math_flags_set_p): Take gcc_options parameters and use them
294 in place of global variables.
295 (print_filtered_help): Make new_help non-static.
296 (print_specific_help): Update call to print_filtered_help.
297 (common_handle_option): Update calls to print_specific_help. Use
298 gcc_options structure for more settings. Make --help table
299 const. Don't handle OPT_fprofile_dir_ here. Update calls to
300 set_debug_level.
301 * toplev.c (profile_data_prefix): Remove.
302 * toplev.h (profile_data_prefix, exit_after_options): Remove
303 declarations.
304 (fast_math_flags_set_p): Update prototype.
305 * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
306 Update call to fast_math_flags_set_p.
307
308 2010-11-22 Richard Henderson <rth@redhat.com>
309
310 PR target/46434
311 * config/crx/crx.c (crx_addr_reg): Rename from crx_addr_reg_p;
312 return the address register extracted.
313 (crx_decompose_address): Update the extracted address register.
314
315 2010-11-22 Dmitry Gorbachev <d.g.gorbachev@gmail.com>
316
317 PR driver/43335
318 * gcc.c (main): Don't crash when lto-wrapper program is not found.
319
320 2010-11-22 Joern Rennecke <amylaar@spamcop.net>
321
322 PR target/46608
323 * config/picochip/picochip.c (picochip_secondary_reload): Make static.
324 * config/picochip/picochip-protos.h: Don't include "target.h" .
325 (picochip_secondary_reload): Don't declare.
326
327 PR target/46613
328 * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Declare.
329 * config/m32c/m32c.c (m32c_conditional_register_usage): No longer
330 static.
331
332 2010-11-22 H.J. Lu <hongjiu.lu@intel.com>
333
334 PR bootstrap/46609
335 * gengtype.c (header_dot_h_frul): Check ENABLE_CHECKING.
336 (source_dot_c_frul): Likewise.
337
338 2010-11-22 Basile Starynkevitch <basile@starynkevitch.net>
339
340 * gimple-pretty-print.c (dump_bb_header): Add check for cfun.
341
342 2010-11-22 Paolo Bonzini <bonzini@gnu.org>
343
344 PR bootstrap/44970
345 * Makefile.in (fwprop.o) Add sparseset.h.
346 * fwprop.c: Include sparseset.h
347 (struct find_occurrence_data, find_occurrence_callback,
348 find_occurrence): Remove.
349 (active_defs, active_defs_check, register_active_defs,
350 update_df_init, update_uses): New.
351 (update_df): Rewrite.
352 (try_fwprop_subst, forward_propagate_asm): Add calls to
353 update_df_init and update_df.
354 (fwprop_init): Allocate active_defs and active_defs_check.
355 (fwprop_done): Free them.
356 (fwprop, fwprop_addr): Adjust comments.
357 * df.h (df_uses_create): Declare.
358 * df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
359 (df_ref_create): Return result of df_ref_create_structure directly.
360 (df_ref_create_structure): Call df_install_ref_incremental when
361 no collection_rec is passed.
362 (df_ref_record): Do not create multiword hard reg info when no
363 collection_rec is passed.
364 (df_uses_create): New.
365
366 2010-11-21 Uros Bizjak <ubizjak@gmail.com>
367
368 PR middle-end/43057
369 * fold-const.c (pedantic_non_lvalue_loc): Unshare x before
370 setting location.
371
372 2010-11-22 Richard Guenther <rguenther@suse.de>
373
374 * gimple-fold.c (maybe_fold_reference): When canonicalizing
375 MEM_REFs, preserve volatileness.
376 * cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL
377 addresses.
378
379 2010-11-22 Richard Guenther <rguenther@suse.de>
380
381 * tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks.
382
383 2010-11-22 Alexander Monakov <amonakov@ispras.ru>
384
385 PR rtl-optimization/45652
386 * alias.c (get_reg_base_value): New.
387 * rtl.h (get_reg_base_value): Add prototype.
388 * sel-sched.c (init_regs_for_mode): Use it. Don't use registers with
389 non-null REG_BASE_VALUE for renaming.
390
391 2010-11-22 Jeremie Salvucci <jeremie.salvucci@free.fr>
392 Basile Starynkevitch <basile@starynkevitch.net>
393
394 * gengtype.c: Include xregex.h and obstack.h
395 Added comments about role of get_output_file_with_visibility and
396 our regexpr machinery.
397 (frul_actionrout_t, struct file_rule_st): New.
398 (hader_dot_h_frul, source_dot_c_frul): New functions.
399 (NULL_REGEX, NULL_FRULACT): New.
400 (files_rules): New.
401 (matching_file_name_substitute): New function.
402 (get_output_file_with_visibility): Updated comments and rewritten
403 to use the new files_rules machinery.
404
405 * Makefile.in (XREGEX_H): Added variable.
406 (build/gengtype.o): Added dependencies for xregex.h and obstack.h
407
408 2010-11-21 Nathan Froyd <froydnj@codesourcery.com>
409
410 * system.h (FUNCTION_ARG_BOUNDARY): Really poison.
411
412 2010-11-21 Nathan Froyd <froydnj@codesourcery.com>
413
414 * target.def (conditional_register_usage): Define.
415 * reginfo.c (init_reg_sets_1): Call
416 targetm.conditional_register_usage.
417 * system.h (CONDITIONAL_REGISTER_USAGE): Poison.
418 * doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language
419 for making it a hook.
420 * doc/tm.texi: Regenerate.
421 * config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic...
422 * config/alpha/alpha.c (alpha_conditional_register_usage): ...here.
423 New function.
424 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
425 * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
426 * config/arc/arc.c (arc_conditional_register_usage): ...here.
427 New function.
428 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
429 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
430 * config/arm/arm.c (arm_conditional_register_usage): ...here.
431 New function.
432 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
433 * config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete.
434 * config/bfin/bfin-protos.h (conditional_register_usage): Delete.
435 * config/bfin/bfin.c (conditional_register_usage): Move code into...
436 (bfin_conditional_register_usage): ...here. New function.
437 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
438 * config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete.
439 * config/cris/cris-protos.h (cris_conditional_register_usage): Delete.
440 * config/cris/cris.c (cris_conditional_register_usage): Make static.
441 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
442 * config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment.
443 * config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete.
444 * config/frv/frv-protos.h (frv_conditional_register_usage): Delete.
445 * config/frv/frv.c (frv_conditional_register_usage): Make static.
446 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
447 * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
448 * config/h8300/h8300.c (h8300_conditional_register_usage): ...here.
449 New function.
450 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
451 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete.
452 * config/i386/i386-protos.h (ix86_conditional_register_usage): Delete.
453 * config/i386/i386.c (ix86_conditional_register_usage): Make static.
454 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
455 * config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete.
456 * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete.
457 * config/m32c/m32c.c (m32c_conditional_register_usage): Make static.
458 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
459 * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
460 * config/m32r/m32r.c (m32r_conditional_register_usage): ...here.
461 New function.
462 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
463 * config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
464 * config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
465 Delete.
466 * config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
467 static.
468 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
469 * config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete.
470 * config/mep/mep-protos.h (mep_conditional_register_usage): Delete.
471 * config/mep/mep.c (mep_conditional_register_usage): Make static.
472 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
473 * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete.
474 * config/mips/mips-protos.h (mips_conditional_register_usage): Delete.
475 * config/mips/mips.c (mips_conditional_register_usage): Make static.
476 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
477 * config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete.
478 * config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete.
479 * config/mmix/mmix.c (mmix_conditional_register_usage): Make static.
480 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
481 * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
482 * config/mn10300/mn10300.c (mn10300_conditional_register_usage):
483 ...here. New function.
484 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
485 * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic...
486 * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this...
487 * config/pa/pa.c (pa_conditional_register_usage): ...here.
488 New function.
489 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
490 * config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
491 * config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here.
492 New function.
493 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
494 * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
495 * config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
496 Delete.
497 * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
498 static.
499 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
500 * config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete.
501 * config/rx/rx-protos.h (rx_conditional_register_usage): Delete.
502 * config/rx/rx.c (rx_conditional_register_usage): Make static.
503 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
504 * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete.
505 * config/s390/s390-protos.h (s390_conditional_register_usage): Delete.
506 * config/s390/s390.c (s390_conditional_register_usage): Make static.
507 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
508 * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
509 * config/score/score.c (score_conditional_register_usage): ...here.
510 New function.
511 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
512 * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
513 * config/sh/sh.c (sh_conditional_register_usage): ...here.
514 New function.
515 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
516 * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
517 * config/sparc/sparc.c (sparc_conditional_register_usage): ...here.
518 New function.
519 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
520 * config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete.
521 * config/spu/spu-protos.h (spu_conditional_register_usage): Delete.
522 * config/spu/spu.c (spu_conditional_register_usage): Make static.
523 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
524 * config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
525 * config/v850/v850.c (v850_conditional_register_usage): ...here.
526 New function.
527 (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
528
529 2010-11-21 Jan Hubicka <jh@suse.cz>
530 Dominique d'Humieres <dominiq@lps.ens.ft>
531
532 PR target/46510
533 * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
534 finalize external decls.
535
536 2010-11-21 Joseph Myers <joseph@codesourcery.com>
537
538 * system.h (strerror): Poison.
539
540 2010-11-21 Richard Henderson <rth@redhat.com>
541
542 * config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
543 for infq/huge_valq.
544
545 2010-11-21 Richard Henderson <rth@redhat.com>
546
547 PR rtl-optimization/46571
548 * gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
549 (compute_hash_table_work): Use NONDEBUG_INSN_P.
550
551 2010-11-21 Paul Koning <ni1d@arrl.net>
552
553 * config/mips/pdp11.md (negsi2): Fix wrong code.
554
555 2010-11-21 Paul Koning <ni1d@arrl.net>
556
557 * config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
558 * config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
559
560 2010-11-21 Eric Botcazou <ebotcazou@adacore.com>
561
562 * config/mips/mips.c (machine_function): Rename load_label_length to
563 load_label_num_insns.
564 (mips_load_label_length): Rename to...
565 (mips_load_label_num_insns): ...this. Adjust to first renaming.
566 (mips_adjust_insn_length): Adjust to second renaming. Fix thinko.
567
568 2010-11-21 Uros Bizjak <ubizjak@gmail.com>
569
570 PR target/46533
571 * config/alpha/predicates.md (direct_call_operand): Return false
572 for !TARGET_SMALL_TEXT targets.
573
574 2010-11-20 Joseph Myers <joseph@codesourcery.com>
575
576 * doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
577 HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
578 (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA.
579 * doc/tm.texi: Regenerate.
580 * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
581 HANDLE_PRAGMA_WEAK): Poison.
582 * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
583 * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
584 * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
585 * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
586 * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
587 * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
588 * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
589 * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
590 (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
591 * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
592 * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
593 * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
594 * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
595 * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
596 * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
597 (HANDLE_PRAGMA_WEAK): Don't undefine.
598 * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
599 * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
600 * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
601 * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
602 * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
603 (HANDLE_PRAGMA_WEAK): Don't undefine.
604 * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
605 * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
606 (HANDLE_PRAGMA_PACK): Don't undefine.
607 * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
608 * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
609 * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
610 * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
611 * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
612 * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
613 (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
614 * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
615 * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
616 (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
617 * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
618 * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
619 * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
620 * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
621 * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
622 * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
623 * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
624
625 2010-11-20 Eric Botcazou <ebotcazou@adacore.com>
626
627 PR target/31100
628 * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
629 * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
630 * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
631
632 2010-11-20 Jan Hubicka <jh@suse.cz>
633
634 * cgraph.c (ld_plugin_symbol_resolution_names): New.
635 (dump_cgraph_node): Dump resolution.
636 * cgraph.h (ld_plugin_symbol_resolution_names): Declare.
637 (cgraph_comdat_can_be_unshared_p): Dclare.
638 * lto-streamer-out.c (produce_symtab): Use
639 cgraph_comdat_can_be_unshared_p.
640 * ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
641 (cgraph_comdat_can_be_unshared_p): New function based on logic
642 in cgraph_externally_visible_p.
643 (cgraph_externally_visible_p): Use it.
644 (varpool_externally_visible_p): Virtual tables can be unshared.
645 * varpool.c (dump_varpool_node): Dump resolution.
646
647 2010-11-20 Jan Hubicka <jh@suse.cz>
648
649 * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.
650
651 2010-11-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
652
653 PR other/46202
654 * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
655 (AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
656 shell quoting.
657 (STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
658 (install-strip): New target.
659 (STRIPPROG): New variable, exported if STRIP is set.
660 * doc/install.texi (Final install): Minor markup and code style
661 fixes. Document install-strip target.
662
663 2010-11-20 Paul Koning <ni1d@arrl.net>
664
665 * config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
666 pdp11_regno_reg_class): New functions.
667 * config/pdp11/pdp11.md (define_constants): Add register numbers.
668 * config/pdp11/pdp11.c (pdp11_regno_reg_class,
669 pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
670 functions.
671 * config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
672 frame pointer and argument pointer pseudo-registers.
673 (ARG_POINTER_REGNUM): Define.
674 (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
675 argument pointer.
676 (FIRST_PARM_OFFSET): Update for argument pointer.
677 (INITIAL_FRAME_POINTER_OFFSET): Delete.
678 (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
679 (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
680 frame pointer and argument pointer.
681
682 2010-11-20 Jakub Jelinek <jakub@redhat.com>
683
684 PR debug/46561
685 * tree-parloops.c (try_create_redunction_list): Ignore debug stmts
686 when looking for immediate uses.
687
688 PR tree-optimization/45830
689 * stmt.c (expand_switch_using_bit_tests_p): New function.
690 (expand_case): Use it.
691 * tree.h (expand_switch_using_bit_tests_p): New prototype.
692 * tree-switch-conversion.c (struct switch_conv_info): Add
693 bit_test_uniq, bit_test_count and bit_test_bb fields.
694 (check_range): Fix a comment.
695 (check_process_case): Compute bit_test_uniq and bit_test_count.
696 (create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
697 allocation.
698 (free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
699 (constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
700 (array_value_type): New function.
701 (build_one_array): Use it, if it returned different type,
702 fold_convert all constructor fields and convert back to the
703 wider type in the generated code.
704 (process_switch): Initialize bit_test_uniq, bit_test_count and
705 bit_test_bb fields. Don't optimize if expand_switch_using_bit_tests_p
706 returned true.
707
708 2010-11-19 Michael Matz <matz@suse.de>
709
710 PR tree-optimization/46077
711 * tree-chrec.c (eq_evolutions_p): Accept some expressions.
712
713 2010-11-19 Anatoly Sokolov <aesok@post.ru>
714
715 * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
716 * config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
717 function.
718 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
719
720 2010-11-19 Uros Bizjak <ubizjak@gmail.com>
721
722 * mode-switching.c (optimize_mode_switching): Use
723 FOR_BB_INSNS instead of open-coded loop.
724 * cfgrtl.c (redirect_branch_edge): Ditto.
725
726 2010-11-19 Joern Rennecke <amylaar@spamcop.net>
727
728 PR target/46436
729 * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
730 to accomodate 32 bit HOST_WIDE_INT.
731 (m68hc11_emit_logical): Remove unused variable insn.
732 (m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
733 this_insn_uses_iy before use.
734
735 PR target/46434
736 * config/crx/crx.c (crx_expand_epilogue): Remove unused variable.
737
738 2010-11-19 Joseph Myers <joseph@codesourcery.com>
739
740 PR c/46547
741 * c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
742 * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
743
744 2010-11-19 Michael Meissner <meissner@linux.vnet.ibm.com>
745
746 * doc/extend.texi (Function attributes): Document PowerPC target
747 attributes that are supported.
748 (Pragmas): Document that PowerPC now supports target pragmas.
749
750 * doc/options.texi (TargetVariable): Document TargetVariable,
751 HeaderInclude, and SourceInclude.
752
753 * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
754 mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
755 -ffp-contract=off.
756
757 * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
758 SourceInclude directives. Fix a cut+paste error with target save
759 enum variables. Sort enums in the structures after ints and
760 before shorts.
761 * opth-gen.awk: Ditto.
762
763 * configure.ac: Add support for HeaderInclude and SourceInclude option
764 directives to add the appropriate files to the dependency lists.
765 * configure: Regenerate.
766 * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
767 (OPTIONS_C_EXTRA): New variable for SourceInclude.
768 (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
769 (options.o): Add $(OPTIONS_C_EXTRA) dependency.
770 (gcc-options.o): Ditto.
771 * opt-include.awk: New awk script to handle HeaderInclude and
772 TargetInclude.
773
774 * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
775 gets saved in the target options.
776 * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
777 * config/rs6000/sysv4.opt (-mbit-align): Ditto.
778 (-mprototype): Ditto.
779 (-mbit-word): ditto.
780 (-mregnames): Ditto.
781 (-msecure-plt): Ditto.
782 (-mbss-plt): Ditto.
783 * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
784 (-mpowerpc-gfxopt): Ditto.
785 (-mmfcrf): Ditto.
786 (-mpopcntb): Ditto.
787 (-mfprnd): Ditto.
788 (-mcmpb): Ditto.
789 (-mmmfpgpr): Ditto.
790 (-maltivec): Ditto.
791 (-mhard-dfp): Ditto.
792 (-mmulhw): Ditto.
793 (-mdlmzb): Ditto.
794 (-mmultiple): Ditto.
795 (-mstring): Ditto.
796 (-mpopcntd): Ditto.
797 (-mfriz): Ditto.
798 (-mvsx): Ditto.
799 (-mno-update): Ditto.
800 (-mavoid-indexed-addresses): Ditto.
801 (-mtls-markers): Ditto.
802 (-msched-epilog): Ditto.
803 (-msched-prolog): Ditto.
804 (-maix-struct-return): Ditto.
805 (-msvr4-struct-return): Ditto.
806 (-mxl-compat): Ditto.
807 (-mrecip-precision): Ditto.
808 (-mfp-in-toc): Ditto.
809 (-msum-in-toc): Ditto.
810 (-mvrsave): Ditto.
811 (-mblock-move-inline-limit=): Ditto.
812 (-misel): Ditto.
813 (-mpaired): Ditto.
814 (-mlongcall): Ditto.
815 (-mgen-cell-microcode): Ditto.
816 (-mwarn-cell-microcode): Ditto.
817 (-mwarn-altivec-long): Ditto.
818 (-mprioritize-restricted-insns=): Ditto.
819 (-msingle-float): Ditto.
820 (-mdouble-float): Ditto.
821 (-msimple-fpu): Ditto.
822 (-mxilinx-fpu): Ditto.
823 * config/rs6000/aix64.opt (-mpe): Ditto.
824
825 * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
826 (rs6000_cpu): Move variable to be a target variable. Rename
827 cmodel to rs6000_current_cmodel because of macro conflict. Merge
828 -mdebug=<xxx> variables into a single int.
829 (rs6000_always_hint): Ditto.
830 (rs6000_sched_groups): Ditto.
831 (rs6000_align_branch_targets): Ditto.
832 (rs6000_sched_costly_dep): Ditto.
833 (rs6000_sched_insert_nops): Ditto.
834 (rs6000_long_double_type_size): Ditto.
835 (rs6000_ieeequad): Ditto.
836 (rs6000_altivec_abi): Ditto.
837 (rs6000_spe): Ditto.
838 (rs6000_spe_abi): Ditto.
839 (rs6000_float_gprs): Ditto.
840 (rs6000_darwin64_abi): Ditto.
841 (can_override_loop_align): Ditto.
842 (rs6000_sdata): Ditto.
843 (rs6000_tls_size): Ditto.
844 (rs6000_current_abi): Ditto.
845 (rs6000_traceback): Ditto.
846 (rs6000_alignment_flags): Ditto.
847 (rs6000_current_cmodel): Ditto.
848 (rs6000_recip_control): Ditto.
849 (rs6000_cpu_index): Ditto.
850 (rs6000_tune_index): Ditto.
851 (rs6000_debug): Ditto.
852 (rs6000_target_flags_explict): Ditto.
853
854 * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
855 declaration.
856
857 * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
858 cmodel. Change all uses.
859
860 * config/rs6000/rs6000.c (rs6000_always_hint): Move to
861 rs6000.opt. Combine -mdebug=<xxx> variables into a single int.
862 Rename cmodel to rs6000_current_cmodel.
863 (rs6000_sched_groups): Ditto.
864 (rs6000_align_branch_targets): Ditto.
865 (rs6000_sched_costly_dep): Ditto.
866 (rs6000_sched_insert_nops): Ditto.
867 (rs6000_long_double_type_size): Ditto.
868 (rs6000_ieeequad): Ditto.
869 (rs6000_altivec_abi): Ditto.
870 (rs6000_spe): Ditto.
871 (rs6000_spe_abi): Ditto.
872 (rs6000_float_gprs): Ditto.
873 (rs6000_darwin64_abi): Ditto.
874 (can_override_loop_align): Ditto.
875 (rs6000_sdata): Ditto.
876 (rs6000_tls_size): Ditto.
877 (rs6000_current_abi): Ditto.
878 (rs6000_traceback): Ditto.
879 (rs6000_alignment_flags): Ditto.
880 (rs6000_current_cmodel): Ditto.
881 (rs6000_recip_control): Ditto.
882 (rs6000_cpu_index): Ditto.
883 (rs6000_tune_index): Ditto.
884 (rs6000_debug): Ditto.
885 (rs6000_target_flags_explict): Ditto.
886 (rs6000_sched_insert_nops_str): Make static.
887 (rs6000_sched_costly_dep_str): Ditto.
888 (rs6000_recip_name): Ditto.
889 (rs6000_abi_name): Ditto.
890 (rs6000_sdata_name): Ditto.
891 (enum rs6000_traceback_name): Move to rs6000-opts.h.
892 (rs6000_parse_tls_size_option): Delete.
893 (rs6000_valid_attribute_p): New function for target attributes and
894 pragmas.
895 (rs6000_function_specific_save): Ditto.
896 (rs6000_function_specific_restore): Ditto.
897 (rs6000_function_specific_print): Ditto.
898 (rs6000_can_inline_p): Ditto.
899 (rs6000_set_current_function): Ditto.
900 (rs6000_inner_target_options): Ditto.
901 (rs6000_debug_target_options): Ditto.
902 (rs6000_pragma_target_parse): Ditto.
903 (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
904 attributes and pragmas.
905 (TARGET_OPTION_SAVE): Ditto.
906 (TARGET_OPTION_RESTORE): Ditto.
907 (TARGET_OPTION_PRINT): Ditto.
908 (TARGET_CAN_INLINE_P): Ditto.
909 (TARGET_SET_CURRENT_FUNCTION): Ditto.
910 (POWER_MASKS): Move to file level scope from the
911 rs6000_option_override_internal function.
912 (POWERPC_MASKS): Ditto.
913 (ISA_*_MASKS): Ditto.
914 (struct rs6000_ptt): Ditto.
915 (processor_target_table): Ditto.
916 (rs6000_cpu_name_lookup): Map cpu name to an index in
917 processor_target_table.
918 (rs6000_debug_reg_global): Print more information on processor
919 options for -mdebug=reg.
920 (rs6000_init_hard_regno_mode_ok): Add support for target
921 attributes and pragmas. Merge all -mdebug=<xxx> fields into one.
922 Allow -mdebug=val1,val2. Rename cmodel variable.
923 (rs6000_option_override_internal): Ditto.
924 (rs6000_option_override): Ditto.
925 (rs6000_handle_option): Ditto.
926 (rs6000_conditional_register_usage): Add debug trace message.
927 (struct rs6000_opt_mask): New for target attribute/pragma support.
928 (rs6000_opt_masks): Ditto.
929 (struct rs6000_opt_var): Ditto.
930 (rs6000_opt_vars): Ditto.
931 (rs6000_previous_function): Ditto.
932
933 * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
934 wasn't already included.
935 (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
936 (enum processor_type): Ditto.
937 (rs6000_cpu): Ditto.
938 (enum fpu_type_t): Ditto.
939 (fpu_type): Ditto.
940 (enum rs6000_dependence_cost): Ditto.
941 (enum rs6000_nop_insertion): Ditto.
942 (enum group_termination): Ditto.
943 (rs6000_long_double_type_size): Ditto.
944 (rs6000_ieeequad): Ditto.
945 (rs6000_altivec_abi): Ditto.
946 (rs6000_spe_abi): Ditto.
947 (rs6000_spe): Ditto.
948 (rs6000_float_gprs): Ditto.
949 (rs6000_alignment_flags): Ditto.
950 (rs6000_sched_insert_nops): Ditto.
951 (enum rs6000_vector): Ditto.
952 (enum rs6000_abi): Ditto.
953 (rs6000_current_opt): Ditto.
954 (rs6000_debug_*): Delete.
955 (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
956 (TARGET_DEBUG*): Ditto.
957
958 * config/rs6000/rs6000-opts.h: New header file to define the enums
959 that are used in target variables that are now defined in rs6000.opt.
960
961 * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
962 rs6000-opts.h.
963 (rs6000_sdata): Ditto.
964 (rs6000_abi_name): Delete.
965 (rs6000_sdata_name): Ditto.
966 (rs6000_tls_size_string): Ditto.
967
968 2010-11-19 Joseph Myers <joseph@codesourcery.com>
969
970 * common.opt (debug_struct_ordinary, debug_struct_generic): New
971 Variable entries.
972 * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
973 should_emit_struct_debug): Move from opts.c.
974 * flag-types.h (enum debug_struct_file): Move from opts.c.
975 * flags.h (should_emit_struct_debug): Remove.
976 (base_of_path): Declare.
977 (set_struct_debug_option): Add gcc_options parameter.
978 * optc-gen.awk, opth-gen.awk: Handle array variables.
979 * opts.c (enum debug_struct_file, debug_struct_ordinary,
980 debug_struct_generic): Remove.
981 (set_struct_debug_option): Add gcc_options parameter.
982 (base_of_path): Remove static.
983 (main_input_basename, main_input_baselength, matches_main_base,
984 dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
985 Remove.
986 * toplev.c (main_input_basename, main_input_baselength): Define
987 here.
988 * toplev.h (main_input_basename, main_input_baselength): Declare
989 here.
990
991 2010-11-19 Joseph Myers <joseph@codesourcery.com>
992
993 * common.opt (flag_instrument_functions_exclude_functions,
994 flag_instrument_functions_exclude_files): New Variable definitions.
995 * flags.h (flag_instrument_functions_exclude_p): Don't declare.
996 * gimplify.c (char_p): Declare type and vectors.
997 (flag_instrument_functions_exclude_p): Moved from opts.c. Make static.
998 * opts.c (flag_instrument_functions_exclude_functions,
999 flag_instrument_functions_exclude_files): Remove.
1000 (add_comma_separated_to_vector): Take void **.
1001 (flag_instrument_functions_exclude_p): Move to gimplify.c.
1002 (common_handle_option): Use options structure for
1003 -finstrument-functions-exclude- options.
1004
1005 2010-11-19 Joseph Myers <joseph@codesourcery.com>
1006
1007 * doc/options.texi (Var): Document effects of Defer.
1008 (Defer): Document.
1009 * opt-functions.awk (var_type, var_set): Handle deferred options.
1010 * opts-common.c (set_option): Handle CLVC_DEFER.
1011 * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
1012 fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
1013 fstack-limit-symbol=): Mark as deferred.
1014 * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
1015 plugin.h.
1016 (print_filtered_help): Don't report state of CLVC_DEFER options.
1017 (common_handle_option): Move code for OPT_fcall_used_,
1018 OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
1019 OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
1020 OPT_fstack_limit_symbol_ to opts-global.c.
1021 (option_enabled, get_option_state): Handle CLVC_DEFER.
1022 * opts.h: Include vec.h.
1023 (enum cl_var_type): Add CLVC_DEFER.
1024 (cl_deferred_option): Define type and vectors.
1025 (handle_common_deferred_options): Declare.
1026 * opts-global.c: New.
1027 * toplev.c (toplev_main): Call handle_common_deferred_options
1028 * Makefile.in (OPTS_H): Include $(VEC_H).
1029 (OBJS-common): Include opts-global.o.
1030 (opts.o): Update dependencies.
1031 (opts-global.o): Add dependencies.
1032
1033 2010-11-19 Nicola Pero <nicola.pero@meta-innovation.com>
1034
1035 * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
1036 to objc_declare_protocols.
1037
1038 2010-11-19 Richard Guenther <rguenther@suse.de>
1039
1040 PR lto/45789
1041 * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
1042 IDENTIFIERs do not stream TREE_TYPE.
1043 * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
1044
1045 2010-11-19 Christian Borntraeger <borntraeger@de.ibm.com>
1046
1047 * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
1048
1049 2010-11-19 Jakub Jelinek <jakub@redhat.com>
1050
1051 PR target/45870
1052 * dwarf2out.c (const_ok_for_output_1): Don't complain about
1053 non-delegitimized TLS UNSPECs.
1054
1055 2010-11-18 Jack Howarth <howarth@bromo.med.uc.edu>
1056 Ian Lance Taylor <iant@google.com>
1057
1058 * config/darwin-c.c (darwin_additional_format_types): Export.
1059
1060 2010-11-18 Paul Koning <ni1d@arrl.net>
1061
1062 * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
1063 pointer.
1064
1065 2010-11-18 Paul Koning <ni1d@arrl.net>
1066
1067 * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
1068 * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
1069 * config/pdp11/pdp11.opt (-mabshi): Delete.
1070
1071 2010-11-19 Mingjie Xing <mingjie.xing@gmail.com>
1072
1073 * resource.h (struct resources): Fix typo in the comment.
1074
1075 2010-11-19 Uros Bizjak <ubizjak@gmail.com>
1076
1077 PR target/46546
1078 * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
1079
1080 2010-11-18 Richard Henderson <rth@redhat.com>
1081
1082 PR middle-end/46515
1083 * function.c (maybe_copy_prologue_epilogue_insn): Rename from
1084 maybe_copy_epilogue_insn; handle prologue insns as well.
1085 * rtl.h, cfglayout.c: Update for rename.
1086 * recog.c (peep2_attempt): Copy prologue/epilogue data for
1087 RTX_FRAME_RELATED_P insns.
1088
1089 2010-11-18 Jakub Jelinek <jakub@redhat.com>
1090
1091 PR middle-end/46534
1092 * builtins.c (fold_builtin_printf): Don't copy and modify string
1093 before build_string_literal, instead modify what
1094 build_string_literal returned.
1095
1096 2010-11-18 Nathan Froyd <froydnj@codesourcery.com>
1097
1098 PR c/33193
1099 * c-typeck.c (build_unary_op): Call build_real_imag_expr for
1100 REALPART_EXPR and IMAGPART_EXPR.
1101
1102 2010-11-18 Richard Guenther <rguenther@suse.de>
1103
1104 PR tree-optimization/46172
1105 * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
1106 function.
1107 (slpeel_tree_peel_loop_to_edge): Call it.
1108
1109 2010-11-18 Jeff Law <law@redhat.com>
1110
1111 PR middle-end-optimization/46297
1112 * postreload.c (reload_combine_note_store): Deal with embedded
1113 side effects in MEM expressions.
1114
1115 2010-11-18 Richard Guenther <rguenther@suse.de>
1116
1117 PR lto/45089
1118 * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
1119 when checking is not enabled.
1120
1121 2010-11-18 Richard Guenther <rguenther@suse.de>
1122
1123 PR lto/46525
1124 * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
1125 type leaders.
1126 (gimple_register_canonical_type): Also cache the canoncial type
1127 for non type leaders.
1128
1129 2010-11-18 Richard Guenther <rguenther@suse.de>
1130
1131 * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
1132
1133 2010-11-18 Alexander Monakov <amonakov@ispras.ru>
1134
1135 PR middle-end/46518
1136 * sel-sched-ir.c (init_expr): Use the correct type for
1137 target_available.
1138 * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
1139
1140 2010-11-17 Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
1141
1142 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
1143 as well as -mrelocatable at the same time.
1144
1145 2010-11-17 Quentin Neill <quentin.neill.gnu@gmail.com>
1146
1147 PR target/46422
1148 * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
1149 Call the clz builtin.
1150
1151 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
1152 Steve Ellcey <sje@cup.hp.com>
1153
1154 PR middle-end/31490
1155 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
1156 if section attribute used.
1157
1158 2010-11-17 Jan Hubicka <jh@suse.cz>
1159
1160 * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
1161 expand errno setting variant when optimizing for size.
1162
1163 2010-11-17 Eric Botcazou <ebotcazou@adacore.com>
1164
1165 * postreload.c (reload_combine): Call control_flow_insn_p only once.
1166 Reverse backward loop. Fix formatting issues.
1167
1168 2010-11-17 Paolo Bonzini <bonzini@gnu.org>
1169
1170 * c-parser.c (c_token_is_qualifier,
1171 c_parser_next_token_is_qualifier): New.
1172 (c_parser_declaration_or_fndef, c_parser_struct_declaration):
1173 Improve error message on specs->tagdef_seen_p.
1174 (c_parser_struct_or_union_specifier): Improve error recovery.
1175 (c_parser_declspecs): Move exit condition on C_ID_ID early.
1176 Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
1177 using c_parser_next_token_is_qualifier; extend it to cover
1178 a ctsk_tagdef typespec and !typespec_ok in general.
1179
1180 2010-11-17 Richard Guenther <rguenther@suse.de>
1181
1182 * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
1183 (gimple_mod_pow2_value_transform): Likewise.
1184 (gimple_mod_subtract_transform): Likewise.
1185
1186 2010-11-17 Richard Guenther <rguenther@suse.de>
1187
1188 PR lto/46504
1189 * gimple.c (gimple_register_canonical_type): Make sure to only
1190 make type leaders canonical types.
1191
1192 2010-11-17 Michael Matz <matz@suse.de>
1193
1194 * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
1195 TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
1196 TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
1197 TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
1198 * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
1199 (pass_build_ssa): ... but here.
1200 * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
1201 * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
1202 * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
1203 * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
1204 * predict.c (rebuild_frequencies): Ditto.
1205 * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
1206 * emit-rtl.c (verify_rtl_sharing): Ditto.
1207 * tree-cfgcleanup.c (repair_loop_structures): Ditto.
1208 * tree-ssa-live.c (remove_unused_locals): Ditto.
1209 * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
1210 * tree-ssa.c (pass_early_warn_uninitialized,
1211 execute_update_addresses_taken, pass_update_address_taken): Ditto.
1212 * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
1213 pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
1214 * passes.c (pass_postreload, execute_todo): Ditto.
1215 * tree-ssanames.c (pass_release_ssa_names): Ditto.
1216
1217 2010-11-17 Joseph Myers <joseph@codesourcery.com>
1218
1219 * doc/invoke.texi (-dy): Remove.
1220 * langhooks-def.h (lhd_do_nothing_i): Don't declare.
1221 (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
1222 * langhooks.c (lhd_do_nothing_i): Remove.
1223 * langhooks.h (lang_hooks.parse_file): Take no arguments.
1224 * toplev.c (set_yydebug): Remove.
1225 (compile_file): Update call to lang_hooks.parse_file.
1226 (decode_d_option): Don't handle -dy.
1227
1228 2010-11-17 Jakub Jelinek <jakub@redhat.com>
1229
1230 PR rtl-optimization/46440
1231 * combine.c (update_cfg_for_uncondjump): When changing
1232 an indirect jump into unconditional jump, remove BARRIERs
1233 from bb's footer.
1234
1235 2010-11-17 Joseph Myers <joseph@codesourcery.com>
1236
1237 * opts.c (target_handle_option): Do not assert that loc ==
1238 UNKNOWN_LOCATION.
1239
1240 2010-11-17 Jakub Jelinek <jakub@redhat.com>
1241 Richard Guenther <rguenther@suse.de>
1242
1243 PR middle-end/45838
1244 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
1245 call_may_clobber_ref_p_1): Return true for __sync_* and some
1246 OpenMP builtins that act as threading barriers.
1247
1248 2010-11-17 Richard Guenther <rguenther@suse.de>
1249
1250 PR tree-optimization/46498
1251 * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
1252
1253 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
1254
1255 * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
1256 (xtensa_function_arg_boundary): ...this.
1257 * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
1258 thinko in declaration.
1259 (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
1260 number of parameters to picochip_function_arg_boundary.
1261 (picochip_arg_advance): Likewise.
1262
1263 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
1264
1265 PR target/46512
1266 * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
1267 under check for type.
1268
1269 2010-11-16 Eric Botcazou <ebotcazou@adacore.com>
1270
1271 * ifcvt.c (dead_or_predicable): Fix typo.
1272
1273 2010-11-16 Richard Henderson <rth@redhat.com>
1274
1275 * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
1276 * config/s390/s390.opt (mfused-madd): Remove.
1277 * config/s390/s390.c (s390_rtx_costs): Handle FMA.
1278 (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
1279 * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
1280 (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
1281
1282 2010-11-16 Richard Henderson <rth@redhat.com>
1283
1284 * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
1285 * config/rs6000/rs6000.opt (mfused-madd): Remove.
1286 * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
1287 (*altivec_vmaddfp_1): Remove.
1288 (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
1289 (altivec_mulv4sf3): Expand to FMA directly.
1290 (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
1291 (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
1292 * config/rs6000/paired.md (paired_madds0): Use FMA.
1293 (paired_madds1): Likewise.
1294 (*paired_madd): Rename from paired_madd; use FMA.
1295 (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
1296 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
1297 consider TARGET_FUSED_MADD wrt rs6000_recip_control.
1298 (bdesc_3arg): Update CODE_FOR_* for pattern renames.
1299 (rs6000_emit_madd): Use fma_optab.
1300 (rs6000_emit_msub): Use fms_optab.
1301 (rs6000_emit_nmsub): Expand the FMA pattern directly.
1302 * config/rs6000/rs6000.md (FMA_F): New mode iterator.
1303 (*fmasf4_fpr): Rename from fmasf4_fpr.
1304 (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
1305 (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
1306 (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
1307 (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
1308 (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
1309 (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
1310 (*fmadf4_fpr): Rename from fmadf4_fpr.
1311 (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
1312 (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
1313 (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
1314 (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
1315 (fmasf4, fmadf4): Macroize into...
1316 (fma<FMA_F>4): ... here.
1317 (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
1318 (nfma<FMA_F>4, nfms<FMA_F>4): New.
1319 * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
1320 TARGET_FUSED_MADD.
1321 * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
1322 (*vsx_fmadd<mode>4_1): Remove.
1323 (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
1324 (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
1325 (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
1326 (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
1327 (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
1328 (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
1329 (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
1330
1331 2010-11-16 Richard Henderson <rth@redhat.com>
1332
1333 * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
1334 (fmasf4, fnmadf4, fnmasf4): Likewise.
1335 (unnamed plus+mult insns and splitters): Delete.
1336
1337 2010-11-16 Richard Henderson <rth@redhat.com>
1338
1339 * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
1340 (fnma<VSF>4): Rename from fnms_<VSF>.
1341 (fms<VSF>4): Rename from fms_<VSF>.
1342 (fma<VDF>4): Rename from fma_<VDF>.
1343 (fms<VDF>4): Rename from fms_<VDF>.
1344 (nfma<VDF>4): Rename from fnma_<VDF>.
1345 (nfms<VDF>4): Rename from fnms_<VDF>.
1346 (fnma<VDF>4, fnms<VDF>4): New expanders.
1347 (floatunsdisf2): Update for the renames.
1348 (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
1349 * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
1350
1351 2010-11-16 Eric Botcazou <ebotcazou@adacore.com>
1352
1353 PR rtl-optimization/46490
1354 * combine.c (expand_compound_operation): Fix thinko.
1355
1356 2010-11-16 Richard Henderson <rth@redhat.com>
1357
1358 PR target/46470
1359 * recog.c (peep2_attempt): Convert frame-related info when possible.
1360 (peep2_fill_buffer): Allow frame-related insns into the buffer.
1361 (peephole2_optimize): Allow peep2_attempt to fail.
1362
1363 2010-11-16 Eric Botcazou <ebotcazou@adacore.com>
1364
1365 PR rtl-optimization/46315
1366 * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
1367 * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
1368 extracted from...
1369 * dce.c (delete_corresponding_reg_eq_notes): ...here. Rename into...
1370 (remove_reg_equal_equiv_notes_for_defs): ...this.
1371 (delete_unmarked_insns): Adjust to above renaming.
1372 * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
1373 referring to registers set in the insns being moved, if any.
1374
1375 * df-core.c (df_ref_dump): New function extracted from...
1376 (df_refs_chain_dump): ...here. Call it.
1377 (df_regs_chain_dump): Likewise.
1378 * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
1379 * df-scan.c (df_scan_start_dump): Likewise. Fix long line.
1380
1381 2010-11-16 Andreas Schwab <schwab@linux-m68k.org>
1382
1383 PR rtl-optimization/46395
1384 * postreload.c (reload_combine): Invalidate register use
1385 information on all control flow insns.
1386
1387 * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
1388 LABEL_REF in UNSPEC operand.
1389
1390 2010-11-16 Jan Hubicka <jh@suse.cz>
1391
1392 * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
1393 when !flag_toplevel_reorder do not remove unless variable is
1394 COMDAT or ARTIFICIAL.
1395 * ipa.c (varpool_can_remove_if_no_refs): ... here.
1396 (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
1397 * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
1398 * varpool.c (decide_is_variable_needed): Do not handle visibility
1399 issues.
1400 (varpool_finalize_decl): Likewise.
1401 (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
1402 update outdated comment on DECL_RTL_SET_P check.
1403
1404 2010-11-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1405
1406 * config/sol2.h (NM_FLAGS): Define.
1407 * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
1408 * doc/tm.texi: Update.
1409
1410 2010-11-16 Nick Clifton <nickc@redhat.com>
1411
1412 * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
1413 (msubsf4): Rename to fmssf4, and use fma.
1414 (nmaddsf4): Rename to fnmasf4 and use fma.
1415 (nmsubsf4): Rename to fnmssf4 and use fma.
1416
1417 2010-11-16 Joern Rennecke <amylaar@spamcop.net>
1418
1419 PR target/44762
1420 * config/score/score3.c (score3_return_in_memory): Constify arguments.
1421 (score3_in_small_data_p, score3_function_value): Likewise.
1422 (score3_trampoline_init): Use LCT_NORMAL.
1423 (score3_print_operand): Initialize code as UNKNOWN.
1424 * config/score/predicates.md (score_load_multiple_operation):
1425 Remove unused variable.
1426 (score_store_multiple_operation): Likewise.
1427 * config/score/score7.c (score7_return_in_memory): Constify arguments.
1428 (score7_in_small_data_p, score7_function_value): Likewise.
1429 (score7_trampoline_init): Use LCT_NORMAL.
1430 (score7_print_operand): Initialize code as UNKNOWN.
1431 * config/score/score3.h (score3_return_in_memory): Update prototype.
1432 (score3_in_small_data_p, score3_function_value): Likewise.
1433 * config/score/score-protos.h (score_function_value): Likewise.
1434 * config/score/score7.h (score7_return_in_memory): Update prototype.
1435 (score7_in_small_data_p, score7_function_value): Likewise.
1436 * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
1437 (score_return_in_memory, score_pass_by_reference): Constify arguments.
1438 (score_output_mi_thunk, score_function_prologue): Don't return a value.
1439 (score_function_epilogue, score_in_small_data_p): Likewise.
1440 (score_option_override, score_asm_trampoline_template): Likewise.
1441 (score_trampoline_init, score_print_operand): Likewise.
1442 (score_print_operand_address, score_prologue): Likewise.
1443 (score_epilogue, score_call, score_call_value): Likewise.
1444 (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
1445 (score_function_arg_advance): Likewise. Make static.
1446 (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
1447 (score_function_arg, score_legitimate_address_p): Make static.
1448 (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
1449 * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
1450 * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
1451 Allow (W) == HOST_BITS_PER_WIDE_INT.
1452
1453 PR java/46386
1454 * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
1455 * config/t-pnt16-warn (java/constants.o-warn): Likewise.
1456
1457 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
1458
1459 * config/arc/arc.c: Delete pasto.
1460 * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
1461
1462 2010-11-16 Anatoly Sokolov <aesok@post.ru>
1463
1464 * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
1465 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
1466 * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
1467 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
1468 (mn10300_preferred_reload_class,
1469 mn10300_preferred_output_reload_class): New functions.
1470
1471 2010-11-16 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1472
1473 * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
1474 (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
1475 (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
1476 (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
1477
1478 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
1479
1480 * builtins.c (std_gimplify_va_arg_expr): Use
1481 targetm.calls.function_arg_boundary.
1482 * function.c (assign_parms, locate_and_pad_parm): Likewise.
1483 * calls.c (struct arg_data): Update comment.
1484 * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
1485 * target.def (function_arg_boundary): Define.
1486 * targhooks.h (default_function_arg_boundary): Declare.
1487 * targhooks.c (default_function_arg_boundary): Define.
1488 * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
1489 TARGET_FUNCTION_ARG_BOUNDARY.
1490 (FUNCTION_ARG_BOUNDARY): Delete.
1491 (TARGET_FUNCTION_ARG_BOUNDARY): New.
1492 * doc/tm.texi: Regenerate.
1493 * system.h (FUNCTION_ARG_BOUNDARY): Poison.
1494 * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
1495 * config/arc/arc.c (arc_function_arg_boundary): Define.
1496 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1497 * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
1498 * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
1499 * config/arm/arm.c (arm_needs_doubleword_align): Make static.
1500 (arm_function_arg_boundary): Define.
1501 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1502 * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
1503 * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
1504 * config/frv/frv.c (frv_function_arg_boundary): Make static.
1505 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1506 * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
1507 * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
1508 * config/i386/i386.c (ix86_function_arg_boundary): Make static.
1509 (ix86_compat_function_arg_boundary): Take and return unsigned int.
1510 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1511 * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
1512 * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
1513 * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
1514 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1515 * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
1516 * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
1517 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1518 * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
1519 * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
1520 * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
1521 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1522 * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
1523 * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
1524 * config/mips/mips.c (mips_function_arg_boundary): Make static.
1525 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1526 * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
1527 * config/pa/pa.c (pa_function_arg_boundary): Define.
1528 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1529 * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
1530 * config/picochip/picochip-protos.h
1531 (picochip_get_function_arg_boundary): Delete.
1532 * config/picochip/picochip.c (picochip_get_function_arg_boundary):
1533 Rename to...
1534 (picochip_function_arg_boundary): ...this. Make static.
1535 (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
1536 (picochip_arg_advance): Adjust.
1537 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1538 * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
1539 * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
1540 * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
1541 (rs6000_function_arg_boundary): ...this. Make static.
1542 (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
1543 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1544 * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
1545 * config/rx/rx.c (rx_function_arg_boundary): Define.
1546 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1547 * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
1548 * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
1549 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1550 * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
1551 * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
1552 * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
1553 (xtensa_function_arg_boundary): ...this. Make static.
1554 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1555
1556 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
1557
1558 * expr.c (alignment_for_piecewise_move): New function.
1559 (widest_int_mode_for_size): New function.
1560 (move_by_pieces, move_by_pieces_ninsns): Call them.
1561 (can_store_by_pieces, store_by_pieces_1): Likewise.
1562
1563 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
1564
1565 * gcc.c (char_p): Define. Define a VEC of it.
1566 (n_linker_options, n_assembler_options, n_preprocessor_options):
1567 Delete.
1568 (linker_options, assembler_options, preprocessor_options): Convert
1569 to a VEC.
1570 (add_preprocessor_option): Adjust.
1571 (add_assembler_option): Adjust.
1572 (add_linker_option): Adjust.
1573 (do_specs_vec): New function.
1574 (do_spec_1): Call it. Adjust for new types.
1575
1576 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
1577
1578 * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
1579 (sreal.o, statistics.o, stringpool.o): Likewise.
1580
1581 2010-11-16 Richard Guenther <rguenther@suse.de>
1582
1583 PR tree-optimization/44545
1584 * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
1585 statements are not reassociatable.
1586 (reassociate_bb): Likewise.
1587
1588 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
1589
1590 * bitmap.c: Delete unnecessary includes.
1591 * ebitmap.c: Likewise.
1592 * et-forest.c: Likewise.
1593 * sreal.c: Likewise.
1594 * statistics.c: Likewise.
1595 * stringpool.c: Likewise.
1596 * double-int.c: Add comment for inclusion of tm.h.
1597
1598 2010-11-16 Richard Guenther <rguenther@suse.de>
1599
1600 * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
1601 (visit_nary_op): ... this.
1602 (visit_binary_op): Remove.
1603 (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
1604
1605 2010-11-16 Richard Guenther <rguenther@suse.de>
1606
1607 PR middle-end/45172
1608 * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
1609
1610 2010-11-16 Nick Clifton <nickc@redhat.com>
1611
1612 * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
1613 record is packed.
1614
1615 2010-11-15 Richard Henderson <rth@redhat.com>
1616
1617 * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
1618 WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
1619 DOT_PROD_EXPR.
1620
1621 2010-11-15 Richard Henderson <rth@redhat.com>
1622
1623 * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
1624 from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively. Use
1625 fma rtx_code.
1626
1627 2010-11-15 Richard Henderson <rth@redhat.com>
1628
1629 * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
1630 and *mulsubsf4 respectively. Use fma rtx_code.
1631
1632 2010-11-15 Joseph Myers <joseph@codesourcery.com>
1633
1634 * gcc.c: Include "vec.h".
1635 (argbuf): Make into a VEC.
1636 (argbuf_length, argbuf_index): Remove.
1637 (alloc_args, clear_args, store_arg, execute, insert_wrapper,
1638 do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
1639 compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
1640 * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
1641 (gcc.o): Depend on $(VEC_H).
1642
1643 2010-11-15 Richard Henderson <rth@redhat.com>
1644
1645 * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
1646 via FMA if unsafe math.
1647 (insert_var_expansion_initialization): Handle FMA.
1648 (combine_var_copies_in_loop_exit): Likewise.
1649
1650 2010-11-15 Richard Henderson <rth@redhat.com>
1651
1652 * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
1653 * config/ia64/ia64.opt: Remove mfused-madd.
1654 * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
1655 * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
1656 * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
1657 * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
1658 * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
1659 * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
1660 (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
1661 (fmav2sf4): Rename from fpma; use FMA code.
1662 (fmsv2sf4): Rename from fpms; use FMA code.
1663 (fnmav2sf4): Rename from *fpnma; use FMA code.
1664 * config/ia64/ia64.md (MODE_SDF): New iterator.
1665 (suffix): New mode attribute.
1666 (*maddsf4, *msubsf4, *nmaddsf4): Remove.
1667 (fmssf4): Rename from *fmssf4.
1668 (fnmasf4): Rename from *nfmasf4.
1669 (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
1670 (*nmadddf4, *nmadddf4_truncsf): Remove.
1671 (fmsdf4): Rename from *fmsdf4.
1672 (fnmadf4): Rename from *nfmadf4.
1673 (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
1674 (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
1675 (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
1676 (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
1677 (fmsxf4): Rename from *fmsxf4.
1678 (fnmaxf4): Rename from *nfmaxf4.
1679 (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
1680 (*fnmaxf_trunc_<MODE_SDF>): New.
1681
1682 2010-11-15 Jakub Jelinek <jakub@redhat.com>
1683
1684 PR tree-optimization/46461
1685 * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
1686 a gimple val.
1687
1688 2010-11-15 Ian Lance Taylor <iant@google.com>
1689
1690 * godump.c: New file.
1691 * common.opt (fdump-go-spec=): New option.
1692 * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
1693 (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
1694 (TYPE_SYMTAB_IS_DIE): Define.
1695 (struct tree_type): Change GTY for symtab field to use
1696 TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
1697 to pick the union field.
1698 * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
1699 (dump_go_spec_init): Declare.
1700 * toplev.c (process_options): Handle flag_dump_go_spec.
1701 * debug.c: Include "tree.h".
1702 (do_nothing_debug_hooks): Set tree_type_symtab_field.
1703 * dwarf2out.c (dwarf2_debug_hooks): Likewise.
1704 * dbxout.c (dbx_debug_hooks): Likewise.
1705 (xcoff_debug_hooks): Likewise.
1706 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
1707 * sdbout.c (sdb_debug_hooks): Likewise. Do not define if
1708 SDB_DEBUGGING_INFO is not defined.
1709 * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
1710 (Overall Options): Document -fdump-go-spec.
1711 * Makefile.in (OBJS-common): Add godump.o.
1712 (debug.o): Add dependency on $(TREE_H).
1713 (godump.o): New target.
1714 (GTFILES): Add $(srcdir)/godump.c.
1715
1716 2010-11-15 Jakub Jelinek <jakub@redhat.com>
1717
1718 PR debug/46095
1719 * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
1720 marking r11 set RTX_FRAME_RELATED_P if offset is too large for
1721 style < 0, add REG_FRAME_RELATED_EXPR.
1722
1723 PR debug/46387
1724 * rtl.h (vt_equate_reg_base_value): New prototype.
1725 * alias.c (vt_equate_reg_base_value): New function.
1726 * var-tracking.c (vt_init_cfa_base): Use it.
1727
1728 2010-11-15 Jan Hubicka <jh@suse.cz>
1729 Diego Novillo <dnovillo@google.com>
1730
1731 PR lto/41528
1732 * doc/lto.texi: Add.
1733 * doc/gccint.texi: Add reference to lto.texi.
1734 * doc/invoke.texi: Update user documentation for LTO.
1735 Move internal flags to lto.texi
1736
1737 2010-11-15 Nicola Pero <nicola.pero@meta-innovation.com>
1738
1739 * c-typeck.c (build_unary_op): Use
1740 objc_build_incr_expr_for_property_ref to build the pre/post
1741 increment/decrement of an Objective-C property ref, and skip the
1742 lvalue_or_else check in that case.
1743
1744 2010-11-15 Martin Jambor <mjambor@suse.cz>
1745
1746 PR tree-optimization/46349
1747 * tree-sra.c (contains_bitfld_comp_ref_p): New function.
1748 (contains_vce_or_bfcref_p): Likewise.
1749 (sra_modify_assign): Use them.
1750
1751 2010-11-15 Richard Guenther <rguenther@suse.de>
1752
1753 PR tree-optimization/46467
1754 * tree-ssa-structalias.c (do_structure_copy): Properly treat
1755 variables without subvars.
1756
1757 2010-11-15 Hariharan Sandanagobalane <hariharan@picochip.com>
1758
1759 * config/picochip/picochip.c (file header): Picochip name change.
1760 * config/picochip/picochip.md (file header): Likewise.
1761 * config/picochip/predicates.md (file header): Likewise.
1762 * config/picochip/dfa_space.md (file header): Likewise.
1763 * config/picochip/dfa_speed.md (file header): Likewise.
1764 * config/picochip/picochip.h(file header): Likewise.
1765 * config/picochip/constraints.md (file header): Likewise.
1766 * config/picochip/picochip-protos.h (file header): Likewise.
1767 * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
1768 * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
1769 * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
1770 * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
1771 * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
1772 * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
1773 * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
1774 * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
1775 * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
1776 * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
1777 * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
1778 * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
1779 * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
1780 * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
1781
1782 2010-11-15 Richard Guenther <rguenther@suse.de>
1783
1784 PR bootstrap/46474
1785 * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
1786
1787 2010-11-15 Nick Clifton <nickc@redhat.com>
1788
1789 * config/stormy16/stormy16.c (direct_return): Do not generate a
1790 direct return for interrupt handlers.
1791
1792 2010-11-15 Joern Rennecke <amylaar@spamcop.net>
1793
1794 * Makefile.in (tm.texi): Replace with rule for:
1795 ($(srcdir)/doc/tm.texi).
1796 (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
1797 $(srcdir)/doc/tm.texi .
1798 (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
1799 tm.texi .
1800
1801 PR target/46427
1802 * config/m32r/m32r.c: Remove unused variables frame_size and insn.
1803
1804 PR bootstrap/45444
1805 * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
1806 (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
1807
1808 PR target/46432
1809 * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
1810
1811 2010-11-15 Richard Guenther <rguenther@suse.de>
1812
1813 PR lto/44150
1814 * lto-opts.c (lto_write_options): Write -fexceptions even if
1815 not set by the user.
1816
1817 2010-11-13 Paolo Bonzini <bonzini@gnu.org>
1818
1819 PR c/46462
1820 * c-decl.c (declspecs_add_type): Make variables with error types
1821 integers.
1822 * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
1823 do not start a declaration before an Objective-C foreach.
1824 (c_parser_declaration_or_fndef): Improve recovery after unknown
1825 type name.
1826 (c_parser_for_statement): Hoist entrance of "foreach context"
1827 before ifs, add corresponding reset where it was missing. Do
1828 not set objc_could_be_foreach_context for C.
1829
1830 2010-11-14 Eric Botcazou <ebotcazou@adacore.com>
1831
1832 PR tree-optimization/45722
1833 * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
1834 this is a reference to a component.
1835 * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
1836 (ipa_note_param_call): Adjust comment.
1837
1838 2010-11-14 Richard Sandiford <rdsandiford@googlemail.com>
1839
1840 * config/mips/mips.c (machine_function): Remove
1841 initialized_mips16_gp_pseudo_p.
1842 (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
1843 detect whether a pseudo has already been created. Unconditionally
1844 create a new one if not.
1845 (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
1846 expanding to rtl. Create a new pseudo otherwise, if allowed.
1847
1848 2010-11-13 Richard Earnshaw <rearnsha@arm.com>
1849
1850 PR target/43440
1851 * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
1852 * tm.texi: Regenerated.
1853 * output.h (decode_reg_name_and_count): Declare.
1854 * varasm.c (decode_reg_name_and_count): New function.
1855 (decode_reg_name): Reimplement using decode_reg_name_and_count.
1856 * reginfo.c (fix_register): Use decode_reg_name_and_count and
1857 iterate over all regs used.
1858 * stmt.c (expand_asm_operands): Likewise.
1859 * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
1860 (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
1861 multiple machine registers.
1862
1863 2010-11-13 Eric Botcazou <ebotcazou@adacore.com>
1864
1865 * stor-layout.c (place_union_field): Do not put location information
1866 on offset expressions.
1867 (place_field): Likewise.
1868 (finalize_record_size): Likewise on size expressions.
1869 (finalize_type_size): Likewise.
1870 (layout_type): Likewise.
1871
1872 2010-11-13 Alexandre Oliva <aoliva@redhat.com>
1873
1874 PR debug/42889
1875 * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
1876 * df-core.c (df_set_bb_dirty_nonrl): Remove.
1877 * df.h (df_set_bb_dirty_nonlr): Likewise.
1878
1879 2010-11-13 Uros Bizjak <ubizjak@gmail.com>
1880
1881 * config/mips/mips.md (call_internal): Pass curr_insn to
1882 mips_split_call.
1883 (call_internal_direct): Ditto.
1884 (call_value_internal): Ditto.
1885 (call_value_internal_direct): Ditto.
1886 (call_value_multiple_internal): Ditto.
1887 * config/mips/mips.c (mips_split_call): Do not copy
1888 CALL_INSN_FUNCTION_USAGE here.
1889
1890 2010-11-13 Mingming Sun <mingm.sun@gmail.com>
1891
1892 * doc/invoke.texi (MIPS Options): Add loongson3a processor.
1893 * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
1894 (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
1895 * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
1896 (TUNE_LOONGSON_3A): Define.
1897 (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
1898 (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
1899 * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
1900 (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
1901 (mips_rtx_cost_data): Add Loongson-3A.
1902
1903 2010-11-13 Iain Sandoe <iains@gcc.gnu.org>
1904
1905 * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
1906 switches.
1907
1908 2010-11-13 Iain Sandoe <iains@gcc.gnu.org>
1909
1910 * dwarf2out.c (macinfo_entry): New struct.
1911 (output_comp_unit): Emit the section start label here and flag that we
1912 will emit an info section.
1913 (dwarf2out_start_source_file): Save data in a macinfo entry rather than
1914 emitting directly.
1915 (dwarf2out_end_source_file): Likewise.
1916 (dwarf2out_define): Likewise.
1917 (dwarf2out_undef): Likewise.
1918 (output_macinfo): New.
1919 (dwarf2out_init): Do not emit debug section switches here, allocate a
1920 vec for macinfo, when required.
1921 (dwarf2out_finish): First switch to debug_abbrev_section here.
1922 debug_line_section, debug_macinfo_section, Likewise.
1923 Check that the pubtypes table has at least one unpruned entry before
1924 trying to emit it.
1925
1926 2010-11-13 Paolo Bonzini <bonzini@gnu.org>
1927
1928 PR c/20385
1929 * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
1930 (c_parser_next_tokens_start_declaration): ... this. Handle 2nd
1931 token lookahead.
1932 (c_parser_compound_statement_nostart, c_parser_label,
1933 c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
1934 (c_parser_declaration_or_fndef): Detect the case now matched by
1935 c_parser_next_tokens_start_declaration, give error and correct it.
1936
1937 2010-11-13 Paolo Bonzini <bonzini@gnu.org>
1938
1939 * c-tree.h (enum c_typespec_kind): Add ctsk_none.
1940 (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
1941 with typespec_kind.
1942 * c-decl.c (build_null_declspecs): Initialize typespec_kind.
1943 (shadow_tag_warned, check_compound_literal_type): Adjust
1944 uses of tag_defined_p.
1945 (declspecs_add_type): Set typespec_kind.
1946 * c-parser.c (c_parser_declaration_or_fndef,
1947 c_parser_declspecs, c_parser_struct_declaration,
1948 c_parser_parameter_declaration, c_parser_type_name,
1949 c_parser_objc_diagnose_bad_element_prefix): Adjust uses
1950 of type_seen_p.
1951 * c-typeck.c (c_cast_expr): Use typespec_kind instead of
1952 tag_defined_p, pass ctsk_firstref through.
1953
1954 2010-11-13 Paolo Bonzini <bonzini@gnu.org>
1955
1956 * c-format.c (enum format_specifier_kind, kind_descriptions): New.
1957 (struct format_wanted_type): Replace field "name" with "kind", add
1958 "format_start" and "format_length".
1959 (check_format_info_main): Fill in new fields. Fill in
1960 FORMAT_WANTED_TYPES even for missing arguments. Move checks
1961 after the final NUL outside the while loop. Do not include
1962 width and precision modifiers in the format_start/format_length
1963 of the main format.
1964 (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
1965 arguments. Compute WANTED_TYPE first so that format_type_warning
1966 can be called for missing arguments. Adjust calls to
1967 format_type_warning.
1968 (format_type_warning): Fetch as much information as possible
1969 from format_wanted_type. Adjust printing now that every
1970 warning has a "descr", as well as for missing argument warnings
1971 and to include % sign for format specifiers.
1972
1973 2010-11-12 Alexander Monakov <amonakov@ispras.ru>
1974
1975 PR rtl-optimization/46204
1976 * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
1977 Update all callers. Do not recompute topological order. Adjust
1978 fallthrough edges following a degenerate conditional jump.
1979
1980 2010-11-12 Joseph Myers <joseph@codesourcery.com>
1981
1982 * opts-common.c (control_warning_option): New.
1983 * opts.c (set_default_handlers): New.
1984 (decode_options): Use set_default_handlers and
1985 control_warning_option.
1986 (common_handle_option): Update call to enable_warning_as_error.
1987 (enable_warning_as_error): Take gcc_options parameters. Use
1988 control_warning_option.
1989 * opts.h (set_default_handlers, control_warning_option): Declare.
1990
1991 2010-11-12 Joseph Myers <joseph@codesourcery.com>
1992
1993 * Makefile.in (OPTS_H): Define.
1994 (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
1995 c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
1996 cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
1997 opts-common.o, toplev.o, passes.o, matrix-reorg.o,
1998 ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
1999 * gcc.c (driver_handle_option): Take location_t parameter.
2000 (process_command, do_self_spec): Update calls to
2001 read_cmdline_option.
2002 * langhooks-def.h (lhd_handle_option): Take location_t parameter.
2003 * langhooks.c (lhd_handle_option): Take location_t parameter.
2004 * langhooks.h (handle_option): Take location_t parameter.
2005 * lto-opts.c (lto_reissue_options): Update call to set_option.
2006 * opts-common.c (handle_option): Make static. Take location_t
2007 parameter and pass it to other functions.
2008 (handle_generated_option): Take location_t parameter and pass it
2009 to other functions.
2010 (read_cmdline_option): Take location_t parameter and pass it to
2011 other functions. Use warning_at and error_at.
2012 (set_option): Take location_t parameter and pass it to other
2013 functions.
2014 * opts.c (common_handle_option): Take location_t parameter and
2015 pass it to other functions.
2016 (enable_warning_as_error): Make static. Take location_t parameter
2017 and pass it to other functions.
2018 (lang_handle_option): Take location_t parameter and pass it to
2019 other functions.
2020 (target_handle_option): Take location_t parameter.
2021 (read_cmdline_options, maybe_default_option,
2022 maybe_default_options, default_options_optimization,
2023 decode_options): Take location_t parameter and pass it to other
2024 functions.
2025 * opts.h: Include input.h.
2026 (struct cl_option_handler_func, decode_options, set_option,
2027 handle_generated_option, read_cmdline_option): Take location_t
2028 parameters.
2029 (handle_option, enable_warning_as_error): Remove.
2030 * toplev.c (toplev_main): Update call to decode_options.
2031
2032 2010-11-12 Tobias Grosser <grosser@fim.uni-passau.de>
2033
2034 * graphite-cloog-util.c (oppose_constraint,
2035 cloog_matrix_to_ppl_constraint,
2036 new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
2037 CLooG isl uses unsigned integers. This triggered a warning.
2038
2039 2010-11-12 Joern Rennecke <amylaar@spamcop.net>
2040
2041 PR target/46438
2042 * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
2043 (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
2044 (xtensa_function_arg_1): De-constify cum.
2045 (xtensa_expand_prologue): Use add_reg_note.
2046
2047 PR target/46435
2048 * config/cris/cris.c (saved_regs_mentioned): Delete.
2049 (cris_reload_address_legitimized): Cast itype to enum reload_type.
2050 Remove unused variable op0p.
2051 (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
2052 (cris_emit_movem_store): Use add_reg_note.
2053
2054 PR bootstrap/46456
2055 * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
2056
2057 2010-11-12 Eric Botcazou <ebotcazou@adacore.com>
2058
2059 * function.c (expand_function_end): Set the locator of the prologue on
2060 the stack checking insns.
2061
2062 2010-11-12 Richard Henderson <rth@redhat.com>
2063
2064 * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
2065 * config/xtensa/xtensa.opt (mfused-madd): Remove.
2066 * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
2067 MASK_FUSED_MADD.
2068 * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
2069 (fnmasf4): Rename from mulsubsf3; use fma.
2070
2071 2010-11-12 Joern Rennecke <amylaar@spamcop.net>
2072 Richard Henderson <rth@redhat.com>
2073
2074 PR target/46428
2075 * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
2076 * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
2077 comparison.
2078
2079 2010-11-12 Pat Haugen <pthaugen@us.ibm.com>
2080
2081 * opts-common.c (decode_cmdline_option): Initialize separate_args.
2082
2083 2010-11-12 Jan Hubicka <jh@suse.cz>
2084
2085 * doc/invoke.texi (early-inlining-insns): Update default.
2086 * params.def (early-inlining-insns): Default to 10.
2087
2088 2010-11-12 Olivier Hainque <hainque@adacore.com>
2089
2090 * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
2091
2092 2010-11-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2093
2094 * config/mips/iris6.h [!IRIX_USING_GNU_LD]
2095 (SUPPORTS_INIT_PRIORITY): Define.
2096
2097 2010-11-12 Joern Rennecke <amylaar@spamcop.net>
2098
2099 PR target/46430
2100 * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
2101 * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
2102 (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
2103 (avr_device_to_devicelib): Likewise.
2104 * config/avr/avr.md (zero_extendqihi2): Put variable declarations
2105 into block.
2106 (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
2107 (zero_extendhidi2, zero_extendsidi2): Likewise.
2108 * config/avr/avr.c (avr_num_arg_regs): Constify type.
2109 (avr_return_addr_rtx): De-constify tem.
2110 (avr_rotate_bytes): Move declarations to start of block.
2111 Don't use variable length array. Put nested if/else into block.
2112
2113 PR rtl-optimization/46433
2114 * var-tracking.c: Include tm_p.h .
2115
2116 PR bootstrap/44756
2117 PR build/44767
2118 * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
2119 should be unsigned.
2120 (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
2121 * doc/tm.texi: Regenerate.
2122
2123 PR target/46412
2124 * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
2125 * config/bfin/bfin.c: Include sel-sched.h .
2126 (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
2127 (expand_interrupt_handler_prologue): Remove unused variable insn.
2128 (bfin_load_pic_reg): Likewise.
2129 (bfin_rtx_costs): Make code / outer_code variables of type
2130 enum rtx_code, copied from re-named parameters.
2131 (bfin_local_alignment): Change align argument and return type
2132 to unsigned.
2133 (bfin_adjust_cost): Remove unused variable insn_type.
2134 Declare variables at start of block.
2135 (struct loop_info): Rename to...
2136 (struct loop_info_d).
2137 (workaround_rts_anomaly): Change type of icode to int.
2138 (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
2139 with int-typed variable.
2140 (note_np_check_stores): Likewise.
2141 (trapping_loads_p): Remove unused variable pat.
2142 (bfin_expand_binop_builtin): Use expand_normal.
2143 (bfin_expand_unop_builtin): Likewise.
2144 (bfin_expand_builtin): Likewise. Set tmode before use.
2145
2146 PR middle-end/44769
2147 * final.c (split_double): Don't use BITS_PER_WORD directly in
2148 shift count.
2149
2150 PR target/46431
2151 * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
2152 assignment.
2153
2154 PR target/46450
2155 * config/stormy16/stormy16.c (xstormy16_expand_prologue):
2156 Use add_reg_note.
2157 (xstormy16_function_arg): Dereference cum.
2158 (xstormy16_expand_builtin): Use expand_normal.
2159 Change type of omode to enum machine_mode.
2160 (combine_bnp): Rename and to and_insn.
2161
2162 PR target/46437
2163 * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
2164 localreg.
2165
2166 2010-11-12 Eric Botcazou <ebotcazou@adacore.com>
2167
2168 PR debug/46375
2169 * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
2170
2171 2010-11-11 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
2172
2173 PR lto/46376
2174 * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
2175
2176 2010-11-11 Nathan Froyd <froydnj@codesourcery.com>
2177
2178 PR c/44782
2179 * common.opt (fmax-errors=): New option.
2180 * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
2181 * diagnostic.h (struct diagnostic_context): Add max_errors field.
2182 * diagnostic.c (diagnostic_initialize): Initialize it.
2183 (diagnostic_action_after_output): Exit if more than max_errors
2184 have been output.
2185 * doc/invoke.texi (Warning Options): Add -fmax-errors.
2186 (-fmax-errors): Document.
2187
2188 2010-11-11 Richard Henderson <rth@redhat.com>
2189
2190 * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
2191
2192 2010-11-11 Richard Henderson <rth@redhat.com>
2193
2194 * config/fused-madd.opt: New file.
2195 * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
2196 * config/i386/i386.c (ix86_extra_costs): Handle FMA.
2197 (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
2198 * config/i386/i386.opt (mfused-madd): Remove.
2199 * config/i386/sse.md (split_fma): Remove.
2200 (split_fms, split_fnma, split_fnms): Remove.
2201
2202 2010-11-12 Jakub Jelinek <jakub@redhat.com>
2203
2204 PR target/46088
2205 * config/i386/i386.md (*ashl<mode>3_cconly,
2206 *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
2207 change nonimmediate_operand predicate to register_operand.
2208
2209 2010-11-11 Paolo Bonzini <bonzini@gnu.org>
2210
2211 * Makefile.in (gengtype-lex.c): Include bconfig.h first.
2212
2213 2010-11-11 Jan Hubicka <jh@suse.cz>
2214
2215 * opts.c (finish_options): Do not error on -flto-partition alone.
2216
2217 * doc/invoke.texi (-fwhopr): Merge into -flto section.
2218 (-flto-partition): Document none.
2219 * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
2220 * lto-wrapper.c: Update comment.
2221 (run_gcc): Update LTO option parsing.
2222 * opts.c (finish_options): add support -flto-partition=none
2223 (common_handle_option): Remove fwhopr.
2224 * common.opt: Turn fwhopr into flto.
2225 * collect2.c (main): Update option handling.
2226 * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
2227 * ipa-split.c (execute_split_functions): Remove flag_whopr.
2228 * ipa.c (function_and_variable_visibility): Remove flag_whopr.
2229 * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
2230 * varpool.c (decide_is_variable_needed): Remove flag_whopr.
2231
2232 2010-11-11 Jan Hubicka <jh@suse.cz>
2233
2234 PR tree-optimize/40436
2235 * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
2236 (eliminated_by_inlining_prob): ... this one; return 50% probability
2237 for SRA.
2238 (estimate_function_body_sizes): Update use of
2239 eliminated_by_inlining_prob; estimate static function size
2240 for 2 instructions.
2241
2242 2010-11-11 Joern Rennecke <amylaar@spamcop.net>
2243
2244 PR target/44749
2245 * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
2246 declare. Change type of argument four to type int.
2247 (mep_secondary_input_reload_class): Returns enum reg_class.
2248 (mep_secondary_output_reload_class): Likewise.
2249 (mep_function_value): Change types of arguments to cont_tree.
2250 * config/mep/mep.c (mep_legitimize_reload_address): Change type of
2251 argument four to type int.
2252 (mep_secondary_input_reload_class): Returns enum reg_class.
2253 (mep_secondary_output_reload_class): Likewise.
2254 (mep_function_value): Change types of arguments to cont_tree.
2255 * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
2256 mep_regno_reg_class to enum reg_class.
2257
2258 2010-11-11 Richard Henderson <rth@redhat.com>
2259
2260 * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
2261 that the target has the exact fma operation that we matched.
2262
2263 2010-11-11 Joseph Myers <joseph@codesourcery.com>
2264
2265 * reginfo.c (fix_register): Avoid inserting English word in
2266 diagnostic sentence. Use %qs for quoting and %'.
2267
2268 2010-11-11 H.J. Lu <hongjiu.lu@intel.com>
2269
2270 * config/i386/driver-i386.c (host_detect_local_cpu): Support
2271 Intel processor family 6, model 0x2c.
2272
2273 2010-11-11 Joseph Myers <joseph@codesourcery.com>
2274
2275 * opts.c (warning_as_error_callback,
2276 register_warning_as_error_callback): Remove.
2277 (enable_warning_as_error): Don't use warning_as_error_callback.
2278 * opts.h (register_warning_as_error_callback): Remove.
2279
2280 2010-11-11 Richard Henderson <rth@redhat.com>
2281
2282 * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
2283 in between the MULT and the PLUS/MINUS.
2284
2285 2010-11-11 Jakub Jelinek <jakub@redhat.com>
2286
2287 PR middle-end/46388
2288 * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
2289 BLKmode mode for it.
2290 (expand_expr_real_1): Similarly for op0.
2291
2292 2010-11-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2293
2294 * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
2295 Document optional target selector.
2296
2297 2010-11-11 Dave Korn <dave.korn.cygwin@gmail.com>
2298
2299 * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
2300 assembling high and low parts of size if not using 32-bit HWINT; else
2301 use DECL_SIZE_UNITS, not DECL_SIZE.
2302
2303 2010-11-11 Martin Jambor <mjambor@suse.cz>
2304
2305 PR tree-optimization/46383
2306 * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
2307 offsets.
2308 (compute_complex_ancestor_jump_func): Likewise.
2309 * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
2310
2311 2010-11-11 Jakub Jelinek <jakub@redhat.com>
2312
2313 PR debug/46150
2314 * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
2315 true if expr1->hash != expr2->hash.
2316
2317 2010-11-10 Joseph Myers <joseph@codesourcery.com>
2318
2319 * cfgloop.c (verify_loop_structure): Use %' in diagnostics. Start
2320 diagnostics with lowercase letters.
2321 * cgraphunit.c (verify_cgraph_node): Start diagnostics with
2322 lowercase letters.
2323 * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
2324 diagnostic.
2325 * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2326 * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
2327 lowercase letters.
2328 * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2329 Remove trailing ' ' from diagnostic.
2330 * config/avr/avr.c (print_operand_address): Start diagnostic with
2331 a lowercase letter and remove trailing '.'.
2332 * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
2333 * config/bfin/bfin.c (bfin_option_override): Start diagnostics
2334 with lowercase letters. Use %' in diagnostics. Remove trailing
2335 '.' from diagnostics.
2336 (bfin_handle_longcall_attribute): Use %' in diagnostic.
2337 * config/cris/cris.c (cris_split_movdx,
2338 cris_expand_pic_call_address): Start diagnostics with lowercase
2339 letters.
2340 (cris_asm_output_label_ref): Use %' in diagnostic.
2341 * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
2342 letter.
2343 * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
2344 lowercase letter.
2345 * config/darwin-c.c (version_as_macro): Start diagnostic with a
2346 lowercase letter.
2347 * config/darwin-driver.c (darwin_default_min_version): Use %' in
2348 diagnostic.
2349 * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
2350 diagnostic.
2351 * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2352 * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
2353 diagnostics.
2354 * config/i386/i386.c (ix86_option_override_internal): Write
2355 diagnostic as a single sentence without trailing '.'. Use %' in
2356 diagnostics.
2357 (ix86_function_sseregparm, classify_argument): Start diagnostics
2358 with lowercase letters.
2359 (ix86_expand_prologue): Use %' in diagnostic.
2360 * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
2361 diagnostic.
2362 * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
2363 lowercase letter.
2364 * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
2365 diagnostic.
2366 * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2367 * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
2368 '`' in help text.
2369 * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
2370 lowercase letter.
2371 * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
2372 lowercase letters.
2373 * config/microblaze/microblaze.c (microblaze_handle_option):
2374 Remove trailing '.' from diagnostic.
2375 (print_operand): Start diagnostic with a lowercase letter.
2376 * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
2377 lowercase letters. Avoid '`' in diagnostics.
2378 * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
2379 lowercase letters. Avoid '`' in diagnostics.
2380 * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
2381 lowercase letters. Avoid '`' in diagnostics.
2382 * config/picochip/picochip.c (picochip_option_override,
2383 picochip_emit_save_register, picochip_function_arg,
2384 picochip_output_label, picochip_output_internal_label,
2385 picochip_asm_output_opcode, picochip_output_cbranch,
2386 picochip_output_compare, picochip_output_branch,
2387 picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
2388 diagnostics. Start diagnostics with lowercase letters. Use %' in
2389 diagnostics.
2390 * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
2391 "SPE" capitalization. Start diagnostic with a lowercase letter.
2392 (rs6000_handle_option): Start diagnostics with lowercase letters.
2393 (def_builtin): Remove trailing '.' from diagnostic.
2394 (rs6000_savres_routine_name): Start diagnostic with a lowercase
2395 letter.
2396 * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
2397 diagnostic.
2398 * config/rx/rx.c (rx_handle_option): Start diagnostic with a
2399 lowercase letter.
2400 * config/s390/s390.c (s390_option_override) Start diagnostics with
2401 lowercase letters. Use %' in diagnostic.
2402 * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
2403 lowercase letters.
2404 * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
2405 diagnostic.
2406 * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
2407 diagnostic.
2408 * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
2409 diagnostic.
2410 * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2411 * config/spu/spu.c (spu_option_override): Start diagnostics with
2412 lowercase letters. Use %qs for quoting in diagnostics.
2413 (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
2414 Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
2415 * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
2416 from diagnostic.
2417 * convert.c (convert_to_integer, convert_to_vector): Use %' in
2418 diagnostics.
2419 * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
2420 letter and use "cannot" spelling.
2421 * expmed.c (extract_fixed_bit_field): Start diagnostic with
2422 lowercase letter and format as a single sentence without '.'.
2423 * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
2424 Use %' in diagnostics.
2425 * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
2426 Use %' in diagnostics.
2427 * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
2428 Use %' in diagnostics.
2429 * graph.c (clean_graph_dump_file): Use %' in diagnostic.
2430 * graphite-poly.c (graphite_read_scop_file): Start diagnostics
2431 with lowercase letters and remove tailing '.' and '\n'.
2432 * lto-cgraph.c (input_profile_summary): Start diagnostic with
2433 lowercase letter and remove trailing '.'.
2434 (input_cgraph): Start diagnostics with lowercase letters and
2435 remove trailing '\n'.
2436 * opts.c (finish_options, common_handle_option): Start diagnostics
2437 with lowercase letters and remove trailing '.'. Fix typo in
2438 diagnostic.
2439 * passes.c (position_pass): Start diagnostic with lowercase letter.
2440 * plugin.c (add_new_plugin, parse_plugin_arg_opt,
2441 register_callback, try_init_one_plugin): Start diagnostics with
2442 lowercase letters.
2443 * reload1.c (spill_failure): Use %' in diagnostic.
2444 (gen_reload): Start diagnostic with a lowercase letter.
2445 * stor-layout.c (place_field): Start diagnostic with a lowercase
2446 letter.
2447 * toplev.c (open_auxiliary_file): Use %' in diagnostic.
2448 * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
2449 verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
2450 Start diagnostics with lowercase letters, remove trailing '.' and
2451 use %' in diagnostics.
2452 * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
2453 (verify_ssa): Don't split diagnostic across two error calls.
2454 Spell out "number" and use %' in diagnostic.
2455 * value-prof.c (visit_hist, check_counter): Start diagnostics with
2456 lowercase letters.
2457
2458 2010-11-10 Uros Bizjak <ubizjak@gmail.com>
2459
2460 PR middle-end/46419
2461 * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
2462 (_mm_cvtpu16_ps): Ditto.
2463
2464 2010-11-10 Joseph Myers <joseph@codesourcery.com>
2465
2466 * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
2467 warn_larger_than, larger_than_size, warn_frame_larger_than,
2468 frame_larger_than_size, flag_gen_aux_info, flag_shlib,
2469 default_visibility, flag_tls_default): New Variable declarations.
2470 (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
2471 falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
2472 (v): Declare as Common and document here.
2473 * flags.h (default_visibility, flag_generate_lto,
2474 warn_larger_than, larger_than_size, warn_frame_larger_than,
2475 frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
2476 flag_shlib, flag_excess_precision_cmdline): Remove.
2477 (set_Wstrict_aliasing): Update prototype.
2478 * gcc.c (verbose_flag): Remove.
2479 (driver_handle_option): Add diagnostic_context parameter. Don't
2480 handle OPT_v explicitly here. Set verbose_flag to 1 rather than
2481 incrementing it.
2482 * opts-common.c (handle_option): Pass dc to handler.
2483 * opts.c (warn_larger_than, larger_than_size,
2484 warn_frame_larger_than, frame_larger_than_size,
2485 default_visibility): Remove.
2486 (common_handle_option): Add diagnostic_context parameter.
2487 (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
2488 gcc_options parameters.
2489 (lang_handle_option, target_handle_option, read_cmdline_options,
2490 decode_options): Add diagnostic_context parameters.
2491 (finish_options): Access option state through opts pointer where
2492 possible.
2493 (common_handle_option): Access option state through opts pointer
2494 where possible. Do not set local static variable verbose. Do not
2495 explicitly handle OPT_v, OPT_Wstrict_aliasing_,
2496 OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
2497 OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
2498 OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
2499 OPT_fwhopr_. Do not explicitly set .opt file variables for
2500 OPT_aux_info or OPT_pedantic_errors. Use dc for diagnostic context.
2501 (set_Wstrict_aliasing): Add gcc_options parameter.
2502 * opts.h (struct cl_option_handler_func): Add diagnostic_context
2503 parameter to handler.
2504 (decode_options): Add diagnostic_context parameter.
2505 * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
2506 asm_file_name, flag_generate_lto, flag_gen_aux_info,
2507 aux_info_file_name, flag_shlib, flag_tls_default,
2508 flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
2509 (toplev_main): Pass global_dc to decode_options.
2510 * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
2511 aux_info_file_name, asm_file_name): Remove.
2512 * tree.h (flag_tls_default): Remove.
2513
2514 2010-11-10 Eric Botcazou <ebotcazou@adacore.com>
2515
2516 PR target/45986
2517 * config/sparc/sparc.c (sparc_delegitimize_address): New function.
2518 (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
2519
2520 2010-11-10 Quentin Neill <quentin.neill.gnu@gmail.com>
2521
2522 * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
2523 (x86_64-*-*): Likewise.
2524 * config/i386/cpuid.h: Define TBM bit.
2525 * config/i386/driver-i386.c (host_detect_local_cpu): Define
2526 and set has_tbm.
2527 * config/i386/i386-c.c (ix86_target_macros_internal): Check
2528 isa_flag for TBM.
2529 * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
2530 (OPTION_MASK_ISA_TBM_UNSET): New.
2531 (ix86_handle_option): Handle -mtbm.
2532 (isa_opts): Add -mtbm.
2533 (enum pta_flags): Add PTA_TBM.
2534 (ix86_option_override_internal): Add TBM support.
2535 (ix86_valid_target_attribute_inner_p): Handle -mtbm.
2536 (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
2537 (IX86_BUILTIN_BEXTRI64): Likewise.
2538 (bdesc_args): Add TBM intrinsics.
2539 (ix86_expand_builtin): Add TBM specific case.
2540 * config/i386/i386.h (TARGET_TBM): New for TBM.
2541 * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
2542 (tbm_bextri_<mode>): Likewise.
2543 (*tbm_blcfill_<mode>): Likewise.
2544 (*tbm_blci_<mode>): Likewise.
2545 (*tbm_blcic_<mode>): Likewise.
2546 (*tbm_blcmsk_<mode>): Likewise.
2547 (*tbm_blcs_<mode>): Likewise.
2548 (*tbm_blsfill_<mode>): Likewise.
2549 (*tbm_blsic_<mode>): Likewise.
2550 (*tbm_t1mskc_<mode>): Likewise.
2551 (*tbm_tzmsk_<mode>): Likewise.
2552 * config/i386/i386.opt: Add -mtbm.
2553 * config/i386/tbmintrin.h (__bextri_u32): New.
2554 (__blcfill_u32): Likewise.
2555 (__blci_u32): Likewise.
2556 (__blcic_u32): Likewise.
2557 (__blcmsk_u32): Likewise.
2558 (__blcs_u32): Likewise.
2559 (__blsfill_u32): Likewise.
2560 (__blsic_u32): Likewise.
2561 (__t1mskc_u32): Likewise.
2562 (__tzmsk_u32): Likewise.
2563 (__bextri_u64): Likewise.
2564 (__blcfill_u64): Likewise.
2565 (__blci_u64): Likewise.
2566 (__blcic_u64): Likewise.
2567 (__blcmsk_u64): Likewise.
2568 (__blcs_u64): Likewise.
2569 (__blsfill_u64): Likewise.
2570 (__blsic_u64): Likewise.
2571 (__t1mskc_u64): Likewise.
2572 (__tzmsk_u64): Likewise.
2573 * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
2574 * doc/invoke.texi: Document -mtbm.
2575 * doc/extend.texi: Document TBM built-in functions.
2576
2577 2010-11-10 Quentin Neill <quentin.neill.gnu@gmail.com>
2578
2579 * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
2580 (x86_64-*-*): Likewise.
2581 * config/i386/cpuid.h: Define BMI bit.
2582 * config/i386/driver-i386.c (host_detect_local_cpu): Define
2583 and set has_bmi.
2584 * config/i386/i386-c.c (ix86_target_macros_internal): Check
2585 isa_flag for BMI.
2586 * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
2587 (OPTION_MASK_ISA_BMI_UNSET): New.
2588 (ix86_handle_option): Handle -mbmi.
2589 (isa_opts): Add -mbmi.
2590 (enum pta_flags): Add PTA_BMI.
2591 (ix86_option_override_internal): Add BMI support.
2592 (ix86_valid_target_attribute_inner_p): Handle -mbmi.
2593 (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
2594 (IX86_BUILTIN_BEXTR64): Likewise.
2595 (IX86_BUILTIN_CTZS): Likewise.
2596 (bdesc_args): Add BMI intrinsics.
2597 (ix86_expand_args_builtin): Add BMI specific cases.
2598 * config/i386/i386.h (TARGET_BMI): New for BMI.
2599 (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
2600 (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
2601 * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
2602 (UNSPEC_TZCNT): Likewise.
2603 (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
2604 (bmi_andn_<mode>): New for BMI.
2605 (bmi_bextr_<mode>): Likewise.
2606 (bmi_blsi_<mode>): Likewise.
2607 (bmi_blsmsk_<mode>): Likewise.
2608 (bmi_blsr_<mode>): Likewise.
2609 * config/i386/i386.opt: Add -mbmi.
2610 * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
2611 * config/i386/bmiintrin.h (__lzcnt_u16): New.
2612 (__tzcnt_u16): Likewise.
2613 (__andn_u32): Likewise.
2614 (__bextr_u32): Likewise.
2615 (__blsi_u32): Likewise.
2616 (__blsmsk_u32): Likewise.
2617 (__blsr_u32): Likewise.
2618 (__lzcnt_u32): Likewise.
2619 (__tzcnt_u32): Likewise.
2620 (__andn_u64): Likewise.
2621 (__bextr_u64): Likewise.
2622 (__blsi_u64): Likewise.
2623 (__blsmsk_u64): Likewise.
2624 (__blsr_u64): Likewise.
2625 (__lzcnt_u64): Likewise.
2626 (__tzcnt_u64): Likewise.
2627 * doc/invoke.texi: Document -mbmi and -mno-bmi.
2628 * doc/extend.texi: Document BMI built-in functions.
2629
2630 2010-11-10 Jan Hubicka <jh@suse.cz>
2631
2632 PR tree-optimize/46228
2633 * doc/invoke.texi (comdat-sharing-probability): Document.
2634 * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
2635 * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
2636
2637 2010-11-10 Jan Hubicka <jh@suse.cz>
2638
2639 PR tree-optimize/46228
2640 * cgraph.c (cgraph_propagate_frequency): Fix typo.
2641
2642 2010-11-10 H.J. Lu <hongjiu.lu@intel.com>
2643
2644 PR tree-optimization/46414
2645 * tree-inline.c (estimate_move_cost): Check preferred vector
2646 mode for vector type.
2647
2648 2010-11-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2649
2650 * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
2651
2652 2010-11-10 Sebastian Pop <sebastian.pop@amd.com>
2653
2654 PR tree-optimization/45971
2655 * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
2656 for phi nodes analyzable by scev.
2657
2658 2010-11-10 Richard Guenther <rguenther@suse.de>
2659
2660 PR tree-optimization/44964
2661 * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
2662
2663 2010-11-10 Martin Jambor <mjambor@suse.cz>
2664
2665 PR tree-optimization/46351
2666 PR tree-optimization/46377
2667 * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
2668 aggregate bit-fields.
2669
2670 2010-11-10 Joseph Myers <joseph@codesourcery.com>
2671
2672 * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2673 * doc/tm.texi: Regenerate.
2674 * opts-common.c (tm.h): Don't include.
2675 (target_option_translations): Remove.
2676 (decode_cmdline_options_to_array): Don't handle translating options.
2677 * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
2678 * config/darwin-driver.c: Don't condition includes on
2679 CROSS_DIRECTORY_STRUCTURE.
2680 (darwin_default_min_version): Make static.
2681 (darwin_driver_init): New. Call darwin_default_min_version if not
2682 CROSS_DIRECTORY_STRUCTURE.
2683 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2684 (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
2685 (ASM_SPEC): Add %{static}.
2686 (darwin_default_min_version): Don't declare.
2687 (darwin_driver_init): Declare.
2688 (GCC_DRIVER_HOST_INITIALIZATION): Define to call
2689 darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
2690 * config/darwin.opt (all_load, allowable_client,
2691 arch_errors_fatal, bind_at_load, bundle, bundle_loader,
2692 dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
2693 exported_symbols_list, filelist, findirect-virtual-calls,
2694 flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
2695 framework, fterminated-vtables, gfull, gused, image_base, init,
2696 install_name, multi_module, multiply_defined,
2697 multiply_defined_unused, no_dead_strip_inits_and_terms,
2698 seg_addr_table, seg_addr_table_filename, segaddr,
2699 segs_read_only_addr, segs_read_write_addr, single_module,
2700 umbrella, unexported_symbols_list, weak_reference_mismatches,
2701 Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
2702 Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
2703 Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
2704 Zno_dead_strip_inits_and_terms, Zsingle_module): New.
2705 * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
2706 (ASM_SPEC): Add %{static}.
2707 (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
2708 * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2709 (DRIVER_SELF_SPECS): Handle options formerly in
2710 TARGET_OPTION_TRANSLATE_TABLE.
2711 * config/mep/mep.opt (mfar): New.
2712 * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2713 (DRIVER_SELF_SPECS): Define. Handle options formerly in
2714 TARGET_OPTION_TRANSLATE_TABLE.
2715 * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
2716 (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
2717 * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
2718 ffix-and-continue, findirect-data): New.
2719 * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2720 * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
2721 (mnofpu): Define mask and use Report here.
2722
2723 2010-11-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2724
2725 * config/s390/s390.c (s390_emit_prologue): Report the stack
2726 size if -fstack-usage is used.
2727
2728 2010-11-10 Richard Guenther <rguenther@suse.de>
2729
2730 PR tree-optimization/46398
2731 * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
2732
2733 2010-11-10 Joern Rennecke <amylaar@spamcop.net>
2734
2735 PR target/44760
2736 * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
2737 (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
2738 GP_REG_OR_PSEUDO_STRICT_P.
2739 * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
2740 unexpected alternative.
2741 (*movsf_internal): Likewise.
2742 (indirect_jump): Replace call to non-existant function with call to
2743 internal_error.
2744 (tablejump): Likewise.
2745 * config/iq2000/iq2000.c: Include df.h .
2746 (iq2000_function_arg_advance): Use CONST_CAST2.
2747 (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
2748 (iq2000_can_eliminate): Call leaf_function_p instead of testing for
2749 a non-zero function address.
2750 (iq2000_initial_elimination_offset): Add gcc_unreachable for
2751 unexpected value of FROM.
2752 (symbolic_expression_p): Delete.
2753 (iq2000_function_value): Constify func.
2754 (expand_one_builtin): Use expand_normal.
2755 (iq2000_print_operand): Don't print VALUE if calculating it failed.
2756
2757 PR rtl-optimization/44764
2758 * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
2759
2760 PR target/46407
2761 * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
2762 * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
2763 with ATTRIBUTE_UNUSED.
2764 (valid_psw_flag): Constify parameter which.
2765 (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
2766
2767 PR target/46415
2768 * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
2769 (mmix_dbx_register_number): Likewise.
2770 * config/mmix/mmix.c: Include df.h .
2771 (mmix_local_alignment): Change argument basic_align and return type
2772 to unsigned.
2773 (mmix_dbx_register_number): Change argument and return type to
2774 unsigned.
2775 (mmix_expand_prologue): Use add_reg_note.
2776
2777 PR target/46417
2778 * config/spu/spu.c (spu_expand_insv): Remove unused variables.
2779 (spu_split_store): Use aform.
2780 (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
2781
2782 2010-11-10 Laurynas Biveinis <laurynas.biveinis@gmail.com>
2783
2784 PR/46268
2785 * doc/gty.texi (GTY Options): Clarify that variable_size produces
2786 allocators taking size in bytes, compare with length option. Add
2787 size calculation example.
2788 (Invoking the garbage collector): Ensure that sentences are
2789 followed by two spaces. Describe that pointer fields must be
2790 initialized at ggc_collect call.
2791 (Troubleshooting): New section.
2792
2793 2010-11-09 Jan Hubicka <jh@suse.cz>
2794
2795 PR tree-optimization/40436
2796 * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
2797 * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
2798 normal instructions; be sure bultin is not implemented in this file;
2799 compute non-zero return cost.
2800 (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
2801 * tree-inline.h (eni_weights_d): Add return cost.
2802
2803 2010-11-09 Joseph Myers <joseph@codesourcery.com>
2804
2805 * c-parser.c (c_parser_struct_declaration): Handle declaration
2806 specifiers followed by CPP_CLOSE_BRACE.
2807
2808 2010-11-09 Michael Meissner <meissner@linux.vnet.ibm.com>
2809
2810 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
2811 split occurs before reload, and we allocate memory at the time of
2812 the split, not during expansion. Add attributes.
2813 (floatsi<mode>2_lfiwax_mem): Ditto.
2814 (floatunssi<mode>2_lfiwzx): Ditto.
2815 (floatunssi<mode>2_lfiwzx_mem): Ditto.
2816 (floatsidf2): Ditto.
2817 (floatunssisf2): Ditto.
2818 (floatunssidf2): Ditto.
2819 (fix_trunc<mode>si2): Ditto.
2820 (fix_trunc<mode>si2_stfiwx): Ditto.
2821 (fix_trunc<mode>si2_internal): Ditto.
2822 (fix_trunc<mode>si2): Ditto.
2823 (fix_trunc<mode>di2): Ditto.
2824 (fixuns_trunc<mode>si2_stfiwx): Ditto.
2825 (floatsisf2): Ditto.
2826 (floatdidf2_mem): Ditto.
2827 (floatunsdidf2_mem): Ditto.
2828 (floatunsdidf2): Ditto.
2829 (floatdisf2_internal1): Ditto.
2830 (floatdisf2_mem): Ditto.
2831 (floatunsdisf2_mem): Ditto.
2832 (floatsi<mode>2_lfiwax_mem2): Delete.
2833 (floatunssi<mode>2_lfiwzx_mem2): Ditto.
2834 (fix_trunc<mode>si2_mem): Ditto.
2835 (fixuns_trunc<mode>si2_mem): Ditto.
2836 (round32<mode>2_fprs): New combiner insn to combine (double)(int)
2837 type operations to reduce copying the values to multiple memory slots.
2838 (roundu32<mode>2_fprs): Ditto.
2839
2840 * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
2841 PRE_INC, PRE_DEC, PRE_MODIFY.
2842 (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
2843
2844 * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
2845 Delete prototype.
2846
2847 2010-11-09 Jakub Jelinek <jakub@redhat.com>
2848
2849 PR target/43808
2850 * cfgexpand.c (partition_stack_vars): Call
2851 update_alias_info_with_stack_vars unconditionally.
2852 (update_alias_info_with_stack_vars): Allow unused
2853 unreferenced vars when not optimizing.
2854
2855 2010-11-09 Sebastian Pop <sebastian.pop@amd.com>
2856
2857 PR tree-optimization/46036
2858 * tree-if-conv.c (predicate_bbs): Call unshare_expr before
2859 add_to_dst_predicate_list.
2860
2861 2010-11-09 Jakub Jelinek <jakub@redhat.com>
2862
2863 PR debug/46171
2864 * df-problems.c (struct dead_debug_use, struct dead_debug): Move
2865 earlier.
2866 (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
2867 argument, call dead_debug_reset when adding REG_UNUSED note.
2868 (dead_debug_reset): New function.
2869 (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
2870 df_create_unused_note callers.
2871
2872 2010-11-09 Anatoly Sokolov <aesok@post.ru>
2873
2874 * config/fr30/fr30.c: Include "df.h".
2875
2876 2010-11-09 Richard Guenther <rguenther@suse.de>
2877
2878 PR tree-optimization/46355
2879 * tree-loop-distribution.c (tree_loop_distribution): Do not
2880 distribute loops without a single exit.
2881
2882 2010-11-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2883
2884 PR rtl-optimization/46237
2885 * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
2886 saved hard regs if they might get partially clobbered.
2887
2888 2010-11-09 Paul Koning <ni1d@arrl.net>
2889
2890 * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
2891
2892 2010-11-09 Richard Guenther <rguenther@suse.de>
2893
2894 PR tree-optimization/46177
2895 * tree-loop-distribution.c (prop_phis): Remove.
2896 (generate_builtin): Re-use the old loop exit edge to avoid
2897 needing to update PHI nodes.
2898
2899 2010-11-09 Joern Rennecke <amylaar@spamcop.net>
2900
2901 * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
2902 type of args_size to unsigned HOST_WIDE_INT.
2903
2904 PR target/44755
2905 * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
2906 * config/t-pnt16-warn: New file.
2907 * config/picochip/picochip.c (picochip_emit_stack_allocate):
2908 Use add_reg_note.
2909 (picochip_emit_save_register): Likewise.
2910 (picochip_emit_restore_register): Remove variable insn.
2911 (picochip_legitimize_address): Don't use C++ style comments.
2912 (picochip_legitimize_reload_address): Likewise.
2913 (reorder_var_tracking_notes): Remove variable vliw_start.
2914 (picochip_reorg): Cast first arguemnt to emit_note_after to
2915 enum insn_note.
2916 (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
2917 (picochip_expand_builtin_3op): Likewise.
2918 (picochip_expand_builtin_2opvoid): Likewise.
2919 (picochip_expand_array_get, picochip_expand_array_put): Likewise.
2920 (picochip_expand_array_testport): Likewise.
2921 (picochip_init_builtins): Remove unused variables.
2922 * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
2923 to unsigned long, and output it as such.
2924 (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
2925 * config/picochip/picochip.md (movhicc): Remove nonsense statement.
2926 (schedType): Cast result of picochip_schedule_type to
2927 enum attr_schedType.
2928
2929 PR target/44759
2930 * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
2931 conditional to type of S.
2932 (mn10300_function_arg): Remove unused variable align.
2933 (mn10300_arg_partial_bytes): Likewise.
2934 * config/mn10300/mn10300.md (attribute cpu): Cast value to
2935 enum attr_cpu.
2936
2937 2010-11-09 H.J. Lu <hongjiu.lu@intel.com>
2938
2939 PR bootstrap/46392
2940 * gengtype-parse.c (type): Call get_input_file_name to get file name.
2941
2942 2010-11-09 Eric Botcazou <ebotcazou@adacore.com>
2943
2944 * tree.h (contains_placeholder_p): Fix comment.
2945 (type_contains_placeholder_p): Adjust comment.
2946 * tree.c (contains_placeholder_p): Fix comment.
2947 (type_contains_placeholder_1): Do not recurse on pointed-to types and
2948 adjust comment.
2949 (type_contains_placeholder_p): Add comment.
2950
2951 2010-11-09 Paul Koning <ni1d@arrl.net>
2952
2953 * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
2954 output of byte values.
2955
2956 2010-11-09 Jakub Jelinek <jakub@redhat.com>
2957
2958 PR middle-end/46360
2959 * tree-ssa-propagate.c (update_call_from_tree): Fix for use
2960 not in SSA mode.
2961
2962 2010-11-09 Richard Guenther <rguenther@suse.de>
2963
2964 PR middle-end/46221
2965 * varasm.c (compute_visible_aliases): New function.
2966 (remove_unreachable_alias_pairs): Aliases make a target available
2967 even though we reclaimed the cgraph node.
2968 (finish_aliases_1): Likewise.
2969 * Makefile.in (varasm.o): Add pointer-set.h dependency.
2970
2971 2010-11-09 Nick Clifton <nickc@redhat.com>
2972
2973 * config/mn10300/mn10300-modes.def: New file.
2974
2975 2010-11-09 Basile Starynkevitch <basile@starynkevitch.net>
2976 Jeremie Salvucci <jeremie.salvucci@free.fr>
2977
2978 * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
2979 (plugin_files, get_file_basename, get_file_realbasename)
2980 (get_file_langdir, error_at_line, gt_files, this_file)
2981 (system_h_file, read_input_list, create_field_all)
2982 (get_file_srcdir_relative_path, get_file_basename)
2983 (get_file_langdir, get_file_gtfilename)
2984 (get_output_file_with_visibility, get_output_file_name)
2985 (struct flist, put_mangled_filename, walk_type)
2986 (put_mangled_filename, finish_root_table, write_roots): Use
2987 input_file-s.
2988 (lang_dir_names, num_lang_dirs): Remove static.
2989 (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
2990 (main): Use input_file-s.
2991
2992 * gengtype.h: (struct input_file_st, input_file): New type.
2993 (struct fileloc): Use it.
2994 (gt_files, num_gt_files, this_file, system_h_file)
2995 (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
2996 (get_input_file_name): New function.
2997 (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
2998 use input_file.
2999 (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
3000 (get_output_file_name): Ditto.
3001
3002 * gengtype-lex.l (yybegin): Use input_file.
3003
3004 * gengtype-parse.c (parse_error): Use input_file.
3005
3006 2010-11-08 Xinliang David Li <davidxl@google.com>
3007
3008 PR tree-optimization/46316
3009 * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
3010 * double-int.h (double_int_mul_with_sign): New function.
3011 * double-int.c (double_int_mul_with_sign): New function.
3012
3013 2010-11-08 Paul Koning <ni1d@arrl.net>
3014
3015 * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
3016
3017 2010-11-08 Paul Koning <ni1d@arrl.net>
3018
3019 * config/pdp11/pdp11.md (negsi2): Fix wrong code.
3020
3021 2010-11-08 Paul Koning <ni1d@arrl.net>
3022
3023 * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
3024 to 8 bits.
3025
3026 2010-11-08 Michael Meissner <meissner@linux.vnet.ibm.com>
3027
3028 PR target/46378
3029 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
3030 turn on ISA 2.04 rounding instructions for power5.
3031
3032 * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
3033 not ISA 2.02.
3034
3035 PR target/45585
3036 * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
3037 in FPR registers.
3038 (movdi_low_st): Ditto.
3039
3040 2010-11-08 Joern Rennecke <amylaar@spamcop.net>
3041 Richard Henderson <rth@redhat.com>
3042
3043 PR target/44758
3044 * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
3045 (attribute acc_group): Cast value to enum attr_acc_group.
3046 (*movdi_nodouble+6): Use gen_int_mode.
3047 * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
3048 if RTX_CODE is defined or not.
3049 * config/frv/frv.c (enum frv_io_type): New enum, broken out of
3050 struct frv_io.
3051 (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
3052 (frv_frame_access, frv_expand_prologue): Remove unused variables.
3053 (frv_expand_block_clear): Likewise.
3054 (frv_trampoline_init): Use LCT_NORMAL.
3055 (struct frv_packet_group): New struct, broken out of type of
3056 frv_packet.
3057 (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
3058 use cast in loop counter increment.
3059 (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
3060 assigning to io->type.
3061 (bdesc_set): Use rtx_code UNKNOWN in initializer.
3062 (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
3063 (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
3064 (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
3065 (frv_read_argument): Use expand_normal.
3066
3067 PR target/44757
3068 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
3069 lm32_legitimate_constant_p.
3070 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
3071 * config/lm32/lm32.c (gen_int_relational): Make new block for
3072 LE / LT / LEU / LTU case. Declare variables at start of block.
3073 (lm32_block_move_inline): Use XALLOCAVEC.
3074
3075 2010-11-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3076
3077 * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
3078
3079 2010-11-08 Basile Starynkevitch <basile@starynkevitch.net>
3080
3081 * gengtype (get_output_file_for_structure): Ensure type is union
3082 or struct.
3083 (write_splay_tree_allocator_def): Use
3084 get_output_file_with_visibility.
3085
3086 2010-11-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3087
3088 * config/s390/s390.c (s390_handle_arch_option): Set type and flags
3089 to defined values in case of an error.
3090 (s390_option_override): Skip further processing if the -march
3091 parameter wasn't recognized.
3092
3093 2010-11-08 Joern Rennecke <amylaar@spamcop.net>
3094
3095 * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
3096 assert that REG is a hard register number before using it as an index.
3097
3098 PR bootstrap/46358
3099 * config/i386/i386.c (ix86_expand_split_stack_prologue):
3100 Avoid warnings when HOST_WIDE_INT is 32 bit.
3101
3102 2010-11-08 Eric Botcazou <ebotcazou@adacore.com>
3103
3104 PR target/46208
3105 * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
3106 (sparc_promote_prototypes): Likewise.
3107 (sparc_promote_function_mode): Promote in 32-bit mode as well.
3108 (sparc_return_in_memory): Remove superfluous parentheses.
3109 (sparc_struct_value_rtx): Fix long lines.
3110 (sparc_function_value_1): Promote in 32-bit mode as well.
3111
3112 2010-11-08 Andrey Belevantsev <abel@ispras.ru>
3113
3114 PR rtl-optimization/45352
3115 * sel-sched.c (find_best_expr): Do not set pneed_stall when
3116 the variable_issue hook is not implemented.
3117 (fill_insns): Remove dead variable stall_iterations.
3118 (init_seqno_1): Force EBB start for resetting sched cycles on any
3119 successor blocks of the rescheduled region.
3120 (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
3121 (reset_sched_cycles_in_current_ebb): Add debug printing.
3122 New variable issued_insns. Advance state when we have issued
3123 issue_rate insns.
3124
3125 2010-11-08 Basile Starynkevitch <basile@starynkevitch.net>
3126
3127 * gengtype (main): Get here's position using POS_HERE macro for
3128 do*typedef calls.
3129
3130 2010-11-07 Ian Lance Taylor <iant@google.com>
3131
3132 PR target/46089
3133 * config/i386/i386.c (split_stack_fn_large): New static variable.
3134 (ix86_expand_split_stack_prologue): Handle large model.
3135
3136 2010-11-07 Andreas Schwab <schwab@linux-m68k.org>
3137
3138 * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
3139 all possible addressing modes.
3140
3141 2010-11-07 Uros Bizjak <ubizjak@gmail.com>
3142
3143 PR tree-optimization/46346
3144 * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
3145
3146 2010-11-07 Richard Sandiford <rdsandiford@googlemail.com>
3147
3148 * config/mips/mips.c: Revert previous patch.
3149 * config/mips/mips.md: Likewise.
3150
3151 2010-11-07 Richard Sandiford <rdsandiford@googlemail.com>
3152
3153 * config/mips/mips.c (mips_rtx_costs): Handle FMA.
3154 * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
3155 (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
3156 (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
3157 (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
3158 to use FMA.
3159 (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
3160 (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
3161 (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
3162 (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
3163
3164 2010-11-06 Simon Martin <simartin@users.sourceforge.net>
3165
3166 PR c/43384
3167 * c-decl.c (lookup_label): Labels can only be referenced in a
3168 function's scope.
3169 (store_parm_decls_oldstyle): Skip erroneous parameters.
3170
3171 2010-11-06 Anatoly Sokolov <aesok@post.ru>
3172
3173 * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
3174 LIBCALL_VALUE): Remove macros.
3175 * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3176 TARGET_FUNCTION_VALUE_REGNO_P): Define.
3177 (fr30_function_value_regno_p, fr30_function_value,
3178 fr30_libcall_value): New functions.
3179
3180 2010-11-06 Joern Rennecke <amylaar@spamcop.net>
3181
3182 PR middle-end/46314
3183 * target.def (generate_internal_label): New asm_out hook.
3184 * output.h (default_generate_internal_label): Declare.
3185 * varasm.c (default_generate_internal_label): Define.
3186
3187 2010-11-06 Iain Sandoe <iains@gcc.gnu.org>
3188
3189 PR target/44981
3190 * doc/extend.tex (format): Document NSString extension.
3191 (format_arg): Likewise.
3192 (Darwin Format Checks): New section.
3193 * doc/tm.texi: Document string object hooks (generated).
3194 * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
3195 (TARGET_STRING_OBJECT_REF_TYPE_P): New.
3196 (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
3197 * target.def (objc_construct_string_object): Rename, amend
3198 documentation.
3199 (string_object_ref_type_p): New hook.
3200 (check_string_object_format_arg): New hook.
3201 * c-parser.c (c_parser_attributes): Allow objective-c class names as
3202 attribute identifiers.
3203 * config/darwin-c.c (darwin_cfstring_ref_p): New.
3204 (darwin_check_cfstring_format_arg): New.
3205 (darwin_additional_format_types): New.
3206 * config/darwin-protos.h (darwin_cfstring_ref_p) New.
3207 (darwin_check_cfstring_format_arg): New.
3208 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
3209 (TARGET_STRING_OBJECT_REF_TYPE_P): New.
3210 (TARGET_N_FORMAT_TYPES): New.
3211 (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
3212
3213 2010-11-06 Eric Botcazou <ebotcazou@adacore.com>
3214 Pascal Obry <obry@adacore.com>
3215
3216 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine. Use 33
3217 in 64-bit mode and 17 otherwise.
3218
3219 2010-11-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3220
3221 PR debug/45939
3222 * var-tracking.c (emit_note_insn_var_location): Make sure that
3223 call related var location notes come before the normal ones.
3224
3225 2010-11-05 H.J. Lu <hongjiu.lu@intel.com>
3226
3227 PR target/46326
3228 * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
3229 in the last change.
3230
3231 2010-11-05 Ian Lance Taylor <iant@google.com>
3232
3233 * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
3234
3235 2010-11-05 Jakub Jelinek <jakub@redhat.com>
3236
3237 PR c/44772
3238 * c-decl.c (warn_cxx_compat_finish_struct): Don't call
3239 pointer_set_contains if DECL_NAME is NULL.
3240
3241 2010-11-05 Ian Lance Taylor <iant@google.com>
3242
3243 PR target/46084
3244 * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
3245 request enough additional space for alignment, and force alignment.
3246
3247 2010-11-05 Kai Tietz <kai.tietz@onevision.com>
3248
3249 * config/i386/i386.c (legitimate_pic_address_disp_p):
3250 Handle UNSPEC_PCREL.
3251 (ix86_legitimate_address_p): Likewise.
3252 (legitimize_pic_address): Likewise.
3253 (output_pic_addr_const): Likewise.
3254 (ix86_delegitimize_address): Likewise.
3255 (ix86_find_base_term): Likewise.
3256 (memory_address_length): Likewise.
3257 (x86_output_mi_thunk): Handle special case x64
3258 for non local binding.
3259 * config/i386/i386.md (UNSPEC_PCREL): New.
3260 * config/i386/winnt.c (i386_pe_binds_local_p):
3261 Allow weak symbol for x64 windows with non-local binding.
3262
3263 2010-11-05 Jakub Jelinek <jakub@redhat.com>
3264
3265 PR target/45670
3266 * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
3267 instead of EXPAND_NORMAL for base expansion.
3268
3269 2010-11-05 Uros Bizjak <ubizjak@gmail.com>
3270
3271 * config.gcc: Support --with-fpmath=avx for x86.
3272 * config/i386/avxmath.h: New.
3273 * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
3274
3275 2010-11-05 Ian Lance Taylor <iant@google.com>
3276
3277 * tree.h (struct tree_type): Don't use descbits in GTY annotation.
3278 * gengtype.c (walk_type): Don't recognize descbits option.
3279
3280 2010-11-05 Joseph Myers <joseph@codesourcery.com>
3281
3282 * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
3283 WORD_SWITCH_TAKES_ARG): Remove.
3284 * doc/options.texi (Args): Document.
3285 * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
3286 * doc/tm.texi: Regenerate.
3287 * opt-functions.awk (switch_flags): Handle Args.
3288 * opts-common.c: Update comment on tm.h include.
3289 (decode_cmdline_option): Handle options with multiple arguments.
3290 Don't check WORD_SWITCH_TAKES_ARG for unknown options.
3291 * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
3292 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
3293 CL_COMMON): Update values.
3294 * system.h (WORD_SWITCH_TAKES_ARG): Poison.
3295 * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
3296 * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
3297 sectobjectsymbols, sectorder, segcreate, segprot): New.
3298
3299 2010-11-05 H.J. Lu <hongjiu.lu@intel.com>
3300 Uros Bizjak <ubizjak@gmail.com>
3301
3302 * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
3303 256bit AVX register is used.
3304 (ix86_expand_vector_move_misalign): Likewise.
3305 (ix86_expand_vector_move): Replace use_avx256_p with
3306 VALID_AVX256_REG_MODE.
3307
3308 2010-11-05 Joern Rennecke <amylaar@spamcop.net>
3309
3310 PR target/44750
3311 * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
3312 change. Set $@-warn.o to -Wno-error.
3313
3314 PR bootstrap/44756
3315 * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
3316 comparing it to a signed value.
3317
3318 PR middle-end/44766
3319 * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
3320 PR bootstrap/44770
3321 * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
3322 to i.
3323
3324 PR target/44754
3325 * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
3326 (m32c_function_arg). Add comma between arguments two and three.
3327 (m32c_promote_prototypes): Remove declaration.
3328 (current_function_special_page_vector): Likewise.
3329 (m32c_regno_reg_class): Change return type to enum reg_class.
3330 (m32c_pushm_popm): Use add_reg_note.
3331 (m32c_push_rounding): Change return type to unsigned int.
3332 (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
3333 enum reload_type.
3334 (m32c_insert_attributes): Constify variable name.
3335 (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
3336 (m32c_prepare_shift): Remove variable lref.
3337 (m32c_expand_movcc): Remove variable cmp.
3338 (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
3339 (m32c_compare_redundant): Remove variable op2.
3340 * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
3341 (m32c_pragma_memregs): Assign the number to target_memregs.
3342 (m32c_pragma_address): Remove variable var_str.
3343 * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
3344 enum reg_class.
3345 (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
3346 * config/m32c/bitops.md (andsi3): Add default case to switch.
3347 (iorsi3, xorsi3): Likewise.
3348 * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
3349 * config/m32c/jump.md (call, call_value): Likewise.
3350 * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
3351 (m32c_regno_reg_class): Likewise.
3352 (current_function_special_page_vector): Declare.
3353
3354 2010-11-05 Jakub Jelinek <jakub@redhat.com>
3355
3356 * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
3357
3358 PR tree-optimization/46099
3359 * tree-parloops.c (take_address_of): Add GSI argument. Return NULL
3360 if it is NULL and uid wasn't found in the hash table. Just fold the
3361 result if it is NULL otherwise. Insert other potentially needed
3362 stmts right before current stmt instead of on the entry edge.
3363 (struct elv_data): Add gsi and reset fields.
3364 (eliminate_local_variables_1): Adjust caller. If take_address_of
3365 failed for debug stmt, set dta->reset and return.
3366 (eliminate_local_variables_stmt): Change STMT argument for GSI,
3367 pass GSI through to the callback, handle resetting of debug stmts.
3368 (eliminate_local_variables): Adjust caller. Process debug stmts
3369 in second phase.
3370
3371 PR middle-end/43690
3372 * gimplify.c (gimplify_asm_expr): If a "m" input is a
3373 {pre,post}{in,de}crement, fail.
3374
3375 PR debug/46307
3376 * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
3377 * tree-pretty-print.c (dump_generic_node): Likewise.
3378 (op_code_prio): Likewise.
3379 * cfgexpand.c (expand_debug_expr): Likewise.
3380
3381 2010-11-04 Paul Koning <ni1d@arrl.net>
3382
3383 * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
3384 constraints.
3385
3386 2010-11-04 Chao-ying Fu <fu@mips.com>
3387
3388 * configure.ac: Test assembler support for DSP Rev1 mult.
3389 * configure: Regenerate.
3390 * config.in: Regenerate.
3391 * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
3392 * config/mips/mips.c (CODE_FOR_mips_mult): New define.
3393 (CODE_FOR_mips_multu): New define.
3394 (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
3395 dspr2_32 to dsp_32.
3396 (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
3397 Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
3398 * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
3399 New define_expand patterns.
3400 * config/mips/constraints.md (ka): Update the constraint to test
3401 ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
3402 * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
3403 mips_multu): Delete.
3404 * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
3405 Change target constraint to "ka".
3406 Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
3407 (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
3408 Emit the accumulator destination when ISA_HAS_DSP_MULT.
3409 (<u>msubsidi4): Add comments. Test ISA_HAS_DSP.
3410 Emit the accumulator destination when ISA_HAS_DSP_MULT.
3411 (<u>maddsidi4): Likewise.
3412 * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
3413 msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
3414
3415 2010-11-04 Paul Koning <ni1d@arrl.net>
3416
3417 * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
3418
3419 2010-11-04 Paul Koning <ni1d@arrl.net>
3420
3421 * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
3422
3423 2010-11-04 Nicola Pero <nicola.pero@meta-innovation.com>
3424
3425 Fixed using the Objective-C 2.0 dot-syntax with class names.
3426 * c-parser.c (c_parser_next_token_starts_declspecs): In
3427 Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
3428 (c_parser_next_token_starts_declaration): Same.
3429 (c_parser_postfix_expression): Parse the Objective-C 2.0
3430 dot-syntax with a class name.
3431
3432 2010-11-04 Pat Haugen <pthaugen@us.ibm.com>
3433
3434 * final.c (compute_alignments): Compute/free loop info all the time.
3435 * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
3436 * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
3437 * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
3438 * config/rs6000/rs6000.c (cfgloop.h): Include.
3439 (can_override_loop_align): New.
3440 (rs6000_option_override_internal): Set it.
3441 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
3442 (rs6000_loop_align): New function.
3443 (rs6000_loop_align_max_skip): Likewise.
3444
3445 2010-11-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3446
3447 PR driver/45703
3448 * collect2.c (main): Print --help output to stdout. Do not
3449 exit right away, so ld --help is appended. Add empty lines
3450 to separate output suitably.
3451
3452 2010-11-04 Jakub Jelinek <jakub@redhat.com>
3453
3454 PR tree-optimization/46233
3455 * ipa-pure-const.c (local_pure_const): Do noreturn discovery
3456 after calling analyze_function, not before.
3457
3458 PR target/46234
3459 * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
3460 instead of build_va_arg_indirect_ref.
3461 * config/spu/spu.c (spu_va_start): Likewise.
3462 * config/s390/s390.c (s390_va_start): Likewise.
3463
3464 2010-11-03 Uros Bizjak <ubizjak@gmail.com>
3465
3466 PR middle-end/46292
3467 * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
3468 if the innermode is not vector mode, determine the mode of a subreg
3469 by using mode_for_size of inner_size.
3470
3471 2010-11-04 Richard Guenther <rguenther@suse.de>
3472
3473 PR rtl-optimization/46183
3474 * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
3475 (execute_rtl_pre): Likewise.
3476 (execute_rtl_hoist): Likewise.
3477
3478 2010-11-04 Richard Guenther <rguenther@suse.de>
3479
3480 PR tree-optimization/46068
3481 * ipa-split.c (consider_split): Remove gcc_unreachable.
3482
3483 2010-11-04 Richard Guenther <rguenther@suse.de>
3484
3485 * tree-nested.c (build_addr): Use build_fold_addr_expr.
3486
3487 2010-11-04 Richard Guenther <rguenther@suse.de>
3488
3489 PR tree-optimization/45991
3490 * gimplify.c (force_gimple_operand_1): Use the provded test
3491 function in the initial test.
3492
3493 2010-11-04 Jeff Law <law@redhat.com>
3494
3495 * ira.c (validate_equiv_mem): Remove code to avoid invalidation
3496 of readonly memory equivalances for const/pure calls.
3497
3498 2010-11-04 Richard Guenther <rguenther@suse.de>
3499
3500 PR tree-optimization/45733
3501 * tree-vect-stmts.c (reverse_vec_elements): Honor the
3502 permute builtins function return type.
3503
3504 2010-11-04 Joern Rennecke <amylaar@spamcop.net>
3505
3506 PR middle-end/44765
3507 * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
3508 as an index, check it is not INVALID_REGNUM.
3509
3510 PR bootstrap/44756
3511 * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
3512 unsignedp.
3513 * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
3514
3515 PR bootstrap/44756
3516 * function.c (thread_prologue_and_epilogue_insns): Add
3517 ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
3518
3519 PR bootstrap/44756
3520 * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
3521
3522 PR target/44750
3523 * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
3524 (pdp11_preferred_reload_class): Rename class to rclass.
3525 (pdp11_preferred_output_reload_class): Likewise.
3526 * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
3527 ALL_COMPILERFLAGS .
3528 (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
3529
3530 PR bootstrap/44756
3531 * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
3532 iteration variables to enum machine_mode.
3533
3534 PR target/44751
3535 * config/h8300/h8300.c: Include df.h.
3536 (push, pop): Use add_reg_note.
3537 (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
3538 (compute_a_shift_cc): Likewise.
3539 (expand_a_shift): Argument code has type enum rtx_code.
3540 (struct shift_insn): Member cc_valid has type enum attr_cc.
3541 (struct shift_info) <cc_inline, cc_special>: Likewise.
3542 enum attr_cc.
3543 * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
3544 (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
3545
3546 2010-11-04 Ira Rosen <irar@il.ibm.com>
3547
3548 PR tree-optimization/46213
3549 * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
3550 MINUS_EXPR only if the first operand is reduction operand.
3551
3552 2010-11-04 Richard Guenther <rguenther@suse.de>
3553 Richard Henderson <rth@redhat.com>
3554
3555 * tree.def (FMA_EXPR): New tree code.
3556 * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
3557 * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
3558 * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
3559 * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
3560 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
3561 * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
3562 (execute_optimize_widening_mul): Call it. Reorganize to allow
3563 dead stmt removal. Move TODO flags ...
3564 (pass_optimize_widening_mul): ... here.
3565 * flag-types.h (enum fp_contract_mode): New enum.
3566 * common.opt (flag_fp_contract_mode): New variable.
3567 (-ffp-contract): New option.
3568 * opts.c (common_handle_option): Handle it.
3569 * doc/invoke.texi (-ffp-contract): Document.
3570 * tree.h (fold_fma): Declare.
3571 * builtins.c (fold_fma): New function.
3572 (fold_builtin_fma): Likewise.
3573 (fold_builtin_3): Call it for fma.
3574 * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
3575 * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
3576 * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
3577 New expanders.
3578 * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
3579 named patterns.
3580 * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
3581 * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
3582 (fms_optab, fnma_optab, fnms_optab): New defines.
3583 * gimplify.c (gimplify_expr): Handle binary truth expressions
3584 explicitly. Handle FMA_EXPR.
3585 * tree-vect-stmts.c (vectorizable_operation): Handle ternary
3586 operations.
3587
3588 2010-11-04 Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
3589 Richard Guenther <rguenther@suse.de>
3590
3591 * passes.c (init_optimization_passes): Move veclower after SSA.
3592 * tree-vect-generic.c (uniform_vector_p): New function.
3593 (expand_vector_operations_1): Handle conversion.
3594 (pass_lower_vector): Update SSA form.
3595
3596 2010-11-04 Iain Sandoe <iains@gcc.gnu.org>
3597
3598 * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
3599 plugin capabilities.
3600 * configure: Regenerate.
3601
3602 2010-11-03 Xinliang David Li <davidxl@google.com>
3603
3604 PR target/46200
3605 * tree-ssa-loop-ivopts.c (get_computation_cost_at):
3606 Adjust cbase if the use stmt is after iv update.
3607
3608 2010-11-03 Kaz Kojima <kkojima@gcc.gnu.org>
3609
3610 * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
3611
3612 2010-11-03 Kaz Kojima <kkojima@gcc.gnu.org>
3613
3614 * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
3615 comment. Pass true to the last argument of output_stack_adjust.
3616
3617 2010-11-03 H.J. Lu <hongjiu.lu@intel.com>
3618
3619 PR target/46295
3620 * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
3621 if 256bit AVX register is used.
3622
3623 2010-11-03 Michael Meissner <meissner@linux.vnet.ibm.com>
3624
3625 * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
3626 xsmindp/xsmaxdp on VSX for single precision min/max.
3627 * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
3628 (vsx_sminsf3): Ditto.
3629
3630 2010-11-03 Eric Botcazou <ebotcazou@adacore.com>
3631
3632 * combine.c (try_combine): Fix formatting issues, improve comments and
3633 fix a pasto.
3634
3635 2010-11-03 Eric Botcazou <ebotcazou@adacore.com>
3636
3637 * tree-tailcall.c (find_tail_calls): Convert the operands to the type
3638 of the result before building binary expressions.
3639
3640 2010-11-03 H.J. Lu <hongjiu.lu@intel.com>
3641
3642 PR rtl-optimization/45865
3643 * Makefile.in (df-problems.o): Revert revision 164552.
3644 * basic-block.h (enum bb_flags): Likewise.
3645 * cfgcleanup.c (block_was_dirty): Likewise.
3646 (try_forward_edges): Likewise.
3647 (try_crossjump_bb): Likewise.
3648 (try_head_merge_bb): Likewise.
3649 (try_optimize_cfg): Likewise.
3650 (cleanup_cfg): Likewise.
3651 * df-core.c (df_set_bb_dirty): Likewise.
3652 * df-problems.c: Likewise.
3653 (df_simulate_find_uses): Likewise.
3654 (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
3655 (find_memory, find_memory_store): Likewise.
3656 (can_move_insns_across): Likewise.
3657 * df.h (can_move_insns_across): Likewise.
3658 * ifcvt.c (find_memory): Likewise.
3659 (dead_or_predicable): Likewise.
3660
3661 2010-11-03 Richard Guenther <rguenther@suse.de>
3662
3663 PR middle-end/46288
3664 * predict.c (strip_predict_hints): Simply DCE builtin expect if
3665 the result is unused.
3666
3667 2010-11-03 Jakub Jelinek <jakub@redhat.com>
3668
3669 PR tree-optimization/46009
3670 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
3671 cond_if_else_store_replacement if bb1 and bb2 have the same
3672 single successor.
3673 (cond_store_replacement): Use gimple_assign_single_p, don't
3674 check if rhs is SSA_NAME or invariant. Call release_defs for
3675 assign.
3676 (cond_if_else_store_replacement): New function.
3677
3678 2010-11-03 Richard Guenther <rguenther@suse.de>
3679
3680 * opts.c (finish_options): Properly check for all WHOPR
3681 flags before complaining about -flto-partition.
3682
3683 2010-11-04 Alan Modra <amodra@gmail.com>
3684
3685 * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
3686 (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
3687 TARGET_SECURE_PLT.
3688 * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
3689 * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
3690 on input, "r" on output.
3691
3692 2010-11-03 Nicola Pero <nicola.pero@meta-innovation.com>
3693
3694 Implemented -fobjc-std=objc1 flag.
3695 * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
3696 option.
3697 * doc/standards.texi (Standards): Updated the section on
3698 Objective-C; mention support for Objective-C 2.0 features and the
3699 new -fstd-objc=objc1 flag to disable them.
3700
3701 2010-11-03 Richard Guenther <rguenther@suse.de>
3702
3703 PR middle-end/46241
3704 * dwarf2out.c (scope_die_for): Properly detect global scope.
3705
3706 2010-11-03 Richard Guenther <rguenther@suse.de>
3707
3708 PR tree-optimization/46190
3709 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
3710 Properly compute peel iterations.
3711
3712 2010-11-03 Richard Guenther <rguenther@suse.de>
3713
3714 PR tree-optimization/46286
3715 * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
3716 re-allocated vector data.
3717
3718 2010-11-03 H.J. Lu <hongjiu.lu@intel.com>
3719
3720 PR target/46285
3721 * config/i386/i386.c (ix86_expand_call): Conditionally decorate
3722 calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
3723 is completed.
3724
3725 2010-11-03 Richard Guenther <rguenther@suse.de>
3726
3727 PR tree-optimization/46217
3728 * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
3729 flag matches.
3730 (execute_update_addresses_taken): Likewise.
3731
3732 2010-11-03 Joern Rennecke <joern.rennecke@embecosm.com>
3733
3734 PR bootstrap/44335
3735 * targhooks.c (targhook_words_big_endian): New function.
3736 (targhook_float_words_big_endian): Likewise.
3737 * targhooks.h (targhook_words_big_endian): Declare.
3738 (targhook_float_words_big_endian): Likewise.
3739 * target.def (words_big_endian, float_words_big_endian): New hooks.
3740
3741 2010-11-03 Jakub Jelinek <jakub@redhat.com>
3742
3743 PR tree-optimization/46165
3744 * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
3745 a normal call into noreturn call.
3746
3747 2010-11-03 Richard Guenther <rguenther@suse.de>
3748
3749 PR middle-end/46251
3750 * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
3751 not INDIRECT_REFs.
3752
3753 2010-11-03 Jakub Jelinek <jakub@redhat.com>
3754
3755 PR tree-optimization/46107
3756 * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
3757 if cfg_hook_duplicate_loop_to_header_edge failed.
3758
3759 2010-11-03 Ian Lance Taylor <iant@google.com>
3760
3761 PR lto/46273
3762 * config.gcc: Don't set lto_binary_reader.
3763 * doc/install.texi (Prerequisites): Remove libelf paragraphs.
3764 (Configuration): Mention --disable-lto. Remove --with-libelf
3765 paragraph.
3766
3767 2010-11-03 Jakub Jelinek <jakub@redhat.com>
3768
3769 PR debug/46252
3770 * reload1.c (delete_dead_insn): Use prev_active_insn instead of
3771 prev_real_insn.
3772 * gcse.c (insert_insn_end_basic_block): Likewise.
3773
3774 PR rtl-optimization/46034
3775 PR rtl-optimization/46212
3776 PR rtl-optimization/46248
3777 * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
3778 and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
3779 before i0dest -> i0src substitution and pass 1 instead of 0 as last
3780 argument to subst on i2pat.
3781
3782 2010-11-02 Ian Lance Taylor <iant@google.com>
3783
3784 * configure.ac: Use AC_SYS_LARGEFILE.
3785 * configure: Rebuild.
3786 * config.in: Rebuild.
3787
3788 2010-11-02 Nathan Froyd <froydnj@codesourcery.com>
3789
3790 * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
3791 fold_convert.
3792 * c-typeck.c (build_function_call_vec): Likewise.
3793 * cfgexpand.c (expand_debug_expr): Likewise.
3794 * cgraphunit.c (assemble_thunk): Likewise.
3795 * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
3796 * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
3797 (fold_binary_loc, fold_ternary_loc): Likewise.
3798 * gimple-fold.c (get_symbol_constant_value): Likewise.
3799 * gimple-low.c (lower_builtin_setjmp): Likewise.
3800 * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
3801 * gimplify.c (gimplify_init_constructor): Likewise.
3802 * lambda.h (build_linear_expr): Likewise.
3803 * omp-low.c (omp_reduction_init): Likewise.
3804 * tree-inline.c (remap_ssa_name): Likewise.
3805 * tree-object-size.c (compute_object_sizes): Likewise.
3806 * tree-sra.c (init_subtree_with_zero): Likewise.
3807 (sra_ipa_modify_assign): Likewise.
3808 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
3809 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
3810 (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
3811 (undistribute_ops_list): Likewise.
3812 * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
3813 * tree-vect-stmts.c (vectorizable_call): Likewise.
3814 * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
3815 (build_zero_cst): Handle more cases directly. Update comment.
3816
3817 2010-11-02 H.J. Lu <hongjiu.lu@intel.com>
3818
3819 * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
3820 * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
3821
3822 * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
3823 and call ix86_split_call_vzeroupper instead of
3824 ix86_split_call_pop_vzeroupper.
3825 (*call_pop_1_vzeroupper): Likewise.
3826 (*sibcall_pop_1_vzeroupper): Likewise.
3827 (*call_value_pop_0_vzeroupper): Likewise.
3828 (*call_value_pop_1_vzeroupper): Likewise.
3829 (*sibcall_value_pop_1_vzeroupper): Likewise.
3830
3831 2010-11-02 H.J. Lu <hongjiu.lu@intel.com>
3832
3833 * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
3834
3835 2010-11-02 Eric Botcazou <ebotcazou@adacore.com>
3836
3837 * basic-block.h (insert_insn_end_bb_new): Delete.
3838 * cfgrtl.c (insert_insn_end_bb_new): Likewise.
3839
3840 2010-11-02 Uros Bizjak <ubizjak@gmail.com>
3841 H.J. Lu <hongjiu.lu@intel.com>
3842
3843 * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
3844 (ix86_split_call_pop_vzeroupper): Likewise.
3845
3846 * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
3847 (ix86_expand_call): Conditionally decorate calls with
3848 UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
3849 (ix86_split_call_vzeroupper): New.
3850 (ix86_split_call_pop_vzeroupper): Likewise.
3851
3852 * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
3853 (*call_pop_0_vzeroupper): New insn_and_split pattern.
3854 (*call_pop_1_vzeroupper): Likewise.
3855 (*sibcall_pop_1_vzeroupper): Likewise.
3856 (*call_0_vzeroupper): Likewise.
3857 (*call_1_vzeroupper): Likewise.
3858 (*sibcall_1_vzeroupper): Likewise.
3859 (*call_1_rex64_vzeroupper): Likewise.
3860 (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
3861 (*call_1_rex64_large_vzeroupper): Likewise.
3862 (*sibcall_1_rex64_vzeroupper): Likewise.
3863 (*call_value_pop_0_vzeroupper): Likewise.
3864 (*call_value_pop_1_vzeroupper): Likewise.
3865 (*sibcall_value_pop_1_vzeroupper): Likewise.
3866 (*call_value_0_vzeroupper): Likewise.
3867 (*call_value_0_rex64_vzeroupper): Likewise.
3868 (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
3869 (*call_value_1_vzeroupper): Likewise.
3870 (*sibcall_value_1_vzeroupper): Likewise.
3871 (*call_value_1_rex64_vzeroupper): Likewise.
3872 (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
3873 (*call_value_1_rex64_large_vzeroupper): Likewise.
3874 (*sibcall_value_1_rex64_vzeroupper): Likewise.
3875
3876 2010-11-02 Ian Lance Taylor <iant@google.com>
3877
3878 PR lto/46273
3879 * config.gcc: Revert last patch: set lto_binary_reader.
3880
3881 2010-11-02 Richard Guenther <rguenther@suse.de>
3882
3883 PR tree-optimization/46149
3884 * tree-ssa-structalias.c (get_constraint_for_1): Properly handle
3885 non-indirect MEM_REF variants.
3886
3887 2010-11-02 Richard Guenther <rguenther@suse.de>
3888
3889 PR tree-optimization/46216
3890 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
3891 Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
3892
3893 2010-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3894
3895 * configure.ac (*-*-irix6*): Disable set_have_as_tls.
3896 (*-*-osf*): Likewise.
3897 * configure: Regenerate.
3898
3899 2010-11-02 H.J. Lu <hongjiu.lu@intel.com>
3900
3901 * config/i386/driver-i386.c (host_detect_local_cpu): Updated
3902 for Intel Core 2 and Core i7.
3903
3904 2010-11-02 Maxim Kuvyrkov <maxim@codesourcery.com>
3905
3906 Model decoder of Core 2/i7 for multipass scheduling.
3907
3908 * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
3909 New type to hold target-specific data for multipass scheduling.
3910 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
3911 * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
3912 Core 2/i7.
3913 (core2i7_secondary_decoder_max_insn_size,)
3914 (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
3915 New static variables.
3916 ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
3917 ([_]ix86_first_cycle_multipass_data): New static variable.
3918 (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
3919 Implement targetm.sched hooks.
3920 (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
3921 of ...
3922 (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
3923 Implement new targetm.sched hooks.
3924 (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
3925 targetm.sched hook to install multipass scheduling hooks on demand.
3926
3927 * doc/tm.texi.in: Document new targetm.sched hooks.
3928 * doc/tm.texi: Regenerate.
3929
3930 * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
3931 (first_cycle_multipass_data_t): New typedef.
3932 (struct choice_entry: target_data): New field.
3933 (max_issue): Add first_cycle_insn_p parameter. Call new target hooks
3934 to allow target model restrictions not represented in DFA.
3935 (choose_ready, schedule_block): Update.
3936 (sched_extend_ready_list, sched_finish_ready_list): Call new target
3937 hooks to initialize target-specific data for multipass scheduling.
3938 * sched-int.h (max_issue): Update declaration.
3939 * sel-sched.c (choose_best_insn): Update.
3940 * target.def (first_cycle_multipass_{begin, issue, backtrack},)
3941 (first_cycle_multipass_{init, fini}): Define and document new
3942 targetm.sched hooks.
3943
3944 2010-11-02 Richard Guenther <rguenther@suse.de>
3945
3946 PR tree-optimization/46184
3947 * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
3948 input vector type from the reduction operand as well.
3949
3950 2010-11-02 Richard Guenther <rguenther@suse.de>
3951
3952 PR tree-optimization/46177
3953 * tree-loop-distribution.c (prop_phis): Use
3954 mark_virtual_phi_result_for_renaming.
3955
3956 2010-11-02 Martin Jambor <mjambor@suse.cz>
3957
3958 PR middle-end/46120
3959 * tree.c (get_binfo_at_offset): Bail out on artificial
3960 fields. Identify primary bases according to their offsets.
3961
3962 2010-11-02 Martin Jambor <mjambor@suse.cz>
3963
3964 PR tree-optimization/45875
3965 * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
3966 (gimple_get_relevant_ref_binfo): Detect primary bases according to
3967 their field offset.
3968
3969 2010-11-02 Ian Lance Taylor <iant@google.com>
3970
3971 * doc/install.texi (Configuration): Note in two places that Java
3972 is not enabled by default.
3973
3974 2010-11-02 Ian Lance Taylor <iant@google.com>
3975
3976 * doc/install.texi (Prerequisites): Remove libelf paragraphs.
3977 (Configuration): Mention --disable-lto. Remove --with-libelf
3978 paragraph.
3979
3980 2010-11-02 Ian Lance Taylor <iant@google.com>
3981
3982 * configure.ac: Remove elf_getshdrstrndx test. Don't substitute
3983 LTO_BINARY_READER or LTO_USE_LIBELF. Remove LIBELFLIBS and
3984 LIBELFINC. Remove HAVE_libelf.
3985 * config.gcc: Don't set lto_binary_reader.
3986 * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
3987 (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
3988 (LIBS): Remove $(LIBELFLIBS).
3989 (INCLUDES): Remove $(LIBELFINC).
3990 * configure: Rebuild.
3991 * config.in: Rebuild.
3992
3993 2010-11-02 Nathan Froyd <froydnj@codesourcery.com>
3994
3995 * config/microblaze/microblaze-protos.h (function_arg): Delete.
3996 (function_arg_advance): Delete.
3997 * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
3998 (FUNCTION_ARG): Delete.
3999 * config/microblaze/microblaze.c (function_arg_advance): Rename to...
4000 (microblaze_function_arg_advance): ...this. Make static. Take a
4001 const_tree and a bool.
4002 (function-arg): Rename to...
4003 (microblaze_function_arg): ...this. Make static. Take a const_tree
4004 and a bool.
4005 (microblaze_expand_prologue): Call targetm.calls.function_arg and
4006 targetm.calls.function_arg_advance.
4007 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4008
4009 2010-11-02 Iain Sandoe <iains@gcc.gnu.org>
4010
4011 Merge from FSF "apple/trunk" branch.
4012
4013 * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
4014 * config/darwin.opt: .. to here.
4015 (matt-stubs): New option.
4016 * config/i386/darwin.opt: Delete.
4017 * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
4018 (MACHO_DYNAMIC_NO_PIC_P): New.
4019 (MACHOPIC_INDIRECT): New.
4020 (MACHOPIC_PURE): New.
4021 * config/i386/darwin.h (DARWIN_X86) Define to 1.
4022 (MACHOPIC_ATT_STUB): New.
4023 (CC1_SPEC): Do not remove mdynamic-no-pic.
4024 Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
4025 UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
4026 (FUNCTION_PROFILER): Correct over-length line.
4027 (SUBTARGET_OVERRIDE_OPTIONS): New.
4028 (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
4029 * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
4030 (legitimate_constant_p): Handle mdynamic-no-pic.
4031 (ix86_legitimate_address_p): Likewise.
4032 (ix86_legitimize_address): Likewise.
4033 (ix86_expand_move): Likewise.
4034 (machopic_output_stub): Update for ATT-style stubs and
4035 mdynamic-no-pic.
4036 * config/darwin-protos.h (machopic_symbol_defined_p): New.
4037 * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
4038 TARGET_DYNAMIC_NO_PIC: Remove.
4039 Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
4040 UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
4041 * config/rs6000/rs6000.c (darwin_rs6000_override_options):
4042 Remove handling of mdynamic-no-pic.
4043 * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
4044 Define if required.
4045 (machopic_symbol_defined_p): Do not try to use current_function_decl
4046 when generating _get_pc thunks within stubs.
4047 (machopic_indirect_data_reference): Rework for direct conditionals
4048 rather than #ifdefs, add x86 mdynamic-no-pic
4049 (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
4050 defined value.
4051 (darwin_override_options): Handle mdynamic-no-pic here.
4052 * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
4053 (machopic_lazy_symbol_ptr3_section): New.
4054 (machopic_picsymbol_stub2_section): New.
4055 (machopic_picsymbol_stub3_section): New.
4056 * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
4057 (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
4058 (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
4059 Moved common definition from x86 and rs6000.
4060 (MACHO_DYNAMIC_NO_PIC_P): Override value.
4061 (MACHOPIC_INDIRECT): Likewise.
4062 (MACHOPIC_PURE): Likewise.
4063 * config.gcc (x86-darwin-*): Remove darwin.opt.
4064
4065 2010-11-02 Jakub Jelinek <jakub@redhat.com>
4066
4067 PR debug/46255
4068 * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
4069 instead of gsi_last_bb.
4070
4071 2010-11-02 Bernd Schmidt <bernds@codesourcery.com>
4072 Maxim Kuvyrkov <maxim@codesourcery.com>
4073
4074 * config/i386/i386.c (cpu_names): Add "corei7".
4075 * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
4076
4077 2010-11-02 Bernd Schmidt <bernds@codesourcery.com>
4078 Maxim Kuvyrkov <maxim@codesourcery.com>
4079
4080 Tune alignment for Intel Core i7
4081
4082 * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
4083 (enum processor_type): Update comment. Add entries for Core i7.
4084 * config/i386-c.c (ix86_target_macros_internal): Update.
4085 * config/i386.c (m_COREI7{_32,_64}): New macros.
4086 (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
4087 (processor_target_table): Tune alignment for Core i7.
4088 (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
4089
4090 * doc/invoke.texi: Document "corei7" option value.
4091
4092 2010-11-02 Bernd Schmidt <bernds@codesourcery.com>
4093 Maxim Kuvyrkov <maxim@codesourcery.com>
4094 H.J. Lu <hjl.tools@gmail.com>
4095
4096 Basic support for Intel Core i7
4097
4098 * i386.c (ix86_option_override_internal): Add entry for corei7, use
4099 generic tuning. Use generic32 when compiling for 32-bit ABI.
4100
4101 2010-11-02 Iain Sandoe <iains@gcc.gnu.org>
4102
4103 * config/darwin.c (darwin_asm_named_section): Check for __DWARF
4104 sections and call darwin_asm_dwarf_section() to handle them.
4105 (darwin_asm_dwarf_section): New.
4106 (darwin_file_start): Remove code emitting dwarf section symbols.
4107
4108 2010-11-02 Chung-Lin Tang <cltang@codesourcery.com>
4109
4110 * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
4111 explicitly disable stack protection when building libgcc.
4112 (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
4113
4114 2010-11-01 Jason Merrill <jason@redhat.com>
4115
4116 * fold-const.c (fold_indirect_ref_1): Handle folding
4117 POINTER_PLUS_EXPR to ARRAY_REF.
4118
4119 2010-11-01 Kaz Kojima <kkojima@gcc.gnu.org>
4120
4121 * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
4122 (sh_delegitimize_address): New function.
4123
4124 2010-11-01 Joseph Myers <joseph@codesourcery.com>
4125
4126 * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
4127 * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
4128 (CC1_SPEC): Don't handle -target.
4129 * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
4130 options.
4131 * config/darwin.opt (Zallowable_client, Zbundle_loader,
4132 Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
4133 Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
4134 Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
4135 Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
4136 Zweak_reference_mismatches, client_name, compatibility_version,
4137 current_version, dylinker_install_name, pagezero_size,
4138 read_only_relocs, seg1addr, segs_read_only_addr,
4139 segs_read_write_addr, sub_library, sub_umbrella): New.
4140 * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
4141 * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
4142 * config/freebsd.opt: New.
4143 * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
4144 * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
4145 * config/rpath.opt: New.
4146 * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
4147 (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
4148 Use rpath.opt.
4149
4150 2010-11-01 Joseph Myers <joseph@codesourcery.com>
4151
4152 * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
4153 * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
4154 (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
4155 * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
4156 (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
4157 Document that options in .opt files do not need to be included.
4158 * doc/tm.texi: Regenerate.
4159 * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
4160 * opts-common.c: Update comment on tm.h include.
4161 (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
4162 * system.h (SWITCH_TAKES_ARG): Poison.
4163 * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
4164 * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
4165 in darwin.opt.
4166 (LINK_COMMAND_SPEC_A): Don't include %{x}.
4167 * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
4168 * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
4169 * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
4170 * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
4171 * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
4172 * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
4173 * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
4174 * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
4175 * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
4176 * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
4177 * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
4178 * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
4179 * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
4180 * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
4181 * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
4182 * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
4183 * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
4184 * config/score/score.h (SWITCH_TAKES_ARG): Remove.
4185 * config/sol2.h (SWITCH_TAKES_ARG): Remove.
4186 * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
4187 * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
4188 * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
4189 * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
4190
4191 2010-11-01 Paul Koning <ni1d@arrl.net>
4192
4193 * config/pdp11/pdp11.md: Use iterators.
4194 (addqi3, subqi3, iorsi3, xorsi3): Delete.
4195
4196 2010-11-01 Steve Ellcey <sje@cup.hp.com>
4197
4198 * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
4199 GCC_INSN_FLAGS_H.
4200 * libgcov.c (__gcov_indirect_call_profiler): Set
4201 VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
4202 defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
4203
4204 2010-11-01 Nathan Froyd <froydnj@codesourcery.com>
4205
4206 PR tree-optimization/46259
4207
4208 Revert:
4209 2010-10-30 Nathan Froyd <froydnj@codesourcery.com>
4210 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
4211 build_vector_from_val.
4212
4213 2010-11-01 DJ Delorie <dj@redhat.com>
4214
4215 * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
4216 as well as an assertion.
4217
4218 2010-11-01 Paul Koning <ni1d@arrl.net>
4219
4220 * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
4221 complex modes in memory.
4222
4223 2010-11-01 Nathan Froyd <froydnj@codesourcery.com>
4224
4225 * tree.c (build_vector_from_val): Use useless_type_conversion_p.
4226
4227 2010-11-01 Jakub Jelinek <jakub@redhat.com>
4228
4229 PR target/45250
4230 * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
4231 (cfa_base_offset): New variable.
4232 (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
4233 (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
4234 is NULL.
4235 (vt_init_cfa_base): Initialize cfa_base_offset.
4236
4237 2010-11-01 Alan Modra <amodra@gmail.com>
4238
4239 PR target/46030
4240 * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
4241 and savres_strategy.
4242 (stack_info): New file scope var.
4243 (rs6000_init_machine_status): Init stack_info.
4244 (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
4245 SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
4246 SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
4247 (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
4248 SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
4249 REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this. Update all refs.
4250 (rs6000_savres_strategy): Rewrite.
4251 (rs6000_stack_info): Use "stack_info" in place of local "info".
4252 Return cached stack info when reload_completed unless ENABLE_CHECKING
4253 in which case confirm newly calculated stack info matches old info.
4254 Delay calculation of lr_save_p, set it for out of line gp save/restore
4255 as well as fp. Call rs6000_savres_strategy from here..
4256 (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
4257 (rs6000_output_function_prologue): Use info->savres_strategy to
4258 determine whether fp save/restore externs need to be emitted.
4259
4260 2010-10-31 Jason Merrill <jason@redhat.com>
4261
4262 * tree.h (EXPR_LOC_OR_HERE): New macro.
4263 * builtins.c (c_strlen): Use it.
4264 * c-decl.c (build_enumerator): Likewise.
4265 * gimplify.c (internal_get_tmp_var): Likewise.
4266 (shortcut_cond_expr): Likewise.
4267 (gimplify_one_sizepos): Likewise.
4268
4269 2010-10-31 Richard Henderson <rth@redhat.com>
4270
4271 * config/i386/cygming.h (TARGET_SEH): New.
4272 (MAX_STACK_ALIGNMENT): New. Disable alignment for SEH.
4273 (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
4274 TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
4275 (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
4276 (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
4277 (ASM_DECLARE_FUNCTION_SIZE): New.
4278 * config/i386/i386-protos.h: Update.
4279 * config/i386/i386.c (ix86_option_override_internal): Enable
4280 flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
4281 restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
4282 (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
4283 (ix86_compute_frame_layout): For SEH, disable
4284 use_fast_prologue_epilogue, move frame pointer to the end of
4285 the frame. Initialize hfp_save_offset.
4286 (ix86_expand_prologue): Honor hfp_save_offset. Emit blockage
4287 at end of prologue for SEH.
4288 (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
4289 emit blockage at beginning of epilogue.
4290 (ix86_expand_binary_operator): After reload, emit LEA if needed.
4291 (ix86_output_call_insn): New.
4292 * config/i386/i386.h (TARGET_SEH): New.
4293 (struct machine_function): Add member seh.
4294 * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
4295 * config/i386/winnt.c (struct seh_frame_state): New.
4296 (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
4297 seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
4298 seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
4299 i386_pe_start_function, i386_pe_end_function): New.
4300
4301 * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
4302 as CFA_STORE in rules 12 and 13.
4303
4304 2010-10-31 Uros Bizjak <ubizjak@gmail.com>
4305
4306 PR tree-optimization/46142
4307 * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
4308 accommodate third function argument.
4309
4310 2010-10-30 Nathan Froyd <froydnj@codesourcery.com>
4311
4312 * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
4313
4314 2010-10-30 Nathan Froyd <froydnj@codesourcery.com>
4315
4316 * fold-const.c (build_zero_vector): Use build_vector_from_val.
4317 * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
4318 (get_initial_def_for_reduction): Likewise.
4319 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
4320 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
4321 * tree.c (build_one_cst): Likewise.
4322 (build_vector_from_val): Use types_compatible_p for assert.
4323
4324 2010-10-30 Nathan Froyd <froydnj@codesourcery.com>
4325
4326 * emit-rtl.c (mark_used_flags): New function.
4327 (set_used_flags, reset_used_flags): Call it.
4328
4329 2010-10-30 Uros Bizjak <ubizjak@gmail.com>
4330
4331 PR middle-end/44569
4332 * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
4333 determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
4334
4335 2010-10-30 H.J. Lu <hongjiu.lu@intel.com>
4336
4337 PR target/46195
4338 * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
4339 (ix86_compat_aligned_value_p): This.
4340 (ix86_old_function_arg_boundary): Renamed to ...
4341 (ix86_compat_function_arg_boundary): This. Updated.
4342 (ix86_contains_aligned_value_p): New.
4343 (ix86_function_arg_boundary): Align long double parameters on
4344 stack to 4byte in 32bit.
4345
4346 2010-10-30 Nicola Pero <nicola.pero@meta-innovation.com>
4347
4348 Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
4349 * c-parser.c (c_parser_objc_at_property_declaration): Removed
4350 parsing of RID_COPIES and RID_IVAR. Updated call to
4351 objc_add_property_declaration.
4352 * c-typecheck.c (build_component_ref): Call
4353 objc_maybe_build_component_ref instead of objc_build_setter_call.
4354 Use objc_is_property_ref to improve Objective-C checks.
4355 (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
4356 of objc_build_getter_call.
4357
4358 2010-10-29 Paul Koning <ni1d@arrl.net>
4359
4360 * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
4361 REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
4362 REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
4363 (REG_OK_STRICT): Move description.
4364
4365 2010-10-29 Paul Koning <ni1d@arrl.net>
4366
4367 * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
4368
4369 2010-10-29 Paul Koning <ni1d@arrl.net>
4370
4371 * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
4372
4373 2010-10-29 Paul Koning <ni1d@arrl.net>
4374
4375 PR/41822
4376 * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
4377
4378 2010-10-29 Richard Henderson <rth@redhat.com>
4379
4380 PR rtl-opt/46226
4381 * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
4382 for asm goto.
4383
4384 2010-10-29 Paul Koning <ni1d@arrl.net>
4385
4386 * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
4387 register to register move.
4388
4389 2010-10-29 Paul Koning <ni1d@arrl.net>
4390
4391 * config/pdp11/pdp11.c (print_operand_address): Correct handling
4392 of integer constant addresses, delete vax-only logic.
4393
4394 2010-10-11 Hariharan Sandanagobalane <hariharan@picochip.com>
4395
4396 * config/picochip/picochip.c (picochip_is_short_branch): Simplify
4397 a conditional expression.
4398
4399 2010-10-29 Paul Koning <ni1d@arrl.net>
4400
4401 * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
4402 instruction encoding.
4403
4404 2010-10-29 Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
4405 Andrew Pinski <pinskia@gmail.com>
4406
4407 * tree.h (build_vector_from_val): Declare.
4408 * tree.c (build_vector_from_val): New function.
4409 * c-typeck.c (build_binary_op): Handle vector shifting.
4410 * doc/extend.texi: Description of the vector shifting operation.
4411
4412 2010-10-29 Paul Koning <pkoning@equallogic.com>
4413
4414 * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
4415 pdp11_secondary_memory_needed): Declare.
4416 * config/pdp11/predicates.md (float_operand): New predicate.
4417 * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
4418 (cbranchdf4, movdf): Change predicate.
4419 (movsf): Handle FPU register case.
4420 (truncdfsf2, extendsfdf2): Add FPU register case.
4421 * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
4422 TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
4423 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
4424 (pdp11_register_move_cost): Update cost matrix.
4425 (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
4426 pdp11_preferred_output_reload_class, pdp11_secondary_reload,
4427 pdp11_secondary_memory_needed): New function.
4428 (pdp11_return_in_memory): Add other float types.
4429 * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
4430 (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
4431 (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
4432 REGISTER_MOVE_COST): Delete.
4433 (BASE_RETURN_VALUE_REG): Add other float types.
4434
4435 2010-10-29 Nick Clifton <nickc@redhat.com>
4436
4437 * doc/invoke.texi: Document -mam34 and -mtune options.
4438 * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
4439 (mn10300_tune_cpu): New variable.
4440 (mn10300_handle_option): Handle -mam34 and -mtune options.
4441 (mn10300_option_override): Convert tune string into tune cpu variable.
4442 (mn10300_legitimate_constant_p): Delete unused local variable.
4443 (is_load_insn): New function.
4444 (is_store_insn): New function.
4445 (mn10300_adjust_schedule_cost): New function.
4446 (TARGET_SCHED_ADJUST_COST): Define.
4447 * config/mn10300/mn10300.opt (mam34): New option.
4448 (mtune): New option.
4449 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
4450 (enum processor_type): Add AM34.
4451 (TARGET_AM34): Define.
4452 * config/mn10300/mn10300.md (attr cpu): Add am34.
4453 Add pipeline description.
4454 (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
4455 Remove unneeded alternatives. Add timing attribute.
4456 (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
4457 mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
4458 mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
4459 mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
4460 mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
4461 bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
4462 bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
4463 float_conditional_branch, jump, indirect_jump, tablejump,
4464 call_internal, call_value_internal, zero_extendqisi2_am33,
4465 zero_extendqisi2_mn10300, zero_extendhisi2_am33,
4466 zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
4467 extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
4468 mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
4469 mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
4470 addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
4471 fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
4472 return_internal_regs, store_movm, return, call_next_insn):
4473 Add timing attribute.
4474 (am33_subsi3): Add missing clobber of CC_REG.
4475 (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
4476 (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
4477 subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
4478 extendqisi2): Fix predicates.
4479 (call_internal, call_internal_value): Separate alternatives.
4480 * config/mn10300/t-mn10300: Add AM34 multilib.
4481
4482 2010-10-29 Paolo Bonzini <bonzini@gnu.org>
4483
4484 * config/sh/sh.c (sh_promote_function_mode): Use
4485 default_promote_function_mode if !sh_promote_prototypes.
4486
4487 2010-10-28 Paolo Bonzini <bonzini@gnu.org>
4488
4489 * recog.c (split_all_insns): Remove dead code.
4490
4491 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
4492
4493 * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4494
4495 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
4496
4497 * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
4498 (FUNCTION_ARG_ADVANCE): Delete.
4499 * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
4500 functions.
4501 (cris_function_incoming_arg, cris_function_arg_advance): New functions.
4502 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
4503 (TARGET_FUNCTION_ARG_ADVANCE): Define.
4504
4505 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
4506
4507 * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
4508 * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4509 * config/mcore/mcore.c (mcore_function_arg): Declare. Make static.
4510 Take a const_tree and a bool.
4511 (mcore_function_arg_advance): New function.
4512 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4513
4514 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
4515
4516 * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
4517 * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4518 * config/mcore/mcore.c (mcore_function_arg): Declare. Make static.
4519 Take a const_tree and a bool.
4520 (mcore_function_arg_advance): New function.
4521 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4522
4523 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
4524
4525 * config/h8300/h8300-protos.h (function_arg): Delete.
4526 * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4527 * config/h8300/h8300.c (function_arg): Rename to...
4528 (h8300_function_arg): ...this. Make static. Take a const_tree and
4529 a bool.
4530 (h8300_function_arg_advance): New function.
4531 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4532
4533 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
4534
4535 * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
4536 to...
4537 * config/arc/arc.c (arc_function_arg): ...here and...
4538 (arc_function_arg_advance): ...here. New functions.
4539 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4540
4541 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
4542
4543 * config/crx/crx-protos.h (crx_function_arg): Delete.
4544 (crx_function_arg_advance): Delete.
4545 * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4546 * config/crx/crx.c (crx_function_arg): Make static. Take a
4547 const_tree and a bool.
4548 (crx_function_arg_advance): Make static. Take a const_tree and a bool.
4549 (enough_regs_for_param): Take a const_tree.
4550 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4551
4552 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
4553
4554 * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
4555 (m68hc11_function_arg_advance): Delete.
4556 * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
4557 (FUNCTION_ARG_ADVANCE): Delete.
4558 * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
4559 Take a const_tree and a bool.
4560 (m68hc11_function_arg_advance): Likewise.
4561 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4562
4563 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
4564
4565 * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
4566 (xstormy16_function_arg_advance): Delete.
4567 * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
4568 (FUNCTION_ARG_ADVANCE): Delete.
4569 * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
4570 Take a const_tree and a bool.
4571 (xstormy16_function_arg_advance): Likewise. Return void, updating
4572 the CUM parameter instead.
4573 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4574
4575 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
4576
4577 * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
4578 * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4579 (MOXIE_FUNCTION_ARG_SIZE): Move to...
4580 * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
4581 (moxie_function_arg): Make static. Take a const_tree and a bool.
4582 (moxie_function_arg_advance): New function.
4583 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4584
4585 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
4586
4587 * config/mn10300/mn10300-protos.h (function_arg): Delete.
4588 * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
4589 (FUNCTION_ARG_ADVANCE): Delete.
4590 * config/mn10300/mn10300.c (function_arg): Rename to...
4591 (mn10300_function_arg): ...this. Make static. Take a const_tree
4592 and a bool.
4593 (mn10300_function_arg_advance): New function.
4594 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4595
4596 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
4597
4598 * config/iq2000/iq2000-protos.h (function_arg): Delete.
4599 (function_arg_advance): Delete.
4600 * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4601 * config/iq2000/iq2000.c (function_arg): Rename to...
4602 (iq2000_function_arg): ...this. Make static. Take a const_tree and
4603 a bool.
4604 (function_arg_advance): Rename to...
4605 (iq2000_function_arg_advance): ...this. Make static. Take a
4606 const_tree and a bool.
4607 (iq2000_expand_prologue): Call iq2000_function_arg_advance and
4608 iq2000_function_arg.
4609 (iq2000_pass_by_reference): Call iq2000_function_arg).
4610 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4611
4612 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
4613
4614 * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
4615 * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4616 * config/fr30/fr30.c (fr30_num_arg_regs): Make static. Take a
4617 const_tree.
4618 (fr30_function_arg): New function.
4619 (fr30_function_arg_advance): New function.
4620 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4621
4622 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
4623
4624 * config/frv/frv-protos.h (frv_function_arg): Delete.
4625 (frv_function_arg_advance): Delete.
4626 * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4627 * config/frv/frv.c (frv_function_arg): Rename to...
4628 (frv_function_arg_1): Make static. Take const_tree and bool arguments.
4629 (frv_function_arg, frv_function_incoming_arg): New functions.
4630 (frv_function_arg_advance): Make static. Take a const_tree and a bool.
4631 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
4632 (TARGET_FUNCTION_ARG_ADVANCE): Define.
4633
4634 2010-10-28 Uros Bizjak <ubizjak@gmail.com>
4635
4636 PR target/46153
4637 * config/i386/sse.md (sse_movhlps_exp): Use destination
4638 returned from ix86_fixup_binary_operands to expand insn.
4639 (sse_movlhps_exp): Ditto.
4640 (sse_loadhps_exp): Ditto.
4641 (sse_loadlps_exp): Ditto.
4642 (sse2_loadhpd_exp): Ditto.
4643 (sse2_loadlpd_exp): Ditto.
4644
4645 2010-10-28 Andrew Stubbs <ams@codesourcery.com>
4646
4647 * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
4648 constants in thumb2.
4649
4650 2010-10-28 Eric Botcazou <ebotcazou@adacore.com>
4651
4652 * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
4653 arithmetics in masking operations.
4654 (contains_muldiv): Likewise.
4655 (try_combine): Likewise.
4656 (find_split_point): Likewise.
4657 (combine_simplify_rtx): Likewise.
4658 (simplify_if_then_else): Likewise.
4659 (simplify_set): Likewise.
4660 (expand_compound_operation): Likewise.
4661 (expand_field_assignment): Likewise.
4662 (make_extraction): Likewise.
4663 (extract_left_shift): Likewise.
4664 (make_compound_operation): Likewise.
4665 (force_to_mode): Likewise.
4666 (make_field_assignment): Likewise.
4667 (reg_nonzero_bits_for_combine): Likewise.
4668 (simplify_shift_const_1): Likewise.
4669 (simplify_comparison): Likewise.
4670
4671 2010-10-27 Nathan Froyd <froydnj@codesourcery.com>
4672
4673 * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
4674 (ia64_function_arg_advance): Delete.
4675 * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
4676 (FUNCTION_ARG_ADVANCE): Delete.
4677 * config/ia64/ia64.c (ia64_function_arg): Rename to...
4678 (ia64_function_arg_1): ...this. Make static. Take const_tree and
4679 bool arguments.
4680 (ia64_function_arg, ia64_function_incoming_arg): New functions.
4681 (ia64_function_arg_advance): Make static. Take a const_tree and
4682 a bool.
4683 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
4684 (TARGET_FUNCTION_ARG_ADVANCE): Define.
4685
4686 2010-10-27 Steve Ellcey <sje@cup.hp.com>
4687
4688 * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
4689 (TARGET_GET_RAW_ARG_MODE): New.
4690 * doc/tm.texi: Regenerate.
4691 * target.def (get_raw_result_mode): New.
4692 (get_raw_arg_mode): New.
4693 * targhooks.c (default_get_reg_raw_mode): New.
4694 * targhooks.h (default_get_reg_raw_mode): New.
4695 * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
4696 (apply_result_size): Ditto.
4697 * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
4698 (TARGET_GET_RAW_RESULT_MODE): Define.
4699 (TARGET_GET_RAW_ARG_MODE): Ditto.
4700
4701 2010-10-27 Eric Botcazou <ebotcazou@adacore.com>
4702
4703 * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
4704 for newer Solaris 10 release.
4705 (sparc_fallback_frame_state): Likewise.
4706
4707 2010-10-27 Jason Merrill <jason@redhat.com>
4708
4709 * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
4710 variables sooner.
4711
4712 2010-10-27 Jie Zhang <jie@codesourcery.com>
4713 Maxim Kuvyrkov <maxim@codesourcery.com>
4714
4715 * haifa-sched.c (ISSUE_POINTS): Remove.
4716 (max_issue): Don't issue more than issue_rate instructions.
4717
4718 2010-10-27 Ian Lance Taylor <iant@google.com>
4719
4720 PR target/46197
4721 * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
4722 (split_stack_return): Replace UNSPEC_STACK_CHECK with
4723 UNSPECV_SPLIT_STACK_RETURN.
4724
4725 2010-10-27 H.J. Lu <hongjiu.lu@intel.com>
4726
4727 * config/i386/i386-protos.h (init_cumulative_args): Add an int.
4728
4729 * config/i386/i386.c (block_info): New.
4730 (BLOCK_INFO): Likewise.
4731 (call_avx256_state): Likewise.
4732 (check_avx256_stores): Likewise.
4733 (move_or_delete_vzeroupper_2): Likewise.
4734 (move_or_delete_vzeroupper_1): Likewise.
4735 (move_or_delete_vzeroupper): Likewise.
4736 (use_avx256_p): Likewise.
4737 (function_pass_avx256_p): Likewise.
4738 (flag_opts): Add -mvzeroupper.
4739 (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
4740 default for TARGET_AVX. Turn off MASK_VZEROUPPER if TARGET_AVX
4741 is disabled.
4742 (ix86_function_ok_for_sibcall): Disable sibcall if we need to
4743 generate vzeroupper.
4744 (init_cumulative_args): Add an int to indicate caller. Set
4745 use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
4746 based on return type.
4747 (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
4748 caller_pass_avx256_p based on argument type.
4749 (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
4750 is used, but not returned by caller.
4751 (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
4752 (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
4753 is used.
4754 (ix86_minimum_alignment): Likewise.
4755 (ix86_expand_special_args_builtin): Set target to
4756 GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
4757 (ix86_reorg): Run the vzeroupper optimization if needed.
4758
4759 * config/i386/i386.h (ix86_args): Add caller.
4760 (INIT_CUMULATIVE_ARGS): Updated.
4761 (machine_function): Add use_vzeroupper_p, use_avx256_p,
4762 caller_pass_avx256_p, caller_return_avx256_p,
4763 callee_pass_avx256_p and callee_return_avx256_p.
4764
4765 * config/i386/i386.opt (-mvzeroupper): New.
4766
4767 * config/i386/predicates.md (vzeroupper_operation): Removed.
4768
4769 * config/i386/sse.md (avx_vzeroupper): Removed.
4770 (*avx_vzeroupper): Removed.
4771 (avx_vzeroupper): New.
4772
4773 * doc/invoke.texi: Document -mvzeroupper.
4774
4775 2010-10-27 Eric Botcazou <ebotcazou@adacore.com>
4776
4777 * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
4778 * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
4779 * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
4780
4781 2010-10-27 Eric Botcazou <ebotcazou@adacore.com>
4782 Olivier Hainque <hainque@adacore.com>
4783
4784 * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
4785 of EBP. Do not restore reg #9. Remove +1 adjustment to EIP and set
4786 fs->signal_frame instead.
4787
4788 2010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
4789
4790 * c-parser.c (cp_parser_objc_at_property_declaration): Removed
4791 parsing of RID_COPIES and RID_IVAR.
4792
4793 2010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
4794
4795 * c-parser.c (c_parser_objc_at_property_declaration): Recognize
4796 RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
4797 Do not use objc_set_property_attr, but use local variables
4798 instead. Detect repeated usage of setter, getter and ivar
4799 attributes. Improved error processing when a setter name does not
4800 end in ':'. Do not check for CPP_CLOSE_PAREN after we determined
4801 that the token is a keyword. Updated call to
4802 objc_add_property_declaration.
4803
4804 2010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
4805
4806 * c-parser.c (c_parser_objc_at_property): Renamed to
4807 c_parser_objc_at_property_declaration. Updated calls to
4808 objc_add_property_variable, now objc_add_property_declaration.
4809 Code rewritten to be much more robust in recovering from syntax
4810 errors. Added comments.
4811 (c_parser_objc_property_attrlist): Removed.
4812 (c_parser_external_declaration): Updated calls to
4813 c_parser_objc_at_property, now
4814 c_parser_objc_at_property_declaration.
4815 (c_parser_objc_methodprotolist): Same change.
4816
4817 2010-10-26 H.J. Lu <hongjiu.lu@intel.com>
4818
4819 * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
4820
4821 2010-10-26 Jan Hubicka <jh@suse.cz>
4822
4823 * ipa.c (process_references): Enqueue all referenced nodes;
4824 mark as reachable only non-external nodes.
4825 (cgraph_remove_unreachable_nodes): All referenced nodes should
4826 be enqueued; remove bogues node->needed check.
4827
4828 2010-10-26 Jan Hubicka <jh@suse.cz>
4829
4830 * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
4831 to represent OMP.
4832
4833 2010-10-26 H.J. Lu <hongjiu.lu@intel.com>
4834
4835 * config/i386/i386.md (split_stack_return): Replace
4836 unspec_volatile with unspec.
4837
4838 2010-10-26 Jonathan Wakely <jwakely.gcc@gmail.com>
4839
4840 * doc/install.texi: Fix typo in --with-sysroot description.
4841
4842 2010-10-26 Jan Hubicka <jh@suse.cz>
4843
4844 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
4845 Use info provided by linker plugin.
4846
4847 2010-10-26 Jason Merrill <jason@redhat.com>
4848
4849 * varasm.c (constructor_static_from_elts_p): Don't require a
4850 CONSTRUCTOR to have elements to be suitable for static
4851 initialization. Allow ARRAY_TYPE as well.
4852
4853 2010-10-26 Jan Hubicka <jh@suse.cz>
4854
4855 PR middle-end/45736
4856 * cgraph.c (cgraph_set_readonly_flag): Rename to...
4857 (cgraph_set_const_flags) ... this one; get also looping argument;
4858 clear constructor/destructor flags.
4859 (cgraph_set_pure_flag): Likewise.
4860 (cgraph_set_looping_const_or_pure_flag): Remove.
4861 (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
4862 to optimize away static ctors/dtors; it does not work on inline clones;
4863 external functions can always be rmeoved.
4864 (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
4865 inline clones; in LTO external functions always can go.
4866 (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
4867 (cgraph_mark_address_taken_node): Assert that we are not taking
4868 address of inline clone.
4869 (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
4870 external functions.
4871 * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
4872 address taken.
4873 (ipcp_initialize_node_lattices): Only local functions can be
4874 handled without cloning.
4875 * cgraph.h (cgraph_set_readonly_flag,
4876 cgraph_set_looping_const_or_pure_flag): Remove.
4877 (cgraph_set_const_flag): Declare.
4878 (cgraph_set_pure_flag): Update.
4879 * ipa-pure-const (propagate_pure_const, local_pure_const): Update
4880 flags setting code.
4881 * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
4882 look at inline clones; fix handling of external definitions.
4883 (cgraph_postorder): Do not look at inline clones in the first pass.
4884 (function_and_variable_visibility): Drop constructors/destructor
4885 flags at pure and const functions.
4886 * tree-profile.c (tree_profiling): Update.
4887 * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
4888 address taken; external functions do not account to whole program size.
4889 (cgraph_decide_inlining): Likewise; do not try to inline
4890 functions already inlined.
4891
4892 2010-10-26 Jie Zhang <jie@codesourcery.com>
4893
4894 * doc/invoke.texi: Improve documentation of
4895 -fstrict-volatile-bitfields.
4896
4897 2010-10-26 Ira Rosen <irar@il.ibm.com>
4898
4899 PR tree-optimization/46167
4900 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
4901 is basic block for the statement.
4902
4903 2010-10-26 Paul Koning <ni1d@arrl.net>
4904
4905 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
4906 current definition of struct_real_format.
4907
4908 2010-10-26 H.J. Lu <hongjiu.lu@intel.com>
4909
4910 PR target/44948
4911 * config/i386/i386.c (ix86_old_function_arg_boundary): New.
4912 (ix86_function_arg_boundary): Always align parameters on stack
4913 in 64bit and align parameters with alignment >= 16byte on stack
4914 in 32bit. Warn alignment change.
4915
4916 2010-10-26 Ian Lance Taylor <iant@google.com>
4917
4918 PR middle-end/45687
4919 * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
4920 offset.
4921
4922 2010-10-25 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
4923
4924 Implement opaque-enum-specifiesr for C++0x
4925 * tree.h (ENUM_IS_OPAQUE): New.
4926 * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
4927
4928 2010-10-26 Jie Zhang <jie@codesourcery.com>
4929
4930 * stor-layout.c (layout_decl): Use the field's type to
4931 determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
4932 * config/arm/arm.c (arm_override_options): Default to
4933 -fstrict-volatile-bitfields.
4934
4935 2010-10-25 Paul Koning <ni1d@arrl.net>
4936
4937 * config/pdp11/pdp11.md: Add define_constants for register
4938 numbers, branch offset limits.
4939 * config/pdp11/pdp11.c: Use named constants instead of numbers.
4940 * config/pdp11.pdp11.h: Ditto.
4941
4942 2010-10-25 Eric Botcazou <ebotcazou@adacore.com>
4943
4944 * configure.ac: Use $cpu_type instead of $target to define the nop.
4945 * configure: Regenerate.
4946
4947 2010-10-25 Jie Zhang <jie@codesourcery.com>
4948
4949 * combine.c (try_combine): If insns need to be kept around, check that
4950 they can be copied in the merged instruction.
4951
4952 2010-10-24 Eric Botcazou <ebotcazou@adacore.com>
4953
4954 * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
4955 has been modified.
4956 (convert_regs_2): Likewise. Adjust calls to convert_regs_1.
4957 (convert_regs): Adjust calls to convert_regs_2. Clean up the CFG if
4958 it has been modified.
4959
4960 2010-10-24 Eric Botcazou <ebotcazou@adacore.com>
4961
4962 * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
4963
4964 2010-10-24 Paul Koning <ni1d@arrl.net>
4965
4966 * config/pdp11/pdp11.md: Change length attribute to be in bytes.
4967 * config/pdp11/pdp11.c (output_jump): Ditto.
4968
4969 2010-10-24 Ian Lance Taylor <iant@google.com>
4970
4971 * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
4972
4973 2010-10-24 Eric Botcazou <ebotcazou@adacore.com>
4974
4975 * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
4976 least one insn with a locus corresponding to an edge's goto_locus,
4977 disregard non-fallthru edges to the exit block and merge the blocks
4978 created for the same goto_locus.
4979
4980 2010-10-23 Joseph Myers <joseph@codesourcery.com>
4981
4982 * gcc.c (n_switches_alloc_debug_check): New.
4983 (set_option_handlers): New.
4984 (process_command): Use set_option_handlers.
4985 (do_self_spec): Pass spec-generated options through option handlers.
4986 (main): Also save and restore n_switches_alloc when swapping
4987 switch arrays.
4988
4989 2010-10-23 Richard Henderson <rth@redhat.com>
4990
4991 PR target/46144
4992 * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
4993 (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
4994 Honor matching operands when splitting to XOR.
4995
4996 2010-10-23 Ian Lance Taylor <iant@google.com>
4997
4998 * tree-vrp.c (extract_range_from_binary_expr): If
4999 flag_non_call_exceptions don't eliminate division by zero.
5000 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
5001
5002 2010-10-23 Nathan Froyd <froydnj@codesourcery.com>
5003
5004 * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
5005 __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
5006 __ORDER_PDP_ENDIAN__.
5007 * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5008 (struct DWstruct): Define based on __BYTE_ORDER__.
5009 * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5010 (struct INTstruct): Define based on __BYTE_ORDER__.
5011 * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5012 (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
5013 * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
5014 * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5015 * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5016 * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5017 * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5018 * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5019 * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5020 * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5021 * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5022 * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5023 * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5024 * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5025 * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5026 * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5027 * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5028 * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5029 * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5030 * doc/tm.texi: Regenerate.
5031 * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
5032 (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
5033
5034 2010-10-23 Jie Zhang <jie@codesourcery.com>
5035
5036 PR rtl-optimization/37360
5037 * config/mips/mips.c (cached_can_issue_more): New local variable.
5038 (mips_sched_reorder_1): New.
5039 (mips_sched_reorder): Use mips_sched_reorder_1.
5040 (mips_sched_reorder2): New.
5041 (mips_variable_issue): Set cached_can_issue_more.
5042 (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
5043 instead of mips_sched_reorder.
5044
5045 Revert:
5046 2008-09-09 Andrey Belevantsev <abel@ispras.ru>
5047 PR rtl-optimization/37360
5048 * haifa-sched.c (max_issue): Do not assert that we never issue more
5049 insns than issue_rate. Add comment.
5050
5051 2010-10-22 Eric Botcazou <ebotcazou@adacore.com>
5052
5053 * gimplify.c (gimplify_variable_sized_compare): Preserve the source
5054 location info of the expression.
5055
5056 2010-10-22 DJ Delorie <dj@redhat.com>
5057
5058 * doc/extend.texi (Named Address Spaces): Document the M32C named
5059 address space.
5060
5061 * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
5062 __far address space.
5063 * config/m32c/m32c.h (ADDR_SPACE_FAR): New. Add support for
5064 "__far" address space for R8C and M16C processor variants.
5065 * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
5066 (far_addr_space_p): New.
5067 (encode_pattern_1): Add sign and zero extend support.
5068 (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
5069 (m32c_extra_constraint_p2): Add SF constraint.
5070 (m32c_legitimate_address_p): Support __far addresses.
5071 (m32c_addr_space_pointer_mode): New.
5072 (m32c_addr_space_address_mode): New.
5073 (m32c_addr_space_legitimate_address_p): New.
5074 (m32c_addr_space_legitimize_address): New.
5075 (m32c_addr_space_subset_p): New.
5076 (m32c_addr_space_convert): New.
5077 (conversions): Add __far operand patterns.
5078 (m32c_prepare_move): Force constants into registers for __far moves.
5079 (m32c_split_move): __far moves are always split.
5080 * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
5081 * config/m32c/mov.md (mov<mode>_far_op1): New.
5082 (mov<mode>_far_op2): New.
5083 (movqi_op): Add __far (SF) support.
5084 (movhi_op): Likewise.
5085 (movsi_splittable): Split A1A0 also.
5086
5087 2010-10-22 Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
5088 Andrew Pinski <pinskia@gmail.com>
5089
5090 * c-typeck.c (build_array_ref): Handle subscripting of vectors.
5091 * doc/extend.texi: New paragraph
5092
5093 2010-10-22 Paul Koning <ni1d@arrl.net>
5094
5095 * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
5096
5097 2010-10-22 DJ Delorie <dj@redhat.com>
5098
5099 * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
5100
5101 2010-10-22 Paul Koning <ni1d@arrl.net>
5102
5103 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
5104
5105 2010-10-22 Richard Henderson <rth@redhat.com>
5106
5107 * config/i386/i386.c (ix86_builtin_vectorized_function): Add
5108 cases for __builtin_fma and __builtin_fmaf.
5109
5110 2010-10-22 Richard Henderson <rth@redhat.com>
5111
5112 * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
5113 NEG+USE for vectors as well.
5114 * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
5115 and splitter.
5116
5117 2010-10-22 Joseph Myers <joseph@codesourcery.com>
5118
5119 * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
5120 SWITCH_CURTAILS_COMPILATION): Remove.
5121 * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
5122 * doc/tm.texi: Regenerate.
5123 * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
5124
5125 2010-10-22 Changpeng Fang <changpeng.fang@amd.com>
5126
5127 * config/i386/bdver1.md: New file.
5128 * config/i386/i386.md (include "bdver1.md"): Invoke the
5129 pipeline description for bdver1.
5130 (x86_sahf_1): Add "bdver1_decode" attribute.
5131 (*cmpfp_i_mixed): Likewise.
5132 (*cmpfp_i_sse): Likewise.
5133 (*cmpfp_i_i387): Likewise.
5134 (*cmpfp_iu_mixed): Likewise.
5135 (*cmpfp_iu_sse): Likewise.
5136 (*cmpfp_iu_387): Likewise.
5137 (*swap<mode>,*swap<mode>_1): Likewise.
5138 (fixuns_trunc<mode>hi2): Likewise.
5139 (fix_trunc<mode>si_sse): Likewise.
5140 (x86_fnstcw_1): Likewise.
5141 (x86_fldcw_1): Likewise.
5142 (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
5143 (*floatsi<mode>2_vector_mixed): Likewise.
5144 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
5145 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
5146 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
5147 (*floatsi<mode>2_vector_sse_with_temp): Likewise.
5148 (*floatsi<mode>2_vector_sse): Likewise.
5149 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
5150 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
5151 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
5152 (*mul<mode>3_1): Likewise.
5153 (*mulsi3_1_zext): Likewise.
5154 (*mulhi3_1): Likewise.
5155 (*mulqi3_1): Likewise.
5156 (*<u>mul<mode><dwi>3_1): Likewise.
5157 (*<u>mulqihi3_1): Likewise.
5158 (*<s>muldi3_highpart_1): Likewise.
5159 (*<s>mulsi3_highpart_1): Likewise.
5160 (*<s>mulsi3_highpart_zext): Likewise.
5161 (x86_64_shld): Likewise.
5162 (x86_shld): Likewise.
5163 (x86_64_shrd): Likewise.
5164 (x86_shrd): Likewise.
5165 (sqrtxf2): Likewise.
5166 (sqrt_extend<mode>xf2_i387): Likewise.
5167 (*sqrt<mode>2_sse): Likewise.
5168 * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
5169 (sse_cvtsi2ssq): Likewise.
5170 (sse_cvtss2si): Likewise.
5171 (sse_cvtss2si_2): Likewise.
5172 (sse_cvtss2siq): Likewise.
5173 (sse_cvtss2siq_2): Likewise.
5174 (sse_cvttss2si): Likewise.
5175 (sse_cvttss2siq): Likewise.
5176 (sse2_cvtpi2pd): Likewise.
5177 (sse2_cvttpd2pi): Likewise.
5178 (sse2_cvtsi2sd): Likewise.
5179 (sse2_cvtsi2sdq): Likewise.
5180 (sse2_cvtsd2si): Likewise.
5181 (sse2_cvtsd2si_2): Likewise.
5182 (sse2_cvtsd2siq): Likewise.
5183 (sse2_cvtsd2siq_2): Likewise.
5184 (sse2_cvttsd2si): Likewise.
5185 (sse2_cvttsd2siq): Likewise.
5186 (*sse2_cvtpd2dq): Likewise.
5187 (*sse2_cvttpd2dq): Likewise.
5188 (sse2_cvtsd2ss): Likewise.
5189 (sse2_cvtss2sd): Likewise.
5190 (*sse2_cvtpd2ps): Likewise.
5191 (sse2_cvtps2pd): Likewise.
5192
5193 2010-10-22 Richard Guenther <rguenther@suse.de>
5194
5195 PR middle-end/46137
5196 * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
5197 remove the virtual operands if they are not needed.
5198
5199 2010-10-22 Changpeng Fang <changpeng.fang@amd.com>
5200
5201 * config/i386/i386.c (processor_costs bdver1_cost): Update
5202 insn costs and architectural parameters for bdver1.
5203
5204 2010-10-22 Richard Guenther <rguenther@suse.de>
5205
5206 * gimple.h (gimple_register_canonical_type): Declare.
5207 * gimple.c (gimple_canonical_types): New global hashtable.
5208 (struct gimple_type_leader_entry_s): New type.
5209 (gimple_type_leader): New global cache.
5210 (gimple_lookup_type_leader): New function.
5211 (gtc_visit): Query the proper cache.
5212 (gimple_types_compatible_p): Likewise.
5213 (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
5214 (gimple_canonical_type_eq): New function.
5215 (gimple_register_canonical_type): Likewise.
5216 (print_gimple_types_stats): Adjust for gimple_canonical_types.
5217 (free_gimple_type_tables): Likewise. Free gimple_type_leader.
5218 * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
5219 gimple_types_compatible_p for LTO.
5220
5221 2010-10-22 Uros Bizjak <ubizjak@gmail.com>
5222
5223 PR target/46098
5224 * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
5225 Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
5226 (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
5227 (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
5228 (<sse>_movu<ssemodesuffix>): New expander.
5229 (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
5230 (avx_movdqu<avxmodesuffix>): New expander.
5231 (*sse2_movdqu): Rename from sse2_movdqu.
5232 (sse2_movdqu): New expander.
5233
5234 2010-10-22 Richard Guenther <rguenther@suse.de>
5235
5236 PR tree-optimization/45720
5237 * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
5238 Handle negative step.
5239 (vect_enhance_data_refs_alignment): Likewise.
5240 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
5241 (vect_create_cond_for_align_checks): Likewise.
5242 (vect_create_cond_for_alias_checks): Likewise.
5243
5244 2010-10-22 Ira Rosen <irar@il.ibm.com>
5245
5246 PR tree-optimization/46126
5247 * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
5248 vectorizable_shift in case of basic block vectorization.
5249
5250 2010-10-22 Joseph Myers <joseph@codesourcery.com>
5251
5252 * target.h (enum opt_levels, struct default_options): New.
5253 * target.def (handle_ofast): Remove hook.
5254 (target_option.optimization): Change to
5255 target_option.optimization_table.
5256 * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
5257 TARGET_OPTION_OPTIMIZATION_TABLE.
5258 (CAN_DEBUG_WITHOUT_FP): Remove.
5259 * doc/tm.texi: Regenerate.
5260 * opts.c (maybe_default_option, maybe_default_options,
5261 default_options_table): New.
5262 (default_options_optimization): Take extra parameters. Don't
5263 assert that global_options and global_options_set are in use. Use
5264 maybe_default_options.
5265 (decode_options): Pass extra parameters to
5266 default_options_optimization.
5267 * common.opt (falign-loops): Use value 0 with Var.
5268 (frerun-cse-after-loop, ftree-ter): Remove Init.
5269 * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
5270 TARGET_OPTION_OPTIMIZATION): Remove.
5271 * targhooks.c (empty_optimization_table): New.
5272 * targhooks.h (empty_optimization_table): Declare.
5273 * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
5274 * config/alpha/alpha.c (alpha_option_optimization_table,
5275 TARGET_OPTION_OPTIMIZATION_TABLE): New.
5276 * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
5277 * config/arm/arm.c (arm_option_optimization: Change to
5278 arm_option_optimization_table.
5279 (TARGET_OPTION_OPTIMIZATION): Change to
5280 TARGET_OPTION_OPTIMIZATION_TABLE.
5281 * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
5282 * config/avr/avr.c (avr_option_optimization_table,
5283 TARGET_OPTION_OPTIMIZATION_TABLE): New.
5284 * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
5285 * config/cris/cris.c (cris_option_optimization): Change to
5286 cris_option_optimization_table.
5287 (TARGET_OPTION_OPTIMIZATION): Change to
5288 TARGET_OPTION_OPTIMIZATION_TABLE.
5289 * config/crx/crx.c (crx_option_optimization): Change to
5290 crx_option_optimization_table.
5291 (TARGET_OPTION_OPTIMIZATION): Change to
5292 TARGET_OPTION_OPTIMIZATION_TABLE.
5293 * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
5294 * config/fr30/fr30.c (fr30_option_optimization_table,
5295 TARGET_OPTION_OPTIMIZATION_TABLE): New.
5296 * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
5297 * config/frv/frv.c (frv_option_optimization_table,
5298 TARGET_OPTION_OPTIMIZATION_TABLE): New.
5299 * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
5300 * config/h8300/h8300.c (h8300_option_optimization): Change to
5301 h8300_option_optimization_table.
5302 (TARGET_OPTION_OPTIMIZATION): Change to
5303 TARGET_OPTION_OPTIMIZATION_TABLE.
5304 * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
5305 * config/i386/i386.c (ix86_option_optimization): Change to
5306 ix86_option_optimization_table.
5307 (TARGET_OPTION_OPTIMIZATION): Change to
5308 TARGET_OPTION_OPTIMIZATION_TABLE.
5309 * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
5310 as initializer.
5311 * config/ia64/ia64.c (ia64_option_optimization): Change to
5312 ia64_option_optimization_table.
5313 (TARGET_OPTION_OPTIMIZATION): Change to
5314 TARGET_OPTION_OPTIMIZATION_TABLE.
5315 * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
5316 * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
5317 initializer.
5318 * config/iq2000/iq2000.c (iq2000_option_optimization_table,
5319 TARGET_OPTION_OPTIMIZATION_TABLE): New.
5320 * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
5321 * config/lm32/lm32.c (lm32_option_optimization_table,
5322 TARGET_OPTION_OPTIMIZATION_TABLE): New.
5323 * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
5324 * config/m32r/m32r.c (m32r_option_optimization): Change to
5325 m32r_option_optimization_table.
5326 (TARGET_OPTION_OPTIMIZATION): Change to
5327 TARGET_OPTION_OPTIMIZATION_TABLE.
5328 * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
5329 CAN_DEBUG_WITHOUT_FP): Remove.
5330 * config/mcore/mcore.c (mcore_option_optimization): Change to
5331 mcore_option_optimization_table.
5332 (TARGET_OPTION_OPTIMIZATION): Change to
5333 TARGET_OPTION_OPTIMIZATION_TABLE.
5334 * config/mep/mep.c (mep_option_optimization): Change to
5335 mep_option_optimization_table.
5336 (TARGET_OPTION_OPTIMIZATION): Change to
5337 TARGET_OPTION_OPTIMIZATION_TABLE.
5338 * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
5339 * config/microblaze/microblaze.c
5340 (microblaze_option_optimization_table,
5341 TARGET_OPTION_OPTIMIZATION_TABLE): New.
5342 * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
5343 * config/mips/mips.c (mips_option_optimization_table,
5344 TARGET_OPTION_OPTIMIZATION_TABLE): New.
5345 * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
5346 * config/mmix/mmix.c (mmix_option_optimization): Change to
5347 mmix_option_optimization_table.
5348 (TARGET_OPTION_OPTIMIZATION): Change to
5349 TARGET_OPTION_OPTIMIZATION_TABLE.
5350 * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
5351 * config/mn10300/mn10300.c (mn10300_option_optimization_table,
5352 TARGET_OPTION_OPTIMIZATION_TABLE): New.
5353 * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
5354 * config/pa/pa.c (pa_option_optimization_table,
5355 TARGET_OPTION_OPTIMIZATION_TABLE): New.
5356 * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
5357 * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
5358 pdp11_option_optimization_table.
5359 (TARGET_OPTION_OPTIMIZATION): Change to
5360 TARGET_OPTION_OPTIMIZATION_TABLE.
5361 * config/picochip/picochip.c (picochip_option_optimization_table,
5362 TARGET_OPTION_OPTIMIZATION_TABLE): New.
5363 * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
5364 * config/rs6000/rs6000.c (rs6000_option_optimization_table,
5365 TARGET_OPTION_OPTIMIZATION_TABLE): New.
5366 * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
5367 * config/rx/rx.c (rx_option_optimization_table,
5368 TARGET_OPTION_OPTIMIZATION_TABLE): New.
5369 * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
5370 * config/s390/s390.c (s390_option_optimization): Change to
5371 s390_option_optimization_table.
5372 (s390_option_override): Update comment.
5373 (TARGET_OPTION_OPTIMIZATION): Change to
5374 TARGET_OPTION_OPTIMIZATION_TABLE.
5375 * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
5376 * config/score/score.c (score_option_optimization_table,
5377 TARGET_OPTION_OPTIMIZATION_TABLE): New.
5378 * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
5379 * config/sh/sh.c (sh_option_optimization): Change to
5380 sh_option_optimization_table.
5381 (TARGET_OPTION_OPTIMIZATION): Change to
5382 TARGET_OPTION_OPTIMIZATION_TABLE.
5383 (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
5384 (sh_option_override, expand_block_move, multcosts, find_barrier,
5385 barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
5386 * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
5387 (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
5388 STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
5389 instead of TARGET_SMALLCODE.
5390 * config/sh/sh.opt (mspace): Make into an alias for -Os.
5391 * config/sparc/sparc.c (sparc_option_optimization_table,
5392 TARGET_OPTION_OPTIMIZATION_TABLE): New.
5393 * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
5394 * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
5395 TARGET_OPTION_OPTIMIZATION_TABLE): New.
5396 * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
5397 * config/v850/v850.c (v850_option_optimization): Change to
5398 v850_option_optimization_table.
5399 (TARGET_OPTION_OPTIMIZATION): Change to
5400 TARGET_OPTION_OPTIMIZATION_TABLE.
5401 * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
5402 * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
5403 xtensa_option_optimization_table.
5404 (TARGET_OPTION_OPTIMIZATION): Change to
5405 TARGET_OPTION_OPTIMIZATION_TABLE.
5406 * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
5407
5408 2010-10-21 Iain Sandoe <iains@gcc.gnu.org>
5409
5410 Based on the CFString implementation in FSF apple/trunk branch.
5411
5412 * target.def (objc_construct_string): New Hook.
5413 * doc/tm.texi (objc_construct_string): Document.
5414 * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
5415 * config/t-darwin: Amend build rules for darwin.o.
5416 * config/darwin.opt: Add cfstrings flags.
5417 * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
5418 (darwin_objc_construct_string): New.
5419 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
5420 * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
5421 * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
5422 (darwin_fold_builtin): Likewise.
5423 (darwin_build_constant_cfstring): Likewise.
5424 (darwin_objc_construct_string): Likewise.
5425 (darwin_cfstring_p): Likewise.
5426 (darwin_enter_string_into_cfstring_table): Likewise.
5427 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
5428 * config/darwin.c (darwin_running_cxx): New var.
5429 (machopic_select_section): Return cfstring_constant_object_section.
5430 (darwin_override_options): Set darwin_running_cxx.
5431 (add_builtin_field_decl): New.
5432 (darwin_init_cfstring_builtins): New.
5433 (darwin_build_constant_cfstring): New.
5434 (darwin_fold_builtin): New.
5435 (cfstring_hash): New.
5436 (cfstring_eq): New.
5437 (darwin_enter_string_into_cfstring_table): New.
5438 * config/darwin-sections.def (cfstring_constant_object_section): New.
5439 * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
5440 (TARGET_OBJC_CONSTRUCT_STRING): Define.
5441
5442 2010-10-21 Nathan Froyd <froydnj@codesourcery.com>
5443
5444 * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
5445 TYPE_STUB_DECL instead of TREE_CHAIN.
5446 * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
5447 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
5448 * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
5449 * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
5450 * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
5451 * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
5452 Likewise.
5453 * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
5454
5455 2010-10-22 Jie Zhang <jie@codesourcery.com>
5456
5457 * expr.c (emit_group_load_1): Update calls to extract_bit_field.
5458 (copy_blkmode_from_reg): Likewise.
5459 (read_complex_part): Likewise.
5460 (expand_expr_real_1): Calculate packedp and pass it to
5461 extract_bit_field.
5462 * expr.h (extract_bit_field): Update declaration.
5463 * calls.c (store_unaligned_arguments_into_pseudos): Update call
5464 to extract_bit_field.
5465 * expmed.c (extract_fixed_bit_field): Update calls to
5466 extract_fixed_bit_field.
5467 (store_split_bit_field): Likewise.
5468 (extract_bit_field_1): Add new argument packedp.
5469 (extract_bit_field): Add new argument packedp.
5470 (extract_fixed_bit_field): Add new argument packedp and let
5471 packed attribute override volatile.
5472 * stmt.c (expand_return): Update call to extract_bit_field.
5473
5474 2010-10-21 Nathan Froyd <froydnj@codesourcery.com>
5475
5476 * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
5477
5478 2010-10-21 Nathan Froyd <froydnj@codesourcery.com>
5479
5480 * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
5481 of gcc_checking_assert.
5482 * sel-sched.c (code_motion_process_successors): Likewise.
5483
5484 2010-10-21 Eric Botcazou <ebotcazou@adacore.com>
5485
5486 * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
5487 when stopping because of a different locus on edge or insn.
5488 (try_optimize_cfg): Add comment.
5489 * cfgrtl.c (rtl_merge_blocks): Tweak log message. If the destination
5490 block is a forwarder block, propagate locus on the edge.
5491 (cfg_layout_merge_blocks): Likewise.
5492
5493 2010-10-21 Uros Bizjak <ubizjak@gmail.com>
5494
5495 PR target/45946
5496 * config/i386/i386.md (*pushti2): New insn pattern.
5497 (pushti2 splitter): New insn splitter.
5498 (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
5499 DWI mode iterator.
5500
5501 2010-10-21 Paul Koning <ni1d@arrl.net>
5502
5503 * config/pdp11/pdp11-protos.md (arith_operand,
5504 const_immediate_operand, expand_shift_operand,
5505 immediate15_operand): Delete
5506 * config/pdp11/pdp11.c: Ditto.
5507 * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
5508 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
5509 EXTRA_CONSTRAINT): Delete.
5510 * config/pdp11/pdp11.md (various): Use standard constraints
5511 instead of removed ones.
5512 * config/pdp11/constraints.md: New file.
5513 * config/pdp11/predicates.md: New file.
5514
5515 2010-10-21 Bingfeng Mei <bmei@broadcom.com>
5516
5517 PR c/45834
5518 * alias.c (true_dependence_1): Remove obsolete check for QImode.
5519 (may_alias_p): Ditto.
5520
5521 2010-10-21 Martin Jambor <mjambor@suse.cz>
5522
5523 PR tree-optimization/45875
5524 * tree.c (get_binfo_at_offset): Remove initial zero offset test.
5525
5526 2010-10-21 Nathan Froyd <froydnj@codesourcery.com>
5527
5528 * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
5529 variables.
5530 (create_new_def_for): Likewise.
5531
5532 2010-10-21 Nick Clifton <nickc@redhat.com>
5533
5534 * config/mn10300/mn10300.c: Fold code to 80-character width.
5535 Replace GET_CODE (foo) == REG with REG_P (foo). Likewise for
5536 MEM, CONST_INT and CONST_DOUBLE.
5537 (targetm): Move initialization to end of file.
5538 (print_operand): Rename to mn10300_print_operand.
5539 (print_operand_address): Rename to mn10300_print_operand_address.
5540 (can_use_return_insn): Rename to mn10300_can_use_return_insn.
5541 (expand_prologue): Rename to mn10300_expand_prologue.
5542 (expand_epilogue): Rename to mn10300_expand_epilogue.
5543 (initial_offset): Rename to mn10300_initial_offset.
5544 (function_arg): Rename to mn10300_function_arg.
5545 (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
5546 (symbolic_operand): Rename to mn10300_symbolic_operand.
5547 (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
5548 (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
5549 * config/mn10300/mn10300-protos.h: Update prototypes.
5550 * config/mn10300/mn10300.h: Fold code to 80-character width.
5551 Replace GET_CODE (foo) == REG with REG_P (foo). Likewise for
5552 MEM, CONST_INT and CONST_DOUBLE.
5553 (CPP_SPEC): Move to...
5554 (TARGET_CPU_CPP_BUILTINS): ... here.
5555 * config/mn10300/mn10300.md: Fold code to 80-character width.
5556 Replace GET_CODE (foo) == REG with REG_P (foo). Likewise for
5557 MEM, CONST_INT and CONST_DOUBLE.
5558
5559 2010-10-21 Ira Rosen <irar@il.ibm.com>
5560
5561 PR tree-optimization/46049
5562 PR tree-optimization/46052
5563 * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
5564 (vect_get_slp_defs): Add arguments.
5565 * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
5566 operands to vect_get_slp_defs.
5567 (vectorizable_reduction): Fix comment, pass scalar operands to
5568 vect_get_slp_defs.
5569 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
5570 type to determine number of units in the created vector.
5571 (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
5572 (vectorizable_conversion): Fix comment.
5573 (vectorizable_shift): New function.
5574 (vectorizable_operation): Move code that handles shifts to
5575 vectorizable_shift.
5576 (vectorizable_type_demotion): Fix comment, pass scalar operands to
5577 vect_get_slp_defs.
5578 (vectorizable_type_promotion, vectorizable_store): Likewise.
5579 (vectorizable_condition): Fix comment.
5580 (vect_analyze_stmt): Call vectorizable_shift.
5581 (vect_transform_stmt): Likewise.
5582 * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
5583 Use it as the operand to create vectors for, except reduction
5584 initial definition and store. Use operands type.
5585 (vect_get_slp_defs): Add new arguments. Pass them to
5586 vect_get_constant_vectors.
5587
5588 2010-10-21 Nathan Froyd <froydnj@codesourcery.com>
5589
5590 * basic-block.h (single_succ_edge): Use gcc_checking_assert.
5591 (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
5592 * cfghooks.c (fixup_reorder_chain): Likewise.
5593 * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
5594 * cgraph.c (cgraph_add_thunk): Likewise.
5595 (cgraph_create_edge_1): Likewise.
5596 (cgraph_create_virtual_clone): Likewise.
5597 * ddg.c (add_cross_iteration_register_deps): Likewise.
5598 * dwarf2out.c (modified_type_die): Likewise.
5599 * emit-rtl.c (set_mem_alias_set): Likewise.
5600 * ggc-zone.c (zone_allocate_marks): Likewise.
5601 * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
5602 * gimple.c (iterative_hash_gimple_type): Likewise.
5603 * graphite-scop-detection.c (create_single_entry_edge): Likewise.
5604 (create_single_exit_edge): Likewise.
5605 * haifa-sched.c (choose_ready): Likewise.
5606 * lto-streamer-in.c (input_gimple_stmt): Likewise.
5607 * passes.c (execute_todo): Likewise.
5608 * sched-ebb.c (begin_schedule_ready): Likewise.
5609 * sel-sched.c (code_motion_process_successors): Likewise.
5610 * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
5611 * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
5612 * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
5613 (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
5614 * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
5615 * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
5616 (ssa_conflicts_add): Likewise.
5617 * tree-ssa-copy.c (replace_exp): Likewise.
5618 * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
5619 * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
5620 * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
5621 * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
5622 (compute_antic): Likewise.
5623 * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
5624 (add_dependence): Likewise.
5625 (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
5626 * tree-vrp.c (supports_overflow_infinity): Likewise.
5627 (make_overflow_infinity, negative_overflow_infinity): Likewise.
5628 (avoid_overflow_infinity, register_new_assert_for): Likewise.
5629 (process_assert_insertions_for): Likewise.
5630 * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
5631 (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
5632 (intersect_loc_chains, variable_merge_over_cur): Likewise.
5633
5634 2010-10-21 Nathan Froyd <froydnj@codesourcery.com>
5635
5636 * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
5637 * reload1.c (has_nonexceptional_receiver): Likewise.
5638 * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
5639 (create_new_def_for): Likewise.
5640 * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
5641 (merge_phi_nodes): Likewise.
5642 (has_abnormal_incoming_edge_p): Delete.
5643
5644 2010-10-21 H.J. Lu <hongjiu.lu@intel.com>
5645
5646 * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
5647
5648 2010-10-21 Richard Guenther <rguenther@suse.de>
5649 Michael Matz <matz@suse.de>
5650
5651 PR tree-optimization/45764
5652 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
5653 Adjust initial misalignment for negative DR_STEP.
5654 (vect_find_same_alignment_drs): Two DRs with different DR_STEP
5655 do not have the same alignment over the whole iteration domain.
5656
5657 2010-10-21 Richard Guenther <rguenther@suse.de>
5658
5659 PR tree-optimization/46111
5660 * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
5661
5662 2010-10-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5663
5664 * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
5665
5666 2010-10-21 Tristan Gingold <gingold@adacore.com>
5667
5668 * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
5669 * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
5670
5671 2010-10-21 Tristan Gingold <gingold@adacore.com>
5672
5673 * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
5674 signal_frame.
5675 * config/alpha/alpha.c (alpha_function_arg): Adjust call.
5676
5677 2010-10-21 Tristan Gingold <gingold@adacore.com>
5678
5679 * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
5680 * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
5681
5682 2010-10-20 Nathan Froyd <froydnj@codesourcery.com>
5683
5684 * basic-block.h (find_fallthru_edge): Define.
5685 * cfgcleanup.c (merge_blocks_move): Use it.
5686 (try_crossjump_bb): Likewise.
5687 * cfglayout.c (fixup_reorder_chains): Likewise.
5688 (fixup_fallthru_exit_predecessor): Likewise.
5689 * cfgrtl.c (rtl_split_edge): Likewise.
5690 (rtl_verify_flow_info): Likewise.
5691 * function.c (thread_prologue_and_epilogue_insns): Likewise.
5692 * gimple-pretty-print.c (dump_implicit_edges): Likewise.
5693 * ifcvt.c (block_fallthru): Likewise.
5694 * reload1.c (fixup_abnormal_edges): Likewise.
5695 * sched-ebb.c (being_schedule_ready): Likewise.
5696 (schedule_ebb): Likwise.
5697 * sched-rgn.c (find_single_block_region): Likewise.
5698 * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
5699 * tree-complex.c (expand_complex_move): Likewise.
5700 * sched-int.h (find_fallthru_edge): Rename to...
5701 (find_fallthru_edge_from): ...this.
5702 * haifa-sched.c (find_fallthru_edge): Rename to...
5703 (find_fallthru_edge_from): ...this. Use new find_fallthru_edge.
5704 (init_before_recovery): Call find_fallthru_edge_from.
5705 * sel-sched-ir.c (merge_fences): Likewise.
5706 * sel-sched.c (in_fallthru_bb_p): Likewise.
5707 (move_cond_jump): Likewise.
5708
5709 2010-10-20 Paul Koning <ni1d@arrl.net>
5710
5711 * config/pdp11/pdp11.md (various): Fix conditions on a number of
5712 insn to check for target 11/40 or higher.
5713
5714 2010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
5715
5716 * parser.c (c_parser_objc_method_type): Mark inline. Return a
5717 bool instead of a tree.
5718 (c_parser_objc_method_decl): Added bool argument. Updated call to
5719 objc_build_method_signature.
5720 (c_parser_objc_method_definition): Do not call
5721 objc_set_method_type. Updated calls to c_parser_objc_method_type,
5722 c_parser_objc_method_decl and objc_start_method_definition.
5723 (c_parser_objc_methodproto): Do not call objc_set_method_type.
5724 Updated calls to c_parser_objc_method_type,
5725 c_parser_objc_method_decl and objc_add_method_declaration.
5726
5727 2010-10-20 Jakub Jelinek <jakub@redhat.com>
5728
5729 PR tree-optimization/45919
5730 * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
5731 array members.
5732
5733 PR tree-optimization/46066
5734 * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
5735 instead of gsi_last_bb.
5736
5737 2010-10-20 DJ Delorie <dj@redhat.com>
5738
5739 * config/m32c/m32c.c (m32c_option_override): Always disable
5740 function-cse in 16-bit mode. Indirect calls are always worse than
5741 direct calls as there is no 16-bit indirect call opcode.
5742 (m32c_override_options_after_change): New, likewise.
5743
5744 2010-10-20 Nathan Froyd <froydnj@codesourcery.com>
5745
5746 * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
5747 emitting the conditional move in the inner mode of the SUBREG.
5748
5749 2010-10-20 Anatoly Sokolov <aesok@post.ru>
5750
5751 * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
5752 * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
5753 * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
5754 (ia64_preferred_reload_class): Make static. Change rclass argument
5755 and result types from enum reg_class to reg_class_t.
5756
5757 2010-10-20 Pat Haugen <pthaugen@us.ibm.com>
5758
5759 * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
5760 call for single operand expression.
5761
5762 2010-10-20 Eric Botcazou <ebotcazou@adacore.com>
5763
5764 * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
5765 if there is a call statement to pure or const function in the block.
5766
5767 2010-10-20 Paul Koning <pkoning@equallogic.com>
5768
5769 Fix several build errors for pdp11 target.
5770 * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
5771 (cbranchdf4): Conditional on TARGET_FPU.
5772 (movdf): Ditto; correct alternatives check.
5773 (movmemhi): Fix predicate and constraint.
5774 * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
5775
5776 2010-10-20 Richard Guenther <rguenther@suse.de>
5777
5778 PR lto/45667
5779 * lto-streamer-out.c (output_gimple_stmt): Fix typo.
5780 * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
5781 (verify_gimple_assign_single): Disable ADDR_EXPR type check
5782 when in LTO.
5783
5784 2010-10-20 Vladimir Makarov <vmakarov@redhat.com>
5785
5786 PR fortran/42169
5787 * ira-emit.c (store_can_be_removed_p): Return false instead of
5788 gcc_unreachable.
5789
5790 2010-10-20 Dmitry Melnik <dm@ispras.ru>
5791
5792 * fold-const.c (fold_binary_loc): New transformation.
5793
5794 2010-10-20 H.J. Lu <hongjiu.lu@intel.com>
5795
5796 PR target/46085
5797 * config/i386/sse.md (reduc_splus_v8sf): Updated.
5798 (reduc_splus_v4df): Likewise.
5799
5800 2010-10-20 Richard Guenther <rguenther@suse.de>
5801
5802 PR tree-optimization/45860
5803 * tree-ssa-phiopt.c (cond_store_replacement): Do not do
5804 conditional store replacement for non-register type stores.
5805
5806 2010-10-20 Eric Botcazou <ebotcazou@adacore.com>
5807
5808 * stor-layout.c (skip_simple_constant_arithmetic): New function.
5809 (self_referential_size): Use it instead of skip_simple_arithmetic.
5810
5811 2010-10-20 Olivier Hainque <hainque@adacore.com>
5812
5813 * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
5814 If the current function calls eh_return, claim live all registers
5815 that we need to check for liveness otherwise.
5816
5817 2010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
5818
5819 * c-decl.c (c_write_global_declarations): Call
5820 objc_write_global_declarations when compiling Objective-C.
5821 * c-lang.c (finish_file): Removed.
5822
5823 2010-10-19 DJ Delorie <dj@redhat.com>
5824
5825 * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
5826 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
5827 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
5828 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
5829 * doc/tm.texi: Regenerate.
5830 * targhooks.h (default_label_align_after_barrier_max_skip,
5831 default_loop_align_max_skip, default_label_align_max_skip,
5832 default_jump_align_max_skip): Declare.
5833 * target.def (label_align_after_barrier_max_skip): New.
5834 (loop_align_max_skip): New.
5835 (label_align_max_skip): New.
5836 (jump_align_max_skip): New.
5837 * system.h (poison): Add those macros to the list.
5838 * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
5839 (LOOP_ALIGN_MAX_SKIP): Remove.
5840 (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
5841 (JUMP_ALIGN_MAX_SKIP): Remove.
5842 (default_label_align_after_barrier_max_skip): New.
5843 (default_loop_align_max_skip): New.
5844 (default_label_align_max_skip): New.
5845 (default_jump_align_max_skip): New.
5846 (compute_alignments): Use the new hooks.
5847 (shorten_branches): Likewise.
5848
5849 2010-10-19 Richard Henderson <rth@redhat.com>
5850
5851 * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
5852 * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
5853 (fma4i_fmadd_<mode>): New.
5854 (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
5855 fma4_fm*_<mode> and adjust to be pre-reload splitters to the
5856 standard fma patterns.
5857 (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
5858 enable for FMA.
5859 (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
5860 (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
5861 (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
5862
5863 2010-10-19 Paul Koning <pkoning@equallogic.com>
5864
5865 * lower-subreg.c (resolve_shift_zext): Delete conditional code for
5866 WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
5867
5868 2010-10-19 Richard Henderson <rth@redhat.com>
5869
5870 * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
5871 (fmadf4, *fmsdf4, *nfmadf4): New.
5872 (fmaxf4, *fmsxf4, *nfmaxf4): New.
5873
5874 2010-10-19 Michael Eager <eager@eagercon.com>
5875
5876 * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
5877 Use sjlj unwind info for exceptions.
5878
5879 2010-10-19 Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
5880
5881 PR fortran/43414
5882 * dwarf2out.c (add_calling_convention_attribute): Flag main
5883 Fortran subroutine with DW_AT_main_subprogram.
5884
5885 2010-10-19 Nick Clifton <nickc@redhat.com>
5886
5887 * config/rx/rx.c (rx_function_value): Small integer types are
5888 promoted to SImode.
5889 (rx_promote_function_mode): New function.
5890 (TARGET_PROMOTE_FUNCTION_MODE): Define.
5891
5892 2010-10-19 Nick Clifton <nickc@redhat.com>
5893
5894 * config/mep/mep.c (mep_print_operand): Use
5895 targetm.strip_name_encoding.
5896 (mep_output_aligned_common): Likewise.
5897
5898 2010-10-19 Basile Starynkevitch <basile@starynkevitch.net>
5899
5900 * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
5901
5902 2010-10-18 Richard Henderson <rth@redhat.com>
5903
5904 * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
5905 (fma (neg a) (neg b) c) and (fma a (neg b) c).
5906
5907 2010-10-18 Richard Henderson <rth@redhat.com>
5908
5909 * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
5910 IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
5911 IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
5912 IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
5913 IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
5914 IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
5915 IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
5916 IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
5917 IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
5918 IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
5919 (bdesc_multi_arg): Remove the corresponding builtins.
5920 * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
5921 (UNSPEC_FMA4_FMSUBADD): Remove.
5922 (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
5923 * config/i386/sse.md (FMA4MODEF4): Remove.
5924 (FMAMODE): Add.
5925 (fma<mode>4): New expander.
5926 (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
5927 and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
5928 (*fma4i_fmsub_<mode>): Similarly.
5929 (*fma4i_fnmadd_<mode>): Similarly.
5930 (*fma4i_fnmsub_<mode>): Similarly.
5931 (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
5932 with the first operand.
5933 (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
5934 of explicit arithmetic. Macroize with AVXMODEF2P.
5935 (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
5936 (xop_frcz<mode>2): Macroize with FMAMODE.
5937 (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
5938 the first operand.
5939 * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
5940 extra negations.
5941 (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
5942 (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
5943 (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
5944 (_mm256_msub_ps, _mm256_msub_pd): Likewise.
5945 (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
5946 (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
5947 (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
5948 (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
5949
5950 2010-10-18 Bernd Schmidt <bernds@codesourcery.com>
5951
5952 PR rtl-optimization/45966
5953 * combine.c (try_combine): If added_sets_2, deal with the case
5954 where i0 feeds i1 and i1 feeds i2.
5955
5956 2010-10-18 Jan Hubicka <jh@suse.cz>
5957
5958 * ipa.c (cgraph_externally_visible_p): Handle externally visible and
5959 preserve flags before trying to guess on visibility.
5960 (varpool_externally_visible_p): New function.
5961 (function_and_variable_visibility): Use it.
5962
5963 2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
5964
5965 Implemented parsing @synthesize and @dynamic for Objective-C.
5966 * c-parser.c (c_parser_external_declaration): Recognize
5967 RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
5968 (c_parser_objc_at_synthesize_declaration): New.
5969 (c_parser_objc_at_dynamic_declaration): New.
5970
5971 2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
5972
5973 * c-parser.c (c_parser_objc_class_declaration): After finding an
5974 error, parse the whole declaration then reset parser->error.
5975
5976 2010-10-18 Michael Meissner <meissner@linux.vnet.ibm.com>
5977
5978 PR target/46041
5979 * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
5980 * builtins.c (mode_has_fma): Ditto.
5981
5982 2010-10-18 Steve Ellcey <sje@cup.hp.com>
5983
5984 PR target/36898
5985 PR middle-end/43760
5986 * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
5987
5988 2010-10-18 Joseph Myers <joseph@codesourcery.com>
5989
5990 * config/i386/i386.c (ix86_option_override_internal): Define and
5991 use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
5992 default.
5993 * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
5994 (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
5995
5996 2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
5997
5998 Merge from 'apple/trunk' branch on FSF servers.
5999 * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
6000 following Objective-C change:
6001
6002 2005-10-10 Fariborz Jahanian <fjahanian@apple.com>
6003
6004 Radar 4301047
6005 * c-parse.in (objc_quals): Build objc qualifier list same way
6006 as gcc-3.3
6007
6008 2010-10-18 Jan Hubicka <jh@suse.cz>
6009
6010 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
6011 function_and_variable_visibility): Revert accidental commit.
6012
6013 2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
6014
6015 Merge from 'apple/trunk' branch on FSF servers.
6016 * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
6017 the following Objective-C change:
6018
6019 2005-10-07 Fariborz Jahanian <fjahanian@apple.com>
6020
6021 Radar 4204796
6022 * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
6023 'volatilized' type used in a typeof operator.
6024
6025 2010-10-18 Eric Botcazou <ebotcazou@adacore.com>
6026
6027 * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
6028 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
6029 rewrite modelled on gimple_purge_dead_eh_edges.
6030 (gimple_purge_all_dead_abnormal_call_edges): New function.
6031 * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
6032 directly instead of through gimple_purge_dead_abnormal_call_edges.
6033 * tree-ssa-pre.c (need_ab_cleanup): New static variable.
6034 (eliminate): Set bit in need_ab_cleanup for the basic block if we have
6035 removed AB side-effects from one of its statements.
6036 (init_pre): Initialize need_ab_cleanup.
6037 (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
6038 are set in need_ab_cleanup. Free need_ab_cleanup afterward.
6039
6040 2010-10-18 Jakub Jelinek <jakub@redhat.com>
6041
6042 PR c/46015
6043 * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
6044 on computed goto argument.
6045
6046 2010-10-18 Richard Guenther <rguenther@suse.de>
6047
6048 PR tree-optimization/45967
6049 * tree-ssa-structalias.c (type_could_have_pointers): Remove.
6050 (could_have_pointers): Likewise.
6051 (handle_rhs_call, handle_const_call, handle_pure_call,
6052 find_func_aliases, intra_create_variable_infos): Remove calls to them.
6053 (struct fieldoff): Add must_have_pointers field.
6054 (type_must_have_pointers): New function.
6055 (field_must_have_pointers): Likewise.
6056 (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
6057 Adjust field merging.
6058 (create_function_info_for): May-have-pointers of varinfo is
6059 almost always true.
6060 (create_variable_info_for_1): Likewise.
6061
6062 2010-10-18 Tejas Belagod <tejas.belagod@arm.com>
6063
6064 * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
6065 of operands to vec_concat.
6066
6067 2010-10-18 Richard Guenther <rguenther@suse.de>
6068
6069 PR lto/44950
6070 * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
6071 also clear references to entries of it.
6072
6073 2010-10-18 Andi Kleen <ak@linux.intel.com>
6074
6075 PR other/43448
6076 * gccbug.in: Remove.
6077 * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
6078 (doc, distclean, install-common): Remove reference to gccbug.
6079 * configure: Regenerate.
6080 * configure.ac (all_outputs): Remove gccbug.
6081 * doc/configfiles.texi: Remove references to gccbug.
6082 * doc/sourcebuild.texi: Dito.
6083
6084 2010-10-18 Jakub Jelinek <jakub@redhat.com>
6085
6086 PR middle-end/46019
6087 * fold-const.c (fold_binary_loc): If integer_pow2p has
6088 TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
6089
6090 2010-10-18 Basile Starynkevitch <basile@starynkevitch.net>
6091 Jeremie Salvucci <jeremie.salvucci@free.fr>
6092
6093 * gengtype.c (verbosity_level): Add variable.
6094 (set_gc_used): Count variables for verbosity.
6095 (close_output_files): Backing up files, counting written ones
6096 verbosily.
6097 (write_types): Count emitted functions for verbosity. Added
6098 debug messages.
6099 (write_enum_defn): Count structures for verbosity. Added debug
6100 messages.
6101 (gengtype_long_options): Add "verbose" & "backupdir".
6102 (print_usage): Ditto.
6103 (main): Verbose display of parsed files.
6104
6105 * gengtype.h (verbosity_level): Add declaration.
6106
6107 2010-10-18 Basile Starynkevitch <basile@starynkevitch.net>
6108
6109 * gengtype.c (parse_program_options): Add allocation of
6110 plugin_files, and correct test on nb_plugin_files.
6111
6112 2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
6113
6114 Merge from 'apple/trunk' branch on FSF servers.
6115
6116 2006-03-27 Fariborz Jahanian <fjahanian@apple.com>
6117
6118 Radar 4133425
6119 * c-decl.c (undeclared_variable): Issue diagnostic on
6120 private 'ivar' access.
6121
6122 2010-10-17 Uros Bizjak <ubizjak@gmail.com>
6123
6124 PR target/46051
6125 * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
6126 generated sequence to match *avx_vperm2f128<mode>_nozero.
6127 (vec_interleave_lowv4df): Ditto.
6128 (vec_interleave_highv8sf): Ditto.
6129 (vec_interleave_lowv8sf): Ditto.
6130
6131 2010-10-17 Kai Tietz <kai.tietz@onevision.com>
6132
6133 * libgcov.c (create_file_directory): Enable it for win32 case.
6134 (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
6135 * doc/gcov.texi (GCOV_PREFIX): Adjusted.
6136 (GCOV_PREFIX_SKIP): Likewise.
6137
6138 2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
6139
6140 * doc/objc.texi (GNU Objective-C runtime API): New section.
6141 (Modern GNU Objective-C runtime API): New section.
6142 (Traditional GNU Objective-C runtime API): New section.
6143 (Executing code before main): Mention that this section is
6144 specific to the GNU Objective-C runtime.
6145 (Garbage Collection): Same.
6146
6147 2010-10-17 Uros Bizjak <ubizjak@gmail.com>
6148
6149 * c-parser.c (c_parser_for_statement): Move initialization of
6150 cond and incr before if.
6151
6152 2010-10-17 Anatoly Sokolov <aesok@post.ru>
6153
6154 * target.def (preferred_output_reload_class): New hook.
6155 * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
6156 * doc/tm.texi: Regenerate.
6157 * targhooks.c (default_preferred_output_reload_class): New function.
6158 * targhooks.h (default_preferred_output_reload_class): Declare.
6159 * reload.c (find_dummy_reload): Change rclass argument type from
6160 enum reg_class to reg_class_t. Change this_alternative array type
6161 from enum reg_class to reg_class_t.
6162 Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
6163 (push_reload): Change preferred_class variable type to reg_class_t.
6164 Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
6165 * recog.c (reg_fits_class_p): Change result type to bool. Change cl
6166 argument type from enum reg_class to reg_class_t. Use
6167 HARD_REGISTER_NUM_P predicate.
6168 * recog.h (reg_fits_class_p): Update prototype.
6169
6170 * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
6171 * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
6172 Remove.
6173 * config/i386/i386.c (ix86_preferred_output_reload_class): Make
6174 static. Change regclass argument and result types from enum reg_class
6175 to reg_class_t.
6176 (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
6177
6178 2010-10-17 Iain Sandoe <iains@gcc.gnu.org>
6179
6180 * c-parser.c (c_parser_objc_class_instance_variables): Update to use
6181 visibility enum, and handle @package.
6182
6183 2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
6184
6185 * doc/objc.texi (What you can and what you cannot do in +load):
6186 Document that sending messages to constant string objects in +load
6187 is not guaranteed to work.
6188
6189 2010-10-16 Jan Hubicka <jh@suse.cz>
6190
6191 PR middle-end/44206
6192 * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
6193 existence of refrences before removing the function.
6194
6195 2010-10-16 Jan Hubicka <jh@suse.cz>
6196
6197 * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
6198 only_called_at_startup and only_called_at_exit.
6199 (cgraph_propagate_frequency): Compute only_called_at_startup and
6200 only_called_at_exit.
6201 * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
6202 only_called_at_exit.
6203 * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
6204 flags.
6205 * predict.c (compute_function_frequency): Initialize the new flags.
6206
6207 2010-10-16 Eric Botcazou <ebotcazou@adacore.com>
6208
6209 * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
6210 ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
6211 on the bounds of its domain.
6212 * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
6213
6214 2010-10-16 Anatoly Sokolov <aesok@post.ru>
6215
6216 * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
6217 * config/avr/avr-protos.h (preferred_reload_class): Remove.
6218 * config/avr/avr.c (preferred_reload_class): Remove.
6219 * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
6220 * config/pa/pa.c (emit_move_sequence): Update comment
6221 * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
6222 * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
6223 * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
6224 * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
6225 * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
6226 * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
6227 * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
6228 * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
6229 * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
6230 * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
6231 * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
6232 * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
6233 * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
6234
6235 2010-10-16 Joseph Myers <joseph@codesourcery.com>
6236
6237 * opts.c (set_fast_math_flags,
6238 set_unsafe_math_optimizations_flags): Make static.
6239 * toplev.h (set_fast_math_flags,
6240 set_unsafe_math_optimizations_flags): Remove prototypes.
6241
6242 2010-10-16 Joseph Myers <joseph@codesourcery.com>
6243
6244 * config/arm/arm.c (arm_option_optimization): Set
6245 flag_section_anchors to 1 not 2.
6246 * config/i386/i386.c (ix86_option_override_internal): Check
6247 global_options_set.x_flag_zee and
6248 global_options_set.x_flag_omit_frame_pointer.
6249 (ix86_option_optimization): Don't set flag_omit_frame_pointer and
6250 flag_zee to 2.
6251 * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
6252 global_options_set.x_flag_omit_frame_pointer.
6253 * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
6254 opts->x_flag_section_anchors to 1 not 2.
6255 * config/sh/sh.c (sh_option_optimization): Don't set
6256 flag_schedule_insns to 2.
6257 (sh_option_override): Check
6258 global_options_set.x_flag_schedule_insns.
6259 * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
6260
6261 2010-10-16 Kai Tietz <kai.tietz@onevision.com>
6262
6263 * configure.ac: Make sure inhibit_libc remains false for mingw targets
6264 as cross.
6265 * configure: Regenerated.
6266
6267 2010-10-15 Xinliang David Li <davidxl@google.com>
6268
6269 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
6270 function.
6271 (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
6272 into a recursive function.
6273
6274 2010-10-15 Uros Bizjak <ubizjak@gmail.com>
6275
6276 * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
6277 (*movdfcc_1): ditto.
6278
6279 2010-10-15 Joseph Myers <joseph@codesourcery.com>
6280
6281 * target.def (target_option.init_struct): New hook.
6282 * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
6283 * doc/tm.texi: Regenerate.
6284 * hooks.c (hook_void_gcc_optionsp): New.
6285 * hooks.h (hook_void_gcc_optionsp): Declare.
6286 * langhooks-def.h (lhd_init_options_struct): Remove.
6287 (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
6288 * langhooks.c (lhd_init_options_struct): Remove.
6289 * opts.c (init_options_struct): Also call
6290 targetm.target_option.init_struct.
6291 * config/i386/i386.c (ix86_option_init_struct,
6292 TARGET_OPTION_INIT_STRUCT): New.
6293 (ix86_option_optimization): Move some settings to
6294 ix86_option_init_struct.
6295 * config/pdp11/pdp11.c (pdp11_option_init_struct,
6296 TARGET_OPTION_INIT_STRUCT): New.
6297 (pdp11_option_optimization): Move some settings to
6298 pdp11_option_init_struct.
6299 * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
6300 rs6000_option_init_struct. Use options structure pointer.
6301 (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
6302 * config/s390/s390.c (s390_option_init_struct,
6303 TARGET_OPTION_INIT_STRUCT): New.
6304 (s390_option_optimization): Don't set
6305 flag_asynchronous_unwind_tables here.
6306 * config/sh/sh.c (sh_option_init_struct,
6307 TARGET_OPTION_INIT_STRUCT): New.
6308 (sh_option_optimization): Don't set flag_finite_math_only here.
6309 * config/spu/spu.c (spu_option_optimization): Replace by
6310 spu_option_optimization. Use options structure pointer.
6311 (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
6312
6313 2010-10-14 Michael Meissner <meissner@linux.vnet.ibm.com>
6314
6315 * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
6316
6317 * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary. Add
6318 SIGN_EXTRACT and ZERO_EXTRACT which were missing.
6319 (Standard names): Document fma.
6320
6321 * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
6322 __FP_FAST_FMAF, __FP_FAST_FMAL.
6323
6324 * builitns.c (expand_builtin_mathfn_ternary): New function for
6325 expanding ternary math functions, like fma.
6326 (expand_builtin): Call it for the fma builtins.
6327
6328 * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
6329 ops at present.
6330
6331 * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
6332 vectorizable functions to support vectorizing fma.
6333
6334 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
6335 Handle fma builtins.
6336
6337 * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
6338 (UNSPEC_VSX_MSUB): Ditto.
6339 (UNSPEC_VSX_NMADD): Ditto.
6340 (UNSPEC_VSX_NMSUB): Ditto.
6341 (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
6342 of UNSPEC. Renumber combiner patterns.
6343 (vsx_fmsub<mode>4*): Ditto.
6344 (vsx_fnmadd<mode>4*): Ditto.
6345 (vsx_fnmsub<mode>4*): Ditto.
6346
6347 * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
6348 (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
6349 multiply/add. Rename combiner pattern, and add TARGET_FUSED_MADD test.
6350 (altivec_vmaddfp_1): Ditto.
6351 (altivec_vmaddfp_2): Ditto.
6352 (atlivec_mulv4sf3): Ditto.
6353 (altivec_vnmsubfp): Ditto.
6354 (altivec_vnmsubfp_1): Ditto.
6355 (altivec_vnmsubfp_2): Ditto.
6356 (altivec_vnmsubfp_3): Delete.
6357
6358 * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
6359 (fmasf4_fpr): Ditto.
6360 (fmssf4_fpr): Ditto.
6361 (fnmasf4_fpr): Ditto.
6362 (fnmssf4_fpr): Ditto.
6363 (fmadf4): Ditto.
6364 (fmadf4_fpr): Ditto.
6365 (fmsdf4_fpr): Ditto.
6366 (fnmadf4_fpr): Ditto.
6367 (fnmsdf4_fpr): Ditto.
6368
6369 * optabs.h (OTI_fma): Add fma optab.
6370 (fma_optab): Ditto.
6371
6372 * genopinit.c (optabs): Set fma optab.
6373
6374 * rtl.def (FMA): Add FMA rtl.
6375
6376 * tree.h (mode_has_fma): New function to return if MODE supports a
6377 fast multiply and add instruction.
6378 * builtins.c (mode_has_fma): Ditto.
6379
6380 2010-10-15 Jan Hubicka <jh@suse.cz>
6381
6382 * lto-streamer-out.c (write_symbol): Use pointer set of seen
6383 objects instead of bitmap.
6384 (produce_symtab): Likewise; output defined symbols first.
6385
6386 2010-10-15 Jie Zhang <jie@codesourcery.com>
6387
6388 * doc/invoke.texi: Add -fstrict-volatile-bitfields to
6389 Option Summary and Index.
6390
6391 2010-10-15 Richard Guenther <rguenther@suse.de>
6392
6393 * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
6394 for automatic variables again.
6395
6396 2010-10-15 Joseph Myers <joseph@codesourcery.com>
6397
6398 * doc/extend.texi (Variable Length): Don't refer to VLAs not
6399 conforming to C99.
6400
6401 2010-10-15 Joseph Myers <joseph@codesourcery.com>
6402
6403 * config/rx/rx.c (rx_option_optimization): Change to
6404 rx_override_options_after_change. Don't change
6405 flag_lto_compression_level. Don't check for changes to whether
6406 FPU instructions can be used. Check and set only
6407 flag_finite_math_only, not other fast-math flags.
6408 (rx_option_override): Call rx_override_options_after_change.
6409 (TARGET_OPTION_OPTIMIZATION): Remove.
6410 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
6411
6412 2010-10-15 Joseph Myers <joseph@codesourcery.com>
6413
6414 * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
6415 disable section anchors for lang_hooks.name[4] != 'O'.
6416
6417 2010-10-15 Joseph Myers <joseph@codesourcery.com>
6418
6419 * config/frv/frv.c (frv_option_optimization,
6420 TARGET_OPTION_OPTIMIZATION): Remove.
6421 * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
6422
6423 2010-10-15 Michael Matz <matz@suse.de>
6424
6425 * cgraphunit.c (clone_of_p): Define unconditionally.
6426
6427 2010-10-15 Richard Guenther <rguenther@suse.de>
6428
6429 PR lto/45957
6430 * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
6431
6432 2010-10-15 Chung-Lin Tang <cltang@codesourcery.com>
6433
6434 * ifcvt.c (find_active_insn_before): New function.
6435 (find_active_insn_after): New function.
6436 (cond_exec_process_if_block): Use new functions to replace
6437 prev_active_insn() and next_active_insn().
6438
6439 2010-10-14 Yao Qi <yao@codesourcery.com>
6440
6441 PR target/45447
6442 * config/arm/arm.c (arm_build_builtin_va_list): Assign
6443 va_list_name to TYPE_STUB_DECL (va_list_type).
6444
6445 2010-10-14 Jan Hubicka <jh@suse.cz>
6446
6447 PR middle-end/45621
6448 * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
6449 redirected to clone, be happy.
6450 * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
6451 * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
6452 former_clone_of unconditionally.
6453
6454 2010-10-14 Iain Sandoe <iains@gcc.gnu.org>
6455
6456 Merge from FSF apple 'trunk' branch.
6457 2006 Fariborz Jahanian <fjahanian@apple.com>
6458
6459 Radars 4436866, 4505126, 4506903, 4517826
6460 * c-parser.c (c_parser, objc_property_attr_context) New flag.
6461 (c_lex_one_token): Handle property attributes.
6462 (c_parser_external_declaration): Handle @property.
6463 (c_parser_declaration_or_fndef): Warn on invalid attributes before
6464 @alias, @class, @end and @property objc keywords.
6465 (c_parser_objc_methodprotolist): Handle @property.
6466 (c_parser_objc_property_attrlist): New.
6467 (c_parser_objc_at_property): New.
6468 * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
6469 (build_modify_expr): Likewise.
6470
6471 2010-10-14 Jakub Jelinek <jakub@redhat.com>
6472
6473 PR tree-optimization/46008
6474 * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
6475
6476 2010-10-14 Richard Guenther <rguenther@suse.de>
6477
6478 PR tree-optimization/44913
6479 * tree-data-ref.c (disjoint_objects_p): Remove.
6480 (dr_may_alias_p): Simplify. Only hand the base object to
6481 the alias-oracle.
6482 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
6483 some more trees, bail out instead of asserting.
6484 (ptr_derefs_may_alias_p): Likewise. Export.
6485 (refs_may_alias_p_1): Handle STRING_CSTs.
6486 * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
6487
6488 2010-10-14 Joseph Myers <joseph@codesourcery.com>
6489
6490 PR c/45969
6491 * c-typeck.c (build_binary_op): Don't try to compute a semantic
6492 type with excess precision for boolean operations.
6493
6494 2010-10-14 Jeremie Salvucci <jeremie.salvucci@free.fr>
6495 Basile Starynkevitch <basile@starynkevitch.net>
6496
6497 * gengtype.c: Include getopt.h and version.h.
6498
6499 (lang_bitmap, struct outf, outf_p)
6500 (get_output_file_with_visibility, oprintf): Definitions moved to
6501 gengtype.h
6502 (output_files, header_file, srcdir, srcdir_len, this_file)
6503 (do_dump): No more static variables.
6504 (do_debug): New.
6505 (dbgprint_count_type_at): Added new function.
6506 (gengtype_long_options): New.
6507 (print_usage, print_version, parse_program_options): New.
6508 (main): Call parse_program_options, and removed old option
6509 handling code. Added some debug output.
6510
6511 * gengtype.h: Updated copyright year.
6512 (lang_bitmap, struct outf, outf_p, header_file, oprintf)
6513 (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
6514 Moved from gengtype.c to here.
6515 (do_debug, read_state_filename, write_state_filename): New variables.
6516 (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
6517
6518 * Makefile.in:
6519 (REVISION): Always defined.
6520 (version.o): Removed ifdef REVISION_c.
6521 (s-gtype): Pass arguments to build/gengtype program.
6522 (build/version.o): Added building rule.
6523 (build/gengtype$(build_exeext)): Added build/version.o.
6524
6525 2010-10-14 Iain Sandoe <iains@gcc.gnu.org>
6526
6527 Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
6528 * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
6529 __strong macros.
6530
6531 2010-10-14 Eric Botcazou <ebotcazou@adacore.com>
6532
6533 * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
6534 may_trap_or_fault_p instead of may_trap_p predicate.
6535 * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
6536 (substitute_placeholder_in_expr): Likewise.
6537 * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
6538 flag on MEM_REF nodes.
6539 (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
6540 flags on INDIRECT_REF nodes.
6541
6542 2010-10-14 Nathan Froyd <froydnj@codesourcery.com>
6543
6544 * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
6545 (arm*-*-uclinux*eabi) <tm_file>: Likewise.
6546 (arm*-*-eabi*) <tm_file>: Likewise.
6547 (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
6548 (frv-*-*linux*) <tm_file>: Likewise.
6549 * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
6550 and associated helper macros.
6551 * config/frv/frv-abi.h: Delete.
6552
6553 2010-10-14 Richard Guenther <rguenther@suse.de>
6554
6555 PR lto/44561
6556 * tree.def (NULLPTR_TYPE): New tree code.
6557 * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
6558 * dwarf2out.c (is_base_type): Likewise.
6559 (gen_type_die_with_usage): Likewise.
6560 * sdbout.c (plain_type_1): Likewise.
6561 * tree.c (build_int_cst_wide): Likewise.
6562 * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
6563
6564 2010-10-14 Joseph Myers <joseph@codesourcery.com>
6565
6566 * params.c (params_finished): New.
6567 (add_params): Assert !params_finished.
6568 (finish_params): New.
6569 (set_param_value_internal): Take params and params_set
6570 parameters. Assert params_finished.
6571 (set_param_value, maybe_set_param_value): Take params and
6572 params_set parameters. Update calls to set_param_value_internal.
6573 (set_default_param_value): Assert !params_finished. Don't use
6574 set_param_value_internal.
6575 (default_param_value, init_param_values): New.
6576 * params.h (struct param_info): Change value to default_value.
6577 Remove set.
6578 (set_param_value, maybe_set_param_value): Add params and
6579 params_set parameters.
6580 (PARAM_VALUE): Get parameters from global_options.
6581 (PARAM_SET_P): Remove.
6582 (finish_params, default_param_value, init_param_values): New.
6583 * common.opt (param_values): New Variable.
6584 * config/arm/arm.c (arm_option_override): Pass extra arguments to
6585 maybe_set_param_value.
6586 * config/i386/i386.c (ix86_option_override_internal): Pass extra
6587 arguments to maybe_set_param_value.
6588 * config/picochip/picochip.c (picochip_option_override): Pass
6589 extra arguments to maybe_set_param_value.
6590 * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
6591 extra arguments to maybe_set_param_value.
6592 * config/s390/s390.c (s390_option_override): Use
6593 maybe_set_param_value instead of set_param_value. Pass extra
6594 arguments to maybe_set_param_value.
6595 * config/sparc/sparc.c (sparc_option_override): Pass extra
6596 arguments to maybe_set_param_value.
6597 * config/spu/spu.c (spu_option_override): Pass extra arguments to
6598 maybe_set_param_value.
6599 * opts.c (handle_param): Take opts and opts_set parameters.
6600 Update call to set_param_value.
6601 (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
6602 initial_loop_invariant_max_bbs_in_loop): Remove.
6603 (init_options_once): Don't set them.
6604 (init_options_struct): Initialize parameters structures.
6605 (default_options_optimization): Use default_param_value when
6606 restoring defaults. Update calls to maybe_set_param_value.
6607 (finish_options): Update calls to maybe_set_param_value.
6608 (common_handle_option): Update calls to handle_param and
6609 set_param_value.
6610 * toplev.c (DEFPARAM): Update definition for changes to param_info.
6611 (general_init): Call finish_params.
6612
6613 2010-10-14 Nick Clifton <nickc@redhat.com>
6614
6615 * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
6616 (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
6617 (FIRST_PSEUDO_REGISTER): Increase by one.
6618 (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
6619 (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
6620 (MODES_TIEABLE): Call mn10300_modes_tieable.
6621 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
6622 (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
6623 (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
6624 (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
6625 (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
6626 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
6627 (mn10300_cc_status_mdep): Delete.
6628 (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
6629 * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
6630 the combine-stack-adjust pass.
6631 (print_operand): Use the mode of the comparison operation to
6632 select the comparison suffix.
6633 (notice_update_cc): Delete.
6634 (mn10300_secondary_reload_class): Remove test for stack pointer
6635 based arithmetic.
6636 (output_tst): Rename to mn10300_output_cmp.
6637 (impossible_plus_operand): Move into predicates.md.
6638 (mn10300_legitimize_address): Make static.
6639 (mn10300_legitimate_address_p): Make static. Only allow SI sized
6640 constant pic operands.
6641 (mn10300_legitimate_constant_p): New function.
6642 (mn10300_case_values_threshold): Make static.
6643 (mn10300_hard_regno_mode_ok): New function.
6644 (mn10300_modes_tieable): New function.
6645 (mn10300_select_cc_mode): New function.
6646 * config/mn10300/predicates.md (impossible_plus_operand): Define.
6647 * config/mn10300/mn10300-protos.h: Tidy.
6648 (mn10300_legitimate_constant_p, mn10300_modes_tieable)
6649 (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
6650 * config/mn10300/mn10300.md (cc attribute): Delete. Replace
6651 with clobbers or sets of CC_REG.
6652 (CC_REG): Define.
6653 (mov*): Remove use of CLR instruction.
6654 (cbranch_si4_<code>): New pattern/split.
6655 (integer_conditional_branch): New pattern.
6656 (cbranch_sf4_<code>): New pattern/split.
6657 (float_conditional_branch): New pattern.
6658 (casesi): Use addsi3 pattern instead of movsi pattern to add and
6659 move a value at the same time.
6660 (cc0 peepholes): Remove.
6661
6662 2010-10-14 Andrey Belevantsev <abel@ispras.ru>
6663
6664 * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
6665 on RTX_FRAME_RELATED_P insns and the insn to which
6666 NOTE_INSN_EPILOGUE_BEG is attached.
6667 * sched-vis.c (print_value): Allow NULL value.
6668
6669 2010-10-14 Andrey Belevantsev <abel@ispras.ru>
6670
6671 PR rtl-optimization/45570
6672 * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
6673 assert that we are pipelining outer loops. Allow returning
6674 zero predecessors.
6675
6676 2010-10-14 Andrey Belevantsev <abel@ispras.ru>
6677
6678 * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
6679 (tidy_control_flow): Tidy vertical space.
6680 (sel_remove_bb): New variable idx. Use it to remember the basic
6681 block index before deleting the block.
6682 (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
6683 (sel_merge_blocks): ... here.
6684 * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
6685
6686 2010-10-14 Jakub Jelinek <jakub@redhat.com>
6687
6688 * cse.c (is_dead_reg): Change into inline function that is not
6689 called through for_each_rtx.
6690 (set_live_p): Adjust caller.
6691 (insn_live_p): Don't reset DEBUG_INSNs here.
6692 (struct dead_debug_insn_data): New data.
6693 (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
6694 (delete_trivially_dead_insns): If there is just one setter for the
6695 dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
6696 and add DEBUG_INSN for it right before the removed setter and
6697 use the DEBUG_EXPR instead of the dead pseudo.
6698
6699 2010-10-14 Zdenek Dvorak <rakdver@kam.uniff.cz>
6700
6701 * et-forest.c (et_nca): Return NULL immediately when
6702 the dominance forest has disjoint components.
6703
6704 2010-10-13 Vladimir Makarov <vmakarov@redhat.com>
6705
6706 * ira.c (setup_class_hard_regs): Fix typo in indexing
6707 ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
6708
6709 2010-10-14 Tijs Wiebe Lefering <twlevo@gmail.com>
6710
6711 * graph.c (inbb): New variable.
6712 (start_bb): Set inbb to 1 if output is inside of a building block.
6713 (end_bb): Check if output is inside of a building block.
6714
6715 2010-10-13 Eric Botcazou <ebotcazou@adacore.com>
6716
6717 PR rtl-optimization/45912
6718 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
6719 regno of registers instead of their index to compute the alignment.
6720
6721 2010-10-13 H.J. Lu <hongjiu.lu@intel.com>
6722
6723 * config/i386/i386.c (ix86_build_const_vector): Check vector
6724 mode instead of scalar mode.
6725 (ix86_build_signbit_mask): Likewise.
6726 (ix86_expand_fp_absneg_operator): Updated.
6727 (ix86_expand_copysign): Likewise.
6728 (ix86_expand_int_vcond): Likewise.
6729 (ix86_emit_swdivsf): Likewise.
6730 (ix86_sse_copysign_to_positive): Likewise.
6731 (ix86_expand_sse_fabs): Likewise.
6732 * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
6733 * config/i386/sse.md (copysign<mode>3): Likewise.
6734 (sse2_cvtudq2ps): Likewise.
6735 (vec_unpacku_float_hi_v4si): Likewise.
6736 (vec_unpacku_float_lo_v4si): Likewise.
6737
6738 * config/i386/i386.c (ix86_builtins): Add
6739 IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
6740 (bdesc_args): Likewise.
6741 (ix86_builtin_vectorized_function): Support
6742 IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
6743 IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
6744 and IX86_BUILTIN_CVTPS2DQ256.
6745 (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
6746
6747 * config/i386/sse.md (STORENT_MODE): New.
6748 (VEC_FLOAT_MODE): Likewise.
6749 (VEC_EXTRACT_MODE): Likewise.
6750 (*avx_cvtdq2pd256_2): Likewise.
6751 (vec_pack_trunc_v4df): Likewise.
6752 (vec_interleave_highv8sf): Likewise.
6753 (vec_interleave_lowv8sf): Likewise.
6754 (storent<mode>): Macroized.
6755 (<code><mode>2: absneg): Likewise.
6756 (copysign<mode>3): Likewise.
6757 (vec_extract<mode>): Likewise.
6758
6759 PR target/44180
6760 * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
6761 for V8SFmode.
6762
6763 2010-10-13 Richard Guenther <rguenther@suse.de>
6764 H.J. Lu <hongjiu.lu@intel.com>
6765
6766 * config/i386/sse.md (reduc_splus_v8sf): Add.
6767 (reduc_splus_v4df): Likewise.
6768 (vec_unpacks_hi_v8sf): Likewise.
6769 (vec_unpacks_lo_v8sf): Likewise.
6770 (*avx_cvtps2pd256_2): Likewise.
6771 (vec_unpacks_float_hi_v8si): Likewise.
6772 (vec_unpacks_float_lo_v8si): Likewise.
6773 (vec_interleave_highv4df): Likewise.
6774 (vec_interleave_lowv4df): Likewise.
6775
6776 2010-10-13 Richard Guenther <rguenther@suse.de>
6777
6778 PR objc/45878
6779 * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
6780 alone if there are no virtual methods.
6781
6782 2010-10-13 Richard Henderson <rth@redhat.com>
6783
6784 * expr.c (build_personality_function): Take parameter LANG instead
6785 of parameter NAME. Build the name based on the lang prefix and the
6786 unwind method in use.
6787 * tree.c (lhd_gcc_personality): Update call to
6788 build_personality_function.
6789
6790 2010-10-13 Richard Guenther <rguenther@suse.de>
6791
6792 PR objc/45878
6793 * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
6794
6795 2010-10-13 Eric Botcazou <ebotcazou@adacore.com>
6796
6797 * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
6798 Canonicalize input operands of ASM_OPERANDS insns.
6799
6800 2010-10-13 Richard Guenther <rguenther@suse.de>
6801
6802 PR tree-optimization/45788
6803 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
6804 EH update until fixup-cfg.
6805
6806 2010-10-13 Julian Brown <julian@codesourcery.com>
6807
6808 * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
6809 from CORE_REGS and GENERAL_REGS classes.
6810 * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
6811 final constraint for register preferencing.
6812
6813 2010-10-13 Richard Guenther <rguenther@suse.de>
6814
6815 PR tree-optimization/45970
6816 * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
6817 * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
6818 (stmt_kills_ref_p): Likewise.
6819 * tree-ssa-dse.c (dse_optimize_stmt): Use it.
6820
6821 2010-10-13 Richard Guenther <rguenther@suse.de>
6822
6823 PR tree-optimization/45982
6824 * tree-ssa-structalias.c (make_constraints_to): New function.
6825 (make_constraint_to): Implement in terms of make_constraints_to.
6826 (find_func_aliases): Properly make return values of pure/const
6827 functions escape if they assign to sth that is not a pointer.
6828
6829 2010-10-13 Richard Guenther <rguenther@suse.de>
6830
6831 PR middle-end/45874
6832 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
6833 Fixup the CFG when EH was fixed up.
6834
6835 2010-10-13 Ira Rosen <irar@il.ibm.com>
6836
6837 * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
6838 Use operand's type for POINTER_PLUS_EXPR.
6839
6840 2010-10-13 Alexandre Oliva <aoliva@redhat.com>
6841
6842 * c-parser.c (c_parser_for_statement): Initialize incr.
6843
6844 2010-10-12 Xinliang David Li <davidxl@google.com>
6845
6846 PR tree-optimization/45972
6847 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
6848 with too many arguments.
6849
6850 2010-10-12 Jakub Jelinek <jakub@redhat.com>
6851
6852 PR fortran/45636
6853 * tree-ssa-forwprop.c: Include expr.h.
6854 (constant_pointer_difference, simplify_builtin_call): New functions.
6855 (tree_ssa_forward_propagate_single_use_vars): Call
6856 simplify_builtin_call on builtin calls.
6857
6858 2010-10-12 Eric Botcazou <ebotcazou@adacore.com>
6859
6860 * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
6861 (*adddi3_extend_sp32): Likewise.
6862 (*subdi3_insn_sp32): Likewise.
6863 (*subdi3_extend_sp32): Likewise.
6864 (*negdi2_sp32): Use negative test for consistency.
6865
6866 2010-10-12 Nathan Froyd <froydnj@codesourcery.com>
6867
6868 * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
6869 (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
6870 * config/fixed-bit.h: Likewise.
6871 * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
6872 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
6873 * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
6874 * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
6875 (DF_SIZE): Likewise.
6876 * doc/tm.texi: Regenerate.
6877
6878 2010-10-12 Nathan Froyd <froydnj@codesourcery.com>
6879
6880 * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
6881 * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
6882 (*isel_reversed_unsigned_<mode>): New.
6883 * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
6884 as valid comparisons and adjust operands and output appropriately.
6885 (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
6886
6887 2010-10-12 Chung-Lin Tang <cltang@codesourcery.com>
6888
6889 * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
6890 DATA_ALIGNMENT and add COND parameter. Update comments above.
6891 (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
6892 (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
6893
6894 2010-10-12 H.J. Lu <hongjiu.lu@intel.com>
6895
6896 PR bootstrap/45958
6897 * exec-tool.in: Support '-plugin' as the second option to the linker.
6898
6899 2010-10-12 Richard Henderson <rth@redhat.com>
6900
6901 PR middle-end/45962
6902 * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
6903 (expand_stack_vars): Assert large base allocated when used.
6904
6905 2010-10-12 Richard Guenther <rguenther@suse.de>
6906
6907 * tree-ssa-structalias.c (get_constraint_for_1): Constants
6908 only point to nonlocal, not anything.
6909
6910 2010-10-11 Hariharan Sandanagobalane <hariharan@picochip.com>
6911
6912 * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
6913 unwind info for exceptions.
6914
6915 2010-10-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6916
6917 PR testsuite/45851
6918 * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
6919 Document optional target selector.
6920
6921 2010-10-12 Joseph Myers <joseph@codesourcery.com>
6922
6923 * flag-types.h: New.
6924 * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
6925 (FLAGS_H): Include flag-types.h. Include $(OPTIONS_H) instead of
6926 options.h.
6927 (OPTIONS_H): Define.
6928 (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
6929 of options.h.
6930 * configure.ac (tm_include_list): Include options.h not flags.h.
6931 * configure: Regenerate.
6932 * flags.h: Include flag-types.h. Include options.h at top of file
6933 again.
6934 (enum debug_info_type, enum debug_info_level, enum
6935 debug_info_usage, enum symbol_visibility, struct visibility_flags,
6936 enum ira_algorithm, enum ira_region, enum excess_precision, enum
6937 graph_dump_types, enum stack_check_type,
6938 enum warn_strict_overflow_code): Move to flag-types.h
6939 * opth-gen.awk: Include flag-types.h in options.h.
6940
6941 2010-10-12 Jakub Jelinek <jakub@redhat.com>
6942
6943 * expr.c (store_expr): Share code for STRING_CST and
6944 MEM_REF of &STRING_CST cases. Don't require BLKmode, instead
6945 check if target is a MEM.
6946
6947 * rtl.h: Include hashtab.h.
6948 (iterative_hash_rtx): New prototype.
6949 * rtl.c (iterative_hash_rtx): New function.
6950 * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
6951 (output_loc_list): Return immediately if emitted is set, set it.
6952 (hash_loc_operands, hash_locs, hash_loc_list,
6953 compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
6954 optimize_location_lists_1, optimize_location_lists): New function.
6955 (dwarf2out_finish): Call optimize_location_lists.
6956 * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
6957
6958 2010-10-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6959
6960 PR testsuite/45974
6961 Revert:
6962 * Makefile.in ($(lang_checks_parallel))
6963 ($(lang_checks_parallelized)): Use single quotes for
6964 $(RUNTESTFLAGS), to allow passing quoted content.
6965
6966 2010-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6967
6968 * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
6969 actual_oldval. Use __builtin_expect.
6970 (SUBWORD_VAL_CAS): Likewise.
6971
6972 2010-10-11 Nathan Froyd <froydnj@codesourcery.com>
6973
6974 * recog.c (nonmemory_operand): Call immediate_operand for
6975 CONSTANT_P operands.
6976
6977 2010-10-11 Uros Bizjak <ubizjak@gmail.com>
6978
6979 * config/i386/i386.md (movmem<mode>): Macroize expander from
6980 movmem{si,di} using SWI48 mode iterator.
6981 (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
6982 *strmovsi_rex_1 using P mode iterator.
6983 (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
6984 (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
6985 (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
6986 (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
6987 (setmem<mode>): Macroize expander from setmem{si,di} using
6988 SWI48 mode iterator.
6989 (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
6990 *strsetsi_rex_1 using P mode iterator.
6991 (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
6992 (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
6993 (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
6994 (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
6995 (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
6996 (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
6997 (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
6998 mode iterator.
6999 (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
7000 *strlenqi_rex_1 using P mode iterator.
7001
7002 2010-10-11 Bernd Schmidt <bernds@codesourcery.com>
7003
7004 PR bootstrap/45445
7005 * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
7006 static functions.
7007 (mark_ref_live, mark_ref_dead): Use them.
7008 (make_pseudo_conflict): New arg ORIG_DREG. All callers changed.
7009 Save the original reg, and use the new functions.
7010 (check_and_make_def_use_conflict): New arg ORIG_DREG. All callers
7011 changed.
7012 (check_and_make_def_conflict): Save the original reg.
7013
7014 2010-10-11 Martin Jambor <mjambor@suse.cz>
7015
7016 PR middle-end/45699
7017 * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
7018 thunks.
7019
7020 2010-10-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7021
7022 * Makefile.in ($(lang_checks_parallel))
7023 ($(lang_checks_parallelized)): Use single quotes for
7024 $(RUNTESTFLAGS), to allow passing quoted content.
7025
7026 PR bootstrap/35855
7027 * opt-functions.awk (BEGIN): New section.
7028 (lower, upper, digit, alnum): New variables.
7029 (static_var, opt_sanitized_name): Use alnum instead of character
7030 classes, for non-C locale.
7031 * optc-gen.awk: Likewise.
7032 * opth-gen.awk: Likewise.
7033
7034 2010-10-11 Anatoly Sokolov <aesok@post.ru>
7035
7036 * target.def (preferred_reload_class): New hook.
7037 * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
7038 * doc/tm.texi: Regenerate.
7039 * targhooks.c (default_preferred_reload_class): New function.
7040 * targhooks.h (default_preferred_reload_class): Declare.
7041 * reload.c (find_dummy_reload): Change preferred_class variable type
7042 from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
7043 target hook.
7044 (find_reloads): Change goal_alternative array type from int to
7045 reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
7046 (push_reload, find_reloads_address_part): Use
7047 TARGET_PREFERRED_RELOAD_CLASS target hook.
7048 * reload1.c (emit_input_reload_insns): Ditto.
7049 * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
7050 hook. Change rclass argument and secondary_class variable types from
7051 'enum reg_class' to reg_class_t.
7052
7053 * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
7054 * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
7055 * config/i386/i386.c (ix86_preferred_reload_class): Make static.
7056 Change regclass argument and result types from enum reg_class to
7057 reg_class_t.
7058 (TARGET_PREFERRED_RELOAD_CLASS): Define.
7059
7060 2010-10-11 Eric Botcazou <ebotcazou@adacore.com>
7061
7062 * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
7063 in masking operations.
7064 (simplify_const_unary_operation): Likewise.
7065 (simplify_binary_operation_1): Likewise.
7066 (simplify_const_binary_operation): Likewise.
7067 (simplify_const_relational_operation): Likewise.
7068 (simplify_ternary_operation): Likewise.
7069 (simplify_immed_subreg): Likewise.
7070
7071 2010-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7072
7073 PR middle-end/45862
7074 * doc/tm.texi.in (SUPPORTS_WEAK): Update.
7075 (TARGET_SUPPORTS_WEAK): New.
7076 * doc/tm.texi: Regenerate.
7077 * defaults.h (SUPPORTS_WEAK): Update comment.
7078 (TARGET_SUPPORTS_WEAK): New.
7079 * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
7080 * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
7081 SUPPORTS_WEAK.
7082 (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
7083 make_decl_one_only): Likewise.
7084 * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
7085 TARGET_SUPPORTS_WEAK.
7086 (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
7087 instead of SUPPORTS_WEAK.
7088
7089 2010-10-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7090
7091 * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
7092
7093 2010-10-11 Nathan Froyd <froydnj@codesourcery.com>
7094
7095 * vec.h (VEC_qsort): Define.
7096 * dbxout.c (output_used_types): Use it.
7097 * df-scan.c (df_sort_and_compress_refs): Likewise.
7098 (df_sort_and_compress_mws): Likewise.
7099 * genautomata.c (uniq_sort_alt_states): Likewise.
7100 (evaluate_equiv_classes): Likewise.
7101 (output_trans_table): Likewise.
7102 (output_state): Likewise.
7103 * gimplify.c (compare_case_labels): Likewise.
7104 * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
7105 * ipa.c (build_cdtor_fns): Likewise.
7106 * lto.c (lto_wpa_write_files): Likewise.
7107 * sel-sched.c (fill_vec_av_set): Likewise.
7108 * tree-predcom.c (determine_roots_comp): Likewise.
7109 * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
7110 (splice_param_accesses): Likewise.
7111 * tree-ssa-live.c (dump_enumerated_decls): Likewise.
7112 * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
7113 (reassociate_bb): Likewise.
7114 * tree-ssa-sccvn.c (sort_scc): Likewise.
7115 * tree-ssa-structalias.c (sort_fieldstack): Likewise.
7116
7117 2010-10-11 Ian Lance Taylor <iant@google.com>
7118
7119 * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
7120 * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
7121 TREE_THIS_NOTRAP when appropriate.
7122 (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
7123 * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
7124 newly created MEM_REF.
7125
7126 2010-10-11 Hariharan Sandanagobalane <hariharan@picochip.com>
7127
7128 Nathan Froyds patch to hooks FUNCTION_ARG etc.
7129 * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
7130 (picochip_incoming_function_arg): Delete.
7131 (picochip_arg_advance): Delete.
7132 * config/picochip/picochip.h (FUNCTION_ARG): Delete.
7133 (FUNCTION_INCOMING_ARG): Delete.
7134 (FUNCTION_ARG_ADVANCE): Delete.
7135 * config/picochip/picochip.c (picochip_function_arg): Take a
7136 const_tree and a bool.
7137 (picochip_incoming_function_arg): Likewise.
7138 (picochip_arg_advance): Likewise.
7139 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
7140 (TARGET_FUNCTION_ARG_ADVANCE): Define.
7141
7142 2010-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7143
7144 PR middle-end/45955
7145 * ipa.c (build_cdtor): Delete endless loop.
7146
7147 2010-10-07 Andi Kleen <ak@linux.intel.com>
7148
7149 * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
7150 checksum-options.
7151 (checksum-options): Add.
7152 (cc1-dummy): Remove.
7153 (cc1-checksum): Change to run checksum over object files
7154 and options only.
7155 * dummy-checksum.c: Remove.
7156 * genchecksum.c: Update copyright.
7157 (usage): Allow multiple arguments.
7158 (BLOCKSIZE): Add.
7159 (dosum): Change for incremental checksum. Remove C output.
7160 (main): Iterate over all argument files. Add C output.
7161
7162 2010-10-11 Joseph Myers <joseph@codesourcery.com>
7163
7164 * params.c (set_param_value_internal): New.
7165 (set_param_value): Use set_param_value_internal.
7166 (maybe_set_param_value, set_default_param_value): New.
7167 * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
7168 (maybe_set_param_value, set_default_param_value): Declare.
7169 * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
7170 * config/i386/i386.c (ix86_option_override_internal): Use
7171 maybe_set_param_value.
7172 * config/ia64/ia64.c (ia64_option_default_params,
7173 TARGET_OPTION_DEFAULT_PARAMS): New.
7174 (ia64_option_optimization): Move some code to
7175 ia64_option_default_params.
7176 * config/picochip/picochip.c (picochip_option_override): Use
7177 maybe_set_param_value.
7178 * config/rs6000/rs6000.c (rs6000_option_default_params,
7179 TARGET_OPTION_DEFAULT_PARAMS): New.
7180 (rs6000_option_override_internal): Use maybe_set_param_value.
7181 (rs6000_option_optimization): Move some code to
7182 rs6000_option_default_params.
7183 * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
7184 * config/sh/sh.c (sh_option_default_params,
7185 TARGET_OPTION_DEFAULT_PARAMS): New.
7186 (sh_option_optimization): Move some code to sh_option_default_params.
7187 * config/sparc/sparc.c (sparc_option_override): Use
7188 maybe_set_param_value.
7189 * config/spu/spu.c (spu_option_default_params,
7190 TARGET_OPTION_DEFAULT_PARAMS): New.
7191 (spu_option_optimization): Move some code to spu_option_default_params.
7192 (spu_option_override): Use maybe_set_param_value.
7193 * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
7194 * doc/tm.texi: Regenerate.
7195 * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
7196 * opts.c (init_options_once): Use PARAM_VALUE not direct access to
7197 compiler_params.
7198 (default_options_optimization): Use maybe_set_param_value.
7199 (finish_options): Use maybe_set_param_value.
7200 * target.def (target_option.default_params): New hook.
7201 * toplev.c (general_init): Call targetm.target_option.default_params.
7202
7203 2010-10-11 Ira Rosen <irar@il.ibm.com>
7204
7205 PR tree-optimization/45902
7206 * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
7207 vector type for constants, unless it's a pointer.
7208
7209 2010-10-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7210
7211 * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
7212
7213 2010-10-11 Jakub Jelinek <jakub@redhat.com>
7214
7215 PR target/45870
7216 * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
7217 (ix86_delegitimize_address): Use it.
7218
7219 2010-10-10 Eric Botcazou <ebotcazou@adacore.com>
7220
7221 * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
7222
7223 2010-10-10 Uros Bizjak <ubizjak@gmail.com>
7224
7225 * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
7226 to cum struct in the call to function_arg_advance.
7227 (alpha_function_arg_advance): Mark named as unused.
7228
7229 2010-10-10 Richard Sandiford <rdsandiford@googlemail.com>
7230
7231 * config/mips/mips.c (mips_handle_option): Make "value" with
7232 ATTRIBUTE_UNUSED.
7233
7234 2010-10-09 Richard Henderson <rth@redhat.com>
7235
7236 PR rtl-opt/33721
7237 * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
7238 remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN. Honor
7239 required_align, tidy the code a bit. Emit split_stack code in the
7240 right place. Mark the return value with the alignment properly.
7241 * expr.h (allocate_dynamic_stack_space): Update decl.
7242 * builtins.c (expand_builtin_apply): Update call to
7243 allocate_dynamic_stack_space.
7244 (expand_builtin_alloca): Likewise. Remove TARGET parameter.
7245 * calls.c (initialize_argument_information): Update call to
7246 allocate_dynamic_stack_space.
7247 (expand_call): Likewise.
7248
7249 * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
7250 Don't update_stack_alignment here.
7251 (alloc_stack_frame_space): Make ALIGN unsigned.
7252 (stack_var_cmp): Sort by alignment too.
7253 (partition_stack_vars): Don't merge large and small alignment vars.
7254 (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
7255 Take care when BASE is not virtual_stack_vars_rtx.
7256 (expand_stack_vars): Allocate dynamic stack space for large
7257 alignment variables.
7258 (expand_one_stack_var): Update all to expand_one_stack_var_at.
7259 (defer_stack_allocation): True for large alignment vars.
7260 (update_stack_alignment): Merge into ...
7261 (expand_one_var): ... here.
7262 (gimple_expand_cfg): Place code from expand_stack_vars.
7263
7264 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
7265
7266 * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7267 * config/pdp11/pdp11.c (pdp11_function_arg): New function.
7268 (pdp11_function_arg_advance): New function.
7269 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7270
7271 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
7272
7273 * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
7274 * libgcc2.c: Likewise.
7275
7276 2010-10-09 Richard Guenther <rguenther@suse.de>
7277
7278 PR lto/45956
7279 * lto-streamer-in.c (lto_register_var_decl_in_symtab):
7280 Properly check if a decl is an automatic var.
7281
7282 2010-10-09 Richard Guenther <rguenther@suse.de>
7283
7284 PR lto/45947
7285 * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
7286
7287 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
7288
7289 * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
7290 * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7291 * config/mmix/mmix.c (mmix_function_arg): Rename to...
7292 (mmix_function_arg_1): ...this. Make static. Take a const_tree and
7293 bool arguments.
7294 (mmix_function_arg): New function.
7295 (mmix_function_incoming_arg): New function.
7296 (mmix_function_arg_advance): New function.
7297 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
7298 (TARGET_FUNCTION_ARG_ADVANCE): Define.
7299
7300 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
7301
7302 * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7303 * config/vax/vax.c (vax_function_arg): New function.
7304 (vax_function_arg_advance): New function.
7305 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7306
7307 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
7308
7309 * config/pa/pa-protos.h (function_arg): Delete.
7310 * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7311 * config/pa/pa.c (function_arg): Rename to...
7312 (pa_function_arg): ...this. Make static. Take a const_tree and
7313 a bool.
7314 (pa_function_arg_advance): New function.
7315 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7316
7317 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
7318
7319 * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7320 * config/m68k/m68k.c (m68k_function_arg): New function.
7321 (m68k_function_arg_advance): New function.
7322 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7323
7324 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
7325
7326 * config/avr/avr-protos.h (function_arg): Delete.
7327 (function_arg_advance): Delete.
7328 * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7329 * config/avr/avr.c (function_arg): Rename to...
7330 (avr_function_arg): ...this. Make static. Take a const_tree and
7331 a bool.
7332 (function_arg_advance): Rename to...
7333 (avr_function_arg_advance): ...this. Make static. Take a
7334 const_tree and a bool.
7335 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7336
7337 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
7338
7339 * config/alpha/alpha-protos.h (function_arg): Delete.
7340 * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7341 * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
7342 * config/alpha/alpha.c (function_arg): Rename to...
7343 (alpha_function_arg): ...this. Make static. Take a const_tree and
7344 a bool. Delete TARGET_ABI_UNICOSMK code.
7345 (alpha_function_arg_advance): New function.
7346 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7347
7348 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
7349
7350 * config/mep/mep-protos.h (mep_function_arg): Delete.
7351 (mep_function_arg_advance): Delete.
7352 * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7353 * config/mep/mep.c (mep_function_arg): Make static. Take a
7354 const_tree and a bool.
7355 (mep_function_arg_advance): Likewise.
7356 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7357
7358 2010-10-09 Richard Guenther <rguenther@suse.de>
7359
7360 PR tree-optimization/45945
7361 * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
7362
7363 2010-10-09 Eric Botcazou <ebotcazou@adacore.com>
7364
7365 PR tree-optimization/45612
7366 * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
7367 Test LABEL_DECLs as well. Fix formatting issues.
7368 (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
7369 whose label is present in NON_SSA_VARS.
7370 (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED. Handle LABEL_DECLs
7371 as well. Fix formatting issues.
7372 (visit_bb): Fix typos and formatting issue.
7373
7374 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
7375
7376 PR tree-optimization/45950
7377 * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
7378 before initializing vno->op.
7379
7380 2010-10-09 Ralf Corsépius <ralf.corsepius@rtems.org>
7381
7382 * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
7383 * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
7384
7385 2010-10-08 H.J. Lu <hongjiu.lu@intel.com>
7386
7387 PR target/45913
7388 * config/i386/i386.c (ix86_binary_operator_ok): Support
7389 "andhi/andsi/anddi" as a zero-extending move.
7390
7391 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
7392
7393 * builtins.c (fold_call_stmt): Don't copy gimple call arguments
7394 into a temporary array.
7395
7396 2010-10-08 Jakub Jelinek <jakub@redhat.com>
7397
7398 PR tree-optimization/45903
7399 * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
7400 of {A,L}SHIFTRT of MEM.
7401
7402 2010-10-08 Richard Guenther <rguenther@suse.de>
7403
7404 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
7405 Re-construct BLOCK_VARS.
7406 (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
7407 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
7408 * tree.c (free_lang_data_in_block): Remove.
7409 (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
7410 Do not touch the BLOCK tree.
7411 * expr.c (expand_expr_real_1): Allow externals.
7412
7413 2010-10-08 Richard Guenther <rguenther@suse.de>
7414
7415 * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
7416 Do not output BLOCK_SUBBLOCKS.
7417 * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
7418 Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
7419 Re-construct BLOCK_SUBBLOCKS of parent block.
7420 (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
7421 for BINFO_BASE_ACCESSES.
7422
7423 2010-10-08 Joseph Myers <joseph@codesourcery.com>
7424
7425 * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
7426 (TREE_H): Include $(FLAGS_H) instead of options.h.
7427 (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
7428 * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
7429 * common.opt (flag_complex_method, flag_evaluation_order,
7430 flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
7431 Variable declarations.
7432 * configure.ac (tm_include_list): Include flags.h instead of options.h.
7433 * configure: Regenerate.
7434 * flags.h: Condition out contents for target libraries. Include
7435 options.h at end of file.
7436 (flag_complex_method, flag_ira_algorithm, flag_ira_region,
7437 flag_evaluation_order, flag_warn_unused_result): Remove.
7438 * gcc.c (main): Intialize global_options with global_options_init.
7439 * langhooks-def.h (lhd_init_options_struct): Declare.
7440 (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
7441 (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
7442 * langhooks.c (lhd_init_options_struct): New.
7443 * langhooks.h (struct lang_hooks): Add init_options_struct.
7444 Update comment on init_options.
7445 * optc-gen.awk: Generate initializer for global_options_init, not
7446 global_options.
7447 * opth-gen.awk: Condition out structure declarations for target
7448 libraries. Declare global_options_init.
7449 * opts-common.c: Include flags.h instead of options.h.
7450 * opts.c (flag_warn_unused_result): Remove.
7451 (read_cmdline_options): Take gcc_options parameters. Pass them to
7452 read_cmdline_option.
7453 (initial_lang_mask, initial_min_crossjump_insns,
7454 initial_max_fields_for_field_sensitive,
7455 initial_loop_invariant_max_bbs_in_loop): Define at file scope.
7456 (init_options_once): New. Split out of decode_options.
7457 (init_options_struct): New. Split out of decode_options.
7458 (decode_cmdline_options_to_array_default_mask): New.
7459 (default_options_optimization): New. Split out of decode_options.
7460 (decode_options): Move most code to other functions. Update call
7461 to read_cmdline_options.
7462 (finish_options): New. Split out of decode_options.
7463 * opts.h (decode_options): Add gcc_options parameters.
7464 (init_options_once, init_options_struct,
7465 decode_cmdline_options_to_array_default_mask): New.
7466 * toplev.c (flag_complex_method, flag_ira_algorithm,
7467 flag_ira_region, flag_evaluation_order): Remove.
7468 (general_init): Use global_options_init for initial flag values
7469 for global_dc.
7470 (toplev_main): Call init_options_once, init_options_struct,
7471 lang_hooks.init_options_struct,
7472 decode_cmdline_options_to_array_default_mask and
7473 lang_hooks.init_option before decode_options. Update arguments to
7474 decode_options.
7475 * tree.h: Include flags.h instead of options.h.
7476
7477 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
7478
7479 * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
7480
7481 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
7482
7483 * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
7484 Delete.
7485 * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
7486 (FUNCTION_INCOMING_ARG): Delete.
7487 * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
7488 (function_arg_slotno): Likewise. Take bool arguments.
7489 (sparc_arg_partial_bytes): Update call to it.
7490 (function_arg): Rename to...
7491 (sparc_function_arg_1): ...this. Take bool arguments.
7492 (sparc_function_arg, sparc_function_incoming_arg): New functions.
7493 (function_arg_advance): Rename to...
7494 (sparc_function_arg_advance): ...this. Take bool argument.
7495 (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
7496 (TARGET_FUNCTION_INCOMING_ARG): Define.
7497
7498 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
7499
7500 * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
7501 Delete.
7502 * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7503 * config/bfin/bfin.c (function_arg_advance): Rename to...
7504 (bfin_function_arg_advance): ...this. Make static. Take const_tree
7505 and bool arguments.
7506 (function_arg): Rename to...
7507 (bfin_function_arg): ...this. Make static. Take const_tree and bool
7508 arguments.
7509 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7510
7511 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
7512
7513 * config/score/score-protos.h (score_function_arg): Delete.
7514 (score_function_arg_advance): Delete.
7515 * config/score/score3.h (score3_function_arg_advance): Take a
7516 const_tree and a bool.
7517 (score3_function_arg): Likewise.
7518 * config/score/score7.h (score7_function_arg_advance): Likewise.
7519 (score7_function_arg): Likewise.
7520 * config/score/score3.c (score3_classify_arg): Likewise.
7521 (score3_function_arg_advance, score3_function_arg): Likewise.
7522 * config/score/score7.c (score7_classify_arg): Likewise.
7523 (score7_function_arg_advance, score7_function_arg): Likewise.
7524 * config/score/score.c (score_function_arg_advance): Likewise.
7525 (score_function_arg): Likewise. De-const-ify `cum' argument.
7526 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7527
7528 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
7529
7530 * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
7531 (s390_function_arg): Delete.
7532 * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7533 * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
7534 (s390_function_arg_integer): Likewise.
7535 (s390_function_arg_advance): Make static. Take a const_tree and
7536 a bool.
7537 (s390_function_arg): Likewise.
7538 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7539
7540 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
7541
7542 * config/spu/spu-protos.h (spu_function_arg): Delete.
7543 * config/spu/spu.h (FUNCTION_ARG): Delete.
7544 (FUNCTION_ARG_ADVANCE): Move code to ...
7545 * config/spu/spu.c (spu_function_arg_advance): New function.
7546 (spu_function_arg): Make static. Take a const_tree and a bool.
7547 (spu_setup_incoming_varargs): Call spu_function_arg_advance.
7548 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7549
7550 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
7551
7552 * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
7553
7554 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
7555
7556 * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
7557 (init_vn_nary_op_from_op): New function.
7558 (init_vn_nary_op_from_stmt): New function.
7559 (vn_nary_op_lookup_1): New function.
7560 (sizeof_vn_nary_op): New function.
7561 (alloc_vn_nary_op_noinit): New function.
7562 (alloc_vn_nary_op): New function.
7563 (vn_nary_op_insert_into): New function.
7564 (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
7565 (vn_nary_op_lookup): Likewise.
7566 (vn_nary_op_lookup_stmt): Likewise.
7567 (vn_nary_op_insert_pieces): Likewise.
7568 (vn_nary_op_insert): Likewise.
7569 (vn_nary_op_insert_stmt): Likewise.
7570 (copy_nary): Likewise.
7571 (set_value_id_for_result): New function.
7572 (set_hashtable_value_ids): Call it.
7573
7574 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
7575
7576 * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
7577 * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
7578
7579 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
7580
7581 * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
7582 * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
7583
7584 2010-10-08 Alexandre Oliva <aoliva@redhat.com>
7585
7586 PR debug/45656
7587 * cse.c (cse_extended_basic_block): Preserve cc0 info across
7588 debug isnsn. Skip them when searching for cc0 setter.
7589 (set_live_p): Skip debug insns when searching for cc0 user.
7590
7591 2010-10-08 Alexandre Oliva <aoliva@redhat.com>
7592
7593 PR debug/45673
7594 PR debug/45604
7595 PR debug/45419
7596 PR debug/45408
7597 * tree-pretty-print.c (dump_generic_node): Explicitly dump the
7598 type of MEM_REFs to INTEGER_CSTs.
7599
7600 2010-10-07 Nathan Froyd <froydnj@codesourcery.com>
7601
7602 * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
7603 m68hc11_print_operand_address.
7604
7605 2010-10-07 Nathan Froyd <froydnj@codesourcery.com>
7606
7607 * builtins.c (rewrite_call_expr): Move code to...
7608 (rewrite_call_expr_valist): ...here. Call build_call_expr_loc_array.
7609 (rewrite_call_expr_array): New function.
7610 (fold_builtin_sprintf_chk_1): New function.
7611 (fold_builtin_sprintf_chk): Call it.
7612 (gimple_fold_builtin_sprintf_chk): Likewise.
7613 (fold_builtin_snprintf_chk_1): New function.
7614 (fold_builtin_snprintf_chk): Call it.
7615 (gimple_fold_builtin_snprintf_chk): Likewise.
7616 (gimple_rewrite_call_expr): Delete.
7617
7618 2010-10-07 Dave Korn <dave.korn.cygwin@gmail.com>
7619
7620 * config.host: Update copyright year.
7621
7622 2010-10-07 Dave Korn <dave.korn.cygwin@gmail.com>
7623
7624 * config.host (host_lto_plugin_soname): New shell variable.
7625 * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
7626 * config.in: Regenerate.
7627 * configure: Regenerate.
7628 * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
7629 LTO plugin shared library.
7630
7631 2010-10-07 Richard Henderson <rth@redhat.com>
7632
7633 * target.h (enum unwind_info_type): Move ...
7634 * coretypes.h: ... here.
7635
7636 2010-10-07 Nicola Pero <nicola.pero@meta-innovation.com>
7637
7638 * doc/objc.texi (Fast enumeration protocol): Mention that
7639 'unsigned int' can also be used instead of 'unsigned long' in
7640 countByEnumeratingWithState:objects:count:.
7641
7642 2010-10-07 Martin Jambor <mjambor@suse.cz>
7643
7644 * tree-sra.c (struct access): New field grp_assignment_write.
7645 (dump_access): Dump grp_assignment_write.
7646 (build_accesses_from_assign): Set grp_assignment_write.
7647 (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
7648 (mark_read_status): Renamed to mark_rw_status, individual values
7649 renamed too.
7650 (analyze_access_subtree): Changed type of mark_write to
7651 mark_read_status. Fixed propagating of mark_read and
7652 mark_write. Changed benefit estimate. Updated comment.
7653
7654 2010-10-07 Tejas Belagod <tejas.belagod@arm.com>
7655
7656 PR Tree-Vect/45847
7657 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
7658 check for vectype_out returned by get_vectype_for_scalar_type().
7659
7660 2010-10-07 Tejas Belagod <tejas.belagod@arm.com>
7661
7662 PR target/45805
7663 * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
7664 constraint, add register specifier in instruction template.
7665 (neon_vec_pack_trunc_<mode>): Likewise.
7666 (neon_vec_<US>mult_<mode>): Add register specifier to
7667 instruction template.
7668
7669 2010-10-07 Dave Korn <dave.korn.cygwin@gmail.com>
7670
7671 * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
7672 cygwin2.o.
7673 (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
7674 (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
7675 * config/i386/t-cygwin (cygwin1.o): Delete build rule.
7676 (cygwin2.o): Likewise.
7677 * config/i386/cygwin1.c: Delete file.
7678 * config/i386/cygwin2.c: Likewise.
7679 * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
7680 make all {%!mno-cygwin} ones unconditional.
7681 (STARTFILE_SPEC): Likewise.
7682 (REAL_LIBGCC_SPEC): Likewise.
7683 (LIB_SPEC): Likewise.
7684 (CXX_WRAP_SPEC): Likewise.
7685 (LINK_SPEC): Likewise.
7686 (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
7687 (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
7688 (cygwin_gplusplus_include_dir): Delete now-unused array.
7689 (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
7690 (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
7691 (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
7692 (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
7693 (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
7694 (cygwin_local_include_dir): Delete now-unused array.
7695 (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
7696 (cygwin_cross_include_dir): Delete now-unused array.
7697 (CROSS_INCLUDE_DIR): Don't redefine to point to it.
7698 (cygwin_tool_include_dir): Delete now-unused array.
7699 (TOOL_INCLUDE_DIR): Don't redefine to point to it.
7700 (cygwin_standard_include_dir): Delete now-unused array.
7701 (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
7702 (GEN_CVT_ARRAY): Delete now-unused macro definition.
7703 (cvt_to_mingw): Delete now-unused array.
7704 (mingw_scan): Remove prototype of deleted function.
7705 (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
7706 * config/i386/cygming.opt (mcygwin): Delete target-specific option.
7707 * doc/invoke.texi (-mcygwin): Don't document removed option.
7708 (-mno-cygwin): Likewise.
7709
7710 2010-10-07 Richard Guenther <rguenther@suse.de>
7711
7712 * machmode.h (mode_for_vector): Declare.
7713 * stor-layout.c (mode_for_vector): New function, split out from ...
7714 (layout_type): ... here.
7715 * tree-vectorizer.h (current_vector_size): Declare.
7716 * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
7717 mask vector type is available.
7718 (get_vectype_for_scalar_type): Rename to ...
7719 (get_vectype_for_scalar_type_and_size): ... this. Get a vector
7720 size argument.
7721 (get_vectype_for_scalar_type): New wrapper around
7722 get_vectype_for_scalar_type_and_size using current_vector_size.
7723 (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
7724 * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
7725 of vect_analyze_loop here.
7726 (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
7727 * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
7728 to autodetect.
7729 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
7730 V8SF to V8SI conversion builtin.
7731
7732 2010-10-07 Richard Guenther <rguenther@suse.de>
7733
7734 * target.def (autovectorize_vector_sizes): New target hook.
7735 * targhooks.c (default_autovectorize_vector_sizes): New function.
7736 * targhooks.h (default_autovectorize_vector_sizes): Declare.
7737 * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
7738 Document.
7739 * doc/tm.texi: Update.
7740 * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
7741 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
7742
7743 2010-10-07 Richard Guenther <rguenther@suse.de>
7744
7745 * target.def (units_per_simd_word): Rename to ...
7746 (preferred_simd_mode): ... this. Return mode instead of size.
7747 * targhooks.c (default_units_per_simd_word): Rename to ...
7748 (default_preferred_simd_mode): ... this. Return word_mode.
7749 * targhooks.h (default_preferred_simd_mode): Declare.
7750 * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
7751 (arm_preferred_simd_mode): ... this. Re-implement.
7752 * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
7753 (ix86_preferred_simd_mode): ... this. Re-implement.
7754 * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
7755 (sparc_preferred_simd_mode): ... this. Re-implement.
7756 * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
7757 (mips_preferred_simd_mode): ... this. Re-implement.
7758 * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
7759 (rs6000_preferred_simd_mode): ... this. Re-implement.
7760 * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
7761 * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
7762 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
7763 * doc/tm.texi: Update.
7764
7765 2010-10-07 Richard Guenther <rguenther@suse.de>
7766
7767 PR middle-end/45869
7768 * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
7769 of pointers.
7770
7771 2010-10-07 Alan Modra <amodra@gmail.com>
7772
7773 * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
7774 rather than sign extension by hand.
7775
7776 2010-10-07 Jan Hubicka <jh@suse.cz>
7777
7778 PR middle-end/45926
7779 * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
7780
7781 2010-10-07 Richard Guenther <rguenther@suse.de>
7782
7783 PR bootstrap/45914
7784 * configure.ac: Fix typo.
7785 * configure: Regenerated.
7786
7787 2010-10-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
7788
7789 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
7790 define_builtin_std where it's unnecessary.
7791 * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
7792
7793 2010-10-06 Anatoly Sokolov <aesok@post.ru>
7794
7795 * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
7796 * doc/tm.texi.in: Regenerate.
7797 * system.h (CLASS_LIKELY_SPILLED_P): Poison.
7798 * targhooks.c (default_class_likely_spilled_p): Don't use the
7799 CLASS_LIKELY_SPILLED_P macro.
7800
7801 * config/arm/arm.md: Update comment.
7802
7803 2010-10-06 Jan Hubicka <jh@suse.cz>
7804
7805 * ipa.c (cgraph_remove_unreachable_nodes): External references can
7806 always be removed.
7807 (cgraph_externally_visible_p): We can not bring local comdats that
7808 are known to linker; fix handling of internal visibility.
7809 (function_and_variable_visibility): Likewise.
7810
7811 2010-10-06 Eric Botcazou <ebotcazou@adacore.com>
7812
7813 PR rtl-optimization/45394
7814 * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
7815 (struct rtx_subst_pair): Remove AFTER field.
7816 (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
7817 (propagate_for_debug): Remove MOVE parameter and adjust.
7818 (try_combine): In the special case where I2 is a PARALLEL, combine only
7819 destinations of SETs and set I2SRC to the I2 source.
7820 Adjust calls to propagate_for_debug throughout.
7821 * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
7822 insns.
7823
7824 2010-10-06 Olivier Hainque <hainque@adacore.com>
7825
7826 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
7827 switch on insn codes as sequence of ifs.
7828
7829 2010-10-06 Hariharan Sandanagobalane <hariharan@picochip.com>
7830
7831 * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
7832 be UI_NONE for picochip.
7833 (picochip_option_override): Do not disable exception flags.
7834 * config/picochip/picochip-protos.h (picochip_except_unwind_info):
7835 Declare.
7836
7837 2010-10-06 Richard Guenther <rguenther@suse.de>
7838
7839 * Makefile.in (regmove.o): Depend on $(TARGET_H).
7840
7841 2010-10-06 Nicola Pero <nicola.pero@meta-innovation.com>
7842
7843 Implemented fast enumeration for Objective-C.
7844 * c-parser.c (objc_could_be_foreach_context): New.
7845 (c_lex_one_token): Recognize RID_IN keyword in a potential
7846 Objective-C foreach context.
7847 (c_parser_declaration_or_fndef): Added parameter. Accept
7848 Objective-C RID_IN keyword as terminating a declaration; in that
7849 case, return the declaration in the new parameter.
7850 (c_parser_extenral_declaration): Updated calls to
7851 c_parser_declaration_or_fndef.
7852 (c_parser_declaration_or_fndef): Same change.
7853 (c_parser_compound_statement_nostart): Same change.
7854 (c_parser_label): Same change.
7855 (c_parser_objc_methodprotolist): Same change.
7856 (c_parser_omp_for_loop): Same change.
7857 (c_parser_for_statement): Detect and parse Objective-C foreach
7858 statements.
7859 (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
7860 * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
7861 fast enumeration parsing code to turn off the c99 error but still
7862 perform checks on the loop declarations.
7863 * c-tree.h (check_for_loop_decls): Updated declaration.
7864 * doc/objc.texi: Document fast enumeration.
7865
7866 2010-10-06 Nick Clifton <nickc@redhat.com>
7867
7868 * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
7869 (MDR_REGNUM): Define.
7870 (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
7871 (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
7872 (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
7873 (REGISTER_NAMES): Add MDR.
7874 (DWARF2_DEBUGGING_INFO): Define to 1.
7875 * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
7876 (F): New function. Sets RTX_FRAME_RELATED_P.
7877 (mn10300_gen_multiple_store): Use F.
7878 (expand_prologue): Use F. Use gen_movsf() to push floating
7879 point registers.
7880 (expand_epilogue): Use gen_movsf() to pop floating point registers.
7881 (mn10300_option_override): Disable combine stack adjust pass.
7882
7883 2010-10-06 Thomas Schwinge <thomas@schwinge.name>
7884
7885 PR target/45901
7886 * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
7887 LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
7888
7889 2010-10-06 Jakub Jelinek <jakub@redhat.com>
7890
7891 * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
7892 BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
7893 BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
7894 BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
7895 BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
7896 BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
7897 BUILT_IN_TOUPPER): Mark as leaf.
7898
7899 PR middle-end/45838
7900 * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
7901 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
7902 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
7903 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
7904 BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
7905 BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
7906 Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
7907
7908 2010-10-05 Anatoly Sokolov <aesok@post.ru>
7909
7910 * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
7911 * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
7912 (m68hc11_class_likely_spilled_p): New function.
7913
7914 2010-10-05 Nicola Pero <nicola.pero@meta-innovation.com>
7915
7916 * c-parser.c (c_parser_objc_method_definition): Updated comment.
7917
7918 2010-10-05 Jan Hubicka <jh@suse.cz>
7919
7920 * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
7921 Document.
7922 * opts.c (decode_options): Handle lto partitions.
7923 * common.opt (flto-partition=1to1, flto-partition=balanced): New.
7924 * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
7925
7926 2010-10-05 Jan Hubicka <jh@suse.cz>
7927
7928 * cgraphunit.c (assemble_function): Output thunks and aliases before
7929 the function itself.
7930
7931 2010-09-29 Hariharan Sandanagobalane <hariharan@picochip.com>
7932
7933 * config/picochip/picochip.c (picochip_option_override): Disable
7934 exception flags for picochip.
7935
7936 2010-10-05 Joseph Myers <joseph@codesourcery.com>
7937
7938 * opts-common.c (handle_option, handle_generated_option,
7939 read_cmdline_option, set_option): Add diagnostic_context
7940 parameter. Update calls among these functions.
7941 (set_option): Don't use global_dc.
7942 * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
7943 (decode_options): Pass global_dc to enable_warning_as_error.
7944 (common_handle_option): Pass global_dc to enable_warning_as_error.
7945 (enable_warning_as_error): Add diagnostic_context parameter.
7946 Document parameters. Don't use global_dc. Pass
7947 diagnostic_context parameter to handle_generated_option.
7948 * opts.h (set_option, handle_option, handle_generated_option,
7949 read_cmdline_option, enable_warning_as_error): Add
7950 diagnostic_context parameter.
7951 * Makefile.in (lto-opts.o): Update dependencies.
7952 * coretypes.h (struct diagnostic_context, diagnostic_context):
7953 Declare here.
7954 * diagnostic.h (diagnostic_context): Don't declare typedef here.
7955 * gcc.c (process_command): Pass global_dc to read_cmdline_option.
7956 * langhooks-def.h (struct diagnostic_context): Don't declare here.
7957 (lhd_print_error_function, lhd_initialize_diagnostics): Declare
7958 using diagnostic_context typedef.
7959 * langhooks.c (lhd_initialize_diagnostics): Declare using
7960 diagnostic_context typedef.
7961 * langhooks.h (struct diagnostic_context): Don't declare here.
7962 (initialize_diagnostics, print_error_function): Declare using
7963 diagnostic_context typedef.
7964 * lto-opts.c: Include diagnostic.h.
7965 (lto_reissue_options): Pass global_dc to set_option. Pass
7966 DK_UNSPECIFIED not 0.
7967 * plugin.c (plugins_internal_error_function): Declare using
7968 diagnostic_context typedef.
7969 * plugin.h (struct diagnostic_context): Don't declare here.
7970 (plugins_internal_error_function): Declare using
7971 diagnostic_context typedef.
7972
7973 2010-10-05 Olivier Hainque <hainque@adacore.com>
7974 Nicolas Roche <roche@adacore.com>
7975
7976 * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
7977 * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
7978
7979 2010-10-05 Ira Rosen <irar@il.ibm.com>
7980
7981 PR tree-optimization/45752
7982 * tree-vect-slp.c (vect_get_mask_element): Remove static
7983 variables, make them function arguments.
7984 (vect_transform_slp_perm_load): Pass new arguments to
7985 vect_get_mask_element.
7986
7987 2010-10-05 Richard Guenther <rguenther@suse.de>
7988
7989 * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
7990 (gimple_mod_pow2): Likewise.
7991 (gimple_mod_subtract): Likewise.
7992 (gimple_ic): Likewise.
7993 (gimple_stringop_fixed_value): Likewise.
7994 * tree-profile.c (tree_init_edge_profiler): Mark profile
7995 functions nothrow and leaf.
7996 (add_abnormal_goto_call_edges): Remove.
7997 (tree_gen_edge_profiler): Work on SSA form.
7998 (tree_gen_ic_profiler): Likewise. Simplify.
7999 (do_tree_profiling): Update SSA form.
8000 (pass_tree_profile): Remove.
8001 (do_tree_profiling): Likewise.
8002 (gate_tree_profile_ipa): New function.
8003 (pass_ipa_tree_profile): New.
8004 (tree_profiling): Re-write as IPA pass. Properly drop const/pure
8005 state of instrumented functions.
8006 * passes.c (init_optimization_passes): Remove early non-SSA
8007 inlining. Move profiling after early optimizations.
8008 * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
8009 (pass_ipa_early_inline): Likewise.
8010 * tree-pass.h (pass_ipa_early_inline): Remove.
8011 (pass_tree_profile): Likewise.
8012 (pass_ipa_tree_profile): Declare.
8013
8014 2010-10-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8015 Christian Borntraeger <Christian.Borntraeger@de.ibm.com>
8016
8017 * config/s390/s390.c (z196_cost): New.
8018 (s390_handle_arch_option): Add -march=z196.
8019 (s390_option_override): Use the new cost function and use the z10
8020 defaults also for z196.
8021 (legitimate_reload_constant_p): Adjust comment.
8022 (legitimate_reload_fp_constant_p): New function.
8023 (s390_preferred_reload_class): Distingiush between FP and Int constants.
8024 (preferred_la_operand_p): Avoid la with index on z196.
8025 (s390_adjust_priority): Trigger also for z196.
8026 (s390_issue_rate): Issue rate for z196 is 3.
8027 (s390_z10_fix_long_loop_prediction): Rename to ...
8028 (s390_fix_long_loop_prediction): ... this.
8029 (s390_reorg): Apply the z10 adjustments also for z196.
8030 (s390_loop_unroll_adjust): Do this also for z196.
8031 * config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
8032 (enum processor_flags): Add PF_Z196.
8033 (TARGET_AVOID_CMP_AND_BRANCH): New macro.
8034 (TARGET_CPU_Z196, TARGET_Z196): New macros.
8035 * config.gcc: Enable z196 for --with-arch.
8036 * config/s390/2817.md: New file.
8037 * config/s390/2084.md: New type for multiply and add.
8038 * config/s390/2097.md: Likewise.
8039 * config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
8040 (UNSPECV_ATOMIC_OP): New constants.
8041 (fmadddf, fmaddsf): New values for type attribute.
8042 (z196prop): New insn attribute.
8043 (cpu, cpu_facility): Add z196.
8044 (ATOMIC_Z196): New code iterator.
8045 (noxa): New code attribute.
8046 (gk): New mode attribute.
8047 (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
8048 Support load zero for fp constants.
8049 (fixuns_truncdddi2, fixuns_trunctddi2)
8050 (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
8051 for z196.
8052 (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
8053 (popcounthi2, popcountqi2): New expander.
8054 (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
8055 (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
8056 (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
8057 insn definition.
8058 (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
8059 (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
8060 (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
8061 (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
8062 (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
8063 (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
8064 (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
8065 (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
8066 (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
8067 (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
8068 (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
8069 (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
8070 (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
8071 Support new z196 instructions.
8072
8073 2010-10-05 Richard Guenther <rguenther@suse.de>
8074
8075 PR middle-end/45877
8076 * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
8077 case where gimplification optimizes away the stmt.
8078
8079 2010-10-04 Jakub Jelinek <jakub@redhat.com>
8080
8081 PR debug/45849
8082 * var-tracking.c (strip_pointer_flags): New function.
8083 (emit_note_insn_var_location): If rtx_equal_p check failed,
8084 retry on locations simplified with simplify_replace_fn_rtx
8085 and strip_pointer_flags as its callback.
8086
8087 2010-10-04 Jan Hubicka <jh@suse.cz>
8088
8089 * gimple-fold.c (static_object_in_other_unit_p): Rename to...
8090 (can_refer_decl_in_current_unit_p): ... this one; reverse return
8091 value; handle comdats too.
8092 (canonicalize_constructor_val): Use it; handle function_decls
8093 correctly.
8094 (gimple_fold_obj_type_ref_known_binfo): Likewise.
8095 * gimple.c (get_base_address): Accept all kinds of decls.
8096
8097 2010-10-04 Joseph Myers <joseph@codesourcery.com>
8098
8099 * flags.h (g_switch_value, g_switch_set): Remove.
8100 * opts.c (g_switch_value, g_switch_set): Remove.
8101 * config/g.opt (G): Add Var(g_switch_value).
8102 * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
8103 (alpha_option_override): Check global_options_set.x_g_switch_value
8104 instead of g_switch_set.
8105 (alpha_in_small_data_p): Remove cast in comparison with
8106 g_switch_value.
8107 * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
8108 g_switch_value to unsigned HOST_WIDE_INT.
8109 * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
8110 with g_switch_value.
8111 (frv_handle_option): Don't handle -G here.
8112 (frv_option_override): Check global_options_set.x_g_switch_value
8113 instead of g_switch_set. Don't modify g_switch_set.
8114 (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
8115 * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
8116 g_switch_value to unsigned HOST_WIDE_INT.
8117 * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
8118 (ia64_option_override): Check global_options_set.x_g_switch_value
8119 instead of g_switch_set.
8120 * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
8121 Remove.
8122 (lm32_in_small_data_p): Remove cast in comparison with
8123 g_switch_value.
8124 * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
8125 ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
8126 HOST_WIDE_INT.
8127 * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
8128 (m32r_init): Check global_options_set.x_g_switch_value instead of
8129 g_switch_set.
8130 (m32r_in_small_data_p): Remove cast in comparison with
8131 g_switch_value.
8132 (m32r_file_start): Format g_switch_value with %d.
8133 * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
8134 ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
8135 * config/microblaze/microblaze.c (microblaze_handle_option): Don't
8136 handle -G here.
8137 (microblaze_option_override): Check
8138 global_options_set.x_g_switch_value instead of g_switch_set.
8139 * config/mips/mips.c (mips_handle_option): Don't handle -G here.
8140 (mips_option_override): Check global_options_set.x_g_switch_value
8141 instead of g_switch_set.
8142 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
8143 (rs6000_file_start): Format g_switch_value with %d.
8144 (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
8145 comparisons with g_switch_value.
8146 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
8147 global_options_set.x_g_switch_value instead of g_switch_set.
8148 * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
8149 global_options_set.x_g_switch_value instead of g_switch_set.
8150 * config/score/score.c (score_handle_option): Don't handle -G here.
8151 * config/score/score3.c (score3_option_override): Check
8152 global_options_set.x_g_switch_value instead of g_switch_set.
8153 * config/score/score7.c (score7_option_override): Check
8154 global_options_set.x_g_switch_value instead of g_switch_set.
8155
8156 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
8157
8158 * common.opt (fira-coalesce): Remove.
8159
8160 * doc/invoke.texi (flag_ira_coalesce): Remove.
8161
8162 * ira-color.c (allocno_coalesced_p): Move before
8163 copy_freq_compare_func.
8164 processed_coalesced_allocno_bitmap): Ditto.
8165 (update_conflict_hard_regno_costs): Don't use
8166 ALLOCNO_FIRST_COALESCED_ALLOCNO.
8167 (allocno_cost_compare_func, print_coalesced_allocno): Remove.
8168 (assign_hard_reg): Assume no coalesced allocnos.
8169 (get_coalesced_allocnos_attributes): Remove.
8170 (bucket_allocno_compare_func): Assume no coalesced allocnos.
8171 (push_allocno_to_stack): Ditto.
8172 (remove_allocno_from_bucket_and_push): Use
8173 ira_print_expanded_allocno instead of print_coalesced_allocno.
8174 (push_allocnos_to_stack): Assume uncoalesced allocnos.
8175 (all_conflicting_hard_regs_coalesced): Ditto. Rename to
8176 all_conflicting_hard_regs.
8177 (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
8178 (setup_allocno_left_conflicts_size): Ditto.
8179 (put_allocno_into_bucket): Ditto.
8180 (copy_freq_compare_func): Remove.
8181 (copy_freq_compare_func, merge_allocnos): Move before
8182 coalesced_pseudo_reg_freq_compare.
8183 coalesced_allocno_conflict_p): Ditto.
8184 (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto. Remove
8185 parameter. Assume it true.
8186 (color_allocnos): Assume uncoalesced allocnos. Use
8187 ira_print_expanded_allocno instead of print_coalesced_allocno.
8188 (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
8189 parameter.
8190
8191 * ira.c: Remove comment about coalescing.
8192
8193 2010-10-04 Joseph Myers <joseph@codesourcery.com>
8194
8195 * config/mips/mips.h (target_flags_explicit): Declare for
8196 GENERATOR_FILE.
8197
8198 2010-10-04 Andi Kleen <ak@linux.intel.com>
8199
8200 * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
8201 gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
8202
8203 2010-10-04 Matthias Klose <doko@ubuntu.com>
8204
8205 * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
8206 multilib osdirname if it exists.
8207 * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
8208
8209 2010-10-04 Jakub Jelinek <jakub@redhat.com>
8210
8211 PR middle-end/45876
8212 * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
8213 arg0's type or its unsigned counterpart as utype. Convert
8214 arg1 to utype unconditionally.
8215
8216 2010-10-04 Julian Brown <julian@codesourcery.com>
8217
8218 * expr.c (expand_assignment): Add assertion to prevent emitting
8219 null rtx for movmisalign pattern.
8220 (expand_expr_real_1): Likewise.
8221 * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
8222 (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
8223 (arm_vector_alignment_reachable): New.
8224 (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
8225 (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
8226 (arm_print_operand): Include alignment qualifier in %A.
8227 * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
8228 (movmisalign<mode>): New expander.
8229 (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
8230 insn patterns.
8231
8232 2010-10-04 Joseph Myers <joseph@codesourcery.com>
8233
8234 * optc-gen.awk: Define global_options_set. Don't define
8235 target_flags_explicit.
8236 * opth-gen.awk: Declare global_options_set. Define
8237 target_flags_explicit as macro.
8238 * opts-common.c (handle_option): Take opts_set and generated_p
8239 parameters.
8240 (handle_generated_option, read_cmdline_option, set_option): Take
8241 opts_set parameter.
8242 (set_option): Use opts_set instead of hardcoding target_flags and
8243 target_flags_explicit.
8244 * opts.c (sel_sched_switch_set, profile_arc_flag_set,
8245 flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
8246 flag_value_profile_transformations_set, flag_peel_loops_set,
8247 flag_branch_probabilities_set, flag_inline_functions_set,
8248 flag_ipa_cp_set, flag_ipa_cp_clone_set,
8249 flag_predictive_commoning_set, flag_unswitch_loops_set,
8250 flag_gcse_after_reload_set): Remove.
8251 (common_handle_option, lang_handle_option, target_handle_option):
8252 Take opts_set parameter. Assert that it is &global_options_set.
8253 (common_handle_option): Don't set _set variables. Check opts_set
8254 instead of such variables.
8255 (enable_warning_as_error): Pass &global_options_set to
8256 handle_generated_option.
8257 * opts.h (cl_option_handler_func.handler, set_option,
8258 handle_option, handle_generated_option, read_cmdline_option): Add
8259 opts_set parameters.
8260 (handle_option): Add generated_p parameter.
8261 * config/i386/i386.c (ix86_function_specific_save,
8262 ix86_function_specific_restore): Updat for renaming of
8263 target_flags_explicit field.
8264 * config/i386/i386.opt (target_flags_explicit): Rename to
8265 ix86_target_flags_explicit.
8266 * config/ia64/ia64.c (ia64_override_options_after_change): Check
8267 global_options_set.x_flag_selective_scheduling and
8268 global_options_set.x_flag_selective_scheduling2, not
8269 sel_sched_switch_set.
8270 * flags.h (sel_sched_switch_set,
8271 flag_speculative_prefetching_set): Remove.
8272 * gcc.c (driver_handle_option): Take opts_set parameter. Assert
8273 that it is &global_options_set.
8274 (process_command): Pass &global_options_set to read_cmdline_option.
8275 * lto-opts.c (lto_reissue_options): Pass &global_options_set to
8276 set_option.
8277 * toplev.c (target_flags_explicit): Remove.
8278
8279 2010-10-04 Jan Hubicka <jh@suse.cz>
8280
8281 PR middle-end/45871
8282 * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
8283 use get_ref_base_and_offset to handle references.
8284 (fold_const_aggregate_ref): Update.
8285
8286 2010-10-04 Martin Jambor <mjambor@suse.cz>
8287
8288 PR tree-optimization/45572
8289 * ipa-prop.c (ipa_make_edge_direct_to_target): Call
8290 ipa_check_create_node_params.
8291 * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
8292
8293 2010-10-04 Yao Qi <yao@codesourcery.com>
8294
8295 * doc/passes.texi: Clean up.
8296
8297 2010-10-03 Ian Lance Taylor <iant@google.com>
8298
8299 * c-typeck.c (lookup_field): If -fplan9-extensions, permit
8300 referring to a field using a typedef name.
8301 (find_anonymous_field_with_type): New static function.
8302 (convert_to_anonymous_field): New static function.
8303 (convert_for_assignment): If -fplan9-extensions, permit converting
8304 pointer to struct to pointer to anonymous field.
8305 * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
8306 (is_duplicate_field): New static function.
8307 (detect_field_duplicates_hash): If -fplan9-extensions, check for
8308 typedef names duplicating field names.
8309 (detect_field_duplicates): Likewise.
8310 * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
8311 (C Dialect Options): Document -fplan9-extensions.
8312 * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
8313
8314 2010-10-03 H.J. Lu <hongjiu.lu@intel.com>
8315
8316 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
8317 revision 164914.
8318 (vect_create_data_ref_ptr): Likewise.
8319 * tree-vect-stmts.c (vectorizable_store): Likewise.
8320 (perm_mask_for_reverse): Likewise.
8321 (reverse_vec_elements): Likewise.
8322 (vectorizable_load): Likewise.
8323
8324 2010-10-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
8325
8326 * cppbuiltin.c: New file.
8327 * cppbuiltin.h: New file.
8328 * Makefile.in: Take into account cppbuiltin.{h,c}.
8329
8330 2010-10-03 Andi Kleen <ak@linux.intel.com>
8331
8332 * lto-cgraph.c (input_cgraph): Check for missing sections.
8333
8334 2010-10-03 Uros Bizjak <ubizjak@gmail.com>
8335
8336 * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
8337 to nonimmediate_operand. Force operand 2 to register when allowed.
8338 (*<shiftrt_insn><mode>3_mask): Ditto.
8339 (*<rotate_insn><mode>3_mask): Ditto.
8340
8341 2010-10-02 H.J. Lu <hongjiu.lu@intel.com>
8342
8343 PR tree-optimization/45720
8344 PR tree-optimization/45764
8345 * tree-vect-data-refs.c (vect_analyze_data_ref_access):
8346 Don't accept backwards consecutive accesses.
8347 (vect_create_data_ref_ptr): Disallow negative steps.
8348
8349 * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
8350 (perm_mask_for_reverse): Removed.
8351 (reverse_vec_elements): Likewise.
8352 (vectorizable_load): Don't handle negative steps.
8353
8354 2010-10-02 Jan Hubicka <jh@suse.cz>
8355
8356 * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
8357 call destination is known.
8358
8359 2010-10-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8360
8361 PR target/45820
8362 * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
8363 earlier.
8364
8365 2010-10-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8366
8367 * doc/install.texi (Configuration): Document build_configargs,
8368 host_configargs, target_configargs.
8369
8370 2010-10-01 Uros Bizjak <ubizjak@gmail.com>
8371
8372 * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
8373 (*<shiftrt_insn><mode>3_mask): Ditto.
8374 (*<rotate_insn><mode>3_mask): Ditto.
8375
8376 2010-10-01 Steve Ellcey <sje@cup.hp.com>
8377
8378 PR tree-optimization/44716
8379 * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
8380 (HOT_TEXT_SECTION_NAME): Define.
8381
8382 2010-10-01 Nick Clifton <nickc@redhat.com>
8383
8384 * common.opt: Add -fcombine-stack-adjustments.
8385 * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
8386 * combine-stack-adj.c (gate_handle_stack_adjustments): Check
8387 flag_combine_stack_adjustments.
8388 * doc/invoke.texi: Document the new option.
8389
8390 2010-10-01 Richard Guenther <rguenther@suse.de>
8391
8392 PR tree-optimization/45854
8393 * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
8394
8395 2010-10-01 Anthony Green <green@moxielogic.com>
8396
8397 * config.gcc: Fix moxie-*-rtems* configuration.
8398
8399 2010-10-01 Richard Guenther <rguenther@suse.de>
8400
8401 * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
8402 (gen_decl_die): Likewise.
8403
8404 2010-10-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8405
8406 * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
8407 to the function code for SPU MD builtins.
8408 (spu_expand_builtin): Update.
8409 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
8410
8411 2010-10-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8412
8413 * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
8414 sjlj_except_unwind_info.
8415
8416 2010-10-01 Tristan Gingold <gingold@adacore.com>
8417
8418 * configure.ac: Define the nop insn for avr*-*-*
8419 * configure: Regenerate.
8420
8421 2010-10-01 Alan Modra <amodra@gmail.com>
8422
8423 PR target/45807
8424 * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
8425 extend toc_restore_insn.
8426
8427 2010-09-30 Richard Guenther <rguenther@suse.de>
8428
8429 PR tree-optimization/43959
8430 * function.c (gimplify_parameters): Use create_tmp_reg instead of
8431 create_tmp_var.
8432
8433 2010-09-30 Kaz Kojima <kkojima@gcc.gnu.org>
8434
8435 * config/sh/sh.c (sh_expand_prologue): Set
8436 current_function_static_stack_size.
8437
8438 2010-09-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8439
8440 * configure.ac: Check for Solaris 8 ld with .hidden support.
8441 * configure: Regenerate.
8442
8443 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
8444
8445 PR middle-end/45758
8446 * graphite.c (graphite_initialize): Call scev_reset.
8447
8448 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
8449
8450 * sese.h (scev_analyzable_p): Return false for real or floating
8451 point. Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
8452
8453 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
8454
8455 * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
8456 and ps.
8457 * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
8458 domain.
8459 * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
8460 Do not allocate ub_expr, it is passed in initialized.
8461
8462 2010-09-30 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
8463
8464 * graphite-clast-to-gimple.c (init_cloog_input_file): New.
8465 (build_cloog_prog): Dump CLooG input file when
8466 flag_graphite_dump_cloog is set. This is disabled on trunk.
8467 * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
8468
8469 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
8470
8471 * graphite-clast-to-gimple.c (graphite_verify): Remove call to
8472 verify_dominators for CDI_POST_DOMINATORS.
8473 * sese.h: Remove comment about CDI_POST_DOMINATORS.
8474 (recompute_all_dominators): Remove call to free_dominance_info
8475 for CDI_POST_DOMINATORS. Remove call to calculate_dominance_info
8476 for CDI_POST_DOMINATORS.
8477
8478 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
8479
8480 * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
8481 over pbb_dim_iter_domain.
8482
8483 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
8484
8485 * graphite-flattening.c: Fix comments.
8486
8487 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
8488
8489 * Makefile.in (OBJS-common): Add graphite-flattening.o.
8490 (graphite-flattening.o): New rule.
8491 * common.opt (floop-flatten): New flag.
8492 * doc/invoke.texi (-floop-flatten): Documented.
8493 * graphite-flattening.c: New.
8494 * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
8495 * graphite-poly.h (flatten_all_loops): Declared.
8496 (lst_remove_loop_and_inline_stmts_in_loop_father): New.
8497 * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
8498 is set, also set flag_graphite.
8499
8500 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
8501
8502 * graphite-poly.c (cloog_checksum): New.
8503 * graphite-poly.h (cloog_checksum): Declared.
8504
8505 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
8506
8507 * graphite-poly.c (pbb_number_of_iterations): Removed.
8508 (pbb_number_of_iterations_at_time): Correctly compute the number
8509 of iterations in the transformed loop.
8510 * graphite-poly.h (pbb_number_of_iterations): Removed.
8511
8512 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
8513
8514 * graphite-poly.h (lst_update_scattering_seq): Removed.
8515 (lst_update_scattering): Correctly handle outermost loop dewey
8516 renumbering.
8517
8518 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
8519
8520 * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
8521 lst_strip_mine_profitable_p. Call lst_niter_for_loop.
8522 * graphite-poly.h (lst_niter_for_loop): New.
8523
8524 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
8525
8526 * graphite-poly.c (apply_poly_transforms): Do not abort when the
8527 transform read from disk is not legal. Call fatal_error instead.
8528
8529 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
8530
8531 * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
8532 (print_scop_header): Removed. Inlined in the only call place...
8533 (print_scop): ... here.
8534
8535 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
8536
8537 * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
8538
8539 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
8540
8541 * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
8542
8543 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
8544
8545 * graphite-dependences.c (dot_deps): Avoid set but not used warning.
8546 (dot_deps_stmt): Same.
8547 * graphite-poly.c (dot_lst): Same.
8548
8549 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
8550
8551 * graphite-blocking.c (scop_do_strip_mine): Do not call
8552 graphite_legal_transform.
8553 (scop_do_block): Same.
8554
8555 2010-09-30 Vladimir Kargov <kargov@gmail.com>
8556
8557 * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
8558 description.
8559
8560 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
8561
8562 * tree-scalar-evolution.c (instantiate_array_ref): New.
8563 (instantiate_scev_r): Also handle ARRAY_REFs.
8564
8565 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
8566
8567 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
8568 Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
8569 RESULT_DECL, and FIELD_DECL. Return false for an
8570 SSA_NAME_IS_DEFAULT_DEF.
8571 (compute_scalar_evolution_in_loop): Do not further analyze the
8572 scalar evolution when no_evolution_in_loop_p returns true.
8573
8574 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
8575
8576 * tree-chrec.h (evolution_function_is_affine_p): Do not check
8577 whether CHREC_LEFT is invariant. A function is affine when
8578 CHREC_RIGHT is invariant.
8579
8580 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
8581
8582 * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
8583 is_gimple_reg.
8584 (rewrite_degenerate_phi): Same.
8585 (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
8586
8587 2010-09-30 Vladimir Kargov <kargov@gmail.com>
8588
8589 * graphite-scop-detection.c (graphite_can_represent_scev,
8590 graphite_can_represent_expr, stmt_has_simple_data_refs_p,
8591 graphite_can_represent_loop): Remove outermost_loop.
8592
8593 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
8594
8595 PR middle-end/45229
8596 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
8597 handle GIMPLE_CALLs with no LHS.
8598
8599 2010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
8600
8601 * graphite-poly.c (init_graphite_out_file): New.
8602 (init_graphite_in_file): New.
8603 (apply_poly_transforms): Updated to enable reading and writing of
8604 multiple scop files.
8605
8606 2010-09-30 Tobias Grosser <grosser@fim.uni-passau.de>
8607
8608 * graphite-scop-detection.c (graphite_can_represent_scev): Remove
8609 redundant checks.
8610
8611 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
8612
8613 * graphite-clast-to-gimple.c (precision_for_value): Adjust
8614 computation of precision by 1.
8615
8616 2010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
8617
8618 * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
8619 (openscop_read_polyhedron_matrix): New.
8620 * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
8621 (openscop_read_N_int): Same.
8622 * graphite-poly.c (openscop_read_N_int): New.
8623 (openscop_read_one_int): New.
8624 (openscop_read_N_string): New.
8625 (openscop_read_one_string): New.
8626 (openscop_read_powerset_matrix): New.
8627 (graphite_read_transforms): Remove.
8628 (graphite_read_scatt): New.
8629 (graphite_read_scop_file): New.
8630 (apply_poly_transforms): Updated to call graphite_read_scop_file.
8631
8632 2010-09-30 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
8633
8634 * graphite-poly.c: Change include order.
8635
8636 2010-09-30 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
8637
8638 * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
8639 (cloog_matrix_nrows): New.
8640
8641 2010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
8642
8643 * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
8644 from matrix lines.
8645 * graphite-poly.c (openscop_print_scattering_function_1): Same.
8646 (print_scattering_function_1): Same.
8647 (openscop_print_pbb_domain): Same.
8648 (openscop_print_scop_context): Same.
8649 (print_scop_context): Same.
8650
8651 2010-09-30 Riyadh Baghdad <baghdadi.mr@gmail.com>
8652
8653 * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
8654 (openscop_print_pdr_polyhedron): Print pph.
8655
8656 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
8657
8658 * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
8659 priority signed types.
8660
8661 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
8662
8663 * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
8664 the call to lang_hooks.types.type_for_size. Call
8665 build_nonstandard_integer_type.
8666
8667 2010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
8668
8669 * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
8670 (openscop_print_polyhedron_matrix): New.
8671 * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
8672 * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
8673 (openscop_print_pdr_powerset): New.
8674 (openscop_print_powerset_matrix): New.
8675 (openscop_print_scattering_function_1): New.
8676 (print_scattering_function): Add support for scattering names and
8677 OpenScop format.
8678 (graphite_write_transforms): Remove.
8679 (print_pdr_access_layout): Updated to support OpenScop format.
8680 (print_pdr): Same.
8681 (openscop_print_pbb_domain): New.
8682 (print_pbb_body): Added a parameter to allow indicating that pbb_body
8683 is not provided.
8684 (print_pbb): Updated to call the new print_pbb_body.
8685 (openscop_print_scop_context): New.
8686 (print_scop_header): New.
8687 (print_scop): Updated to call print_scop_header.
8688 * graphite-poly.h: Document OpenScop format.
8689
8690 2010-09-30 Anatoly Sokolov <aesok@post.ru>
8691
8692 * config/cris/m32c.c (cris_memory_move_cost): New.
8693 (cris_register_move_cost): Make static. Change arguments type from
8694 enum reg_class to reg_class_t.
8695 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
8696 * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
8697 * config/cris/cris-protos.h (cris_register_move_cost): Remove.
8698
8699 2010-09-30 Jakub Jelinek <jakub@redhat.com>
8700
8701 PR target/45843
8702 * config/i386/i386.c (ix86_gimplify_va_arg): Use
8703 INTVAL (XEXP (slot, 1)) as prev_size.
8704
8705 2010-09-30 Michael Meissner <meissner@linux.vnet.ibm.com>
8706
8707 PR target/45837
8708 * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
8709 * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
8710 defined.
8711 * config/rs6000/option-defaults.h (toplevel): Change #if
8712 TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
8713 global option changes.
8714
8715 2010-09-30 Jakub Jelinek <jakub@redhat.com>
8716
8717 * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
8718
8719 PR tree-optimization/31261
8720 * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
8721 for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
8722
8723 2010-09-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8724
8725 PR bootstrap/45796
8726 * Makefile.in (build/gen%$(build_exeext)): Move rule after all
8727 special-casing for generators and turn into ...
8728 ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
8729 rule, for better error messages in case of toplevel dependency errors.
8730 (genprog): Add hooks, rename to ...
8731 (genprogerr): ... this, and let genprog also contain check,
8732 checksum, condmd.
8733 ((genprog:%=build/gen%$(build_exeext))): Rename to ...
8734 ((genprogerr:%=build/gen%$(build_exeext))): ... this.
8735 (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
8736
8737 2010-09-30 Jonathan Wakely <jwakely.gcc@gmail.com>
8738 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8739
8740 * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
8741 for GMP, MPFR and MPC.
8742
8743 2010-09-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8744
8745 * config/sparc/sparc.opt (mimpure-text): Move ...
8746 * config/sol2.opt: ... here. Correct description.
8747 * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
8748 * doc/invoke.texi (Option Summary, SPARC Options): Move
8749 -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
8750 (Option Summary, Solaris 2 Options): ... here.
8751 (Submodel Options, Solaris 2 Options): New menu entry.
8752 (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
8753 (Solaris 2 Options): ... here.
8754
8755 2010-09-30 Michael Eager <eager@eagercon.com>
8756
8757 * extend.texi (interrupt_handler): Add MicroBlaze to list.
8758 (save_volatiles): Describe option for MicroBlaze.
8759 * invoke.texi: Add MicroBlaze Options.
8760 * contrib.texi: Add acknowledgment.
8761 * md.texi: Add MicroBlaze d and z constraints.
8762 * install.texi: Add microblaze-*-elf.
8763 * configure.ac: Add microblaze-*-* to target list.
8764 * configure: Regenerate.
8765 * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
8766 * config/microblaze/microblaze-protos.h: New.
8767 * config/microblaze/crti.s: New.
8768 * config/microblaze/predicates.md: New.
8769 * config/microblaze/linux.h: New.
8770 * config/microblaze/microblaze.md: New.
8771 * config/microblaze/constraints.md: New.
8772 * config/microblaze/crtn.s: New.
8773 * config/microblaze/microblaze.opt: New.
8774 * config/microblaze/microblaze-c.c: New.
8775 * config/microblaze/t-microblaze: New.
8776 * config/microblaze/microblaze.c: New.
8777 * config/microblaze/microblaze.h: New.
8778
8779 2010-09-30 Iain Sandoe <iains@gcc.gnu.org>
8780
8781 * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
8782 parse @optional/@required and set the flags as appropriate.
8783
8784 2010-09-30 Nathan Froyd <froydnj@codesourcery.com>
8785
8786 * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
8787
8788 2010-09-30 Joseph Myers <joseph@codesourcery.com>
8789
8790 * opt-functions.awk (static_var): Update comment.
8791 (var_ref): Return offsetof expression or -1, not variable address.
8792 * optc-gen.awk: Generate structure field initializers instead of
8793 static variables. Expect -1 for missing variables instead of null
8794 pointer. Add gcc_options parameters to generated functions.
8795 * opth-gen.awk: Generate structure fields for static variables.
8796 Add gcc_options parameters to generated functions.
8797 * common.opt (optimize, optimize_size): Add variables.
8798 * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
8799 &global_options to cl_target_option_restore.
8800 * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
8801 &global_options to cl_optimization_restore, cl_target_option_save
8802 and cl_target_option_restore.
8803 (ix86_set_current_function): Pass &global_options to
8804 cl_target_option_restore.
8805 * config/pdp11/pdp11.h (optimize): Remove.
8806 * config/rs6000/rs6000.h (optimize): Remove.
8807 * config/sh/sh.h (optimize): Remove.
8808 * config/xtensa/xtensa.h (optimize): Remove.
8809 * coretypes.h (struct gcc_options): Declare.
8810 * diagnostic.c (diagnostic_initialize): Initialize
8811 context->option_state.
8812 (diagnostic_report_diagnostic): Pass option_state to
8813 option_enabled hook.
8814 * diagnostic.h (diagnostic_context.option_enabled): Add void *
8815 parameter.
8816 (diagnostic_context.option_state): New field.
8817 * final.c (final_start_function, final, final_scan_insn): Rename
8818 optimize parameter to optimize_p.
8819 * flags.h (optimize, optimize_size): Remove.
8820 * function.c (invoke_set_current_function_hook): Pass
8821 &global_options to cl_optimization_restore.
8822 * gcc.c (driver_handle_option): Take gcc_options parameter.
8823 Assert that it is &global_options.
8824 (process_command): Pass &global_options to read_cmdline_option.
8825 * ipa-pure-const.c (suggest_attribute): Pass &global_options to
8826 option_enabled.
8827 * lto-opts.c (lto_reissue_options): Use option_flag_var. Pass
8828 &global_options to set_option.
8829 * opts-common.c (handle_option, handle_generated_option,
8830 read_cmdline_option, set_option): Take explicit gcc_options
8831 parameters. Use option_flag_var.
8832 (option_flag_var): New.
8833 * opts.c (common_handle_option, lang_handle_option,
8834 target_handle_option): Take gcc_options parameter. Assert that it
8835 is &global_options.
8836 (read_cmdline_options): Pass &global_options to read_cmdline_option.
8837 (print_filtered_help): Use option_flag_var. Pass &global_options
8838 to option_enabled.
8839 (common_handle_option): Use option_flag_var.
8840 (option_enabled): Take opts parameter. Use option_flag_var.
8841 (get_option_state): Take gcc_options parameter. Use
8842 option_flag_var. Pass gcc_options parameter to option_enabled.
8843 (enable_warning_as_error): Pass &global_options to
8844 handle_generated_option.
8845 * opts.h (struct cl_option): Change flag_var to flag_var_offset.
8846 (cl_option_handler_func.handler): Take gcc_options parameter.
8847 (option_enabled, get_option_state, set_option, handle_option,
8848 handle_generated_option, read_cmdline_option): Take gcc_options
8849 parameters.
8850 * toplev.c (optimize, optimize_size): Remove.
8851 (print_switch_values): Pass &global_options to option_enabled.
8852 (option_affects_pch_p): Use option_flag_var. Pass &global_options
8853 to get_option_state.
8854 (general_init): Initialize global_dc->option_state.
8855 * tree.c (build_optimization_node): Pass &global_options to
8856 cl_optimization_save.
8857 (build_target_option_node): Pass &global_options to
8858 cl_target_option_save.
8859
8860 2010-09-30 Martin Jambor <mjambor@suse.cz>
8861
8862 * tree-sra.c (type_consists_of_records_p): Do not check for trailing
8863 zero sized bit-fields.
8864
8865 2010-09-30 Nicola Pero <nicola.pero@meta-innovation.com>
8866
8867 * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
8868 Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
8869 (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
8870 (c_parser_objc_class_declaration): Same change.
8871 (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
8872 RID_TRY and RID_AT_CATCH instead of RID_CATCH.
8873 (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
8874 instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
8875 and RID_AT_PUBLIC instead of RID_PUBLIC.
8876 (c_parser_statement_after_labels): Use RID_AT_TRY instead of
8877 RID_TRY and RID_AT_CATCH instead of RID_CATCH.
8878
8879 2010-09-30 Tom G. Christensen <tgc@jupiterrise.com>
8880
8881 * doc/install.texi (Binaries): Update link to HP-UX porting centre.
8882 Add links to current providers of packages for Solaris and IRIX.
8883
8884 2010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
8885
8886 Merge from 'apple/trunk' branch on FSF servers.
8887 * c-parser.c: Applied change originally in c-parse.in.
8888
8889 2005-10-04 Fariborz Jahanian <fjahanian@apple.com>
8890
8891 Radar 4281748
8892 * c-decl.c (start_decl): Check for redeclaration of class name.
8893 * c-parse.in (after_type_declarator): Recognize CLASSNAME.
8894
8895 2010-09-29 Steve Ellcey <sje@cup.hp.com>
8896
8897 * config/ia64/ia64.c (ia64_builtin_decl): New.
8898 (TARGET_BUILTIN_DECL): Define.
8899 (ia64_builtins): New.
8900 (ia64_init_builtins): Save decls in ia64_builtins.
8901
8902 2010-09-29 Bernd Schmidt <bernds@codesourcery.com>
8903
8904 PR target/40457
8905 * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
8906 (move2add_use_add3_insn): Likewise.
8907 (reload_cse_move2add): Likewise.
8908 * rtlanal.c (get_full_rtx_cost): New function.
8909 * rtl.h (struct full_rtx_costs): New.
8910 (init_costs_to_max, init_costs_to_zero, costs_lt_p,
8911 costs_add_n_insns): New inline functions.
8912 (get_full_rtx_cost): Declare.
8913
8914 PR c/45054
8915 * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
8916 invariants. Check for reg_equiv_invariant.
8917 (reload): Assert that spilled_pseudos is empty when returning.
8918
8919 2010-09-29 Kai Tietz <kai.tietz@onevision.com>
8920
8921 * config/i386/mingw32.h (TARGET_64BIT): replaced by
8922 TARGET_64BIT_DEFAULT in #if check.
8923
8924 2010-09-29 Jack Howarth <howarth@bromo.med.uc.edu>
8925
8926 * varasm.c (assemble_alias): Add error message for unsupported ifunc.
8927
8928 2010-09-29 Mike Stump <mikestump@comcast.net>
8929
8930 * config/darwin.h (flag_mkernel): Remove.
8931 (flag_apple_kext): Likewise.
8932
8933 2010-09-29 Joseph Myers <joseph@codesourcery.com>
8934 Jack Howarth <howarth@bromo.med.uc.edu>
8935
8936 * config/darwin.opt (undefined): Add.
8937
8938 2010-09-29 Nathan Sidwell <nathan@codesourcery.com>
8939
8940 PR testsuite/45664
8941 * configure.ac: Add --enable-indirect-function option.
8942 * config.gcc: Add default_gnu_indirect_function.
8943 * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
8944 (HAVE_GNU_INDIRECT_FUNCTION): ... this.
8945 * varasm.c (do_assemble_alias): Adjust for macro name change.
8946 * configure: Rebuilt.
8947 * doc/install.texi: Document --enable-indirect-function.
8948
8949 2010-09-29 Joseph Myers <joseph@codesourcery.com>
8950
8951 * doc/options.texi (Variable, Var, Init): Update documentation
8952 without reference to VarExists.
8953 (VarExists): Remove.
8954 * common.opt, config/i386/i386.opt, config/linux.opt,
8955 config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
8956 Don't use VarExists.
8957
8958 2010-09-29 Joseph Myers <joseph@codesourcery.com>
8959
8960 * optc-gen.awk: Generate global_options initializer instead of
8961 individual variables. Add x_ prefix to names of structure members.
8962 * opth-gen.awk: Generate gcc_options structure. Add x_ prefix to
8963 names of structure members.
8964 * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
8965 HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
8966 * doc/tm.texi: Regenerate.
8967 * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
8968 * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
8969 * c-parser.c (disable_extension_diagnostics,
8970 restore_extension_diagnostics): Update names of cpp_options members.
8971 * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
8972 * common.opt (fcompare-debug-second): Don't use Var.
8973 * config/alpha/alpha.h (target_flags): Remove.
8974 * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
8975 HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
8976 * config/bfin/bfin.h (target_flags): Remove.
8977 * config/cris/cris.h (target_flags): Remove.
8978 * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
8979 cl_target_option members.
8980 * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
8981 (ix86_function_specific_print, ix86_valid_target_attribute_tree,
8982 ix86_can_inline_p): Update names of cl_target_option members.
8983 * config/i386/i386.h (ix86_isa_flags): Remove.
8984 * config/lm32/lm32.h (target_flags): Remove.
8985 * config/mcore/mcore.h (mcore_stack_increment): Remove.
8986 * config/mcore/mcore.md (addsi3): Remove extern declaration of
8987 flag_omit_frame_pointer.
8988 * config/mep/mep.h (target_flags): Remove.
8989 * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
8990 HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
8991 * config/mmix/mmix.h (target_flags): Remove.
8992 * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
8993 flag_expensive_optimizations): Remove.
8994 * config/s390/s390.h (flag_pic): Remove.
8995 * config/score/score-conv.h (target_flags): Remove.
8996 * config/sh/sh.h (sh_fixed_range_str): Remove.
8997 * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
8998 * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
8999 * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
9000 * diagnostic.c (diagnostic_initialize): Update names of
9001 diagnostic_context members.
9002 * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
9003 warn_system_headers.
9004 (diagnostic_report_warnings_p): Update for new names.
9005 * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
9006 * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
9007 HARD_FRAME_POINTER_IS_ARG_POINTER.
9008 * flags.h (flag_compare_debug): Declare.
9009 * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
9010 * opts.c (flag_compare_debug): Define.
9011 (common_handle_option): Update names of diagnostic_context
9012 members. Handle -fcompare-debug-second.
9013 (fast_math_flags_struct_set_p): Update names of cl_optimization
9014 members.
9015 * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
9016 * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
9017 * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
9018 * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
9019 * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
9020 * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
9021 HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
9022 * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
9023 * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
9024
9025 2010-09-29 Hariharan Sandanagobalane <hariharan@picochip.com>
9026
9027 * config/picochip/picochip.c (picochip_output_internal_label):
9028 This function can now be called for debug CFI labels, which can come
9029 in the middle of a vliw instruction. Postpone until end of vliw.
9030
9031 2010-09-29 Richard Guenther <rguenther@suse.de>
9032
9033 * tree.h (SCOPE_FILE_SCOPE_P): New macro.
9034 (DECL_FILE_SCOPE_P): Use it.
9035 (TYPE_FILE_SCOPE_P): New macro.
9036
9037 2010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
9038
9039 * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
9040 a CPP_NAME which is a reserved word, clearly separate cases for
9041 OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
9042
9043 2010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
9044
9045 * c-parser.c (c_lex_one_token): In Objective-C, do not replace
9046 token->value with the canonical spelling. Do exactly like C and
9047 C++ and leave it as it is.
9048
9049 2010-09-28 Richard Henderson <rth@redhat.com>
9050
9051 * config/alpha/alpha.c (alpha_builtins): New.
9052 (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
9053 (alpha_builtin_function): New.
9054 (alpha_add_builtins, alpha_init_builtins): Use it.
9055
9056 2010-09-28 Nicola Pero <nicola.pero@meta-innovation.com>
9057
9058 * doc/standards.texi (Standards): Expanded the section on
9059 Objective-C and Objective-C++.
9060
9061 2010-09-28 DJ Delorie <dj@redhat.com>
9062
9063 PR target/45800
9064 * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
9065 volatile MEMs.
9066
9067 2010-09-28 Iain Sandoe <iains@gcc.gnu.org>
9068
9069 * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
9070 attributes on methods.
9071 (c_parser_objc_method_definition): Handle attributes.
9072 (c_parser_objc_methodproto): Likewise.
9073 (c_parser_objc_maybe_method_attributes): New.
9074 (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
9075 missing definition, similar to that in ObjC++.
9076
9077 2010-09-28 Richard Henderson <rth@redhat.com>
9078
9079 * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
9080 (MUST_USE_SJLJ_EXCEPTIONS): Remove.
9081 (CONFIG_SJLJ_EXCEPTIONS): Remove.
9082 (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
9083 (STACK_CHECK_PROTECT): Likewise.
9084 * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
9085 (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
9086 (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
9087 (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
9088 (dwarf2out_assembly_start): Likewise.
9089 * except.c (init_eh): Use targetm.except_unwind_info.
9090 (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
9091 (output_one_function_exception_table): Likewise.
9092 * final.c: Unconditionally include dwarf2out.h.
9093 (final_start_function): Unconditionally call dwarf2out routines.
9094 (final_end_function, final_scan_insn): Likewise.
9095 * function.c (expand_function_end): Use targetm.except_unwind_info.
9096 * opts.c (decode_options): Use targetm.except_unwind_info.
9097 * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
9098 * target.def (debug_unwind_info, except_unwind_info): New.
9099 * target.h (enum unwind_info_type): New.
9100 * targhooks.c (default_debug_unwind_info): New.
9101 (default_except_unwind_info): New.
9102 (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
9103 * targhooks.h: Declare them.
9104 * tree-tailcall.c: Include "target.h"
9105 (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
9106 * Makefile.in (tree-tailcall.o): Update.
9107 * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
9108 (lhd_gcc_personality): Likewise.
9109
9110 * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
9111 (TARGET_EXCEPT_UNWIND_INFO): New.
9112 (DWARF2_UNWIND_INFO): Update.
9113 (TARGET_DEBUG_UNWIND_INFO): New.
9114 * doc/tm.texi: Rebuild.
9115
9116 * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
9117 targetm.except_unwind_info.
9118
9119 * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
9120 (arm_except_unwind_info): New.
9121 (arm_compute_func_type): Use it.
9122 (arm_expand_prologue, thumb_pushpop): Likewise.
9123 (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
9124 (arm_unwind_emit, arm_output_fn_unwind): Likewise.
9125 * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
9126 * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
9127 (DWARF2_UNWIND_INFO): Remove.
9128 (MUST_USE_SJLJ_EXCEPTIONS): Remove.
9129 (ARM_EABI_UNWIND_TABLES): Remove.
9130
9131 * config/ia64/ia64.c (ia64_debug_unwind_info): New.
9132 (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
9133 (ia64_except_unwind_info): New.
9134 (ia64_output_function_prologue): Use it.
9135 (ia64_add_bundle_selector_before): Likewise.
9136 (ia64_reorg, ia64_asm_unwind_emit): Likewise.
9137 * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
9138 (TARGET_UNWIND_INFO): Remove.
9139
9140 * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
9141
9142 2010-09-28 Iain Sandoe <iains@gcc.gnu.org>
9143
9144 * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
9145 (c_parser_objc_protocol_definition): Likewise.
9146 (c_parser_external_declaration): Provide dummy attribute arguments.
9147 (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
9148 (c_parser_objc_class_definition): Handle attributes.
9149 (c_parser_objc_protocol_definition): Likewise.
9150
9151 2010-09-28 Tobias Burnus <burnus@net-b.de>
9152
9153 PR fortran/40569
9154 PR fortran/40568
9155 * toplev.h (save_decoded_options, save_decoded_options_count):
9156 New global variables.
9157 * toplev.c (save_decoded_options, save_decoded_options_count):
9158 Export variables.
9159
9160 2010-09-28 Ian Lance Taylor <iant@google.com>
9161
9162 * config/i386/i386.c (ix86_supports_split_stack): Test
9163 HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
9164
9165 2010-09-28 Ian Lance Taylor <iant@google.com>
9166
9167 PR target/45815
9168 * opts.c (decode_options): Don't test whether the target supports
9169 split stack if flag_split_stack == 0.
9170
9171 2010-09-28 Jan Hubicka <jh@suse.cz>
9172
9173 * builtin-attrs.def (ATTR_LEAF): New attribute.
9174 (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
9175 ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
9176 ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
9177 ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
9178 ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
9179 ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
9180 ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
9181 * sync-builtins.def: Annotate all builtins by leaf.
9182 * omp-builtins.def: Annotate all builtins by leaf.
9183 * builtins.def: Annotate relevant builtins with leaf attribute.
9184 (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
9185 ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
9186 leaf.
9187
9188 2010-09-28 Jan Hubicka <jh@suse.cz>
9189
9190 * tree-ssa-ccp.c (fold_ctor_reference): New function.
9191 (fold_const_aggregate_ref): Use it.
9192 * fold-const.c (canonicalize_constructor_val): Check that we don't fold
9193 into external static.
9194
9195 2010-09-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9196
9197 PR target/44452
9198 * config/i386/i386.opt (mvect8-ret-in-mem): Define.
9199 * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
9200 (ix86_solaris_return_in_memory): Remove.
9201 * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
9202 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
9203 (TARGET_SUBTARGET_DEFAULT): Redefine.
9204 * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
9205 * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
9206 (TARGET_SUBTARGET_DEFAULT): Redefine.
9207 * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
9208 -mvect8-ret-in-mem.
9209 (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
9210
9211 2010-09-29 Alan Modra <amodra@gmail.com>
9212
9213 PR target/45807
9214 * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
9215 * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
9216 * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
9217 Delete.
9218 * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
9219 (rs6000_emit_prologue): Don't just create frame save info for r2,
9220 actually save r2.
9221
9222 2010-09-28 Richard Henderson <rth@redhat.com>
9223
9224 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
9225 when 8 bytes are requested.
9226
9227 2010-09-28 Tristan Gingold <gingold@adacore.com>
9228
9229 * config/avr/avr.c (expand_prologue): Set
9230 current_function_static_stack_size.
9231
9232 2010-09-28 Tristan Gingold <gingold@adacore.com>
9233
9234 * config/alpha/alpha.md: Change the initial condition of the
9235 probing loop.
9236
9237 2010-09-28 Uros Bizjak <ubizjak@gmail.com>
9238
9239 * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
9240 Split from *avx_<maxmin:code><mode>3.
9241 (*avx_<smaxmin:code><mode>3): Ditto.
9242 * config/i386/i386.md (maxmin): Remove code iterator.
9243
9244 2010-09-27 Ian Lance Taylor <iant@google.com>
9245
9246 * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
9247 requires assembler support for CFI directives.
9248
9249 2010-09-27 Richard Henderson <rth@redhat.com>
9250
9251 * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
9252
9253 2010-09-27 Hans-Peter Nilsson <hp@axis.com>
9254
9255 * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
9256 that AFTER is not in the range FROM..TO, inclusive.
9257
9258 2010-09-27 Hans-Peter Nilsson <hp@axis.com>
9259 Bernd Schmidt <bernds@codesourcery.com>
9260
9261 PR rtl-optimization/45792
9262 * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
9263 If not all insns are to be merged, for each edge, stash the
9264 next candidate after the to-be-merged insns before doing the
9265 merge, and use them for the retry at the new insertion point.
9266 Handle CC0 targets when retrying.
9267
9268 2010-09-27 Ian Lance Taylor <iant@google.com>
9269
9270 * common.opt (fsplit-stack): New option.
9271 * opts.c (decode_options): Set flag_split_stack to final value.
9272 * target.def (supports_split_stack): New hook.
9273 * gcc.c (STACK_SPLIT_SPEC): Define.
9274 (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
9275 * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
9276 (Code Gen Options): Document -fsplit-stack.
9277 * doc/extend.texi (Function Attributes): Mention no_split_stack.
9278 (Function Attributes): Document no_split_stack.
9279 * doc/tm.texi.in (Stack Smashing Protection): Add @hook
9280 TARGET_SUPPORTS_SPLIT_STACK.
9281 * doc/tm.texi: Rebuild.
9282 * function.c (thread_prologue_and_epilogue_insns): If
9283 flag_split_stack, add split stack prologue.
9284 * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
9285 * varasm.c (saw_no_split_stack): New static variable.
9286 (assemble_start_function): Set saw_no_split_stack if the function
9287 has the no_split_stack attribute.
9288 (file_end_indicate_split_stack): New function.
9289 * output.h (file_end_indicate_split_stack): Declare.
9290 * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
9291 and function.
9292 * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
9293 routines.
9294 * config/i386/i386.c (ix86_option_override_internal): Don't set
9295 expand_builtin_va_start to NULL if -fsplit-stack.
9296 (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
9297 -fsplit-stack.
9298 (ix86_va_start): If -fsplit-stack, get overflow pointer from
9299 scratch register set by prologue.
9300 (ix86_code_end): If -fsplit-stack, call
9301 file_end_indicate_split_stack.
9302 (ix86_supports_split_stack): New static function.
9303 (SPLIT_STACK_AVAILABLE): Define.
9304 (split_stack_prologue_scratch_regno): New static function.
9305 (split_stack_fn): New static variable.
9306 (ix86_expand_split_stack_prologue): New function.
9307 (ix86_live_on_entry): New static function.
9308 (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
9309 (output_pic_addr_const): Likewise.
9310 (i386_asm_output_addr_const_extra): Likewise.
9311 (ix86_expand_call): Change return type to rtx. Return the new
9312 call instruction.
9313 (TARGET_SUPPORTS_SPLIT_STACK): Define.
9314 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
9315 * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
9316 (split_stack_prologue, split_stack_return): New insns.
9317 (split_stack_space_check): New insn.
9318 * config/i386/i386.h (struct machine_function): Add
9319 split_stack_varargs_pointer field.
9320 * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
9321 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
9322 * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
9323 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
9324 * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
9325 Declare.
9326 (ix86_expand_call): Update declaration.
9327
9328 2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
9329
9330 * doc/objc.texi (Type encoding): Added the new 'long double' (D)
9331 code. Added byref, which was missing in the list of codes.
9332 Explain that enumeration values are encoded as the integer type
9333 that the compiler uses to store them. Explain and make examples
9334 of how 'const' interacts with pointers, and the complication of
9335 the encoding of 'const char *'.
9336 (Legacy type encoding): New subsection, explaining that GCC emits
9337 incorrect type encodings for the NeXT runtime for compatibility
9338 reasons.
9339 (@@encode): New subsection, explaining @encode and particularly
9340 that protocol qualifiers are not recognized inside an @encode()
9341 expression.
9342 (Method signatures): New subsection, explaining how method
9343 signatures are encoded.
9344
9345 2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
9346
9347 Merge from 'apple/trunk' branch on FSF servers. Removed small
9348 change in build_conditional_expr that had been added when fixing
9349 PR objc/27377 and which did the same check in a less complete way.
9350
9351 2005-12-15 Fariborz Jahanian <fjahanian@apple.com>
9352
9353 Radar 4229905
9354 * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
9355 looking for objective-c common pointer types.
9356
9357 2005-06-22 Ziemowit Laski <zlaski@apple.com>
9358
9359 Radar 4154928
9360 * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
9361 use their ObjC common type.
9362
9363 2010-09-27 Richard Guenther <rguenther@suse.de>
9364
9365 * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
9366
9367 2010-09-27 Jie Zhang <jie@codesourcery.com>
9368
9369 * print-tree.c (print_node): Print in-constant-pool.
9370
9371 2010-09-27 Uros Bizjak <ubizjak@gmail.com>
9372
9373 * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
9374 (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
9375 (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
9376 (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
9377
9378 2010-09-26 Uros Bizjak <ubizjak@gmail.com>
9379
9380 * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
9381 from pro_epilogue_adjust_stack_<mode>_{1,2}.
9382 (pro_epilogue_adjust_stack_<mode>_add): Rename from
9383 pro_epilogue_adjust_stack_<mode>_3.
9384 * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
9385 renamed pro_epilogue_adjust_stack_{si,di}_add.
9386 (ix86_expand_prologue): Use indirect functions. Update for renamed
9387 pro_epilogue_adjust_stack_{si,di}_sub.
9388
9389 2010-09-26 Uros Bizjak <ubizjak@gmail.com>
9390
9391 * config/i386/i386.md (movmsk_df): New insn.
9392 (signbitdf): Split out of signbit<mode>2. Generate movmsk_df
9393 sequence for TARGET_SSE_MATH.
9394
9395 2010-09-26 Richard Sandiford <rdsandiford@googlemail.com>
9396
9397 * config/mips/mips.c (mips_builtin_decls): Declare.
9398 (mips_init_builtins): Store function declarations in
9399 mips_builtin_decls.
9400 (mips_builtin_decl): New function.
9401 (TARGET_BUILTIN_DECL): Define.
9402
9403 2010-09-25 Kai Tietz <kai.tietz@onevision.com>
9404 Richard Henderson <rth@redhat.com>
9405
9406 * config/i386/cygwin.asm: Include auto-host.h.
9407 (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
9408 cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
9409 (__chkstk, __alloca): Annotate for dwarf2 unwind info. Drop
9410 alignment code from the 64-bit path. Use gas local labels.
9411 * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
9412 from _di_2. Remove the useless constant integer argument.
9413 (pro_epilogue_adjust_stack_<mode>_3): New.
9414 (allocate_stack_worker_probe_<mode>): Macroize from
9415 allocate_stack_worker_{32,64}. Use __chkstk_ms. Update all users.
9416 * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
9417 use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
9418 (__chkstk_ms): New function.
9419 * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
9420 * config/i386/t-interix: Likewise.
9421 * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
9422 (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
9423 (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
9424 * configure, config.in: Rebuild.
9425
9426 2010-09-25 Eric Botcazou <ebotcazou@adacore.com>
9427
9428 * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
9429 statements because of the return slot optimization.
9430
9431 2010-09-25 Anatoly Sokolov <aesok@post.ru>
9432
9433 * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
9434 * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
9435 * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
9436 (class_likely_spilled_p): Rename to...
9437 (avr_class_likely_spilled_p): ...this. Make static. Change argument
9438 type to reg_class_t.
9439
9440 2010-09-24 Jan Hubicka <jh@suse.cz>
9441
9442 * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
9443 (lto_symtab_resolve_symbols): Set it.
9444 (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
9445 store resolution field in cgraph/varpool.
9446 * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
9447 (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
9448 (cgraph_dump_node): Drop used_from_object_file.
9449 (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
9450 (cgraph_function_body_availability): Use decl_replaceable_p.
9451 (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
9452 (cgraph_can_remove_if_no_direct_calls_and_refs): Use
9453 cgraph_used_from_object_file_p.
9454 (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
9455 cgraph_used_from_object_file_p.
9456 (resolution_used_from_other_file_p): New functoin.
9457 (cgraph_used_from_object_file_p): New predicate.
9458 * cgraph.h: Include plugin-api.h
9459 (struct cgraph_local_info): Remove used_from_object_file.
9460 (struct cgraph_node): Add resolution field.
9461 (struct varpool_node): Likewise; remove used_from_object_file;
9462 reove const_value_known.
9463 (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
9464 cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
9465 (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
9466 varpool_used_from_object_file_p): Declare.
9467 (varpool_get_node, varpool_extra_name_alias): Update prototype.
9468 * tree.h (DECL_REPLACEABLE_P): Remove.
9469 (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
9470 * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
9471 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
9472 input_overwrite_node, input_node, input_varpool_node): Stream
9473 resolution.
9474 * expr.c (expand_expr_real_1): Use const_value_known_p
9475 * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
9476 const_value_known.
9477 (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
9478 (function_and_variable_visibility): Set resolution for local vars
9479 and functions; use varpool_used_from_object_file_p.
9480 * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
9481 static functions.
9482 (default_binds_local_p_1): Use resolutoin info.
9483 (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
9484 * varpool.c (varpool_get_node): Constify.
9485 (const_value_known_p): Do not use vnode->const_value_known;
9486 use decl_replaceable_p.
9487 (varpool_finalize_decl): Do not set const_value_known.
9488 (cgraph_variable_initializer_availability): Use decl_replaceable_p
9489 (varpool_extra_name_alias): Return new node.
9490 (varpool_used_from_object_file_p): New function.
9491
9492 2010-09-24 Richard Henderson <rth@redhat.com>
9493
9494 * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
9495 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
9496 (do_spill): Use REG_CFA_OFFSET.
9497 (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
9498 as appropriate.
9499 (ia64_expand_epilogue): Likewise.
9500 (process_set): Split into ...
9501 (process_cfa_adjust_cfa): this,
9502 (process_cfa_register): this,
9503 (process_cfa_offset): and this new function.
9504 (ia64_asm_unwind_emit): Use them. Expect REG_CFA_* notes
9505 instead of REG_FRAME_RELATED_EXPR.
9506
9507 2010-09-24 Olivier Hainque <hainque@adacore.com>
9508
9509 * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
9510
9511 2010-09-24 Jan Hubicka <jh@suse.cz>
9512
9513 * doc/extend.texi: (attribute leaf): Document.
9514 * tree.c (local_define_builtin): Handle ECF_LEAF.
9515 (build_common_builtin_nodes): Set ECF_LEAF where needed.
9516 * tree.h (ECF_LEAF): New.
9517 * ipa-reference.c (propagate_bits): For leaf calls propagate ever
9518 overwrittable and unavailable functions.
9519 (ipa_init): Put all_module_statics into optimization_summary_obstack.
9520 (copy_global_bitmap): Do not copy all_module_statics.
9521 (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
9522 (propagate): Handle overwritable and unavailable leaf functions;
9523 initialize global info for overwritable and unavailable leaf functions;
9524 do not free all module statics.
9525 (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
9526 local statics.
9527 * calls.c (flags_from_decl_or_type): Handle leaf.
9528 * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
9529 abnormal gotos.
9530
9531 2010-09-24 Basile Starynkevitch <basile@starynkevitch.net>
9532
9533 * gengtype.c: Reindented.
9534 * gengtype.h: Reindented.
9535 * gengtype-parse.c: Reindented.
9536
9537 2010-09-24 Jan Hubicka <jh@suse.cz>
9538
9539 PR tree-optimization/45738
9540 PR tree-optimization/45741
9541 * expr.c (string_constant): Allow CONST_DECL too;
9542 check that DECL_INITIAL is set.
9543 * varpool.c (const_value_known_p): Only look into VAR_DECL
9544 and CONST_DECL.
9545
9546 2010-09-24 Joseph Myers <joseph@codesourcery.com>
9547
9548 * common.opt (undef): New.
9549
9550 2010-09-24 Jakub Jelinek <jakub@redhat.com>
9551
9552 PR middle-end/45234
9553 * rtl.h (enum global_rtl_index): Add
9554 GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
9555 (LAST_VIRTUAL_POINTER_REGISTER): Define.
9556 (virtual_preferred_stack_boundary_rtx,
9557 VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
9558 (LAST_VIRTUAL_REGISTER): Increase by one.
9559 (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
9560 instead of LAST_VIRTUAL_REGISTER.
9561 * function.c (instantiate_new_reg): Handle
9562 virtual_preferred_stack_boundary_rtx.
9563 * emit-rtl.c (init_virtual_regs): Handle
9564 VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
9565 (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
9566 * explow.c (round_push): If crtl->preferred_stack_boundary
9567 is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
9568 virtual_preferred_stack_boundary_rtx alignment instead of
9569 crtl->preferred_stack_boundary alignment.
9570 (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
9571 macros. Never decrease crtl->preferred_stack_boundary,
9572 use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
9573 instead of PREFERRED_STACK_BOUNDARY. Don't modify
9574 stack_pointer_delta in dynamic allocation, even when size
9575 is constant.
9576 (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
9577 macro.
9578 * print-rtl.c (print_rtx): Handle
9579 VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
9580 * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
9581 LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
9582 * config/frv/frv.c (frv_emit_movsi): Likewise.
9583 * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
9584 * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
9585 Likewise.
9586
9587 Revert:
9588 2010-09-17 H.J. Lu <hongjiu.lu@intel.com>
9589
9590 PR middle-end/45234
9591 * calls.c (expand_call): Make sure that all variable sized
9592 adjustments are multiple of preferred stack boundary after
9593 stack alignment.
9594
9595 2010-09-24 Iain Sandoe <iains@gcc.gnu.org>
9596 Dominique Dhumieres <dominiq@lps.ens.fr>
9597
9598 PR bootstrap/45751
9599 * config/darwin-driver.c (darwin_default_min_version):
9600 Adjust size passed to memcpy in two places.
9601
9602 2010-09-24 Richard Guenther <rguenther@suse.de>
9603
9604 * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
9605 Make sure to not call set_type_context with error_mark_node.
9606 * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
9607
9608 2010-09-24 Richard Guenther <rguenther@suse.de>
9609
9610 * Makefile.in (OBJS-onestep): Remove.
9611 (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
9612 (libbackend.a): Remove onestep support.
9613 (libbackend.o): Remove.
9614 * configure.ac (--enable-intermodule): Remove.
9615 * configure: Regenerate.
9616
9617 2010-09-24 Bernd Schmidt <bernds@codesourcery.com>
9618
9619 * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
9620 reaching the end of a block if it occurs at a DEBUG_INSN.
9621
9622 2010-09-09 Tristan Gingold <gingold@adacore.com>
9623
9624 PR target/44242
9625 * config/vms/vms-crt0-64.c: Removed.
9626 * config/vms/vms-crt0.c: Removed.
9627 * config/vms/vms-psxcrt0-64.c: Removed.
9628 * config/vms/vms-psxcrt0.c: Removed.
9629 * config/vms/vms-ucrt0.c: New file.
9630 * config/vms/t-vms64: Removed.
9631 * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it. Remove DECC.
9632 Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
9633 * config.gcc (alpha-dec-vms): Use t-vms.
9634
9635 2010-09-24 Nicola Pero <nicola.pero@meta-innovation.com>
9636
9637 * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
9638 underfull hbox in DVI output.
9639 (-fobjc-class-cxx-cdtors): Same change.
9640 (-fobjc-exceptions): Tidied up documentation. Explain what the
9641 option does, but moved the (lenghty) description of the exception
9642 syntax into objc.texi.
9643 (-fobjc-gc): Explain that the option is not useful with the GNU
9644 runtime.
9645 (-fzero-link): Explain that the GNU runtime always works in
9646 "zero-link" mode.
9647 * doc/objc.texi: All sections: simplified @node declarations
9648 removing specification of next, previous, up node.
9649 (Objective-C): Updated introduction.
9650 (Garbage Collection): Updated. The bohem-gc library is now
9651 included in gcc itself. Mention that this section only applies to
9652 the GNU Objective-C runtime.
9653 (compatibility_alias): Small tidy up.
9654 (Exceptions): New section mostly containing text previously in the
9655 description of the -fobjc-exception command-line option.
9656 (Synchronization): Same.
9657
9658 2010-09-24 Uros Bizjak <ubizjak@gmail.com>
9659
9660 * config/i386/i386.md (ix86_code_end): Move the initialization of
9661 xops array near the consumer. Use AX_REG and SP_REG instead of
9662 numerical constants.
9663
9664 2010-09-24 Nicola Pero <nicola.pero@meta-innovation.com>
9665
9666 * c-typeck.c (convert_arguments): Use warning 'too many arguments to
9667 method [methodname]' for an Objective-C method instead of the less
9668 satisfactory 'too many arguments to function' (with no method name).
9669
9670 2010-09-23 Eric Botcazou <ebotcazou@adacore.com>
9671
9672 * tree-flow.h (execute_update_addresses_taken): Remove parameter.
9673 * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
9674 (execute_update_addresses_taken): Remove parameter. Execute the
9675 optimization unconditionally.
9676 * passes.c (execute_function_todo): Call execute_update_addresses_taken
9677 unconditionally if TODO_rebuild_alias is set, else only when optimizing
9678 if TODO_update_address_taken is set.
9679
9680 2010-09-23 Anatoly Sokolov <aesok@post.ru>
9681
9682 * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
9683 * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
9684 * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
9685 (arm_output_addr_const_extra): Make static.
9686
9687 2010-09-23 Uros Bizjak <ubizjak@gmail.com>
9688
9689 * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
9690 define as unspec_volatile.
9691 ("nops"): Define as unspec_volatile. Use fputs to write to
9692 asm_out_file directly. Output NOPs on separate lines using while loop.
9693 * config/i386/i386.c (ix86_code_end): Use fputs to write to
9694 asm_out_file directly. Output NOPs on separate lines using while loop.
9695
9696 2010-09-23 Richard Guenther <rguenther@suse.de>
9697
9698 PR tree-optimization/45565
9699 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
9700 Make sure to adjust the fndecl before replacing the stmt.
9701
9702 2010-09-23 Richard Guenther <rguenther@suse.de>
9703
9704 PR middle-end/45750
9705 * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
9706 gimplifying MEM_REF.
9707
9708 2010-09-23 Alan Modra <amodra@gmail.com>
9709
9710 * config/rs6000/rs6000.c (toc_relative_ok): Delete.
9711 (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
9712
9713 2010-09-23 Bernd Schmidt <bernds@codesourcery.com>
9714
9715 PR rtl-optimization/44374
9716 * basic-block.h (enum bb_flags): Add BB_MODIFIED.
9717 * df-core.c (df_set_bb_dirty): Set it.
9718 * ifcvt.c (find_memory): Remove function.
9719 (dead_or_predicable): Use can_move_insns_across.
9720 * df.h (can_move_insns_across): Declare function.
9721 * cfgcleanup.c (block_was_dirty): New static variable.
9722 (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
9723 than df_get_bb_dirty.
9724 (try_head_merge_bb): New static function.
9725 (try_optimize_cfg): Call it. Call df_analyze if block_was_dirty
9726 is set.
9727 * df-problems.c: Include "target.h"
9728 (df_simulate_find_uses): New static function.
9729 (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
9730 (find_memory, find_memory_store): New static functions.
9731 (can_move_insns_across): New function.
9732 * Makefile.in (df-problems.o): Update dependencies.
9733
9734 2010-09-22 Eric Botcazou <ebotcazou@adacore.com>
9735
9736 PR java/44095
9737 * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
9738 is specified and the suffix of the file isn't ".c".
9739 * config/sparc/linux64.h (ASM_SPEC): Likewise.
9740
9741 2010-09-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9742
9743 * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
9744 * doc/cppopts.texi: Fix markup of index entry.
9745 * doc/extend.texi (Constructing Calls): Fix markup of
9746 __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
9747 (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
9748 (Vague Linkage, C++ Attributes): Fix markup of index entries and
9749 keywords.
9750 * doc/invoke.texi (Option Summary): Fix spacing. Rewrap to
9751 avoid long lines.
9752 (C Dialect Options, C++ Dialect Options, Warning Options)
9753 (Debugging Options, Spec Files, Darwin Options)
9754 (i386 and x86-64 Options, MIPS Options)
9755 (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
9756 index entries, avoid abbreviations, allow URLs to wrap, avoid
9757 long lines, avoid overlong pages from long @itemx lists.
9758 * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
9759 * doc/standards.texi (Standards): Likewise.
9760 * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
9761
9762 2010-09-22 Joseph Myers <joseph@codesourcery.com>
9763
9764 * opts-common.c (prune_options): Make static. Work with decoded
9765 options.
9766 (decode_cmdline_options_to_array): Call prune_options. Don't
9767 resize option array here.
9768 * opts.h (prune_options): Remove prototype.
9769 * gcc.c (process_command): Take decoded options; don't call
9770 decode_cmdline_options_to_array here. Use decoded options for argv[0].
9771 (main): Call decode_cmdline_options_to_array here instead of
9772 prune_options. Update call to process_command.
9773 * config/darwin-driver.c: Include opts.h.
9774 (darwin_default_min_version): Work with decoded options. Don't
9775 handle -b or -V here.
9776 * config/darwin.h (darwin_default_min_version): Update prototype.
9777 (GCC_DRIVER_HOST_INITIALIZATION): Update call to
9778 darwin_default_min_version.
9779 * config/i386/cygwin.h (mingw_scan): Update prototype.
9780 (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
9781 * config/i386/cygwin1.c: Include opts.h.
9782 (mingw_scan): Work with decoded options.
9783 * config/i386/t-cygwin (cygwin1.o): Update dependencies.
9784 * config/t-darwin (darwin-driver.o): Update dependencies.
9785
9786 2010-09-22 Joseph Myers <joseph@codesourcery.com>
9787
9788 * common.opt (-assemble, -compile, -coverage, -debug, -dump,
9789 -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
9790 -for-assembler, -for-assembler=, -for-linker, -for-linker=,
9791 -force-link, -force-link=, -language, -language=,
9792 -library-directory, -library-directory=, -no-canonical-prefixes,
9793 -no-standard-libraries, -no-warnings, -optimize, -output,
9794 -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
9795 -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
9796 -print-file-name=, -print-libgcc-file-name,
9797 -print-multi-directory, -print-multi-lib,
9798 -print-multi-os-directory, -print-prog-name, -print-prog-name=,
9799 -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
9800 -profile, -save-temps, -shared, -specs, -specs=, -static,
9801 -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
9802 symbolic): New.
9803 (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
9804 * gcc.c (A Short Introduction to Adding a Command-Line Option):
9805 Remove comment.
9806 (cc1_options): Correct specs for passing down --help,
9807 --target-help and --help=*. Add spec for passing down --version.
9808 (struct option_map, option_map, target_option_translations,
9809 translate_options): Remove.
9810 (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
9811 and OPT__target_help instead of OPT_fversion, OPT_fhelp,
9812 OPT_fhelp_ and OPT_ftarget_help.
9813 (process_command): Don't call translate_options. Call
9814 decode_cmdline_options_to_array before checking for
9815 -no-canonical-prefixes using decoded options.
9816 * opts-common.c (tm.h): Update comment on #include.
9817 (find_opt): Allow abbreviations of long options.
9818 (struct option_map, option_map): New.
9819 (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
9820 and -mno handling.
9821 (target_option_translations): New.
9822 (decode_cmdline_options_to_array): Handle
9823 TARGET_OPTION_TRANSLATE_TABLE in driver.
9824 * opts.c (common_handle_option): Don't handle OPT_fhelp,
9825 OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
9826
9827 2010-09-22 Richard Guenther <rguenther@suse.de>
9828
9829 * tree-inline.c (optimize_inline_calls): Schedule cleanups
9830 only if we inlined something. Block compaction and conditional
9831 folding are done by cfg cleanup. Schedule update-address-taken.
9832 (tree_function_versioning): Remove redundant call to number_blocks.
9833 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
9834 folding is done by cfg cleanup.
9835 * passes.c (init_optimization_passes): Remove update-address-taken
9836 pass after IPA inlining.
9837
9838 2010-09-22 Chung-Lin Tang <cltang@codesourcery.com>
9839
9840 * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
9841 to update conditions. Fix reg_mode[] check.
9842
9843 2010-09-22 Hariharan Sandanagobalane <hariharan@picochip.com>
9844
9845 * config/picochip/picochip.md (movhicc): Use expand to check whether
9846 movhicc is available and split it after reload.
9847
9848 2010-09-22 Richard Guenther <rguenther@suse.de>
9849
9850 * tree-ssanames.c (release_dead_ssa_names): Do not remove
9851 callee edges here.
9852 * passes.c (init_optimization_passes): Remove early CFG cleanup.
9853 * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
9854 (pass_cleanup_cfg): Likewise.
9855 (execute_fixup_cfg): Cleanup.
9856 * tree-pass.h (pass_cleanup_cfg): Remove.
9857
9858 2010-09-22 Martin Jambor <mjambor@suse.cz>
9859
9860 * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
9861 builtins if it is true.
9862 (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
9863 parameter.
9864
9865 2010-09-22 Martin Jambor <mjambor@suse.cz>
9866
9867 * tree-sra.c (struct access): New field grp_no_warning.
9868 (create_access_replacement): Set TREE_NO_WARNING according to
9869 grp_no_warning.
9870 (create_artificial_child_access): Use build_ref_for_model and set
9871 grp_no_warning if build_user_friendly_ref_for_offset fails.
9872 (propagate_subaccesses_across_link): Likewise.
9873
9874 2010-09-22 Eric Botcazou <ebotcazou@adacore.com>
9875
9876 PR target/35664
9877 * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
9878 ('f'): Likewise.
9879
9880 2010-09-22 Tristan Gingold <gingold@adacore.com>
9881
9882 * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
9883
9884 2010-09-22 Uros Bizjak <ubizjak@gmail.com>
9885
9886 * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
9887 * config/i386/i386.c (decide_alg): Update for rename.
9888
9889 2010-09-22 Jakub Jelinek <jakub@redhat.com>
9890
9891 PR rtl-optimization/45739
9892 * simplify-rtx.c (simplify_binary_operation_1): Optimize even
9893 vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
9894
9895 2010-09-21 Anatoly Sokolov <aesok@post.ru>
9896
9897 * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
9898 * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
9899 Remove.
9900 * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
9901 (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
9902
9903 2010-09-21 Nicola Pero <nicola.pero@meta-innovation.com>
9904
9905 PR objc/23710
9906 * c-parser.c (c_parser_objc_method_definition): Check the return
9907 value of objc_start_method_definition and if false is returned,
9908 parse the method definition but emit no code.
9909
9910 2010-09-21 Nicola Pero <nicola.pero@meta-innovation.com>
9911
9912 PR objc/25965
9913 * c-decl.c (detect_field_duplicates): If compiling Objective-C,
9914 call objc_get_interface_ivars ().
9915
9916 2010-09-21 Kai Tietz <kai.tietz@onevision.com>
9917
9918 PR target/45694
9919 * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
9920 static chain-register is used for 64-bit.
9921
9922 2010-09-21 Richard Guenther <rguenther@suse.de>
9923
9924 * dwarf2out.c (is_cu_die): New function.
9925 (add_pubtype): Use it.
9926 (gen_subprogram_die): Likewise.
9927 (gen_struct_or_union_type_die): Likewise.
9928 (dwarf2out_finish): Likewise.
9929 (comp_unit_die): Rename to ...
9930 (single_comp_unit_die): ... this.
9931 (comp_unit_die): New function lazily constructing and
9932 returning single_comp_unit_die.
9933 (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
9934 base_type_die, subrange_type_die, modified_type_die,
9935 lower_bound_default, add_bound_info, add_prototyped_attribute,
9936 dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
9937 dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
9938 force_decl_die, gen_namespace_die, dwarf2out_decl,
9939 dwarf2out_start_source_file, dwarf2out_end_source_file,
9940 prune_unused_types, dwarf2out_finish): Use it.
9941 (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
9942 the global list of translation-unit decls.
9943 (dwarf2out_init): Do not create single_comp_unit_die here.
9944 (force_decl_die): Handle TRANSLATION_UNIT_DECL.
9945
9946 2010-09-21 Richard Guenther <rguenther@suse.de>
9947
9948 * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
9949 for bool for C++.
9950
9951 2010-09-21 Bernd Schmidt <bernds@codesourcery.com>
9952
9953 * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
9954 (qhs_extenddi_cstr): Likewise.
9955 * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
9956 them for the source operand.
9957
9958 2010-09-21 Uros Bizjak <ubizjak@gmail.com>
9959
9960 * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
9961 to half_width. Use GET_MODE_BITSIZE to calculate mode size.
9962 (ix86_split_ashr): Ditto.
9963 (ix86_split_lshr): Ditto.
9964
9965 2010-09-21 Richard Guenther <rguenther@suse.de>
9966
9967 PR tree-optimization/45580
9968 * tree-ssa-propagate.c (substitute_and_fold): Always replace
9969 regular uses.
9970 * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
9971 virtuals fold the call into a regular indirect one.
9972
9973 2010-09-20 Eric Botcazou <ebotcazou@adacore.com>
9974
9975 PR rtl-optimization/42775
9976 * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
9977 scheduling is enabled.
9978
9979 2010-09-20 Jakub Jelinek <jakub@redhat.com>
9980
9981 PR rtl-optimization/45728
9982 * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
9983 gen_lowpart_common first and if that fails, force_reg first
9984 before calling gen_lowpart.
9985
9986 PR middle-end/45678
9987 * cfgexpand.c (expand_one_stack_var_at): Use
9988 crtl->max_used_stack_slot_alignment as max_align, instead
9989 of maximum of that and PREFERRED_STACK_BOUNDARY.
9990 Don't call update_stack_alignment.
9991
9992 2010-09-20 Eric Botcazou <ebotcazou@adacore.com>
9993
9994 * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
9995 * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
9996 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
9997 * system.h (LANG_HOOKS_HASH_TYPES): Poison.
9998 * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
9999 (build_nonstandard_integer_type): Likewise.
10000 (build_range_type_1): New function, built from...
10001 (build_range_type): ...this. Call build_range_type_1.
10002 (build_nonshared_range_type): New function.
10003 (build_array_type_1): New function, built from...
10004 (build_array_type: ...this. Call build_array_type_1.
10005 (build_nonshared_array_type): New function.
10006 * tree.h (build_nonshared_range_type): Declare.
10007 (build_nonshared_array_type): Likewise.
10008
10009 2010-09-20 Anatoly Sokolov <aesok@post.ru>
10010
10011 * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
10012 * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
10013 (arm_class_likely_spilled_p): New function.
10014
10015 2010-09-20 Uros Bizjak <ubizjak@gmail.com>
10016
10017 * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
10018 indirect functions.
10019 (ix86_split_ashl): Ditto.
10020 (ix86_split_ashr): Ditto.
10021 (ix86_split_lshr): Ditto.
10022 (ix86_adjust_counter): Ditto.
10023
10024 2010-09-20 Nicola Pero <nicola.pero@meta-innovation.com>
10025
10026 * c-family/c-common.h (constant_string_class): Documented with
10027 comment identical to the one already in c-common.c.
10028
10029 2010-09-20 Jakub Jelinek <jakub@redhat.com>
10030
10031 * dwarf2out.c (any_cfis_emitted): New static variable.
10032 (add_fde_cfi): Set it.
10033 (dwarf2out_frame_debug): Clear it before processing,
10034 if it is set afterwards, flush any queued reg saves.
10035
10036 PR debug/45124
10037 * dwarf2out.c (add_accessibility_attribute): Assume
10038 DW_ACCESS_private as the default for dwarf_version > 2
10039 and DW_TAG_class_type parent.
10040 (gen_inheritance_die): Assume DW_ACCESS_public as the default
10041 for dwarf_version > 2 and parent other than DW_TAG_class_type.
10042
10043 2010-09-20 Rafael Carre <rafael.carre@gmail.com>
10044
10045 PR target/45726
10046 * arm.md (arm_movt): Only enable on machines with MOVT.
10047
10048 2010-09-20 Jie Zhang <jie@codesourcery.com>
10049
10050 * config/arm/arm.c (arm_address_offset_is_imm): New.
10051 (arm_early_store_addr_dep): New.
10052 (arm_early_load_addr_dep): New.
10053 * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
10054 (arm_early_load_addr_dep): Declare.
10055 (arm_address_offset_is_imm): Declare.
10056 * config/arm/cortex-m4.md: New file.
10057 * config/arm/cortex-m4-fpu.md: New file.
10058 * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
10059 (attr generic_sched): Exclude cortexm4.
10060 (attr generic_vfp): Exclude cortexm4.
10061
10062 2010-09-20 Richard Guenther <rguenther@suse.de>
10063
10064 PR middle-end/45704
10065 * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
10066
10067 2010-09-20 Jan Hubicka <jh@suse.cz>
10068
10069 PR tree-optimize/45605
10070 * cgraph.h (const_value_known_p): Declare.
10071 (varpool_decide_const_value_known): Remove.
10072 * tree-ssa-ccp.c (get_base_constructor): Use it.
10073 * lto-cgraph.c (compute_ltrans_boundary): Likewise.
10074 * expr.c (string_constant): Likewise.
10075 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
10076 * ipa.c (ipa_discover_readonly_nonaddressable_var,
10077 function_and_variable_visibility): Likewise.
10078 * gimplify.c (gimplify_call_expr): Likewise.
10079 * gimple-fold.c (get_symbol_constant_value): Likewise.
10080 * varpool.c (varpool_decide_const_value_known): Replace by...
10081 (const_value_known_p): ... this one; handle other kinds of DECLs
10082 too and work for automatic vars.
10083 (varpool_finalize_decl): Use const_value_known_p.
10084
10085 2010-09-20 Rafael Carre <rafael.carre@gmail.com>
10086
10087 PR target/45726
10088 * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
10089
10090 2010-09-20 Richard Guenther <rguenther@suse.de>
10091
10092 PR tree-optimization/45705
10093 * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
10094
10095 2010-09-20 Jakub Jelinek <jakub@redhat.com>
10096
10097 PR rtl-optimization/45695
10098 * combine.c (try_combine): When splitting a two set pattern,
10099 make sure the pattern which will be put into i2 doesn't use REGs
10100 or MEMs set by insns in between i2 and i3.
10101
10102 2010-09-19 Jan Hubicka <jh@suse.cz>
10103
10104 PR lto/44246
10105 * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
10106 processing same node twice.
10107
10108 2010-09-19 Anatoly Sokolov <aesok@post.ru>
10109
10110 * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
10111 * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
10112 (bfin_class_likely_spilled_p): New function
10113
10114 2010-09-19 Ira Rosen <irar@il.ibm.com>
10115
10116 PR tree-optimization/45714
10117 * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
10118 created in vectorizable_call instead of the original statement in
10119 def stmt updates.
10120
10121 2010-09-19 Uros Bizjak <ubizjak@gmail.com>
10122
10123 * config/i386/i386-protos.h (split_double_mode): New prototype.
10124 (split_di, split_ti): Remove prototypes.
10125 * config/i386/i386.c (split_double_mode): New function.
10126 (split_di, split_ti): Remove.
10127 (ix86_expand_branch): Use split_double_mode.
10128 (ix86_split_to_parts): Ditto.
10129 (ix86_split_ashl): Ditto.
10130 (ix86_split_ashr): Ditto.
10131 (ix86_split_lshr): Ditto.
10132 (ix86_force_to_memory): Ditto.
10133 * config/i386/i386.md: Use split_double_mode in double-mode splitters.
10134
10135 2010-09-18 Jan Hubicka <jh@suse.cz>
10136
10137 PR tree-optimization/45453
10138 * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
10139 virtual functions are reachable.
10140 * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
10141 * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
10142 * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
10143 when modifying function.
10144
10145 2010-09-18 Jan Hubicka <jh@suse.cz>
10146
10147 PR tree-optimization/45605
10148 * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
10149 * gimple-fold.c (static_object_in_other_unit_p): New function.
10150 (canonicalize_constructor_val): Use it.
10151 (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
10152 returning NULL.
10153 (gimple_fold_obj_type_ref_known_binfo): Use
10154 static_object_in_other_unit_p.
10155
10156 2010-09-18 Richard Guenther <rguenther@suse.de>
10157
10158 PR tree-optimization/45709
10159 * tree-inline.c (copy_phis_for_bb): Delay commit of edge
10160 insertions until after all PHI nodes of the block are processed.
10161
10162 2010-09-18 Tijl Coosemans <tijl@coosemans.org>
10163
10164 * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
10165
10166 2010-09-18 Kai Tietz <kai.tietz@onevision.com>
10167
10168 * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
10169
10170 2010-09-18 Richard Guenther <rguenther@suse.de>
10171
10172 PR tree-optimization/45709
10173 * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
10174
10175 2010-09-17 Sebastian Pop <sebastian.pop@amd.com>
10176
10177 * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
10178 (dot_deps_stmt): Same.
10179 * graphite-poly.c (dot_lst): Same.
10180 * graphite-scop-detection.c (dot_all_scops): Same.
10181 (dot_scop): Same.
10182
10183 2010-09-17 Sebastian Pop <sebastian.pop@amd.com>
10184
10185 Revert:
10186 2009-12-16 Ben Elliston <bje@au.ibm.com>
10187
10188 * tree-data-ref.c (dot_rdg_1): Added back.
10189 (dot_rdg): Same. Added "#if 0" around system call.
10190
10191 2010-09-17 H.J. Lu <hongjiu.lu@intel.com>
10192 Richard Henderson <rth@redhat.com>
10193
10194 * config/i386/i386.c (initial_ix86_tune_features): Add
10195 X86_TUNE_PAD_SHORT_FUNCTION.
10196 (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
10197 (ix86_count_insn): New.
10198 (ix86_pad_short_function): Likewise.
10199 (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
10200
10201 * config/i386/i386.h (ix86_tune_indices): Add
10202 X86_TUNE_PAD_SHORT_FUNCTION.
10203 (TARGET_PAD_SHORT_FUNCTION): New.
10204
10205 * config/i386/i386.md (UNSPEC_NOPS): New.
10206 (nops): Likewise.
10207
10208 2010-09-17 H.J. Lu <hongjiu.lu@intel.com>
10209
10210 PR middle-end/45234
10211 * calls.c (expand_call): Make sure that all variable sized
10212 adjustments are multiple of preferred stack boundary after
10213 stack alignment.
10214
10215 2010-09-17 DJ Delorie <dj@redhat.com>
10216
10217 * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
10218 passed an invalid value, print an error instead of ICEing.
10219 (valid_psw_flag): New.
10220 (rx_expand_builtin): Call it for setpsw/clrpsw.
10221 (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
10222
10223 * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
10224 (bitclr_in_memory): Likewise.
10225 (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
10226
10227 2010-09-17 H.J. Lu <hongjiu.lu@intel.com>
10228
10229 PR middle-end/45678
10230 * cfgexpand.c (update_stack_alignment): New.
10231 (get_decl_align_unit): Use it.
10232 (expand_one_stack_var_at): Call update_stack_alignment.
10233
10234 2010-09-17 Richard Guenther <rguenther@suse.de>
10235
10236 * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
10237 Properly copy the read string.
10238
10239 2010-09-17 Joseph Myers <joseph@codesourcery.com>
10240
10241 * doc/options.texi (Variable): Document.
10242 * optc-gen.awk, opth-gen.awk: Handle Variable records. Don't
10243 generate target_flags declarations explicitly. Don't define
10244 VarExists variables for the driver.
10245 * common.opt (target_flags): New Variable record.
10246 (flag_dump_unnumbered, flag_dump_unnumbered_links,
10247 flag_var_tracking, flag_var_tracking_assignments,
10248 flag_var_tracking_assignments_toggle): Don't mark variables with
10249 VarExists.
10250 * config/i386/i386.c (ix86_isa_flags): Don't define here.
10251 * config/i386/i386.opt (ix86_isa_flags): Define here.
10252 * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
10253 * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
10254 VarExists.
10255 * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
10256 * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
10257 Only define for generator programs.
10258 * rtlanal.c (target_flags): Remove.
10259 * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
10260 flag_var_tracking_assignments_toggle): Remove.
10261
10262 2010-09-17 Michael Matz <matz@suse.de>
10263
10264 PR tree-optimization/43432
10265 * tree-vect-data-refs.c (vect_analyze_data_ref_access):
10266 Accept backwards consecutive accesses.
10267 (vect_create_data_ref_ptr): If step is negative generate
10268 decreasing IVs.
10269 * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
10270 (perm_mask_for_reverse, reverse_vec_elements): New functions.
10271 (vectorizable_load): Handle loads with negative steps when easily
10272 possible.
10273
10274 2010-09-03 Jan Hubicka <jh@suse.cz>
10275
10276 * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
10277
10278 2010-09-03 Naveen H.S <naveen.S@kpitcummins.com>
10279
10280 * config/v850/v850.c (v850_function_value_regno_p): Make static.
10281 Adjust comments. Declare.
10282 (TARGET_FUNCTION_VALUE_REGNO_P): Define.
10283 * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
10284
10285 2010-09-17 Richard Guenther <rguenther@suse.de>
10286
10287 * common.opt (combine): Remove.
10288 * gcc.c (default_compilers): Remove specs testing combine.
10289 The C compilers no longer can combine.
10290 (option_map): Remove -combine.
10291 (display_help): Remove -combine.
10292 (driver_handle_option): Remove OPT_combine handling.
10293 (compile_input_file_p): Remove.
10294 (do_spec): Remove code concerning combine.
10295 (main): Likewise.
10296 * doc/invoke.texi: Remove traces of -combine.
10297 * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
10298
10299 2010-09-17 Richard Guenther <rguenther@suse.de>
10300
10301 PR middle-end/45678
10302 * builtins.c (fold_builtin_memory_op): Always properly adjust
10303 alignment of memory accesses.
10304
10305 2010-09-16 Jan Hubicka <jh@suse.cz>
10306
10307 * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
10308 processing clone.
10309
10310 2010-09-16 H.J. Lu <hongjiu.lu@intel.com>
10311
10312 * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
10313
10314 * config/i386/i386.c (predict_jump): Add prototype.
10315 (flag_opts): Add -m8bit-idiv.
10316 (ix86_split_idivmod): New.
10317
10318 * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
10319 Add 2 splitters for SI/DI mode divide.
10320 (divmod<mode>4_1): New pattern.
10321 (udivmod<mode>4_1): Likewise.
10322 (testdi_ccno_1): Likewise.
10323
10324 * config/i386/i386.opt (m8bit-idiv): New.
10325
10326 * doc/invoke.texi: Document -m8bit-idiv.
10327
10328 2010-09-16 Reza Yazdani <reza.yazdani@amd.com>
10329
10330 PR bootstrap/45680
10331 * config/i386/i386.c (min_insn_size): Moved out of the
10332 ASM_OUTPUT_MAX_SKIP_PAD ifdef.
10333
10334 2010-09-16 Jan Hubicka <jh@suse.cz>
10335
10336 * lto-cgraph.c (lto_output_node): Fix handling of clones.
10337 * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
10338 unreachable clones with reachable clones.
10339 * tree-inline.c (copy_bb): Fix sanity checking when producing
10340 unreachable clone.
10341
10342 2010-09-16 Anatoly Sokolov <aesok@post.ru>
10343
10344 * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
10345 (TARGET_MEMORY_MOVE_COST): Define.
10346 (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
10347
10348 2010-09-16 Alexander Monakov <amonakov@ispras.ru>
10349
10350 * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
10351 maybe_tidy_empty_bb.
10352
10353 Revert:
10354 2010-09-06 Alexander Monakov <amonakov@ispras.ru>
10355 * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
10356
10357 2010-09-16 Joseph Myers <joseph@codesourcery.com>
10358
10359 * target.def (target_option.optimization): New hook.
10360 * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
10361 TARGET_OPTION_OPTIMIZATION hook.
10362 * doc/tm.texi: Regenerate.
10363 * hooks.c (hook_void_int_int): New.
10364 * hooks.h (hook_void_int_int): Declare.
10365 * opts.c: Don't include tm_p.h.
10366 (decode_options): Use targetm.target_option.optimization instead
10367 of OPTIMIZATION_OPTIONS.
10368 * system.h (OPTIMIZATION_OPTIONS): Poison.
10369 * config/arm/arm-protos.h (arm_optimization_options): Remove.
10370 * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
10371 (arm_optimization_options): Rename to arm_option_optimization.
10372 Make static.
10373 * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
10374 * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
10375 (cris_option_optimization): New.
10376 * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
10377 * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
10378 (crx_option_optimization): New.
10379 * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
10380 * config/frv/frv-protos.h (frv_optimization_options): Remove.
10381 * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
10382 (frv_optimization_options): Rename to frv_option_optimization.
10383 Make static.
10384 * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
10385 * config/h8300/h8300.c (h8300_option_optimization): New.
10386 (TARGET_OPTION_OPTIMIZATION): Define.
10387 * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
10388 * config/i386/i386-protos.h (optimization_options): Remove.
10389 * config/i386/i386.c (optimization_options): Rename to
10390 ix86_option_optimization. Make static.
10391 (TARGET_OPTION_OPTIMIZATION): Define.
10392 * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
10393 * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
10394 * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
10395 (ia64_optimization_options): Rename to ia64_option_optimization.
10396 Make static. Call SUBTARGET_OPTIMIZATION_OPTIONS.
10397 * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove. Remove
10398 commented-out definition.
10399 * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
10400 instead of OPTIMIZATION_OPTIONS.
10401 * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
10402 (m32r_option_optimization): New.
10403 * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
10404 * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
10405 Remove.
10406 * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
10407 (mcore_option_optimization): New.
10408 * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
10409 * config/mep/mep-protos.h (mep_optimization_options): Remove.
10410 * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
10411 (mep_optimization_options): Rename to mep_option_optimization.
10412 Make static. Take unused level and size parameters.
10413 * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
10414 * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
10415 (mmix_option_optimization): New.
10416 * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
10417 * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
10418 (pdp11_option_optimization): New.
10419 * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
10420 * config/rs6000/rs6000-protos.h (optimization_options): Remove.
10421 * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
10422 (optimization_options): Rename to rs6000_option_optimization.
10423 Make static.
10424 * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
10425 * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
10426 * config/rx/rx.c (rx_set_optimization_options): Rename to
10427 rx_option_optimization. Make static. Take unused level and size
10428 parameters.
10429 (TARGET_OPTION_OPTIMIZATION): Define.
10430 * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
10431 * config/s390/s390-protos.h (optimization_options): Remove.
10432 * config/s390/s390.c (optimization_options): Rename to
10433 s390_option_optimization. Make static. Don't mark size parameter
10434 unused.
10435 (TARGET_OPTION_OPTIMIZATION): Define.
10436 * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
10437 * config/sh/sh-protos.h (sh_optimization_options): Remove.
10438 * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
10439 (sh_optimization_options): Rename to sh_option_optimization. Make
10440 static. Don't mark parameters unused.
10441 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
10442 * config/spu/spu-protos.h (spu_optimization_options): Remove.
10443 * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
10444 (spu_optimization_options): Rename to spu_option_optimization.
10445 Make static.
10446 * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
10447 * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
10448 (v850_option_optimization): New.
10449 * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
10450 * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
10451 (xtensa_option_optimization): New.
10452 * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
10453
10454 2010-09-16 Joseph Myers <joseph@codesourcery.com>
10455
10456 * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
10457 (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
10458 * doc/tm.texi: Regenerate.
10459 * system.h (OVERRIDE_OPTIONS): Poison.
10460 * target.def (override): Default to hook_void_void.
10461 * targhooks.c (default_target_option_override): Remove.
10462 * genmodes.c, machmode.def: Update comments mentioning
10463 OVERRIDE_OPTIONS.
10464 * config/alpha/alpha-modes.def: Update comment mentioning
10465 alpha_override_options.
10466 * config/alpha/alpha-protos.h (override_options): Remove.
10467 * config/alpha/alpha.c (override_options): Rename to
10468 alpha_option_override. Call SUBTARGET_OVERRIDE_OPTIONS. Make static.
10469 (TARGET_OPTION_OVERRIDE): Define.
10470 * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
10471 * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
10472 of OVERRIDE_OPTIONS.
10473 * config/arc/arc-protos.h (arc_init): Remove.
10474 * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
10475 (arc_init): Rename to arc_option_override. Make static.
10476 * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
10477 (OVERRIDE_OPTIONS): Remove.
10478 * config/arm/arm-protos.h (arm_override_options): Remove.
10479 * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
10480 (arm_override_options): Rename to arm_option_override. Make
10481 static. Call SUBTARGET_OVERRIDE_OPTIONS.
10482 * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
10483 * config/arm/arm.md: Update comment referring to arm_override_options.
10484 * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
10485 instead of OVERRIDE_OPTIONS.
10486 * config/avr/avr-protos.h (avr_override_options): Remove.
10487 * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
10488 (avr_override_options): Rename to avr_option_override. Make static.
10489 * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
10490 * config/bfin/bfin-protos.h (override_options): Remove (twice).
10491 * config/bfin/bfin.c (override_options): Rename to
10492 bfin_option_override. Make static.
10493 (TARGET_OPTION_OVERRIDE): Define.
10494 * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
10495 * config/cris/cris-protos.h (cris_override_options): Remove.
10496 * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
10497 (cris_override_options): Rename to cris_option_override. Make static.
10498 * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
10499 * config/frv/frv-protos.h (frv_override_options): Remove.
10500 * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
10501 (frv_override_options): Rename to frv_option_override. Make static.
10502 * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
10503 * config/h8300/h8300-protos.h (h8300_init_once): Remove.
10504 * config/h8300/h8300.c (h8300_init_once): Rename to
10505 h8300_option_override. Make static.
10506 (TARGET_OPTION_OVERRIDE): Define.
10507 * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
10508 * config/i386/i386-protos.h (override_options): Remove.
10509 * config/i386/i386.c (override_options): Rename to
10510 ix86_option_override_internal. Make static. Comments referring
10511 to this function and callers changed.
10512 (ix86_option_override): New.
10513 (TARGET_OPTION_OVERRIDE): Define.
10514 * config/i386/i386.h (OVERRIDE_OPTION): Remove.
10515 * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
10516 * config/ia64/ia64.c (ia64_file_start): Update comment referring
10517 to ia64_override_options.
10518 * config/iq2000/iq2000-protos.h (override_options): Remove.
10519 * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
10520 (override_options): Rename to iq2000_option_override. Make static.
10521 * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
10522 * config/lm32/lm32-protos.h (lm32_override_options): Remove.
10523 * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
10524 (lm32_override_options): Rename to lm32_option_override. Make static.
10525 * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
10526 * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
10527 (m32r_option_override): New.
10528 (m32r_init): Update comment.
10529 * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
10530 * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
10531 * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
10532 (m68hc11_override_options): Rename to m68hc11_option_override.
10533 Make static. Return void.
10534 * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
10535 * config/m68k/m68k-protos.h (override_options): Remove.
10536 * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
10537 (override_options): Rename to m68k_option_override. Make static.
10538 * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
10539 * config/mcore/mcore-protos.h (mcore_override_options): Remove.
10540 * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
10541 (mcore_override_options): Rename to mcore_option_override. Make
10542 static.
10543 * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
10544 * config/mep/mep-protos.h (mep_override_options): Remove.
10545 * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
10546 (mep_override_options): Rename to mep_option_override. Make static.
10547 * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
10548 * config/mmix/mmix-protos.h (mmix_override_options): Remove.
10549 * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
10550 (mmix_override_options): Rename to mmix_option_override. Make static.
10551 * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
10552 * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
10553 * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
10554 (mn10300_override_options): Rename to mn10300_option_override.
10555 Make static.
10556 * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
10557 * config/moxie/moxie-protos.h (moxie_override_options): Remove.
10558 * config/moxie/moxie.c (moxie_override_options): Rename to
10559 moxie_option_override. Make static.
10560 (TARGET_OPTION_OVERRIDE): Define.
10561 * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
10562 * config/picochip/picochip-protos.h (picochip_override_options):
10563 Remove. Update comment referring to picochip_override_options.
10564 * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
10565 (picochip_override_options): Rename to picochip_option_override.
10566 Make static. Update comment and definition of
10567 TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
10568 * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
10569 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
10570 * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
10571 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
10572 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
10573 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
10574 * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
10575 instead of OVERRIDE_OPTIONS.
10576 * config/rs6000/rs6000-modes.def: Update comment referring to
10577 rs6000_override_options.
10578 * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
10579 * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
10580 (rs6000_override_options): Rename to
10581 rs6000_option_override_internal. Make static. Commented
10582 referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
10583 (rs6000_option_override): New.
10584 * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
10585 instead of OVERRIDE_OPTIONS.
10586 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
10587 * config/s390/s390-protos.h (override_options): Remove.
10588 * config/s390/s390.c (override_options): Rename to
10589 s390_option_override. Make static.
10590 (TARGET_OPTION_OVERRIDE): Define.
10591 * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
10592 * config/score/score-protos.h (score_override_options): Remove.
10593 * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
10594 (score_override_options): Rename to score_option_override. Make
10595 static.
10596 * config/score/score.h (OVERRIDE_OPTIONS): Remove.
10597 Update comment referring to override_options.
10598 * config/score/score3.c (score3_override_options): Rename to
10599 score3_option_override.
10600 * config/score/score3.h (score3_override_options): Rename to
10601 score3_option_override.
10602 * config/score/score7.c (score7_override_options): Rename to
10603 score7_option_override.
10604 * config/score/score7.h (score7_override_options): Rename to
10605 score7_option_override.
10606 * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
10607 * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
10608 (sparc_override_options): Rename to sparc_option_override. Make
10609 static. Call SUBTARGET_OVERRIDE_OPTIONS.
10610 * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
10611 * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
10612 instead of OVERRIDE_OPTIONS.
10613 * config/spu/spu-protos.h (spu_override_options): Remove.
10614 * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
10615 (spu_override_options): Rename to spu_option_override. Make
10616 static.
10617 * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
10618 * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
10619 OVERRIDE_OPTIONS.
10620 * config/vax/vax-protos.h (override_options): Remove.
10621 * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
10622 (override_options): Rename to vax_option_override. Make static.
10623 Call SUBTARGET_OVERRIDE_OPTIONS.
10624 * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
10625 * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
10626 * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
10627 * config/xtensa/xtensa-protos.h (override_options): Remove.
10628 * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
10629 (override_options): Rename to xtensa_option_override. Make static.
10630 * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
10631
10632 2010-09-16 Richard Guenther <rguenther@suse.de>
10633
10634 PR tree-optimization/45623
10635 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
10636 (get_constraint_for_component_ref): If computing a constraint
10637 for the rhs handle type punning through unions.
10638 (get_constraint_for_address_of): Adjust.
10639 (get_constraint_for_1): Likewise.
10640 (get_constraint_for): Likewise.
10641 (get_constraint_for_rhs): New function.
10642 (do_structure_copy): Adjust.
10643 (make_constraint_to): Likewise.
10644 (handle_const_call): Likewise.
10645 (find_func_aliases): Likewise.
10646 (process_ipa_clobber): Likewise.
10647 (create_variable_info_for): Likewise.
10648
10649 2010-09-16 Ira Rosen <irar@il.ibm.com>
10650
10651 * tree-vectorizer.c: Fix documentation.
10652 * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
10653 (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
10654 is_pattern_stmt_p, is_loop_header_bb_p,
10655 stmt_vinfo_set_inside_of_loop_cost,
10656 stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
10657 known_alignment_for_access_p): Likewise.
10658 * tree-vect-loop.c: Fix documentation.
10659 (vect_get_cost): Start function name from new line.
10660 * tree-vect-data-refs.c: Fix documentation.
10661 * tree-vect_stmts.c: Likewise.
10662 (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
10663 (vectorizable_store): Free vec_oprnds if allocated.
10664 (vectorizable_condition): Initialize several variables to avoid
10665 warnings.
10666 * tree-vect-slp.c: Fix documentation.
10667
10668 2010-09-16 Richard Guenther <rguenther@suse.de>
10669
10670 * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
10671 is TS_TRANSLATION_UNIT_DECL.
10672 (initialize_tree_contains_struct): Adjust.
10673 (all_translation_units): New global vector.
10674 (build_translation_unit_decl): New function.
10675 * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
10676 (struct tree_translation_unit_decl): New.
10677 (all_translation_units): Declare.
10678 (union tree_node): Add translation_unit_decl member.
10679 (build_translation_unit_decl): Declare.
10680 * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
10681 * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
10682 New function.
10683 (pack_value_fields): Call it.
10684 (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
10685 (lto_output_ts_translation_unit_decl_tree_pointers): New function.
10686 (lto_output_tree_pointers): Call it.
10687 * lto-streamer-in.c (lto_input_tree_ref): Handle references
10688 to TRANSLATION_UNIT_DECL.
10689 (unpack_ts_translation_unit_decl_value_fields): New function.
10690 (unpack_value_fields): Call it.
10691 (lto_input_ts_translation_unit_decl_tree_pointers): New function.
10692 (lto_input_tree_pointers): Call it.
10693 * lto-streamer.c (check_handled_ts_structures): Adjust.
10694 * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
10695 * c-decl.c (all_translation_units): Remove.
10696 (pop_scope): Use build_translation_unit_decl.
10697 (collect_all_refs): Adjust.
10698 (for_each_global_decl): Likewise.
10699 (c_write_global_declarations): Likewise.
10700
10701 2010-09-16 Jakub Jelinek <jakub@redhat.com>
10702
10703 PR bootstrap/45686
10704 * fold-const.c (fold_checksum_tree): Change slot from const void **
10705 to void **, use CONST_CAST_TREE to store into *slot.
10706
10707 2010-09-16 Uros Bizjak <ubizjak@gmail.com>
10708
10709 * config/i386/i386.md: Remove unneeded empty conditions and
10710 preparation statements from expanders.
10711 * config/i386/mmx.md: Ditto.
10712 * config/i386/sse.md: Ditto.
10713
10714 2010-09-16 Uros Bizjak <ubizjak@gmail.com>
10715
10716 * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
10717
10718 2010-09-15 Eric Botcazou <ebotcazou@adacore.com>
10719
10720 PR rtl-optimization/45593
10721 * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
10722 insns that were in delay slots as stand-alone insns.
10723
10724 2010-09-15 Ian Lance Taylor <iant@google.com>
10725
10726 * incpath.c (remove_duplicates): If name is not a directory, issue
10727 a warning rather than an error.
10728
10729 2010-09-15 Martin Jambor <mjambor@suse.cz>
10730
10731 PR middle-end/45644
10732 * tree-sra.c (create_access): Check for bit-fields directly.
10733
10734 2010-09-15 Jakub Jelinek <jakub@redhat.com>
10735
10736 PR tree-optimization/45633
10737 * tree-cfg.c (verify_gimple_assign_binary): Allow
10738 MINUS_EXPR with lhs and rhs1 pointer vector and
10739 rhs2 sizetype vector.
10740 * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
10741 or vector pointer use TER to optimize pointer subtraction.
10742
10743 2010-09-15 Jie Zhang <jie@codesourcery.com>
10744
10745 * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
10746 fcmpd to fcmps.
10747
10748 2010-09-15 Ian Lance Taylor <iant@google.com>
10749
10750 * config/i386/i386.md (truncxf<mode>2): Fix indentation.
10751
10752 2010-09-15 Ian Lance Taylor <iant@google.com>
10753
10754 * function.c (get_arg_pointer_save_area): Set
10755 arg_pointer_save_area_init to true.
10756
10757 2010-09-15 Martin Jambor <mjambor@suse.cz>
10758
10759 * tree-sra.c (generate_subtree_copies): Updated comment.
10760 (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
10761 obtained from the statement iterator instead.
10762 (load_assign_lhs_subreplacements): Removed parameters lhs and
10763 right_offset, which is obtained from top_racc instead. Parameter lacc
10764 is now expected to be the root of the processed tree rather than root's
10765 first child. Updated all callers.
10766
10767 2010-09-15 Joseph Myers <joseph@codesourcery.com>
10768
10769 * config/pdp11/pdp11.c (register_move_cost): Rename to
10770 pdp11_register_move_cost.
10771 * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
10772 pdp11_register_move_cost.
10773 * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
10774 pdp11_register_move_cost instead of register_move_cost.
10775
10776 2010-09-15 Tejas Belagod <tejas.belagod@arm.com>
10777
10778 * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
10779 pattern for vmovn. Expansion in case of non
10780 -mvectorize-with-neon-quad.
10781 (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
10782 non- -mvectorize-with-neon-quad case.
10783 (move_lo_quad_<mode>): New expansion to vmov into low part.
10784 (move_hi_quad_<mode>): New expansion to vmov into high part.
10785 (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
10786 (move_lo_quad_v4sf): Likewise.
10787 (move_lo_quad_v8hi): Likewise.
10788 (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
10789 low part.
10790 (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
10791 high part.
10792 * config/arm/iterators.md (ANY128): New mode iterator.
10793 (V_narrow_pack): New mode attribute.
10794 (V_HALF): Add attribute.
10795 (V_DOUBLE): Add attribute.
10796 (V_mode_nunits): Add attribute.
10797
10798 2010-09-15 Eric Botcazou <ebotcazou@adacore.com>
10799
10800 * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
10801 is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
10802
10803 2010-09-15 Olivier Hainque <hainque@adacore.com>
10804 Jose Ruiz <ruiz@adacore.com>
10805
10806 * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
10807 * config/alpha/osf5-unwind.h: New file.
10808
10809 2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
10810
10811 PR bootstrap/45672
10812 * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
10813 * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
10814 * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
10815
10816 2010-09-15 Laurynas Biveinis <laurynas.biveinis@gmail.com>
10817
10818 * c-lang.h (struct lang_type): Add variable_size GTY option.
10819
10820 2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
10821
10822 PR bootstrap/45672
10823 * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
10824
10825 2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
10826
10827 * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
10828 result isn't used in memory address.
10829
10830 2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
10831
10832 * defaults.h (UNITS_PER_SIMD_WORD): Removed.
10833 * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
10834 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
10835 * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
10836 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
10837 * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
10838
10839 * target.def: Add units_per_simd_word to vectorize.
10840
10841 * targhooks.c (default_units_per_simd_word): New.
10842 * targhooks.h (default_units_per_simd_word): Likewise.
10843 * config/arm/arm.c (arm_units_per_simd_word): Likewise.
10844 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
10845 * config/mips/mips.c (mips_units_per_simd_word): Likewise.
10846 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
10847 * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
10848 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
10849 * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
10850 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
10851
10852 * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
10853 TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
10854
10855 * tree-vect-stmts.c: Don't include "tm_p.h".
10856 (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
10857 with targetm.vectorize.units_per_simd_word.
10858
10859 * system.h (UNITS_PER_SIMD_WORD): Poisoned.
10860
10861 * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
10862
10863 * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
10864 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
10865
10866 * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD. Add
10867 TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
10868
10869 * doc/tm.texi: Regenerated.
10870
10871 2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
10872
10873 * tree-vect-stmts.c: Include "tm_p.h".
10874
10875 * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
10876 out of RTX_CODE.
10877
10878 2010-09-14 Martin Jambor <mjambor@suse.cz>
10879
10880 * tree-sra.c (build_ref_for_offset): Loc made a parameter. Set the
10881 location of generated statement. Changed all callers.
10882 (build_ref_for_model): New parameter loc which used to set location of
10883 all generated expressions. Changed all callers.
10884 (generate_subtree_copies): Likewise.
10885 (init_subtree_with_zero): Likewise.
10886 (sra_modify_expr): Set locations of all generated statements and
10887 expressions to the location the original statement.
10888 (handle_unscalarized_data_in_subtree): Likewise.
10889 (load_assign_lhs_subreplacements): Likewise.
10890 (sra_modify_constructor_assign): Likewise.
10891 (sra_modify_assign): Likewise.
10892
10893 2010-09-14 Eric Botcazou <ebotcazou@adacore.com>
10894
10895 PR target/45277
10896 PR target/45363
10897 PR target/45407
10898 * doc/install.texi (sparc*-*-*): New section.
10899 (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
10900
10901 2010-09-14 Jakub Jelinek <jakub@redhat.com>
10902
10903 PR middle-end/45567
10904 * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
10905 expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
10906 (expand_builtin): Adjust caller.
10907 (expand_builtin_unop): Only use subtarget if it has the right mode.
10908
10909 2010-09-14 Tristan Gingold <gingold@adacore.com>
10910
10911 * configure.ac (plugins): Fix typos.
10912 * configure: Regenerate.
10913
10914 2010-09-14 Jakub Jelinek <jakub@redhat.com>
10915
10916 PR debug/45660
10917 * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
10918 gen_type_die for function/method return type.
10919
10920 2010-09-14 Ira Rosen <irar@il.ibm.com>
10921
10922 PR tree-optimization/45470
10923 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
10924 can throw an exception.
10925 * tree-vect-stmts.c (vectorizable_call): Likewise.
10926
10927 2010-09-14 DJ Delorie <dj@redhat.com>
10928
10929 PR target/44749
10930 * config/mep/mep-protos.h (mep_save_register_info,
10931 mep_reinit_regs, mep_init_regs): Declare.
10932
10933 * config/mep/mep.c: Move all target definitions to the end of the
10934 file to avoid the need for duplicate declarations.
10935 (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
10936 (mep_reorg_erepeat): Remove unused variables.
10937 (mep_expand_builtin): Likewise.
10938
10939 * config/mep/mep-pragma.c: Don't include rtl.h.
10940 (INVALID_REGNUM): New.
10941 (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
10942 functions.
10943 (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
10944 Avoid enum/integer math.
10945
10946 2010-09-13 Joseph Myers <joseph@codesourcery.com>
10947
10948 PR target/44749
10949 * config/mep/t-mep (GTM_H): Add insn-constants.h.
10950 * config/mep/mep.c (mep_conditional_register_usage): Take no
10951 parameters.
10952 * config/mep/mep-protos.h (mep_conditional_register_usage): Update
10953 prototype.
10954 * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
10955 call to mep_conditional_register_usage.
10956
10957 2010-09-13 Eric Botcazou <ebotcazou@adacore.com>
10958
10959 PR debug/43937
10960 * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
10961 the DECL as well.
10962
10963 2010-09-13 Jakub Jelinek <jakub@redhat.com>
10964
10965 PR rtl-optimization/45617
10966 * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
10967 even if low N bits of X aren't known to be zero.
10968
10969 2010-09-13 H.J. Lu <hongjiu.lu@intel.com>
10970
10971 * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
10972
10973 * config/i386/i386.c (initial_ix86_tune_features): Add
10974 X86_TUNE_VECTORIZE_DOUBLE.
10975 (ix86_units_per_simd_word): New.
10976
10977 * config/i386/i386.h (ix86_tune_indices): Add
10978 X86_TUNE_VECTORIZE_DOUBLE.
10979 (TARGET_VECTORIZE_DOUBLE): New.
10980 (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
10981
10982 2010-09-13 Pat Haugen <pthaugen@us.ibm.com>
10983
10984 * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
10985 (new_temp_expr_table): Allocate call_cnt vector.
10986 (free_temp_expr_table): Free it.
10987 (process_replaceable): Add call_cnt parm and set in vector.
10988 (find_replaceable_in_bb): Skip replacement if def/use span a call.
10989 (debug_ter): Dump call_cnt value, remove stderr uses.
10990
10991 2010-09-13 Jan Hubicka <jh@suse.cz>
10992
10993 * tree.c (build_zero_cst): New.
10994 * tree.h (build_zero_cst): Declare.
10995 * tree-ssa-ccp.c (get_constant_value): Accept general operands.
10996 (get_base_constructor): Break out from ...
10997 (fold_const_aggregate_ref): Here; handle empty constructors.
10998
10999 2010-09-13 Marcus Shawcroft <marcus.shawcroft@arm.com>
11000
11001 * config/arm/arm.md: (define_attr "conds"): Update comment.
11002 * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
11003 conds attribute to clob.
11004 (arm_sync_compare_and_swapsi): Likewise.
11005 (arm_sync_compare_and_swap<mode>): Likewise.
11006 (arm_sync_lock_test_and_setsi): Likewise.
11007 (arm_sync_lock_test_and_set<mode>): Likewise.
11008 (arm_sync_new_<sync_optab>si): Likewise.
11009 (arm_sync_new_nandsi): Likewise.
11010 (arm_sync_new_<sync_optab><mode>): Likewise.
11011 (arm_sync_new_nand<mode>): Likewise.
11012 (arm_sync_old_<sync_optab>si): Likewise.
11013 (arm_sync_old_nandsi): Likewise.
11014 (arm_sync_old_<sync_optab><mode>): Likewise.
11015 (arm_sync_old_nand<mode>): Likewise.
11016
11017 2010-09-13 Olivier Hainque <hainque@adacore.com>
11018
11019 * fwprop.c (forward_propagate_and_simplify): Only attach a
11020 REG_EQUAL note to an insn if the destination is a register.
11021 * gcse.c (try_replace_reg): Likewise.
11022
11023 2010-09-13 Richard Guenther <rguenther@suse.de>
11024
11025 PR tree-optimization/45611
11026 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
11027 (copy_ref_info): Likewise.
11028
11029 2010-09-13 Alexandre Oliva <aoliva@redhat.com>
11030
11031 PR debug/45604
11032 PR debug/45419
11033 PR debug/45408
11034 * tree-pretty-print.c (dump_generic_node): Disregard top-level
11035 types of MEM_REF pointer types to the same type.
11036
11037 2010-09-13 Hans-Peter Nilsson <hp@axis.com>
11038
11039 PR rtl-optimization/41087
11040 * ifcvt.c (noce_get_condition): Don't allow conditions with
11041 side-effects.
11042
11043 2010-09-12 Anatoly Sokolov <aesok@post.ru>
11044
11045 * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
11046 * config/frv/frv-protos.h (frv_register_move_cost): Remove.
11047 * config/frv/frv.c (frv_register_move_cost): Make static. Change
11048 arguments type to reg_class_t. Add mode argument.
11049 (frv_memory_move_cost): New.
11050 (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
11051
11052 2010-09-12 Bernd Schmidt <bernds@codesourcery.com>
11053
11054 * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
11055 arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
11056
11057 2010-09-10 Jan Hubicka <jh@suse.cz>
11058
11059 * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
11060
11061 2010-09-10 Richard Guenther <rguenther@suse.de>
11062
11063 * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
11064 * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
11065 * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
11066 not stream TYPE_DEBUG_REPRESENTATION_TYPE.
11067 * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
11068
11069 2010-09-10 Richard Guenther <rguenther@suse.de>
11070
11071 * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
11072 for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
11073 * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
11074 using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
11075
11076 2010-09-10 H.J. Lu <hongjiu.lu@intel.com>
11077
11078 PR middle-end/45634
11079 * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
11080 of string folding is of integral type.
11081
11082 2010-09-10 Ryan Mansfield <rmansfield@qnx.com>
11083
11084 * doc/invoke.texi (-x): Fix typo.
11085
11086 2010-09-10 Richard Guenther <rguenther@suse.de>
11087
11088 PR debug/44115
11089 * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
11090 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
11091 Output DECL_DEBUG_EXPR.
11092 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
11093 Input DECL_DEBUG_EXPR.
11094
11095 2010-09-10 Richard Guenther <rguenther@suse.de>
11096
11097 * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
11098 (build_index_type): Implement in terms of build_range_type.
11099 (build_range_type): Do not allow NULL_TREE type, improve
11100 hashing to cover more cases. Set TYPE_STRUCTURAL_EQUALITY_P
11101 if we didn't hash.
11102 * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
11103 create a distinct copy of the type.
11104
11105 2010-09-10 Kai Tietz <kai.tietz@onevision.com>
11106
11107 * configure: Regenerated.
11108 * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
11109
11110 2010-09-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11111
11112 * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
11113 * config/arm/cortex-a9-neon.md: New and partially generated.
11114 * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
11115
11116 2010-09-10 Richard Guenther <rguenther@suse.de>
11117
11118 * tree.h (build_index_2_type): Remove.
11119 * tree.c (build_index_2_type): Remove.
11120
11121 2010-09-10 Jakub Jelinek <jakub@redhat.com>
11122
11123 PR bootstrap/45630
11124 * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
11125 HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
11126 (implicit_ptr_descriptor): Return NULL if dwarf_strict.
11127
11128 2010-09-10 Martin Jambor <mjambor@suse.cz>
11129
11130 PR tree-optimization/44972
11131 * tree-sra.c: Include toplev.h.
11132 (build_ref_for_offset): Entirely reimplemented.
11133 (build_ref_for_model): New function.
11134 (build_user_friendly_ref_for_offset): New function.
11135 (analyze_access_subtree): Removed build_ref_for_offset check.
11136 (propagate_subaccesses_across_link): Likewise.
11137 (create_artificial_child_access): Use
11138 build_user_friendly_ref_for_offset.
11139 (propagate_subaccesses_across_link): Likewise.
11140 (ref_expr_for_all_replacements_p): Removed.
11141 (generate_subtree_copies): Updated comment. Use build_ref_for_model.
11142 (sra_modify_expr): Use build_ref_for_model.
11143 (load_assign_lhs_subreplacements): Likewise.
11144 (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
11145 checks for return values of build_ref_for_offset.
11146 * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
11147 build_ref_for_offset.
11148 * ipa-prop.h: Include gimple.h
11149 * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
11150 (ipa_analyze_indirect_call_uses): Update comment.
11151 * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
11152 (IPA_PROP_H): Likewise.
11153
11154 2010-09-10 Martin Jambor <mjambor@suse.cz>
11155
11156 PR tree-optimization/44972
11157 * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
11158 calling build_ref_for_offset.
11159
11160 2010-09-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11161
11162 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
11163 * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
11164 * config/arm/arm-tune.md: Regenerate.
11165 * doc/invoke.texi (ARM Options): Document it.
11166
11167 2010-09-09 Reza Yazdani <reza.yazdani@amd.com>
11168
11169 * config/i386/i386.c: Include sched-int.h.
11170 (TARGET_SCHED_DISPATCH): Defined.
11171 (TARGET_SCHED_DISPATCH_DO): Defined.
11172 (DISPATCH_WINDOW_SIZE): Defined.
11173 (MAX_DISPATCH_WINDOWS): Defined.
11174 (MAX_INSN): Defined.
11175 (MAX_IMM): Defined.
11176 (MAX_IMM_SIZE): Defined.
11177 (MAX_IMM_32): Defined.
11178 (MAX_IMM_64): Defined.
11179 (MAX_LOAD): Defined.
11180 (MAX_STORE): Defined.
11181 (BIG): Defined.
11182 (dispatch_group): New.
11183 (num_allowable_groups): New.
11184 (group_name): New.
11185 (sched_insn_info_s): New.
11186 (dispatch_windows_s): New.
11187 (imm_info_s): New.
11188 (dispatch_window_list): New.
11189 (dispatch_window_list1): New.
11190 (get_mem_group): New.
11191 (is_cmp): New.
11192 (dispatch_violation): New.
11193 (is_branch): New.
11194 (is_prefetch): New.
11195 (init_window): New.
11196 (allocate_window): New.
11197 (init_dispatch_sched): New.
11198 (is_end_basic_block): New.
11199 (process_end_window): New.
11200 (allocate_next_window): New.
11201 (find_constant_1): New.
11202 (find_constant): New.
11203 (get_num_immediates): New.
11204 (has_immediate): New.
11205 (get_insn_path): New.
11206 (get_insn_group): New.
11207 (count_num_restricted): New.
11208 (fits_dispatch_window): New.
11209 (add_insn_window): New.
11210 (add_to_dispatch_window): New.
11211 (debug_dispatch_window_file): New.
11212 (debug_dispatch_window): New.
11213 (debug_insn_dispatch_info_file): New.
11214 (debug_ready_dispatch): New.
11215 (do_dispatch): New.
11216 (has_dispatch): New.
11217 * config/i386/i386.h (debug_ready_dispatch): Declared.
11218 (debug_dispatch_window): Declared.
11219 * config/i386/i386.opt (mdispatch-scheduler): New flag.
11220 * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
11221 (TARGET_SCHED_DISPATCH_DO): New.
11222 * doc/tm.texi: Regererated.
11223 * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
11224 ready_remove_first_dispatch
11225 (schedule_block): Call targetm.sched.dispatch and
11226 targetm.sched.dispatch_do.
11227 (sched_init): Call targetm.sched.dispatch and
11228 targetm.sched.dispatch_do.
11229 (ready_remove_first_dispatch): New.
11230 (number_in_ready): New.
11231 (get_ready_element): New.
11232 * hooks.c (hook_bool_rtx_int_false): New.
11233 (hook_void_rtx_int): New.
11234 * hooks.h (hook_bool_rtx_int_false): Declared.
11235 (hook_void_rtx_int): Declared.
11236 * sched-int.h (IS_DISPATCH_ON): Defined.
11237 (IS_CMP): Defined.
11238 (DISPATCH_VIOLATION): Defined.
11239 (FITS_DISPATCH_WINDOW): Defined.
11240 (DISPATCH_INIT): Defined.
11241 (ADD_TO_DISPATCH_WINDOW): Defined.
11242 (get_ready_element): Declared.
11243 (number_in_ready): Declared.
11244 * target.def (dispatch): Defined.
11245 (dispatch_do): Defined.
11246
11247 2010-09-09 Vladimir Makarov <vmakarov@redhat.com>
11248
11249 PR middle-end/45312
11250 * reload1.c (merge_assigned_reloads): Remove.
11251 (reload_as_needed): Don't call it.
11252
11253 2010-09-09 Anatoly Sokolov <aesok@post.ru>
11254
11255 * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
11256 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11257 * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
11258
11259 2010-09-09 Matthias Klose <doko@ubuntu.com>
11260
11261 PR bootstrap/43847
11262 * configure.ac (--enable-plugin): Enhance for cross builds.
11263 * configure: Regenerate.
11264
11265 2010-09-09 Jan Hubicka <jh@suse.cz>
11266
11267 PR tree-optimization/45598
11268 * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
11269 string folding is of integral type.
11270
11271 2010-09-09 Nathan Sidwell <nathan@codesourcery.com>
11272
11273 * configure.ac (gnu_indirect_function): New test.
11274 * configure: Rebuilt.
11275 * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
11276 * defaults.h (IFUNC_ASM_TYPE): Provide default.
11277
11278 * doc/extend.texi (Function Attributes): Document ifunc.
11279 * varasm.c (do_assemble_alias): Deal with ifuncs too.
11280
11281 2010-09-09 Hariharan Sandanagobalane <hariharan@picochip.com>
11282
11283 * config/picochip/picochip.c (picochip_reorg): Check for note_p for
11284 epilogue instruction move.
11285
11286 2010-09-09 Jan Hubicka <jh@suse.cz>
11287
11288 * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
11289 command line to allow more partitions than input files.
11290
11291 2010-09-09 Vladimir Makarov <vmakarov@redhat.com>
11292
11293 PR middle-end/44554
11294 * ira.c (ira): Switch off sharing spill slots if setjmp is called.
11295
11296 2010-09-09 Vladimir Makarov <vmakarov@redhat.com>
11297
11298 PR middle-end/40386
11299 * ira.c (pseudo_for_reload_consideration_p): Don't use
11300 flag_ira_share_spill_slots.
11301
11302 2010-09-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11303
11304 * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
11305 point zero operands that fit into a single GPR.
11306 (s390_preferred_reload_class): Ensure we only return general-purpose
11307 register classes.
11308 * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
11309 floating-point zero operands into GPRs.
11310 ("*mov<mode>_64"): Likewise.
11311 ("mov<mode>"): Likewise using lhi.
11312
11313 2010-09-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11314
11315 * config/s390/s390.c (s390_symref_operand_p): Return false for
11316 literal pool references.
11317 (s390_check_qrst_address): Update caller.
11318
11319 2010-09-09 Uros Bizjak <ubizjak@gmail.com>
11320
11321 * config/i386/predicates.md (ext_register_operand): Check that
11322 SUBREG_REG is really a register before looking for REGNO.
11323 (reg_not_xmm0_operand): Handle SUBREGs correctly.
11324 (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
11325
11326 2010-09-09 Jakub Jelinek <jakub@redhat.com>
11327
11328 * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
11329 * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
11330 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
11331 * print-rtl.c (print_rtx): Likewise.
11332 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
11333 * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
11334 for ADDR_EXPR with non-addressable object.
11335 * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
11336 (struct dw_val_struct): Add v.val_decl_ref.
11337 (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
11338 Handle DW_OP_GNU_implicit_pointer.
11339 (size_of_loc_descr): Likewise. Fix up DW_OP_call_ref size.
11340 (get_ref_die_offset_label): New function.
11341 (implicit_ptr_descriptor): New function.
11342 (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
11343 (loc_descriptor): Likewise.
11344 (gen_variable_die): Put even definitions into decl_die_table.
11345 (resolve_addr_in_expr): Resolve still unresolved
11346 DW_OP_GNU_implicit_pointer operands, if it can't be resolved
11347 return false.
11348 (dwarf2out_finish): Call output_location_lists after outputting
11349 .debug_info and .debug_abbrev instead of before.
11350
11351 2010-09-09 Roland McGrath <roland@redhat.com>
11352
11353 * dwarf2out.c (DWARF_REF_SIZE): Define.
11354 (size_of_loc_descr): Use it for DW_OP_call_ref.
11355
11356 2010-09-09 Alan Modra <amodra@gmail.com>
11357
11358 * doc/invoke.text: Reinstate mcmodel=medium.
11359 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
11360 CMODEL_MEDIUM as default.
11361 * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
11362 * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
11363 (toc_relative_ok, offsettable_ok_by_alignment): New functions.
11364 (rs6000_emit_move): Reinstate mcmodel=medium optimization.
11365
11366 2010-09-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11367
11368 PR target/45250
11369 * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
11370 hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
11371 (builtin_longjmp): Likewise.
11372 (allocate_stack): Use hard_frame_pointer_rtx instead of
11373 frame_pointer_rtx.
11374 * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
11375 * config/pa/pa.c (pa_internal_arg_pointer): Declare.
11376 (pa_can_eliminate): Likewise.
11377 (TARGET_INTERNAL_ARG_POINTER): Define.
11378 (TARGET_CAN_ELIMINATE): Define.
11379 (hppa_expand_prologue): Use hard frame pointer instead of soft frame
11380 pointer.
11381 (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
11382 (pa_internal_arg_pointer, pa_can_eliminate,
11383 pa_initial_elimination_offset): New.
11384 * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
11385 (HARD_FRAME_POINTER_REGNUM): Set to register three.
11386 (INITIAL_FRAME_POINTER_OFFSET): Delete.
11387 (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
11388 Define.
11389 (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
11390 REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
11391 * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
11392 (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
11393 REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
11394 new soft frame pointer.
11395 * config/pa/pa64-regs.h: Likewise.
11396
11397 2010-09-08 Uros Bizjak <ubizjak@gmail.com>
11398
11399 * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
11400 numerical constant.
11401 (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
11402
11403 2010-09-08 Alexandre Oliva <aoliva@redhat.com>
11404
11405 PR debug/45531
11406 * cfglayout.c (fixup_reorder_chain): Skip debug insns.
11407
11408 2010-09-08 Alexandre Oliva <aoliva@redhat.com>
11409
11410 PR debug/45419
11411 PR debug/45408
11412 * tree-pretty-print.c (dump_generic_node): Disregard top-level
11413 qualifiers in otherwise equal MEM_REF pointer types.
11414 * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
11415 * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
11416
11417 2010-09-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11418
11419 PR target/44392
11420 * config/arm/arm.md (bswapsi2): Handle condition correctly
11421 for armv6 and optimize_size.
11422
11423 2010-09-08 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
11424
11425 PR other/18555
11426 * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
11427
11428 2010-09-08 Uros Bizjak <ubizjak@gmail.com>
11429
11430 * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
11431 symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
11432 ix86_expand_strlen, legitimate_pic_address_disp_p,
11433 ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
11434 ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
11435 ix86_check_movabs, ix86_secondary_memory_needed): Change function
11436 prototype to bool.
11437 * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
11438 return_in_memory_ms_64, ix86_check_movabs,
11439 symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
11440 legitimate_pic_address_disp_p, ix86_binary_operator_ok,
11441 ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
11442 ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
11443 ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
11444 ix86_secondary_memory_needed): Change to bool. Return
11445 "true" and "false" values.
11446 * config/i386/i386.md: Return "true" and "false" values.
11447
11448 2010-09-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11449
11450 * doc/sourcebuild.texi (Effective-Target Keywords): Document
11451 run_expensive_tests.
11452
11453 2010-09-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11454
11455 * toplev.c (output_stack_usage): Use lbasename instead of basename.
11456
11457 2010-09-08 Martin Jambor <mjambor@suse.cz>
11458
11459 PR other/45443
11460 * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
11461 at -O3.
11462
11463 2010-09-08 Richard Guenther <rguenther@suse.de>
11464
11465 * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
11466 (visit): Adjust.
11467 (iterative_hash_gimple_type): Likewise.
11468 (gimple_type_hash): Likewise.
11469 (gimple_register_type): Likewise.
11470 (print_gimple_types_stats): Likewise.
11471 (free_gimple_type_tables): Likewise.
11472
11473 2010-09-08 Michael Matz <matz@suse.de>
11474
11475 PR tree-optimization/43430
11476 * tree-vect-stmts.c (vectorizable_condition): Support multiple
11477 copies for conditional statements if it's not part of a reduction.
11478
11479 2010-09-08 Michael Matz <matz@suse.de>
11480
11481 PR tree-optimization/33244
11482 * tree-ssa-sink.c (statement_sink_location): Don't sink into
11483 empty loop latches.
11484
11485 2010-09-08 Richard Guenther <rguenther@suse.de>
11486
11487 PR tree-optimization/45578
11488 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
11489 Be more careful when transfering alignment information to
11490 the new induction variable.
11491 (copy_ref_info): Likewise.
11492
11493 2010-09-08 Richard Guenther <rguenther@suse.de>
11494
11495 * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
11496 * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
11497
11498 2010-09-08 Arnaud Charlet <charlet@adacore.com>
11499
11500 * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
11501 * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
11502
11503 2010-09-08 Kenneth Zadeck <zadeck@naturalbridge.com>
11504
11505 PR doc/45587
11506 * doc/md.texi: Fixed modes on several standard pattern names.
11507
11508 2010-09-08 Mingjie Xing <mingjie.xing@gmail.com>
11509
11510 * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
11511 (ashl<mode>3): ...this.
11512 (loongson_psra<V_suffix>): Rename to...
11513 (ashr<mode>3): ...this.
11514 (loongson_psrl<V_suffix>): Rename to...
11515 (lshr<mode>3): ...this.
11516 * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
11517 (CODE_FOR_loongson_psllw): Define.
11518 (CODE_FOR_loongson_psrlh): Define.
11519 (CODE_FOR_loongson_psrlw): Define.
11520 (CODE_FOR_loongson_psrah): Define.
11521 (CODE_FOR_loongson_psraw): Define.
11522
11523 2010-09-07 Richard Henderson <rth@redhat.com>
11524
11525 * tree-vect-data-refs.c: Include tm_p.h.
11526 * Makefile.in (tree-vect-data-refs.o): Update deps.
11527 * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
11528 Move delarations outside #ifdef RTX_CODE.
11529
11530 2010-09-07 Richard Henderson <rth@redhat.com>
11531
11532 * final.c (rest_of_handle_final): Unconditionally do
11533 output_function_exception_table before assemble_end_function.
11534
11535 2010-09-07 Jan Hubicka <jh@suse.cz>
11536
11537 * tree-inline.c (tree_inlinable_function_p): Do not test
11538 DECL_REPLACEABLE_P.
11539 * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
11540 update_callee_keys, cgraph_decide_inlining): Test function availability.
11541 * cif-code.def (OVERWRITABLE): New code.
11542
11543 2010-09-07 H.J. Lu <hjl.tools@gmail.com>
11544 Jack Howarth <howarth@bromo.med.uc.edu>
11545
11546 PR target/36502
11547 PR target/42313
11548 PR target/44651
11549 * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
11550 profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
11551 (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
11552 MAX macro.
11553
11554 2010-09-07 H.J. Lu <hongjiu.lu@intel.com>
11555
11556 * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
11557 Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
11558
11559 2010-09-07 H.J. Lu <hongjiu.lu@intel.com>
11560
11561 * config.gcc: Don't append t-android for Android targets.
11562
11563 * config/t-android: Removed.
11564
11565 2010-09-07 Richard Henderson <rth@redhat.com>
11566
11567 * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
11568 * doc/tm.texi.in: Add doc marker.
11569 * doc/tm.texi: Rebuild.
11570 * except.c (switch_to_exception_section): Always build.
11571 (output_one_function_exception_table): Move section switch,
11572 personality output, and label output ...
11573 (output_function_exception_table): ... here. Use the new
11574 personality hook.
11575
11576 * config/ia64/ia64.c (ia64_asm_emit_except_personality,
11577 ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
11578 TARGET_ASM_INIT_SECTIONS): New.
11579 (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
11580 make static.
11581 (TARGET_ASM_UNWIND_EMIT): Update to match.
11582 * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
11583
11584 * config/arm/arm.c (arm_asm_emit_except_personality): New.
11585 (arm_asm_init_sections): New.
11586 (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
11587
11588 2010-09-07 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11589
11590 * config/arm/arm.md: Remove unused variable.
11591
11592 2010-09-07 Anatoly Sokolov <aesok@post.ru>
11593
11594 * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
11595 * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
11596 (m32r_memory_move_cost): New function.
11597
11598 2010-09-07 H.J. Lu <hongjiu.lu@intel.com>
11599
11600 * config.gcc: Append t-android for Android targets.
11601
11602 * config/t-android: New.
11603
11604 2010-09-07 Richard Henderson <rth@redhat.com>
11605
11606 * target.def (unwind_emit_before_insn): New hook.
11607 * doc/tm.texi.in: Add @hook marker for it.
11608 * doc/tm.texi: Rebuild.
11609 * final.c (final_scan_insn): Respect unwind_emit_before_insn.
11610
11611 2010-09-07 Martin Jambor <mjambor@suse.cz>
11612
11613 PR fortran/43665
11614 * ipa-cp.c (ipcp_versionable_function_p): Return false if there
11615 are any type attributes.
11616
11617 2010-09-07 Jan Hubicka <jh@suse.cz>
11618
11619 * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
11620 array_ref_low_bound in string access folding.
11621
11622 2010-09-07 Uros Bizjak <ubizjak@gmail.com>
11623
11624 PR target/45206
11625 * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
11626 eh_return fixup sequence.
11627
11628 2010-09-07 Jan Hubicka <jh@suse.cz>
11629
11630 * gimple-fold.c (maybe_fold_reference): Verify that operand is
11631 gimple_min_invariant.
11632
11633 2010-09-07 Richard Guenther <rguenther@suse.de>
11634
11635 PR middle-end/45569
11636 * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
11637 nor CONSTRUCTOR can trap.
11638 * tree-complex.c (update_complex_assignment): Update EH info.
11639
11640 2010-09-07 Richard Guenther <rguenther@suse.de>
11641
11642 PR middle-end/45569
11643 * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
11644 * passes.c (execute_function_todo): Do not verify anything if
11645 we saw errors.
11646
11647 2010-09-07 Richard Guenther <rguenther@suse.de>
11648
11649 * tree-pretty-print.c (dump_generic_node): Dump void types as void.
11650
11651 2010-09-07 Bernd Schmidt <bernds@codesourcery.com>
11652
11653 PR target/43137
11654 * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
11655 New define_mode_attrs.
11656 * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
11657 arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
11658 (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
11659 (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
11660 Remove pool_range attribute.
11661 (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
11662 arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
11663 pool_range and neg_pool_range attributes.
11664 * config/arm/thumb2.md (thumb2_zero_extendsidi2,
11665 thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
11666 thumb2_extendhidi2, thumb2_extendqidi2): Delete.
11667
11668 2010-09-06 H.J. Lu <hongjiu.lu@intel.com>
11669
11670 * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
11671 check glibc.
11672
11673 2010-09-06 Uros Bizjak <ubizjak@gmail.com>
11674
11675 PR target/22152
11676 * config/i386/mmx.md (*mov<mode>_internal_rex64,
11677 *mov<mode>_internal_avx, *mov<mode>_internal,
11678 *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
11679 *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
11680
11681 2010-09-06 Mark Mitchell <mark@codesourcery.com>
11682
11683 * c-typeck.c (do_warn_double_promotion): Remove.
11684 * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
11685 Objective-C++ too.
11686
11687 2010-09-06 Anatoly Sokolov <aesok@post.ru>
11688
11689 * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
11690 * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
11691 * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
11692 argument type to reg_class_t. Change result type to bool.
11693 (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11694
11695 2010-09-06 Nicola Pero <nicola.pero@meta-innovation.com>
11696
11697 PR libobjc/19850
11698 * gthr-posix.h (__gthread_objc_thread_detach): Use
11699 _objc_thread_attribs when detaching a thread.
11700 * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
11701
11702 2010-09-06 H.J. Lu <hongjiu.lu@intel.com>
11703
11704 PR target/45524
11705 * configure.ac (enable_decimal_float): Set to $default_decimal_float.
11706 * configure: Regenerated.
11707
11708 2010-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11709
11710 * combine.c (try_combine): Set subst_low_luid to i0.
11711
11712 2010-09-06 Richard Guenther <rguenther@suse.de>
11713
11714 * tree.def (MISALIGNED_INDIRECT_REF): Remove.
11715 * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
11716 (build_aligned_type): Declare.
11717 * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
11718 (check_aligned_type): New function.
11719 (build_aligned_type): Likewise.
11720 * expr.c (expand_assignment): Handle misaligned stores via
11721 TARGET_MEM_REF and MEM_REF using movmisalign_optab.
11722 (expand_expr_real_1): Likewise.
11723 (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
11724 * tree-vect-stmts.c (vectorizable_store): Do not build
11725 MISALIGNED_INDIRECT_REF but initialize alignment information.
11726 (vectorizable_load): Likewise.
11727 * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
11728 handling.
11729 * cfgexpand.c (expand_debug_expr): Likewise.
11730 * dwarf2out.c (loc_list_from_tree): Likewise.
11731 * fold-const.c (maybe_lvalue_p): Likewise.
11732 (operand_equal_p): Likewise.
11733 (build_fold_addr_expr_with_type_loc): Likewise.
11734 * gimplify.c (gimplify_addr_expr): Likewise.
11735 (gimplify_expr): Likewise.
11736 * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
11737 (verify_gimple_assign_single): Likewise.
11738 * tree-dump.c (dequeue_and_dump): Likewise.
11739 (tree_could_trap_p): Likewise.
11740 * tree-predcom.c (ref_at_iteration): Likewise.
11741 * tree-pretty-print.c (dump_generic_node): Likewise.
11742 (op_code_prio): Likewise.
11743 (op_symbol_code): Likewise.
11744 * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
11745 * tree-ssa-loop-im.c (for_each_index): Likewise.
11746 (gen_lsm_tmp_name): Likewise.
11747 * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
11748 (find_interesting_uses_address): Likewise.
11749 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
11750 * tree-ssa-operands.c (get_expr_operands): Likewise.
11751 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
11752 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
11753 (ao_ref_init_from_vn_reference): Likewise.
11754 * tree.c (staticp): Likewise.
11755 (build1_stat): Likewise.
11756 (reference_alias_ptr_type): Likewise.
11757 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
11758 * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
11759 MISALIGNED_INDIRECT_REF handling.
11760
11761 2010-09-06 Richard Guenther <rguenther@suse.de>
11762
11763 PR tree-optimization/45534
11764 * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
11765 (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
11766 on the target.
11767 (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
11768 valid on the target.
11769
11770 2010-09-06 Andreas Schwab <schwab@redhat.com>
11771
11772 * configure.ac: Quote argument of AC_MSG_WARN.
11773 * configure: Regenerate.
11774
11775 2010-09-06 Alexander Monakov <amonakov@ispras.ru>
11776
11777 * sel-sched.c (move_cond_jump): Correct arguments to
11778 maybe_tidy_empty_bb.
11779 * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
11780
11781 2010-09-06 Andrey Belevantsev <abel@ispras.ru>
11782
11783 PR rtl-optimization/44919
11784 * sel-sched.c (move_cond_jump): Remove assert, check that
11785 the several blocks case can only happen with mutually exclusive
11786 insns instead. Rewrite the movement code to support moving through
11787 several basic blocks.
11788
11789 2010-09-06 Uros Bizjak <ubizjak@gmail.com>
11790
11791 * config/i386/i386.md (iptrsize): New mode attribute.
11792 (tp_seg): Ditto.
11793 (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
11794 mode iterator.
11795 (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
11796 (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
11797 (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
11798 (stack_tls_protect_set_<mode>): Ditto from
11799 stack_tls_protect_set_{si,di}. Use %@ to output segment register
11800 of thread base pointer load.
11801 (stack_tls_protect_test_<mode>): Ditto from
11802 stack_tls_protect_test_{si,di}. Use %@ to output segment register
11803 of thread base pointer load.
11804 (stack_protect_set): Rewrite using indirect functions.
11805 (stack_protect_test): Ditto.
11806 * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
11807 (ix86_print_operand): Handle '@'.
11808
11809 2010-09-05 Giuseppe Scrivano <gscrivano@gnu.org>
11810
11811 * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
11812 MINUS_EXPR.
11813
11814 2010-09-05 Mark Mitchell <mark@codesourcery.com>
11815
11816 * doc/invoke.texi: Document -Wdouble-promotion.
11817 * c-typeck.c (convert_arguments): Check for implicit conversions
11818 from float to double.
11819 (do_warn_double_promotion): New function.
11820 (build_conditional_expr): Use it.
11821 (build_binary_op): Likewise.
11822
11823 2010-09-05 Richard Guenther <rguenther@suse.de>
11824
11825 PR tree-optimization/45535
11826 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
11827 handle TMR_INDEX2. Make sure TMR_INDEX is not NULL before
11828 dereferencing it.
11829 (indirect_refs_may_alias_p): Likewise.
11830
11831 2010-09-05 Naveen H.S <naveen.S@kpitcummins.com>
11832
11833 * config/sh/sh.c (sh_option_override): Make static.
11834 Adjust comments. Declare.
11835 (sh_function_value_regno_p): Likewise.
11836 (sh_register_move_cost): Modify the arguments, make static.
11837 Adjust comments. Declare.
11838 (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
11839 TARGET_FUNCTION_VALUE_REGNO_P): Define.
11840 * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
11841 REGISTER_MOVE_COST): Delete.
11842 * config/sh/sh-protos.h (sh_override_options): Delete.
11843 (sh_register_move_cost): Delete.
11844 (sh_function_value_regno_p): Delete.
11845
11846 2010-09-04 Anatoly Sokolov <aesok@post.ru>
11847
11848 * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
11849 m32r_function_value_regno_p): New functions.
11850 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
11851 TARGET_FUNCTION_VALUE_REGNO_P): Declare.
11852 * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
11853 FUNCTION_VALUE_REGNO_P): Remove.
11854
11855 2010-09-04 Jan Hubicka <jh@suse.cz>
11856
11857 * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
11858 * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
11859 fold_read_from_constant_string.
11860
11861 * gimple.h (canonicalize_constructor_val): Declare.
11862 * gimple-fold.c (canonicalize_constructor_val): New function.
11863 (get_symbol_constant_value):Use it.
11864 * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
11865
11866 2010-09-04 Jan Hubicka <jh@suse.cz>
11867
11868 * tree-switch-conversion.c (build_one_array): Set constructor to be
11869 static.
11870 * varpool.c (varpool_finalize_decl): Compute const_value_known.
11871
11872 2010-09-04 Richard Guenther <rguenther@suse.de>
11873
11874 PR bootstrap/45519
11875 * tree-flow.h (force_gimple_operand_1): Declare.
11876 (force_gimple_operand_gsi_1): Likewise.
11877 * gimplify.c (force_gimple_operand_1): New worker taking a
11878 gimple predicate for ...
11879 (force_gimple_operand): ... which now wraps it.
11880 (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
11881 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
11882 last change.
11883 * tree-ssa-address.c (gimplify_mem_ref_parts): Use
11884 force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
11885 (create_mem_ref): Likewise.
11886
11887 2010-09-04 Uros Bizjak <ubizjak@gmail.com>
11888
11889 * config/i386/predicates.md (sse_reg_operand): New predicate.
11890 * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
11891 predicate for operand 1.
11892 (XFmode push splitter): Use fp_register_operand predicate
11893 for operand 1.
11894 (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
11895 (SF-DF float_extend push splitter): Add reload_completed insn
11896 predicate.
11897 ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
11898 MODEF mode macro. Add reload_completed insn predicate.
11899
11900 2010-09-04 Paolo Bonzini <bonzini@gnu.org>
11901
11902 * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
11903 (struct df_extract_ref): Remove.
11904 (union df_ref_d): Remove extract_ref member.
11905 (df_ref_create): Remove last three arguments.
11906 (DF_REF_LOC): Remove DF_REF_EXTRACT case.
11907 * df-scan.c (df_ref_record): Remove last three arguments, do not
11908 pass them to df_ref_create_structure.
11909 (df_uses_record): Remove first and last three arguments. Replace
11910 first argument with DF_REF_REGULAR, adjust calls to remove the
11911 width, offset and mode. Always call recursively on the second
11912 and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
11913 (df_ref_create_structure): Remove first argument.
11914 (struct df_scan_problem_data): Remove ref_extract_pool.
11915 (df_scan_free_internal): Do not free it.
11916 (df_scan_alloc): Do not allocate it.
11917 (df_ref_create): Remove last three arguments, do not pass them to
11918 df_ref_create_structure.
11919 (df_free_ref): Remove DF_REF_EXTRACT case.
11920 (df_notes_rescan): Adjust call to df_uses_record.
11921 (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
11922 Remove DF_REF_EXTRACT case.
11923 (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
11924 Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
11925 and SUBREG definitions.
11926 (df_get_conditional_uses): Remove references to width/offset/mode,
11927 adjust call to df_ref_create_structure.
11928 (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
11929 df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
11930 calls to df_uses_record and df_ref_record.
11931 * fwprop.c (update_df): Remove references to width/offset/mode,
11932 adjust call to df_ref_create.
11933
11934 2010-09-03 Jan Hubicka <jh@suse.cz>
11935
11936 * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
11937 (build_cdtor_fns): Update use of build_cdtor.
11938
11939 2010-09-03 Joseph Myers <joseph@codesourcery.com>
11940
11941 * doc/options.texi (SeparateAlias): Document.
11942 * opt-functions.awk (switch_flags): Handle SeparateAlias.
11943 * opth-gen.awk: Generate enumeration names for options marked
11944 SeparateAlias, but not for those marked Ignore.
11945 * opts-common.c (generate_canonical_option): Don't output separate
11946 argument for options marked CL_SEPARATE_ALIAS.
11947 (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
11948 * opts.h (CL_SEPARATE_ALIAS): New.
11949 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
11950 CL_COMMON): Adjust definitions.
11951 * config/i386/darwin.opt, config/mips/sde.opt: New.
11952 * common.opt (fdump-final-insns): New.
11953 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
11954 i386/darwin.opt.
11955 (mips*-sde-elf*): Add mips/sde.opt.
11956 * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
11957 -mno-data-in-code and -mcode-xonly here.
11958 * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
11959 * gcc.c (option_map): Add "j" to --dump entry.
11960 (translate_options): Don't translate -d to -foutput-class-dir= here.
11961
11962 2010-09-03 Sebastian Pop <sebastian.pop@amd.com>
11963
11964 * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
11965 DR_IS_WRITE.
11966 (compute_all_dependences): Same.
11967 (create_rdg_edge_for_ddr): Same.
11968 * tree-data-ref.h (DR_IS_WRITE): New.
11969 (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
11970 * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
11971 (write_memrefs_written_at_least_once): Same.
11972 * tree-predcom.c (suitable_component_p): Same.
11973 (determine_roots_comp): Same.
11974 (execute_load_motion): Same.
11975 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
11976 (vect_enhance_data_refs_alignment): Same.
11977 (vect_analyze_group_access): Same.
11978
11979 2010-09-03 Joern Rennecke <joern.rennecke@embecosm.com>
11980
11981 PR testsuite/42843
11982 * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
11983 (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
11984
11985 2010-09-03 Marcin Baczynski <marbacz@gmail.com>
11986
11987 * dwarf2out.c (file scope): Remove #if0'd code.
11988 (gen_subprogram_die): Same.
11989
11990 2010-09-03 Jakub Jelinek <jakub@redhat.com>
11991
11992 PR middle-end/45484
11993 * dwarf2out.c (flush_queued_reg_saves): Rename to...
11994 (dwarf2out_flush_queued_reg_saves): ... this. No longer static.
11995 (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
11996 * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
11997 * config/i386/i386.c (output_set_got): Call it.
11998
11999 2010-09-03 Michael Matz <matz@suse.de>
12000
12001 PR middle-end/45415
12002 * tree-sra.c (sra_modify_assign): If we modify the statement,
12003 say so.
12004
12005 * tree-ssa.c (verify_ssa): Check number of operands and links
12006 per statement to agree.
12007
12008 2010-09-03 Uros Bizjak <ubizjak@gmail.com>
12009 Iain Sandoe <iains@gcc.gnu.org>
12010
12011 PR target/45476
12012 * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
12013 * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
12014 LIBGCC2_TF_CEXT, TF_SIZE): New defines.
12015
12016 2010-09-03 Richard Guenther <rguenther@suse.de>
12017
12018 * lto-streamer-out.c (output_function): Output function
12019 start and end loci.
12020 * lto-streamer-in.c (input_function): Input function start
12021 and end loci.
12022
12023 2010-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12024
12025 * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
12026 * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
12027 * configure: Regenerate.
12028 * aclocal.m4: Regenerate.
12029
12030 2010-09-03 Jan Hubicka <jh@suse.cz>
12031
12032 PR lto/44812
12033 * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
12034 on functions/variables in other partition.
12035
12036 2010-09-03 Jan Hubicka <jh@suse.cz>
12037
12038 * cgraph.h (struct varpool_node): Add const_value_known.
12039 (varpool_decide_const_value_known): Declare.
12040 * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
12041 * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
12042 (input_varpool_node): Restore const_value_known.
12043 * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
12044 initializer folding.
12045 * ipa.c (ipa_discover_readonly_nonaddressable_var,
12046 function_and_variable_visibility): Compute const_value_known.
12047 * gimple-fold.c (get_symbol_constant_value): Use varpool for
12048 initializer folding.
12049 * varpool.c (varpool_decide_const_value_known): New function.
12050
12051 2010-09-03 Uros Bizjak <ubizjak@gmail.com>
12052
12053 * config/i386/i386.md: Remove empty preparation statements
12054 from splitters.
12055
12056 2010-09-03 Jan Hubicka <jh@suse.cz>
12057
12058 * passes.c (rest_of_decl_compilation): Do not add local vars into
12059 varpool.
12060 * varpool.c (varpool_get_node, varpool_node): Sanity check that only
12061 static or extern vars are in varpool.
12062 (varpool_finalize_decl): Sanity check that only static vars are
12063 finalized.
12064
12065 2010-09-03 Jakub Jelinek <jakub@redhat.com>
12066
12067 PR debug/45500
12068 * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
12069 not just generic vectors with BLKmode.
12070
12071 2010-09-03 Richard Guenther <rguenther@suse.de>
12072
12073 * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
12074 Move TMR_OFFSET to second operand. Add TMR_INDEX2.
12075 * tree.h (TMR_SYMBOL): Remove.
12076 (TMR_BASE, TMR_OFFSET): Adjust.
12077 (TMR_INDEX2): New.
12078 * alias.c (ao_ref_from_mem): Use TMR_BASE.
12079 * builtins.c (get_object_alignment): Merge TMR_BASE and
12080 TMR_SYMBOL handling.
12081 * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
12082 * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
12083 handling. Also allow TARGET_MEM_REF as base address.
12084 (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
12085 * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
12086 base. Gimplify TMR_INDEX2.
12087 * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
12088 * tree-dfa.c (get_ref_base_and_extent): Likewise.
12089 (get_addr_base_and_unit_offset): Likewise.
12090 * tree-eh.c (tree_could_trap_p): Likewise.
12091 * tree-pretty-print.c (dump_generic_node): Likewise.
12092 * tree-ssa-address.c (tree_mem_ref_addr): Simplify. Handle TMR_INDEX2.
12093 (create_mem_ref_raw): Merge symbol and base. Move 2ndary
12094 base to index2.
12095 (get_address_description): Reconstruct addres description
12096 from merged TMR_BASE and TMR_INDEX2.
12097 (maybe_fold_tmr): Fold propagated addresses.
12098 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
12099 MEM_REF and TARGET_MEM_REF paths.
12100 (indirect_refs_may_alias_p): Likewise.
12101 * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
12102 instead of TMR_SYMBOL.
12103 * tree-ssa-operands.c (get_tmr_operands): Simplify.
12104 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
12105 according to changes ...
12106 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
12107 Split TARGET_MEM_REF into two fields plus the base.
12108 * tree.c (mem_ref_offset): Simplify.
12109 * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
12110 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
12111 Strip NOPs when folding MEM_REF addresses.
12112 * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
12113 * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
12114 (fold_gimple_assign): ... not here.
12115
12116 2010-09-03 Mingjie Xing <mingjie.xing@gmail.com>
12117
12118 * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
12119 * config/mips/mips.c (mips_shift_truncation_mask): New function.
12120 (TARGET_SHIFT_TRUNCATION_MASK): Define.
12121
12122 2010-09-02 Richard Henderson <rth@redhat.com>
12123
12124 * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
12125 instead of readelf in the test.
12126 (gcc_cv_as_cfi_sections_directive): Check for correct relocation
12127 in the .debug_frame section for coff targets.
12128 * configure: Rebuild.
12129
12130 2010-09-02 Anatoly Sokolov <aesok@post.ru>
12131
12132 * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
12133 * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
12134 * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
12135 (m32c_class_likely_spilled_p): Make static. Change argument type to
12136 reg_class_t. Change result type to bool.
12137
12138 2010-09-02 Michael Meissner <meissner@linux.vnet.ibm.com>
12139
12140 * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
12141 to convert (double)(long) into a single FRIZ instruction or not
12142 when -ffast-math is used.
12143
12144 * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
12145 (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
12146 or FRIZ instruction if -ffast-math.
12147 * config/rs6000/rs6000.md (friz): Ditto.
12148
12149 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
12150
12151 2010-09-02 Joseph Myers <joseph@codesourcery.com>
12152
12153 * opth-gen.awk (quote, comma): Remove unused variables.
12154
12155 2010-09-02 Ryan Mansfield <rmansfield@qnx.com>
12156
12157 * arm.c (arm_override_options): Correct fall-back code to use
12158 SUBTARGET_CPU_DEFAULT.
12159
12160 2010-09-02 Julian Brown <julian@codesourcery.com>
12161
12162 * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
12163 unspecs.
12164 (vcond<mode>, vcondu<mode>): New expanders.
12165 (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
12166 comparisons with zero.
12167 (neon_vcle<mode>, neon_vclt<mode>): New patterns.
12168 * config/arm/constraints.md (Dz): New constraint.
12169
12170 2010-09-02 Anatoly Sokolov <aesok@post.ru>
12171
12172 * target.def (class_likely_spilled_p): New hook.
12173 * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
12174 * doc/tm.texi: Regenerate.
12175 * targhooks.c (default_class_likely_spilled_p): New function.
12176 * targhooks.h (default_class_likely_spilled_p): Declare.
12177 * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
12178 * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
12179 TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
12180 Use fixed_reg_set instead of fixed_regs.
12181 * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
12182 * calls.c (avoid_likely_spilled_reg): Ditto.
12183 * ira-conflicts.c (ira_build_conflicts): Ditto.
12184 * ira.c (update_equiv_regs): Ditto.
12185 * mode-switching.c (create_pre_exit): Ditto.
12186 * regmove.c (find_matches): Ditto.
12187 (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
12188 * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
12189 (small_register_class_p): New inline function.
12190 (push_secondary_reload, find_reusable_reload, find_reloads): Use
12191 small_register_class_p instead of SMALL_REGISTER_CLASS_P.
12192
12193 * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
12194 * config/i386/i386.c (ix86_class_likely_spilled_p): New.
12195 (TARGET_CLASS_LIKELY_SPILLED_P): Define.
12196
12197 2010-09-02 Richard Guenther <rguenther@suse.de>
12198
12199 PR tree-optimization/44937
12200 PR tree-optimization/45412
12201 * ipa-split.c (split_function): Properly remove PHI nodes.
12202
12203 2010-09-02 Joseph Myers <joseph@codesourcery.com>
12204
12205 * opts.h (struct cl_option): Add warn_message field.
12206 (struct cl_decoded_option): Add warn_message field.
12207 * doc/options.texi (Ignore, Warn): Document.
12208 * opt-functions.awk (needs_state_p): Don't consider aliases or
12209 ignored options to need state saved.
12210 * optc-gen.awk: Handle Warn and Ignore.
12211 * opth-gen.awk: Output OPT_SPECIAL_ignore.
12212 * opts-common.c (decode_cmdline_option): Set warn_message field.
12213 Handle ignored options.
12214 (decode_cmdline_options_to_array, generate_option,
12215 generate_option_input_file): Set warn_message field.
12216 (read_cmdline_option): Generate warnings from warn_message field.
12217 Handle ignored options.
12218 * common.opt (Wunreachable-code, fargument-alias,
12219 fargument-noalias, fargument-noalias-global,
12220 fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
12221 floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
12222 fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
12223 ftree-salias): Mark Ignore.
12224 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
12225 -mintel-syntax and -mno-intel-syntax here.
12226 * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
12227 using Warn.
12228 * opts.c (common_handle_option): Don't handle options marked as
12229 ignored.
12230 (enable_warning_as_error): Handle ignored options.
12231
12232 2010-09-02 Joseph Myers <joseph@codesourcery.com>
12233
12234 PR driver/44076
12235 * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
12236 alias_target fields.
12237 * opt-functions.awk (opt_sanitized_name): Don't handle
12238 finline-limit=, Wlarger-than= and ftemplate-depth= specially.
12239 * optc-gen.awk: Generate alias fields.
12240 * opth-gen.awk: Explicitly give values for OPT_* enum constants.
12241 Don't generate such constants for aliases.
12242 * opts-common.c (generate_canonical_option): New.
12243 (decode_cmdline_option): Handle aliases. Use
12244 generate_canonical_option for known options instead of copying the
12245 input option text.
12246 * doc/options.texi (Alias): Document.
12247 * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
12248 fstack-check, specs): Mark as aliases.
12249 * gcc.c (driver_handle_option): Canonicalize -L options to joined
12250 arguments.
12251 (driver_handle_option): Don't handle OPT_specs.
12252 * opts.c (common_handle_option): Don't handle options marked as
12253 aliases.
12254 (enable_warning_as_error): Handle aliases.
12255 * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
12256 OPT_Wlarger_than_eq.
12257 * tree-optimize.c (tree_rest_of_compilation): Use
12258 OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
12259
12260 2010-09-02 Uros Bizjak <ubizjak@gmail.com>
12261
12262 * config/i386/i386.md (nonmemory_operand): New mode attribute.
12263 (push memory peephole2): Macroize peepholes using SWI mode iterator.
12264 (move immediate to memory peephole2): Macroize peepholes using
12265 SWI124 mode iterator.
12266 (non-pairable NOT peephole2): Macroize peepholes using SWI124
12267 mode iterator.
12268 (simple lea add peephole2): Macroize peepholes using SWI48
12269 mode iterator.
12270 (simple lea mult peephole2): Ditto.
12271 (imul by 3,5,9 to lea peephole2): Ditto.
12272 (mov $-1, reg peephole2): Macroize peepholes using SWI248
12273 mode iterator.
12274 (imul $32bit_imm,mem,reg peephole2): Ditto.
12275 (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
12276
12277 2010-09-02 Ian Bolton <ian.bolton@arm.com>
12278
12279 * tree-ssa-loop-prefetch.c: Fix comment at head of file.
12280
12281 2010-09-02 Olivier Hainque <hainque@adacore.com>
12282
12283 PR middle-end/44763
12284 * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
12285 (allocno_priority_compare_func): Use it instead of a straight
12286 difference computation over priorities.
12287
12288 2010-09-02 Andi Kleen <ak@linux.intel.com>
12289
12290 * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
12291
12292 2010-09-02 Ira Rosen <irar@il.ibm.com>
12293
12294 * tree-vectorizer.h (get_later_stmt): New function.
12295 (vect_analyze_data_ref_dependences): Add argument.
12296 * tree-vect-loop.c (vect_analyze_loop): Update call to
12297 vect_analyze_data_ref_dependences.
12298 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
12299 New function.
12300 (vect_analyze_data_ref_dependence): Add argument for basic block
12301 dependencies. Check dependencies in basic block vectorization.
12302 (vect_analyze_data_ref_dependences): Add argument and update call to
12303 vect_analyze_data_ref_dependences.
12304 * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
12305 (vect_bb_vectorizable_with_dependencies): New.
12306 (vect_slp_analyze_bb): Check dependencies in basic block.
12307 (vect_schedule_slp_instance): Insert stores before the last store in
12308 SLP instance.
12309
12310 2010-09-02 Uros Bizjak <ubizjak@gmail.com>
12311
12312 PR target/45476
12313 * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
12314 LIBGCC2_TF_CEXT, TF_SIZE): New defines.
12315
12316 2010-09-01 Jakub Jelinek <jakub@redhat.com>
12317
12318 PR middle-end/45458
12319 * bb-reorder.c (add_labels_and_missing_jumps): Treat
12320 bbs ending with throwing insns like blocks ending with a call.
12321 (fix_up_fall_thru_edges): Likewise.
12322
12323 2010-09-01 Nathan Froyd <froydnj@codesourcery.com>
12324
12325 * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
12326 (m32c_function_arg_advance): Delete.
12327 * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
12328 * config/m32c/m32c.c (m32c_function_arg): Make static. Adjust
12329 comments. Take a const_tree and a bool. Declare.
12330 (m32c_function_arg_advance): Likewise.
12331 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12332
12333 2010-09-01 Uros Bizjak <ubizjak@gmail.com>
12334
12335 PR target/45476
12336 * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
12337 LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
12338 * config/i386/mingw32.h: ... here.
12339
12340 2010-09-01 Andi Kleen <ak@linux.intel.com>
12341
12342 PR lto/45475
12343 * lto-streamer-in.c (lto_input_ts_target_option): Add.
12344 (lto_input_tree_pointers): Call lto_input_ts_target_option.
12345 * lto-streamer-out (lto_output_ts_target_option): Add.
12346 (lto_output_tree_pointers): Call lto_output_ts_target_option.
12347
12348 2010-09-01 Kai Tietz <kai.tietz@onevision.com>
12349
12350 PR/target 45452
12351 * config/i386/cygwin.h: Change order of specified import libraries.
12352 * config/i386/mingw32.h: Likewise.
12353 * config/i386/t-cygwin: Likewise.
12354 * config/i386/t-mingw32: Likewise.
12355 * config/i386/t-mingw-w32: Likewise.
12356 * config/i386/t-mingw-w64: Likewise.
12357
12358 2010-09-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12359
12360 * config/arm/neon-schedgen.ml (core): New type.
12361 (allCores): List of supported cores.
12362 (availability_table): Add supported cores.
12363 (collate_bypasses): Accept core as a parameter.
12364 (worst_case_latencies_and_bypasses): Accept core as a parameter.
12365 (emit_insn_reservations): Accept core as a parameter. Use tuneStr
12366 and coreStr to get tune attribute and prefix for functional units.
12367 (emit_bypasses): Accept core name and use it.
12368 (calculate_per_core_availability_table): New.
12369 (filter_core): New.
12370 (calculate_core_availability_table): New.
12371 (main): Use calculate_core_availablity_table.
12372 * config/arm/cortex-a8-neon.md: Update copyright year.
12373 Regenerated from ml file and merged in.
12374 (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
12375 cortex_a8_neon_mrc.
12376
12377 2010-09-01 Ian Bolton <ian.bolton@arm.com>
12378
12379 * Makefile.in (tree-switch-conversion.o): Update dependencies.
12380
12381 2010-09-01 Richard Guenther <rguenther@suse.de>
12382
12383 * alias.c (ao_ref_from_mem): Adjust.
12384 * builtins.c (get_object_alignment): Likewise.
12385 * cfgexpand.c (expand_debug_expr): Likewise.
12386 * gimple.c (get_base_address): Likewise.
12387 * tree-dfa.c (get_ref_base_and_extent): Likewise.
12388 (get_addr_base_and_unit_offset): Likewise. Fix for
12389 both TMR_SYMBOL and TMR_BASE being set.
12390 * tree-eh.c (tree_could_trap_p): Likewise.
12391 * gimplify.c (gimplify_expr): Do not attempt to gimplify
12392 TMR_SYMBOL. Always gimplify TMR_BASE.
12393 * tree-cfg.c (verify_types_in_gimple_reference): Verify
12394 TMR_BASE if there is a TMR_SYMBOL.
12395 * tree-pretty-print.c (dump_generic_node): Adjust.
12396 * tree-ssa-address.c (addr_for_mem_ref): Likewise.
12397 (tree_mem_ref_addr): Likewise.
12398 (create_mem_ref_raw): Likewise.
12399 (move_fixed_address_to_symbol): Likewise.
12400 (create_mem_ref): Likewise.
12401 (dump_mem_address): Likewise.
12402 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
12403 Fix for both TMR_SYMBOL and TMR_BASE being set.
12404 (indirect_refs_may_alias_p): Likewise.
12405 * tree-ssa-operands.c (get_tmr_operands): Adjust.
12406 * tree.def (TARGET_MEM_REF): Adjust documentation.
12407
12408 2010-09-01 Uros Bizjak <ubizjak@gmail.com>
12409
12410 * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
12411 Rename from X86_TUNE_ADD_ESP_4.
12412 <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
12413 <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
12414 <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
12415 (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
12416 (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
12417 (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
12418 (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
12419 * config/i386/i386.c (initial_ix86_tune_features)
12420 <X86_TUNE_SINGLE_POP>: Invert members.
12421 <X86_TUNE_DOUBLE_POP>: Ditto.
12422 <X86_TUNE_SINGLE_PUSH>: Ditto.
12423 <X86_TUNE_DOUBLE_PUSH>: Ditto.
12424 * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
12425 No longer exported.
12426 (push peephole2 patterns): Macroize peepholes using P mode iterator.
12427 Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
12428 (pop peephole2 patterns): Macroize peepholes using P mode iterator.
12429 Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
12430
12431 2010-09-01 Eric Botcazou <ebotcazou@adacore.com>
12432
12433 * gimplify.c (gimplify_init_constructor): Do not create a temporary for
12434 a volatile LHS if the constructor has only one element.
12435
12436 2010-09-01 Mikael Pettersson <mikpe@it.uu.se>
12437
12438 PR bootstrap/45321
12439 * tree.c (stdarg_p): Make fntype parameter const.
12440 * tree.h (stdarg_p): Likewise.
12441 (function_args_iterator): Remove unused fntype field.
12442 (function_args_iter_init): Do not initialize fntype
12443 field. Make fntype parameter const.
12444
12445 2010-09-01 Richard Guenther <rguenther@suse.de>
12446
12447 * tree-vrp.c (adjust_range_with_scev): Use number of iteration
12448 estimate.
12449 (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
12450 (execute_vrp): Compute number of iteration estimates.
12451 * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
12452 * tree-flow.h (estimate_numbers_of_iterations): Likewise.
12453 * tree-data-ref.c (estimated_loop_iterations): Adjust.
12454 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
12455 Infer loop bounds from undefined behavior based on a new parameter.
12456 (estimate_numbers_of_iterations): Likewise.
12457 (scev_probably_wraps_p): Adjust.
12458 * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
12459
12460 2010-09-01 Nick Clifton <nickc@redhat.com>
12461
12462 * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
12463 where appropriate.
12464 (xstormy16_legitimate_address_p): Use true and false instead of 1
12465 and 0.
12466 (xstormy16_expand_prologue): Delete unused local variable 'insn'.
12467 (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
12468 magic constant 2.
12469 (xstormy16_expand_call): Fix comment at start of function.
12470
12471 2010-09-01 Nick Clifton <nickc@redhat.com>
12472
12473 * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
12474 when pushing accumulator register.
12475 (rx_get_stack_layout): Always save call clobbered registers inside
12476 interrupt handlers.
12477 * config/rx/rx-modes.def: Fix descriptive comment at start of file.
12478
12479 2010-09-01 Uros Bizjak <ubizjak@gmail.com>
12480
12481 * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
12482 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
12483
12484 * libgcc-std.ver (GCC_4.6.0): Define version.
12485
12486 2010-08-31 Eric Botcazou <ebotcazou@adacore.com>
12487
12488 * tree-nested.c (convert_all_function_calls): Iterate until after the
12489 sum of static chains in the nest doesn't change.
12490
12491 2010-08-31 Anatoly Sokolov <aesok@post.ru>
12492
12493 * config/m32c/m32c.c (classes_intersect): Remove.
12494 (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
12495 reg_classes_intersect_p instead of classes_intersect.
12496 (class_can_hold_mode): Change arguments type from enum reg_class to
12497 reg_class_t. Use reg_class_contents instead of class_contents.
12498 (m32c_register_move_cost): Make static. Change arguments type from
12499 enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
12500 classes_intersect. Use reg_class_contents instead of class_contents.
12501 (m32c_memory_move_cost): Make static. Change arguments type from
12502 enum reg_class to reg_class_t.
12503 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
12504 * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12505 * config/m32c/m32c-protos.h (m32c_register_move_cost,
12506 m32c_memory_move_cost): Remove.
12507
12508 2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
12509
12510 * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
12511 (arm_function_arg): Delete.
12512 (arm_needs_doubleword_align): Take a const_tree.
12513 * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
12514 * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
12515 (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
12516 (arm_function_arg): Make static. Take a const_tree and a bool.
12517 (arm_function_arg_advance): Likewise.
12518 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12519
12520 2010-08-31 Andi Kleen <ak@linux.intel.com>
12521
12522 * common.opt (fwhopr=): Update for -fwhopr=jobserver
12523 * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
12524 * lto-wrapper.c (run_gcc): Add jobserver mode.
12525 * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
12526 argument.
12527
12528 2010-08-31 Uros Bizjak <ubizjak@gmail.com>
12529
12530 * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
12531 (popsi1): Ditto.
12532 (*popdi1_epilogue): Ditto.
12533 (*popsi1_epilogue): Ditto.
12534 (popsi, popdi peephole2 patterns): Update peepholes for changed
12535 pop{si,di}1 and *pop{si,di}1_epilogue patterns.
12536
12537 (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
12538 (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
12539
12540 * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
12541 (override_options): Do not initialize removed ix86_gen_pop1.
12542 (gen_pop): New static function.
12543 (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
12544 (release_scratch_register_on_entry): Ditto.
12545 (ix86_restore_reg_using_pop): Ditto.
12546 (ix86_expand_epilogue): Ditto.
12547
12548 2010-08-31 Jakub Jelinek <jakub@redhat.com>
12549
12550 PR middle-end/45461
12551 * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
12552
12553 2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
12554
12555 * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
12556 semicolons.
12557
12558 2010-08-31 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
12559
12560 * doc/extend.texi: Fix documentation of the return value of
12561 __builtin_choose_expr.
12562
12563 2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
12564
12565 * config/v850/v850-protos.h (function_arg): Delete.
12566 * config/v850/v850.h (FUNCTION_ARG): Delete.
12567 (FUNCTION_ARG_ADVANCE): Move code to...
12568 * config/v850/v850.c (v850_function_arg_advance): ...here.
12569 (v850_function_arg): Make static. Take a const_tree and a bool.
12570 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12571
12572 2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
12573
12574 * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
12575 these...
12576 (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
12577 ...and these...
12578 * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
12579 ..to here..
12580 (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
12581 ...and here.
12582 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12583
12584 2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
12585
12586 * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
12587 Delete.
12588 * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
12589 * config/rx/rx.c (rx_function_arg_size): Make static.
12590 (rx_function_arg): Likewise.
12591 (rx_function_arg_advance): New function.
12592 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12593
12594 2010-08-31 John Tytgat <John.Tytgat@aaug.net>
12595
12596 * config/arm/arm.c (arm_override_options): Remove superfluous test.
12597 Fix indentation.
12598
12599 2010-08-31 Eric Botcazou <ebotcazou@adacore.com>
12600
12601 * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
12602 (dwarf2out_decl) <CONST_DECL>: Likewise.
12603
12604 2010-08-30 Eric Botcazou <ebotcazou@adacore.com>
12605
12606 Stack usage support
12607 * common.opt (-fstack-usage): New option.
12608 * doc/invoke.texi (Debugging options): Document it.
12609 * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
12610 allocate_dynamic_stack_space.
12611 (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
12612 and propagate it to allocate_dynamic_stack_space.
12613 (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
12614 * calls.c (initialize_argument_information): Pass TRUE as 4th
12615 argument to allocate_dynamic_stack_space.
12616 (expand_call): Set current_function_has_unbounded_dynamic_stack_size
12617 to 1 when pushing a variable-sized argument onto the stack. Pass
12618 TRUE as 4th argument to allocate_dynamic_stack_space.
12619 Update current_function_pushed_stack_size.
12620 (emit_library_call_value_1): Likewise.
12621 * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
12622 CANNOT_ACCUMULATE. If flag_stack_usage, look into the size and
12623 attempt to find an upper bound. Remove redundant code for the
12624 SETJMP_VIA_SAVE_AREA case.
12625 * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
12626 * function.h (struct stack_usage): New structure.
12627 (current_function_static_stack_size): New macro.
12628 (current_function_dynamic_stack_size): Likewise.
12629 (current_function_pushed_stack_size): Likewise.
12630 (current_function_dynamic_alloc_count): Likewise.
12631 (current_function_has_unbounded_dynamic_stack_size): Likewise.
12632 (current_function_allocates_dynamic_stack_space): Likewise.
12633 (struct function): Add new field 'su'.
12634 * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
12635 add the value of the dynamic offset to the dynamic stack usage.
12636 (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
12637 for variable-sized objects.
12638 (prepare_function_start): Allocate cfun->su if flag_stack_usage.
12639 (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
12640 * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
12641 BUILT_IN_ALLOCA for variable-sized objects.
12642 * output.h (output_stack_usage): Declare.
12643 * toplev.c (stack_usage_file): New file pointer.
12644 (output_stack_usage): New function.
12645 (open_auxiliary_file): Likewise.
12646 (lang_dependent_init): Open file if flag_stack_usage is set.
12647 (finalize): Close file if stack_usage_file is not null.
12648 * tree.h (ALLOCA_FOR_VAR_P): New macro.
12649 * config/alpha/alpha.c (compute_frame_size): New function.
12650 (alpha_expand_prologue): Use it.
12651 (alpha_start_function): Likewise.
12652 (alpha_expand_epilogue): Likewise. Set stack usage info.
12653 * config/i386/i386.c (ix86_expand_prologue): Likewise.
12654 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
12655 * config/mips/mips.c (mips_expand_prologue): Likewise.
12656 * config/pa/pa.c (hppa_expand_prologue): Likewise.
12657 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
12658 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
12659
12660 2010-08-30 Zdenek Dvorak <ook@ucw.cz>
12661
12662 PR tree-optimization/45427
12663 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
12664 Handle the case that the exit is never taken correctly.
12665 (number_of_iterations_ne): Pass exit_must_be_taken to
12666 number_of_iterations_ne_max.
12667
12668 2010-08-30 Catherine Moore <clm@codesourcery.com>
12669
12670 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
12671 Infer -mdspr2 for the the 74K.
12672
12673 2010-08-30 Jakub Jelinek <jakub@redhat.com>
12674
12675 PR debug/45419
12676 * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
12677
12678 PR middle-end/45423
12679 * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
12680 and TRUTH_{AND,OR,XOR}_EXPR.
12681 * c-parser.c (c_parser_omp_atomic): Handle boolean
12682 {PRE,POST}_{INC,DEC}REMENT.
12683
12684 2010-08-30 Nathan Froyd <froydnj@codesourcery.com>
12685
12686 * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
12687 (function_arg): Delete.
12688 * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
12689 (FUNCTION_INCOMING_ARG): Delete.
12690 * config/xtensa/xtensa.c (function_arg_advance): Rename to...
12691 (xtensa_function_arg_advance): ...this. Make static. Take a const_tree
12692 and a bool.
12693 (function_arg): Rename to...
12694 (xtensa_function_arg_1): ...this. Make static. Take a const_tree and
12695 a bool.
12696 (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
12697 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12698 (TARGET_FUNCTION_INCOMING_ARG): Define.
12699
12700 2010-08-30 Richard Guenther <rguenther@suse.de>
12701
12702 PR tree-optimization/21602
12703 * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
12704 using points-to information.
12705
12706 2010-08-30 H.J. Lu <hongjiu.lu@intel.com>
12707
12708 * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
12709
12710 2010-08-30 Richard Guenther <rguenther@suse.de>
12711
12712 PR tree-optimization/45449
12713 * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
12714 variables.
12715
12716 2010-08-30 Joseph Myers <joseph@codesourcery.com>
12717
12718 * opts.h (CL_ERR_NEGATIVE): Define.
12719 * opts.c (unknown_option_callback): Don't postpone warnings for
12720 options marked with CL_ERR_NEGATIVE.
12721 * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
12722 for negative versions of CL_REJECT_NEGATIVE options.
12723
12724 2010-08-30 Uros Bizjak <ubizjak@gmail.com>
12725
12726 * config/i386/i386.md (zero_extendsidi2_1): Rename from
12727 zero_extendsidi2_32.
12728 (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
12729 using SWI12 mode iterator.
12730 (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
12731 to define_insn_and_split pattern.
12732 (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
12733 using SWI24 mode iterator.
12734 (*zero_extendqi<mode>2_and): Macroize insn from
12735 *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
12736 (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
12737 *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
12738 SWI24 mode iterator.
12739 (*zero_extendqi<mode>2_movzbl): Ditto from
12740 *zero_extendqi{hi,si}2_movzbl.
12741 (extendsidi2_1): Rename from extendsidi2_32.
12742 (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
12743 SWI12 mode iterator.
12744
12745 2010-08-29 Eric Botcazou <ebotcazou@adacore.com>
12746
12747 * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
12748 general purpose registers.
12749 (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
12750 * config/ia64/ia64.md (*movcci): Change to named pattern. Deal
12751 with general purpose registers and memory operands. Add associated
12752 CCImode post-reload splitter.
12753 * config/ia64/div.md: Change BImode to CCImode throughout.
12754
12755 2010-08-28 Eric Botcazou <ebotcazou@adacore.com>
12756
12757 * config/ia64/ia64.md (cstorebi4): Fix thinko.
12758
12759 2010-08-28 Hariharan Sandanagobalane <hariharan@picochip.com>
12760
12761 * config/picochip/picochip.c (reorder_var_tracking_notes): This
12762 function was dropping debug insns which caused PR45299.
12763
12764 2010-08-28 Uros Bizjak <ubizjak@gmail.com>
12765
12766 * config/i386/sse.md (extsuffix): New code attribute.
12767 (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
12768 and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
12769 (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
12770 and sse4_1_zero_extendv4qiv4si2.
12771 (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
12772 and sse4_1_zero_extendv2qiv2di2.
12773 (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
12774 and sse4_1_zero_extendv4hiv4si2.
12775 (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
12776 and sse4_1_zero_extendv2hiv2di2.
12777 (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
12778 and sse4_1_zero_extendv2siv2di2
12779
12780 (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
12781 using any_extend code iterator.
12782 (*avx_<s>mulv8hi3_highpart): Macroize insn from
12783 *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
12784 (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
12785
12786 * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
12787 gen_sse4_1_sign_extend* functions.
12788 (struct builtin_description bdesc_args): Ditto.
12789
12790 2010-08-27 Xinliang David Li <davidxl@google.com>
12791
12792 PR/45422
12793 * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
12794 (iv_ca_set_no_cp): Update used inv expr count.
12795 (iv_ca_set_cp): Ditto.
12796 (iv_ca_new): Initialize new member.
12797 (iv_ca_free): Free memory.
12798
12799 2010-08-27 Nathan Froyd <froydnj@codesourcery.com>
12800
12801 * config/sh/sh-protos.h (sh_function_arg): Delete.
12802 (sh_function_arg_advance): Delete.
12803 * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
12804 (PASS_IN_REG_P): Eliminate cast.
12805 * config/sh/sh.c (sh_function_arg_advance): Make static. Take a
12806 const_tree and a bool.
12807 (sh_function_arg): Likewise.
12808 (sh_output_mi_thunk): Call sh_function_arg_advance) and
12809 sh_function_arg.
12810 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12811
12812 2010-08-27 Naveen H.S <naveen.S@kpitcummins.com>
12813 Kaz Kojima <kkojima@gcc.gnu.org>
12814
12815 * config/sh/sh.c (push_regs): Emit movml for interrupt handler
12816 when possible.
12817 (sh_expand_epilogue): Likewise.
12818 * config/sh/sh.md (movml_push_banked): New insn.
12819 (movml_pop_banked): Likewise.
12820
12821 2010-08-28 Bernd Schmidt <bernds@codesourcery.com>
12822
12823 * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
12824 gen_regexp_oneof, gen_regexp_sequence): Use the string found
12825 in vector element 0 rather than the original string when there's
12826 only one element.
12827 (gen_regexp): Remove extra semicolon.
12828
12829 * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
12830 thumb2_movsf_vfp): Set attribute "insn".
12831 * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
12832 not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
12833 thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
12834 arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
12835 arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
12836 thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
12837 thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
12838 movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
12839 if_not_move, if_shift_move, if_move_shift, if_shift_shift,
12840 if_not_arith, if_arith_not, cond_move_not): Likewise.
12841
12842 2010-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
12843
12844 * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
12845 New declaration.
12846 (rs6000_allocate_stack_temp): Ditto.
12847 (rs6000_expand_convert_si_to_sfdf): Ditto.
12848
12849 * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
12850 line. Update the options set if power6 or power7 server/embedded
12851 type options are used. If we give a warning for no vsx under
12852 -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
12853 (rs6000_allocate_stack_temp): New function to allocate a stack
12854 tempoary and adjust the address so it meets either REG+OFFSET or
12855 REG+REG addressing requirements.
12856 (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
12857 that they can be used with the LFIWAX/LFIWZX instrucitons.
12858 (rs6000_expand_convert_si_to_sfdf): New helper funciton for
12859 converting signed/unsigned SImode to either SFmode/DFmode.
12860
12861 * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
12862 whether certain instructions can be generated.
12863 (TARGET_FCTIDZ): Ditto.
12864 (TARGET_STFIWX): Ditto.
12865 (TARGET_LFIWAX): Ditto.
12866 (TARGET_LFIWZX): Ditto.
12867 (TARGET_FCFIDS): Ditto.
12868 (TARGET_FCFIDU): Ditto.
12869 (TARGET_FCFIDUS): Ditto.
12870 (TARGET_FCTIDUZ): Ditto.
12871 (TARGET_FCTIWUZ): Ditto.
12872
12873 * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
12874 (UNSPEC_FCTID): Ditto.
12875 (UNSPEC_LFIWAX): Ditto.
12876 (UNSPEC_LFIWZX): Ditto.
12877 (UNSPEC_FCTIWUZ): Ditto.
12878 (rreg): Use correct constraints.
12879 (SI_CONVERT_FP): New mode attribute for floating point conversion
12880 tests.
12881 (E500_CONVERT): Ditto.
12882 (lfiwax): New insns for converting from integer to floating point
12883 utilizing newer instructions. Attempt to optimize conversions
12884 that come from memory so that we don't load the value into a GPR,
12885 spill it to the stack and reload it into a FPR.
12886 (floatsi<mode>2_lfiwax): Ditto.
12887 (floatsi<mode>2_lfiwax_mem): Ditto.
12888 (floatsi<mode>2_lfiwax_mem2): Ditto.
12889 (lfiwzx): Ditto.
12890 (floatunssi<mode>2_lfiwzx): Ditto.
12891 (floatunssi<mode>2_lfiwzx_mem): Ditto.
12892 (floatunssi<mode>2_lfiwzx_mem2): Ditto.
12893 (floatdidf2_mem): Ditto.
12894 (floatunsdidf2_fcfidu): Ditto.
12895 (floatunsdidf2_mem): Ditto.
12896 (floatunsdisf2): Ditto.
12897 (floatunsdisf2_fcfidus): Ditto.
12898 (floatunsdisf2_mem): Ditto.
12899 (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
12900 Use FCFID on 32-bit hosts that support it.
12901 (floatsidf2_internal): Ditto.
12902 (floatunssisf2): Ditto.
12903 (floatunssidf2): Ditto.
12904 (floatunssidf2_internal): Ditto.
12905 (floatsisf2): Ditto.
12906 (floatdidf2): Ditto.
12907 (floatdidf2_fpr): Ditto.
12908 (floatunsdidf2): Ditto.
12909 (floatdisf2): Ditto.
12910 (floatdisf2_fcfids): Ditto.
12911 (floatdisf2_internal1): Ditto.
12912 (fixuns_truncsfsi2): Delete, merge into common pattern for both
12913 SF/DF. Add power7 support.
12914 (fix_truncsfsi2): Ditto.
12915 (fixuns_truncdfsi2): Ditto.
12916 (fixuns_truncdfdi2): Ditto.
12917 (fix_truncdfsi2): Ditto.
12918 (fix_truncdfsi2_internal): Ditto.
12919 (fix_truncdfsi2_internal_gfxopt): Ditto.
12920 (fix_truncdfsi2_mfpgpr): Ditto.
12921 (fctiwz): Ditto.
12922 (btruncdf2): Ditto.
12923 (btruncdf2_fpr): Ditto.
12924 (btructsf2): Ditto.
12925 (ceildf2): Ditto.
12926 (ceildf2_fpr): Ditto.
12927 (ceilsf2): Ditto.
12928 (floordf2): Ditto.
12929 (floordf2_fpr): Ditto.
12930 (floorsf2): Ditto.
12931 (rounddf2): Ditto.
12932 (rounddf2_fpr): Ditto.
12933 (roundsf2): Ditto.
12934 (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
12935 (fix_trunc<mode>di2): Ditto.
12936 (fixuns_trunc<mode>si2): Ditto.
12937 (fixuns_trunc<mode>di2): Ditto.
12938 (fctiwz_<mode>): Ditto.
12939 (btrunc<mode>2): Ditto.
12940 (btrunc<mode>2_fpr): Ditto.
12941 (ceil<mode>2): Ditto.
12942 (ceil<mode>2_fpr): Ditto.
12943 (floor<mode>2): Ditto.
12944 (float<mode>2_fpr): Ditto.
12945 (round<mode>2): Ditto.
12946 (round<mode>2_fpr): Ditto.
12947 (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
12948 (fixuns_trunc<mode>si2_stfiwx): Ditto.
12949 (fix_truncdfsi2_internal): Ditto.
12950 (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
12951 converted value on stack, loaded into GPR, and then stored into
12952 the final destination.
12953 (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
12954 FCTIDZ.
12955 (lrint<mode>di2): New insn, provide the lrint builtin functions.
12956 (ftruncdf2): Delete, unused.
12957 (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
12958
12959 * config/rs6000/vsx.md (toplevel): Update copyright year.
12960 (VSr2): Use "ws" contraint for DFmode, not "!r#r".
12961 (VSr3): Ditto.
12962
12963 2010-08-27 Basile Starynkevitch <basile@starynkevitch.net>
12964 Jeremie Salvucci <jeremie.salvucci@free.fr>
12965
12966 * gengtype.c (output_type_enum): Test the right union member.
12967
12968 2010-08-27 Uros Bizjak <ubizjak@gmail.com>
12969
12970 PR target/41484
12971 * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
12972 operands for operand 1.
12973 (sse4_1_extendv4qiv4si2): Ditto.
12974 (sse4_1_extendv2qiv2di2): Ditto.
12975 (sse4_1_extendv4hiv4si2): Ditto.
12976 (sse4_1_extendv2hiv2di2): Ditto.
12977 (sse4_1_extendv2siv2di2): Ditto.
12978 (sse4_1_zero_extendv8qiv8hi2): Ditto.
12979 (sse4_1_zero_extendv4qiv4si2): Ditto.
12980 (sse4_1_zero_extendv2qiv2di2): Ditto.
12981 (sse4_1_zero_extendv4hiv4si2): Ditto.
12982 (sse4_1_zero_extendv2hiv2di2): Ditto.
12983 (sse4_1_zero_extendv2siv2di2): Ditto.
12984 (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
12985 (*sse4_1_extendv4qiv4si2): Ditto.
12986 (*sse4_1_extendv2qiv2di2): Ditto.
12987 (*sse4_1_extendv4hiv4si2): Ditto.
12988 (*sse4_1_extendv2hiv2di2): Ditto.
12989 (*sse4_1_extendv2siv2di2): Ditto.
12990 (*sse4_1_zero_extendv8qiv8hi2): Ditto.
12991 (*sse4_1_zero_extendv4qiv4si2): Ditto.
12992 (*sse4_1_zero_extendv2qiv2di2): Ditto.
12993 (*sse4_1_zero_extendv4hiv4si2): Ditto.
12994 (*sse4_1_zero_extendv2hiv2di2): Ditto.
12995 (*sse4_1_zero_extendv2siv2di2): Ditto.
12996
12997 2010-08-27 Nathan Froyd <froydnj@codesourcery.com>
12998
12999 * config/mips/mips-protos.h (mips_function_arg_advance): Delete
13000 (mips_function_arg): Delete.
13001 (mips_function_arg_boundary): Take a const_tree.
13002 * config/mips/mips.c (mips_function_arg_boundary): Likewise.
13003 (mips_arg_info): Likewise.
13004 (mips_setup_incoming_varargs): Call mips_function_arg_advance
13005 instead of FUNCTION_ARG_ADVANCE.
13006 (mips_function_arg_advance): Adjust prototype. Make static.
13007 (mips_function_arg): Likewise.
13008 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13009 * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
13010
13011 2010-08-27 Nathan Froyd <froydnj@codesourcery.com>
13012
13013 * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13014 * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
13015 (function_arg): Delete.
13016 (function_arg_boundary): Take a const_tree.
13017 * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
13018 (rs6000_spe_function_arg): Likewise.
13019 (rs6000_parm_start): Likewise.
13020 (rs6000_arg_size): Likewise.
13021 (rs6000_darwin64_record_arg_advance_recurse): Likewise.
13022 (rs6000_darwin64_record_arg): Likewise. Take a bool instead of an int.
13023 (rs6000_mixed_function_arg): Likewise.
13024 (function_arg): Rename to...
13025 (rs6000_function_arg): ...this.
13026 (function_arg_advance): Rename to...
13027 (rs6000_function_arg_advance_1): ...this
13028 (rs6000_function_arg_advance): New function. Call it.
13029 (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
13030 (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
13031 (rs6000_function_value): Likewise.
13032 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13033
13034 2010-08-27 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13035
13036 * config/arm/arm.md (enabled): Test the value of arch_enabled
13037 rather than just using it.
13038
13039 2010-08-27 Olivier Hainque <hainque@adacore.com>
13040 Eric Botcazou <ebotcazou@adacore.com>
13041
13042 * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
13043 cover all the possible offsets from this base.
13044 (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
13045
13046 2010-08-26 Jakub Jelinek <jakub@redhat.com>
13047
13048 PR tree-optimization/44485
13049 * calls.c (flags_from_decl_or_type): For const or pure
13050 noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
13051 together with ECF_CONST resp. ECF_PURE.
13052 * builtins.c (expand_builtin): Use flags_from_decl_or_type
13053 instead of querying flags directly.
13054 * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
13055 * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
13056
13057 2010-08-26 Richard Guenther <rguenther@suse.de>
13058
13059 PR tree-optimization/45255
13060 * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
13061 and externals are also invariant.
13062
13063 2010-08-25 Jakub Jelinek <jakub@redhat.com>
13064
13065 PR rtl-optimization/44858
13066 * combine.c (try_combine): If recog_for_combine added CLOBBERs to
13067 newi2pat, make sure they don't affect newpat.
13068
13069 PR rtl-optimization/45400
13070 * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
13071 SUBREG_REG if both modes are of MODE_INT class.
13072
13073 2010-08-25 Julian Brown <julian@codesourcery.com>
13074
13075 * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
13076 * config/arm/arm.md (generic_sched): No for Cortex-A5.
13077 (generic_vfp): Likewise.
13078 (cortex-a5.md): Include.
13079 * config/arm/cortex-a5.md: New.
13080
13081 2010-08-25 Richard Guenther <rguenther@suse.de>
13082
13083 * alias.c (get_alias_set): Assign a single alias-set to all pointers.
13084 * gimple.c (gimple_get_alias_set): Remove special handling
13085 for pointers.
13086
13087 2010-08-25 Bernd Schmidt <bernds@codesourcery.com>
13088
13089 PR middle-end/45355
13090 * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
13091 dead_or_set_p when computing i0_feeds_i2_n.
13092
13093 * combine.c (find_split_point): Undo canonicalization of multiply-add
13094 to (minus x (mult)) when it seems likely that this will increase the
13095 chances of a split.
13096
13097 2010-08-25 Richard Guenther <rguenther@suse.de>
13098
13099 PR lto/44562
13100 * lto-streamer.c (lto_record_common_node): Do not mess with
13101 TYPE_CANONICAL when not in lto.
13102 * gimple.c (gimple_register_type): Likewise.
13103
13104 2010-08-25 Richard Guenther <rguenther@suse.de>
13105
13106 PR tree-optimization/45316
13107 * tree-ssa-pre.c (eliminate): Properly clean EH info.
13108
13109 2010-08-25 Richard Guenther <rguenther@suse.de>
13110
13111 PR tree-optimization/45393
13112 * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
13113 and clean EH info. Avoid SSA update.
13114 (execute_cse_sincos): Cleanup the CFG if it has changed.
13115
13116 2010-08-25 Richard Guenther <rguenther@suse.de>
13117
13118 PR middle-end/45379
13119 * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
13120 TARGET_MEM_REF in alignment computation.
13121
13122 2010-08-25 Jakub Jelinek <jakub@redhat.com>
13123
13124 PR tree-optimization/45059
13125 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
13126 type conversions from newop{1,2}. Assert t is a comparison and
13127 newop{1,2} after the stripping are gimple vals.
13128
13129 2010-08-25 Tejas Belagod <tejas.belagod@arm.com>
13130
13131 * config/arm/iterators.md (VU, SE, V_widen_l): New.
13132 (V_unpack, US): New.
13133 * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
13134 (vec_unpack<US>_lo_<mode>): Likewise.
13135 (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
13136 (neon_vec_unpack<US>_lo_<mode>): Likewise.
13137 (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
13138 (vec_widen_<US>mult_hi_<mode>): Likewise.
13139 (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
13140 (neon_vec_<US>mult_hi_<mode>"): Likewise.
13141 (neon_unpack<US>_<mode>): Widening move intermediate step for
13142 vectorizing without -mvectorize-with-neon-quad.
13143 (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
13144 for vectorizing without -mvectorize-with-neon-quad.
13145 * config/arm/predicates.md (vect_par_constant_high): Check for
13146 high-half lanes of a vector.
13147 (vect_par_constant_low): Check for low-half lanes of a vector.
13148
13149 2010-08-24 Sebastian Pop <sebastian.pop@amd.com>
13150
13151 * tree-if-conv.c (struct ifc_dr): New.
13152 (IFC_DR): New.
13153 (DR_WRITTEN_AT_LEAST_ONCE): New.
13154 (DR_RW_UNCONDITIONALLY): New.
13155 (memref_read_or_written_unconditionally): Use the cached values
13156 when possible.
13157 (write_memref_written_at_least_once): Same.
13158 (if_convertible_loop_p): Initialize and free DR->aux fields.
13159
13160 2010-08-24 Sebastian Pop <sebastian.pop@amd.com>
13161
13162 * gimple.c (gimple_could_trap_p_1): Not static anymore.
13163 Pass an extra bool parameter include_mem.
13164 (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
13165 (gimple_assign_rhs_could_trap_p): Same.
13166 * gimple.h (gimple_could_trap_p_1): Declared.
13167 * tree-data-ref.h (same_data_refs_base_objects): New.
13168 (same_data_refs): New.
13169 * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
13170 (write_memrefs_written_at_least_once): New.
13171 (ifcvt_memrefs_wont_trap): New.
13172 (operations_could_trap): New.
13173 (ifcvt_could_trap_p): New.
13174 (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
13175 Gets a vector of data refs.
13176 (if_convertible_stmt_p): Same.
13177 (if_convertible_loop_p_1): New.
13178 (if_convertible_loop_p): Call if_convertible_loop_p_1.
13179
13180 2010-08-24 Sebastian Pop <sebastian.pop@amd.com>
13181
13182 * common.opt (ftree-loop-if-convert-stores): New flag.
13183 * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
13184 * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI. Insert
13185 the created statement before GSI.
13186 (if_convertible_phi_p): Allow virtual phi nodes when
13187 flag_loop_if_convert_stores is set.
13188 (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
13189 Do not handle types that do not match is_gimple_reg_type.
13190 Remove loop and bb parameters. Call gimple_could_trap_p instead of
13191 when flag_loop_if_convert_stores is set, as LHS can contain
13192 memory refs.
13193 (if_convertible_stmt_p): Remove loop and bb parameters. Update calls
13194 to if_convertible_gimple_assign_stmt_p.
13195 (if_convertible_loop_p): Update call to if_convertible_stmt_p.
13196 (replace_phi_with_cond_gimple_assign_stmt): Renamed
13197 predicate_scalar_phi. Do not handle virtual phi nodes.
13198 (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
13199 Call predicate_scalar_phi.
13200 (insert_gimplified_predicates): Insert the gimplified predicate of a BB
13201 just after the labels for flag_loop_if_convert_stores, otherwise
13202 insert the predicate in the end of the BB.
13203 (predicate_mem_writes): New.
13204 (combine_blocks): Call predicate_all_scalar_phis. When
13205 flag_loop_if_convert_stores is set, call predicate_mem_writes.
13206 (tree_if_conversion): Call mark_sym_for_renaming when
13207 flag_loop_if_convert_stores is set.
13208 (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
13209 flag_loop_if_convert_stores is set.
13210
13211 2010-08-24 Anatoly Sokolov <aesok@post.ru>
13212
13213 * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
13214 pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
13215 (pa_function_value): Make static.
13216 (override_options): Rename to...
13217 (pa_option_override): ...this. Make static.
13218 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
13219 TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
13220 TARGET_OPTION_OVERRIDE): Define.
13221 * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
13222 LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
13223 Remove.
13224 * config/pa/pa-protos.h (override_options): Remove.
13225
13226 2010-08-24 Richard Guenther <rguenther@suse.de>
13227
13228 PR middle-end/45379
13229 * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
13230 if addr->index is NULL or zero.
13231 * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
13232 TARGET_MEM_REF more properly.
13233 (indirect_ref_may_alias_decl_p): Likewise.
13234 * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
13235 * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
13236
13237 2010-08-23 Anatoly Sokolov <aesok@post.ru>
13238
13239 * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
13240 (m32c_override_options): Rename to...
13241 (m32c_option_override): ...this. Make static.
13242 (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
13243 * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
13244 Remove.
13245 * config/m32c/m32c-protos.h (m32c_override_options,
13246 m32c_function_value_regno_p): Remove.
13247
13248 2010-08-23 Changpeng Fang <changpeng.fang@amd.com>
13249
13250 * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
13251 Fix a typo in a previous commit.
13252
13253 2010-08-23 Kai Tietz <kai.tietz@onevision.com>
13254
13255 * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
13256 Pre-initialize innerloop_iters to one.
13257
13258 2010-08-23 Changpeng Fang <changpeng.fang@amd.com>
13259
13260 * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
13261 existing static function global.
13262
13263 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
13264 is changed to global.
13265
13266 * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
13267 may_be_nonaddressable_p on base, and don't collect this reference
13268 if the address of the base could not be taken.
13269
13270 2010-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
13271
13272 * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
13273 enable the compiler to autovectorize mathmetical functions for
13274 power7 using the Mathematical Acceleration Subsystem library.
13275
13276 * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
13277 handle which vector math library we have.
13278 (rs6000_override_options): Add -mveclibabi=mass support.
13279 (rs6000_builtin_vectorized_libmass): New function to handle auto
13280 vectorizing math functions that are in the MASS library.
13281 (rs6000_builtin_vectorized_function): Call it.
13282
13283 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
13284 -mveclibabi=mass.
13285
13286 2010-08-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13287
13288 PR boehm-gc/34544
13289 * gthr-posix.h (__gthread_active_init): Delete.
13290 (__gthread_active_p): Do activity check here.
13291 Don't include errno.h on hppa-hpux. Update comment.
13292 * gthr-posix95.h (__gthread_active_init): Delete.
13293 (__gthread_active_p): Do activity check here.
13294 Don't include errno.h on hppa-hpux. Update comment.
13295 * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
13296 * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
13297 add -lpthread when -mt or -pthread is specified.
13298 * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
13299 (LINK_GCC_C_SEQUENCE_SPEC): Define.
13300 * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
13301 (stublib.c, pthread_default_stacksize_np-stub.o,
13302 pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
13303 $(T)libgcc_stub.a): Add methods.
13304 * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
13305 (stublib.c, pthread_default_stacksize_np-stub.o,
13306 pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
13307 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
13308 pthread_mutex_unlock): New stubs.
13309
13310 2010-08-22 Joseph Myers <joseph@codesourcery.com>
13311
13312 * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
13313 * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
13314 options.
13315 * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
13316 * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
13317 * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
13318 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
13319 * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
13320 "-l".
13321 * cppspec.c: Include opts.h.
13322 (lang_specific_driver): Use cl_decoded_option structures.
13323 * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
13324 * doc/tm.texi: Regenerate.
13325 * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
13326 (driver_handle_option): Allow driver options needing no special
13327 processing.
13328 (process_command): Decode options before call to
13329 lang_specific_driver. Pass decoded options to
13330 lang_specific_driver.
13331 * gcc.h (lang_specific_driver): Update prototype.
13332 * gccspec.c: Include opts.h.
13333 (lang_specific_driver): Use cl_decoded_option structures.
13334 * opts-common.c (option_ok_for_language, generate_option,
13335 generate_option_input_file): New.
13336 (decode_cmdline_option): Use option_ok_for_language.
13337 (decode_cmdline_options_to_array): Use generate_option_input_file.
13338 (handle_generated_option): Use generate_option.
13339 * opts.h (generate_option, generate_option_input_file): Declare.
13340
13341 2010-08-22 Anatoly Sokolov <aesok@post.ru>
13342
13343 * config/mips/mips.c (mips_override_options): Rename to...
13344 (mips_option_override): ...this. Make static.
13345 (TARGET_OPTION_OVERRIDE): Define.
13346 (mips_in_small_data_p): Update comment.
13347 * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
13348 (FIXED_REGISTERS): Update comment.
13349 * config/mips/mips-protos.h (mips_override_options): Remove.
13350
13351 2010-08-21 Olivier Hainque <hainque@adacore.com>
13352
13353 * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
13354
13355 2010-08-21 Olivier Hainque <hainque@adacore.com>
13356
13357 * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
13358 ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
13359
13360 2010-08-20 Jan Hubicka <jh@suse.cz>
13361
13362 * tree-pass.h (pass_ipa_cdtor_merge): New function.
13363 * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
13364 heap allocated.
13365 (record_cdtor_fn): Move to ipa.c; do not test for
13366 have_ctors_dtors.
13367 (build_cdtor): Move to ipa.c; add code avoiding construction
13368 when target have ctors/dtors and there is only one ctor/dtor at given
13369 priority.
13370 (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
13371 sort; reverse order of constructors.
13372 (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
13373 (cgraph_finalize_function): Do not call record_cdtor_fn.
13374 (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
13375 (cgraph_build_static_cdtor): Move to ipa.c.
13376 * ipa.c: Include target.h and tree-iterator.h.
13377 (cgraph_build_static_cdtor, static_ctors, static_dtors,
13378 record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
13379 build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
13380 pass_ipa_cdtor_merge): New.
13381 * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
13382 * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
13383 bounds access.
13384
13385 2010-08-20 Jan Hubicka <jh@suse.cz>
13386
13387 PR c++/45307
13388 PR c++/17736
13389 * cgraph.h (cgraph_only_called_directly_p,
13390 cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
13391 static cdtors.
13392 * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
13393 are not needed.
13394 (cgraph_finalize_function): Static cdtors are reachable.
13395 (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
13396
13397 2010-08-20 Jan Hubicka <jh@suse.cz>
13398
13399 * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
13400 flag_wpa.
13401 * lto-streamer-out.c (lto_output): Likewise.
13402 * passes.c (ipa_write_optimization_summaries): Initialize statement
13403 uids.
13404
13405 2010-08-20 Olivier Hainque <hainque@adacore.com>
13406
13407 * tree.h (alias_diag_flags): New enum.
13408 (alias_pair): Add an 'emitted_diags' field.
13409 * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
13410 (assemble_alias): Initialize emitted_diags of new pairs.
13411
13412 2010-08-20 Eric Botcazou <ebotcazou@adacore.com>
13413
13414 * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
13415 * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
13416 * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
13417 (STACK_CHECK_PROTECT): Define.
13418 * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
13419 (output_probe_stack_range): Likewise.
13420 (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
13421 builtin stack checking is enabled.
13422 * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
13423 * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
13424 (probe_stack_range): New insn.
13425
13426 2010-08-20 H.J. Lu <hongjiu.lu@intel.com>
13427
13428 PR target/45336
13429 * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
13430 short first.
13431
13432 * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
13433 char first.
13434
13435 2010-08-20 Jakub Jelinek <jakub@redhat.com>
13436
13437 PR target/45336
13438 * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
13439 to cover zero extension into 64-bit register.
13440 (*sse2_pextrw): Likewise.
13441 (*sse4_1_pextrd_zext): New insn.
13442
13443 2010-08-20 Iain Sandoe <iains@gcc.gnu.org>
13444
13445 revert r163410, partially revert r163267.
13446 * config/rs6000/darwin.h (LIB_SPEC): Remove.
13447 * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
13448 Darwin versions.
13449
13450 2010-08-20 Jakub Jelinek <jakub@redhat.com>
13451
13452 PR middle-end/44974
13453 * builtins.c (expand_builtin): Don't optimize away
13454 calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
13455
13456 2010-08-20 Uros Bizjak <ubizjak@gmail.com>
13457
13458 * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
13459 (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
13460 alternative 1 of operand 2.
13461
13462 2010-08-20 Jakub Jelinek <jakub@redhat.com>
13463 Paolo Bonzini <bonzini@gnu.org>
13464
13465 * simplify-rtx.c (simplify_unary_operation_1): Optimize
13466 (sign_extend (zero_extend (...)) and
13467 ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
13468
13469 2010-08-20 Jakub Jelinek <jakub@redhat.com>
13470
13471 PR rtl-optimization/45353
13472 * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
13473 after bb_note is a BARRIER.
13474
13475 2010-08-20 Iain Sandoe <iains@gcc.gnu.org>
13476
13477 * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
13478 linking libgcc.a.
13479
13480 2010-08-20 Jakub Jelinek <jakub@redhat.com>
13481 Michael Matz <matz@suse.de>
13482
13483 * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
13484
13485 2010-08-20 Nathan Froyd <froydnj@codesourcery.com>
13486
13487 * ggc-common.c (ggc_mark_root_tab): New function, split out from...
13488 (ggc_mark_roots): ...here.
13489
13490 2010-08-20 Nathan Froyd <froydnj@codesourcery.com>
13491
13492 * vec.h (FOR_EACH_VEC_ELT): Define.
13493 * c-decl.c: Use it.
13494 * cfgloop.c: Likewise.
13495 * cfgloopmanip.c: Likewise.
13496 * cgraph.c: Likewise.
13497 * cgraphunit.c: Likewise.
13498 * combine.c: Likewise.
13499 * config/bfin/bfin.c: Likewise.
13500 * config/mips/mips.c: Likewise.
13501 * config/rs6000/rs6000.c: Likewise.
13502 * dbxout.c: Likewise.
13503 * df-scan.c: Likewise.
13504 * dominance.c: Likewise.
13505 * dse.c: Likewise.
13506 * dwarf2out.c: Likewise.
13507 * except.c: Likewise.
13508 * expr.c: Likewise.
13509 * function.c: Likewise.
13510 * gcse.c: Likewise.
13511 * genattr.c: Likewise.
13512 * ggc-common.c: Likewise.
13513 * gimplify.c: Likewise.
13514 * graphite-blocking.c: Likewise.
13515 * graphite-clast-to-gimple.c: Likewise.
13516 * graphite-dependences.c: Likewise.
13517 * graphite-interchange.c: Likewise.
13518 * graphite-poly.c: Likewise.
13519 * graphite-scop-detection.c: Likewise.
13520 * graphite-sese-to-poly.c: Likewise.
13521 * graphite.c: Likewise.
13522 * haifa-sched.c: Likewise.
13523 * ifcvt.c: Likewise.
13524 * implicit-zee.c: Likewise.
13525 * ipa-prop.c: Likewise.
13526 * ipa-struct-reorg.c: Likewise.
13527 * ipa.c: Likewise.
13528 * ira-build.c: Likewise.
13529 * ira-color.c: Likewise.
13530 * ira-emit.c: Likewise.
13531 * lambda-code.c: Likewise.
13532 * loop-invariant.c: Likewise.
13533 * loop-unroll.c: Likewise.
13534 * lower-subreg.c: Likewise.
13535 * lto-cgraph.c: Likewise.
13536 * lto-opts.c: Likewise.
13537 * lto-streamer-in.c: Likewise.
13538 * lto-streamer-out.c: Likewise.
13539 * lto-streamer.c: Likewise.
13540 * lto-symtab.c: Likewise.
13541 * matrix-reorg.c: Likewise.
13542 * opts.c: Likewise.
13543 * predict.c: Likewise.
13544 * print-tree.c: Likewise.
13545 * sdbout.c: Likewise.
13546 * sel-sched-dump.c: Likewise.
13547 * sel-sched-ir.c: Likewise.
13548 * sel-sched.c: Likewise.
13549 * sese.c: Likewise.
13550 * stor-layout.c: Likewise.
13551 * tree-cfg.c: Likewise.
13552 * tree-cfgcleanup.c: Likewise.
13553 * tree-chrec.c: Likewise.
13554 * tree-data-ref.c: Likewise.
13555 * tree-emutls.c: Likewise.
13556 * tree-inline.c: Likewise.
13557 * tree-into-ssa.c: Likewise.
13558 * tree-loop-distribution.c: Likewise.
13559 * tree-loop-linear.c: Likewise.
13560 * tree-mudflap.c: Likewise.
13561 * tree-outof-ssa.c: Likewise.
13562 * tree-parloops.c: Likewise.
13563 * tree-predcom.c: Likewise.
13564 * tree-pretty-print.c: Likewise.
13565 * tree-scalar-evolution.c: Likewise.
13566 * tree-ssa-live.c: Likewise.
13567 * tree-ssa-loop-im.c: Likewise.
13568 * tree-ssa-loop-ivcanon.c: Likewise.
13569 * tree-ssa-loop-ivopts.c: Likewise.
13570 * tree-ssa-loop-manip.c: Likewise.
13571 * tree-ssa-loop-niter.c: Likewise.
13572 * tree-ssa-loop-prefetch.c: Likewise.
13573 * tree-ssa-phiprop.c: Likewise.
13574 * tree-ssa-pre.c: Likewise.
13575 * tree-ssa-reassoc.c: Likewise.
13576 * tree-ssa-sccvn.c: Likewise.
13577 * tree-ssa-structalias.c: Likewise.
13578 * tree-ssa.c: Likewise.
13579 * tree-vect-data-refs.c: Likewise.
13580 * tree-vect-loop-manip.c: Likewise.
13581 * tree-vect-loop.c: Likewise.
13582 * tree-vect-patterns.c: Likewise.
13583 * tree-vect-slp.c: Likewise.
13584 * tree-vect-stmts.c: Likewise.
13585 * tree-vrp.c: Likewise.
13586 * tree.c: Likewise.
13587 * value-prof.c: Likewise.
13588 * var-tracking.c: Likewise.
13589 * varasm.c: Likewise.
13590 * vmsdbgout.c: Likewise.
13591
13592 2010-08-19 Nathan Sidwell <nathan@codesourcery.com>
13593 Richard Guenther <richard.guenther@gmail.com>
13594
13595 * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
13596 copy the src value and return a copy.
13597 * doc/extend.texi (Volatiles): Move from C++ to C and expand.
13598 (C++ Volatiles): Adjust to describe C++ semantics only.
13599
13600 2010-08-20 Joseph Myers <joseph@codesourcery.com>
13601
13602 * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
13603 be zero or nonzero.
13604 * doc/tm.texi: Regenerate.
13605 * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
13606 * df-scan.c (df_get_exit_block_use_set), reginfo.c
13607 (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
13608 Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
13609 * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
13610 to 1.
13611
13612 2010-08-20 Olivier Hainque <hainque@adacore.com>
13613
13614 * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
13615 an extra nop past a sibling call at the very end.
13616
13617 2010-08-19 Bernd Schmidt <bernds@codesourcery.com>
13618
13619 PR bootstrap/45350
13620 * combine.c (try_combine): Initialize i1_is_used and i2_is_used. Fix
13621 a comment.
13622
13623 2010-08-19 Nathan Froyd <froydnj@codesourcery.com>
13624
13625 * target.def (function_arg, function_incoming_arg): Remove const
13626 qualifier on CUMULATIVE_ARGS parameter.
13627 * targhooks.h (default_function_arg, default_function_incoming_arg):
13628 Likewise.
13629 * targhooks.c (default_function_arg, default_function_incoming_arg):
13630 Likewise.
13631 * config/i386/i386.c (ix86_function_arg): Likewise.
13632
13633 2010-08-19 Jakub Jelinek <jakub@redhat.com>
13634
13635 PR target/45336
13636 * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
13637 SIGN_EXTENDs or ZERO_EXTENDs.
13638
13639 2010-08-19 Bernd Schmidt <bernds@codesourcery.com>
13640
13641 PR target/42172
13642 * combine.c (combine_validate_cost): New arg I0. All callers changed.
13643 Take its cost into account if nonnull.
13644 (insn_a_feeds_b): New static function.
13645 (combine_instructions): Look for four-insn combinations.
13646 (can_combine_p): New args PRED2, SUCC2. All callers changed. Take
13647 them into account when computing all_adjacent and looking for other
13648 uses.
13649 (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC. All callers
13650 changed. Treat them like I1DEST and I1_NOT_IN_SRC.
13651 (try_combine): New arg I0. Handle four-insn combinations.
13652 (distribute_notes): New arg ELIM_I0. All callers changed. Treat it
13653 like ELIM_I1.
13654
13655 2010-08-19 Jason Merrill <jason@redhat.com>
13656
13657 PR c++/45307
13658 * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
13659 if ctor is empty.
13660 (gimplify_modify_expr_rhs): Adjust.
13661
13662 2010-08-19 Nathan Froyd <froydnj@codesourcery.com>
13663
13664 * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
13665 bitmap_bit_p.
13666 * config/bfin/bifn.c (bfin_discover_loop): Likewise.
13667 * dominance.c (iterate_fix_dominators): Likewise.
13668 * dse.c (set_usage_bits): Likewise.
13669 (set_position_unneeded, record_store): Likewise.
13670 * gimple-fold.c (get_maxval_strlen): Likewise.
13671 * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
13672 * ipa-inline.c (update_caller_keys): Likewise.
13673 * ipa-split.c (verify_non_ssa_vars): Likewise.
13674 * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
13675 (close_type_exposed_parameter, close_type_full_escape): Likewise.
13676 (close_addressof_down): Likewise.
13677 * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
13678 (setup_allocno_left_conflicts_size): Likewise.
13679 (ira_reassign_conflict_allocnos): Likewise.
13680 (ira_reassign_pseudos): Likewise.
13681 * ira-emit.c (change_loop): Likewise.
13682 * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
13683 * lto-streamer-out.c (write_symbol): Likewise.
13684 * predict.c (expr_expected_value_1): Likewise.
13685 * regstat.c (regstat_bb_compute_ri): Likewise.
13686 * sel-sched.c (create_block_for_bookkeeping): Likewise.
13687 (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
13688 * stmt.c (expand_case): Likewise.
13689 * tree-eh.c (emit_eh_dispatch): Likewise.
13690 * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
13691 * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
13692 Likewise.
13693 (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
13694 (rdg_build_components): Likewise.
13695 * tree-object-size.c (collect_object_sizes_for): Likewise.
13696 * tree-sra.c (convert_callers): Likewise.
13697 * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
13698 * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
13699 * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
13700
13701 2010-08-19 Uros Bizjak <ubizjak@gmail.com>
13702
13703 * config/i386/i386.md (*lea_1): Use P mode iterator.
13704 (lea add splitter): Also handle DImode operands.
13705 (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
13706 predicate. Do not use ix86_lea_for_add_ok.
13707 (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
13708 (lea ashift splitter): Also handle DImode operands.
13709 (DImode lea ashift splitter): Remove splitter.
13710
13711 2010-08-19 Uros Bizjak <ubizjak@gmail.com>
13712
13713 * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
13714 ix86_binary_operator_ok.
13715
13716 2010-08-19 Andrey Belevantsev <abel@ispras.ru>
13717
13718 PR rtl-optimization/44691
13719 * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
13720 is not a register.
13721
13722 2010-08-19 Ian Bolton <ian.bolton@arm.com>
13723
13724 PR target/45070
13725 * config/arm/arm.c (arm_output_epilogue): Ensure that return
13726 value of size 1-3 is handled correctly.
13727
13728 2010-08-19 Ian Bolton <ian.bolton@arm.com>
13729
13730 * tree-switch-conversion.c (gen_inbound_check): Ensure that the
13731 type for the conditional has wide enough range.
13732
13733 2010-08-18 Uros Bizjak <ubizjak@gmail.com>
13734
13735 PR target/45327
13736 * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
13737 ix86_binary_operator_ok.
13738
13739 2010-08-18 Uros Bizjak <ubizjak@gmail.com>
13740
13741 * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
13742 <default>: Swap operands 1 and 2 for alternative 2 to use existing
13743 code to output insn mnemonic. Fix comment.
13744 (*addsi_1_zext): Add r-r-0 alternative 1.
13745 <TYPE_LEA>: Split insn to lea.
13746 <default>: Handle alternative 1.
13747 (*addhi_1_lea): Add r-r-0 alternative 2. Use cond RTX instead of
13748 multi-level if_then_else RTX to set "type" attribute.
13749 <default>: Handle alternative 2.
13750 (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
13751 Use cond RTX instead of multi-level if_then_else RTX to set
13752 "type" attribute.
13753 <default>: Handle alternatives 2 and 4.
13754 (lea splitters): Update calls to ix86_lea_for_add_ok.
13755
13756 * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
13757 argument.
13758 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
13759
13760 2010-08-18 Richard Guenther <rguenther@suse.de>
13761
13762 * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
13763 use operand helpers.
13764
13765 2010-08-18 Paolo Bonzini <bonzini@gnu.org>
13766
13767 PR middle-end/45292
13768 * optabs.c (expand_bool_compare_and_swap): Expand pending
13769 pops before trying the optab.
13770
13771 2010-08-18 Yao Qi <yao@codesourcery.com>
13772
13773 PR target/45094
13774 * config/arm/arm.c (output_move_double): Fix typo generating
13775 instructions ('ldr'->'str').
13776
13777 2010-08-18 Maxim Kuvyrkov <maxim@codesourcery.com>
13778
13779 PR rtl-optimization/42575
13780 * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
13781 live ranges.
13782
13783 2010-08-18 Marcus Shawcroft <marcus.shawcroft@arm.com>
13784
13785 * config/arm/arm-protos.h (arm_expand_sync): New.
13786 (arm_output_memory_barrier, arm_output_sync_insn): New.
13787 (arm_sync_loop_insns): New.
13788 * config/arm/arm.c (FL_ARCH7): New.
13789 (FL_FOR_ARCH7): Include FL_ARCH7.
13790 (arm_arch7): New.
13791 (arm_print_operand): Support %C markup.
13792 (arm_legitimize_sync_memory): New.
13793 (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
13794 (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
13795 (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
13796 (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
13797 (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
13798 (arm_process_output_sync_insn, arm_output_sync_insn): New.
13799 (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
13800 * config/arm/arm.h (struct arm_sync_generator): New.
13801 (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
13802 (TARGET_HAVE_MEMORY_BARRIER): New.
13803 (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
13804 * config/arm/arm.md: Include sync.md.
13805 (UNSPEC_MEMORY_BARRIER): New.
13806 (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
13807 (VUNSPEC_SYNC_OP):New.
13808 (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
13809 (sync_result, sync_memory, sync_required_value): New attributes.
13810 (sync_new_value, sync_t1, sync_t2): Likewise.
13811 (sync_release_barrier, sync_op): Likewise.
13812 (length): Add logic to length attribute defintion to call
13813 arm_sync_loop_insns when appropriate.
13814 * config/arm/sync.md: New file.
13815
13816 2010-08-17 Jakub Jelinek <jakub@redhat.com>
13817
13818 * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
13819 ENABLE_TREE_CHECKING.
13820 (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
13821 and GCC >= 4.3.
13822
13823 2010-08-17 H.J. Lu <hongjiu.lu@intel.com>
13824
13825 * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
13826 or optimizing for size, always avoid lea if possible.
13827
13828 * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
13829
13830 2010-08-17 Iain Sandoe <iains@gcc.gnu.org>
13831
13832 * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
13833 Dunmmy function with NULL return unless the target is
13834 OSX >= 10.6 (Darwin10).
13835
13836 2010-08-17 Jack Howarth <howarth@bromo.med.uc.edu>
13837
13838 * gcc.c (spec_function): Add remove-outfile.
13839 (remove_outfile_spec_function): New function.
13840 * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
13841 * invoke.texi (replace-outfile): Document.
13842
13843 2010-08-17 Uros Bizjak <ubizjak@gmail.com>
13844
13845 PR target/45296
13846 * reginfo.c (globalize_reg): Reject stack registers.
13847
13848 2010-08-17 Richard Guenther <rguenther@suse.de>
13849
13850 * tree-ssa-dom.c (struct edge_info): Use a VEC for the
13851 list of conditional equivalences.
13852 (free_all_edge_infos): Adjust.
13853 (record_equivalences_from_incoming_edge): Likewise.
13854 (record_cond): Likewise.
13855 (build_and_record_new_cond): Likewise.
13856 (record_conditions): Likewise.
13857 (dom_opt_leave_block): Likewise.
13858
13859 2010-08-17 Kai Tietz <kai.tietz@onevision.com>
13860
13861 * doc/invoke.texi (ms-extension): Add documentation.
13862
13863 2010-08-17 Richard Guenther <rguenther@suse.de>
13864
13865 * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
13866
13867 2010-08-17 Shujing Zhao <pearly.zhao@oracle.com>
13868
13869 PR c/40563
13870 * c-decl.c (diagnose_uninitialized_cst_member): New function.
13871 (finish_decl): Use it to issue a -Wc++-compat warning about
13872 uninitialized const field in struct or union.
13873
13874 (finish_struct): Use strip_array_types.
13875
13876 2010-08-17 Jakub Jelinek <jakub@redhat.com>
13877
13878 * function.c (block_fragments_nreverse, blocks_nreverse_all): New
13879 functions.
13880 (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
13881 (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL. Don't
13882 call block_nreverse here.
13883 (blocks_nreverse): Rename decl temporary to block.
13884
13885 2010-08-16 Bernd Schmidt <bernds@codesourcery.com>
13886
13887 * config/arm/thumb2.md (thumb2_notsi_shiftsi,
13888 thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
13889 thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
13890 thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
13891 thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
13892 thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
13893 thumb2_iorsi3): Delete.
13894 (orsi_notsi_si): No longer a named pattern.
13895 (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
13896 * config/arm/predicates.md (shift_amount_operand): New.
13897 (mult_operator): New.
13898 * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
13899 attr enabled): New.
13900 (iorsi3_insn): Renamed from arm_iorsi3. Handle a new alternative if
13901 arch matches t2.
13902 (not_shiftsi): Renamed from arm_notsi_shiftsi. Handle Thumb2 variant.
13903 (not_shiftsi_compare0): Likewise, renamed from
13904 arm_notsi_shiftsi_compare0.
13905 (not_shiftsi_compare0_scratch): Likweise, renamed from
13906 arm_notsi_shiftsi_compare0_scratch.
13907 (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
13908 (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
13909 (arith_shiftsi): Handle Thumb2 variant. Set insn_enabled attribute
13910 so that the register alternative is disabled when the shift_operator
13911 is MULT. Use "M" as the constraint for constants.
13912 (arith_shiftsi splitter): Enable for TARGET_32BIT.
13913 (arith_shiftsi_compare0): Handle Thumb2 variant. Use "M" as the
13914 constraint for constants.
13915 (arith_shiftsi_compare0_scratch): Likewise.
13916 (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
13917 Handle Thumb2 alternative.
13918
13919 2010-08-16 Joseph Myers <joseph@codesourcery.com>
13920
13921 * doc/options.texi (NoDriverArg): Document.
13922 * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
13923 -MDX and -MMDX.
13924 * opt-functions.awk (switch_flags): Handle NoDriverArg.
13925 * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
13926 marking for CL_NO_DRIVER_ARG options when in the driver.
13927 * opts.h (CL_NO_DRIVER_ARG): Define.
13928 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
13929 CL_COMMON): Update values.
13930
13931 2010-08-16 Joseph Myers <joseph@codesourcery.com>
13932
13933 * common.opt: Add driver options.
13934 (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
13935 * doc/options.texi (Driver, RejectDriver): Document.
13936 * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
13937 print_prog_name, print_multi_directory, print_sysroot,
13938 print_multi_os_directory, print_multi_lib,
13939 print_sysroot_headers_suffix, report_times, combine_flag,
13940 use_pipes, wrapper_string): Remove.
13941 (save_switch, driver_unknown_option_callback,
13942 driver_wrong_lang_callback, driver_post_handling_callback,
13943 driver_handle_option): New.
13944 (spec_lang, last_language_n_infiles): Make file-scope static
13945 instead of local to process_command.
13946 (process_command): Use decode_cmdline_options_to_array and
13947 read_cmdline_option for option processing. Compute have_c in
13948 prescan of decoded options.
13949 * opt-functions.awk (switch_flags): Handle Driver and
13950 RejectDriver.
13951 (var_type, var_type_struct): Handle Separate options as generating
13952 const char * variables.
13953 * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
13954 CL_TARGET to be passed by caller if required.
13955 (decode_cmdline_options_to_array): Update comment.
13956 * opts.c (complain_wrong_lang): Handle options only valid for the
13957 driver.
13958 (decode_options): Update call to decode_cmdline_options_to_array.
13959 (print_filtered_help): Ignore driver-only options.
13960 (print_specific_help): Ignore CL_DRIVER.
13961 (common_handle_option): Don't call print_specific_help for CL_DRIVER.
13962 * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
13963 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
13964 Update values.
13965
13966 2010-08-16 Richard Guenther <rguenther@suse.de>
13967
13968 * tree-cfg.c (verify_types_in_gimple_reference): Verify
13969 TARGET_MEM_REF a bit.
13970 * tree-ssa-address.c (addr_for_mem_ref): Adjust.
13971 (create_mem_ref_raw): Always create TMR_OFFSET, store the
13972 alias pointer type via it.
13973 (copy_mem_ref_info): Adjust.
13974 (maybe_fold_tmr): Likewise.
13975 * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
13976 (reference_alias_ptr_type): Likewise.
13977 * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
13978 adjust documentation of TMR_OFFSET operand.
13979 * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
13980 use the alias pointer type.
13981 * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
13982 initialize mem attrs but the TMR itself.
13983 * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
13984 similar to MEM_REF.
13985 * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
13986 * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
13987 (unshare_and_remove_ssa_names): Likewise.
13988 (copy_ref_info): Adjust.
13989 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
13990 TARGET_MEM_REF case.
13991 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
13992 at TMR_ORIGINAL.
13993 * tree.h (TMR_ORIGINAL): Remove.
13994 * gimple.c (get_base_address): For TARGET_MEM_REF with a
13995 symbol return that.
13996 * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
13997 with a symbol.
13998 (get_addr_base_and_unit_offset): Likewise.
13999 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
14000 TARGET_MEM_REFs.
14001 (indirect_ref_may_alias_decl_p): Likewise.
14002 (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
14003
14004 2010-08-15 Uros Bizjak <ubizjak@gmail.com>
14005
14006 * doc/invoke.texi (-fomit-frame-pointer): Document that starting
14007 with GCC version 4.6, the default setting (when not optimizing
14008 for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
14009 been changed to -fomit-frame-pointer.
14010
14011 2010-08-15 Iain Sandoe <iains@gcc.gnu.org>
14012
14013 * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
14014 Darwin10. Do not link libgcc.a for Darwin >= 9.
14015
14016 2010-08-15 Gerald Pfeifer <gerald@pfeifer.com>
14017
14018 * doc/invoke.texi (Warning Options): Fix terminology and markup
14019 in the description of how unknown warning options are handled.
14020
14021 2010-08-15 Ira Rosen <irar@il.ibm.com>
14022
14023 * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
14024 in basic blocks.
14025 (vect_supportable_dr_alignment): Check alignment for basic blocks.
14026 * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
14027 data references.
14028 (vect_bb_vectorization_profitable_p): New function.
14029 (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
14030 check if it's worthwhile to vectorize the basic block.
14031
14032 2010-08-14 Anatoly Sokolov <aesok@post.ru>
14033
14034 * reload.h (register_move_cost, memory_move_secondary_cost,
14035 secondary_reload_class): Adjust prototype.
14036 * rtl.h (reg_class_subset_p): Adjust prototype.
14037 * reload.c (secondary_reload_class): Change arguments type from
14038 enum reg_class to reg_class_t. Change result type to reg_class_t.
14039 * reginfo.c (register_move_cost, reg_class_subset_p): Change
14040 arguments type from enum reg_class to reg_class_t.
14041 (memory_move_secondary_cost): Change arguments type from
14042 enum reg_class to reg_class_t. Change type of saved_flags to
14043 reg_class_t.
14044
14045 * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
14046 Remove macros.
14047 (mips_cost): Remove.
14048 (struct mips_rtx_cost_data): Moved to mips.c.
14049 * config/mips/mips-protos.h (mips_register_move_cost): Remove.
14050 * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
14051 (mips_cost): Make static.
14052 (mips_canonicalize_move_class): Change argument type to reg_class_t.
14053 Change result type to reg_class_t.
14054 (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
14055 type from enum reg_class to reg_class_t.
14056 (mips_register_move_cost): Make static. Change arguments
14057 type from enum reg_class to reg_class_t.
14058 (mips_memory_move_cost): New function.
14059 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
14060
14061 2010-08-14 Richard Sandiford <rdsandiford@googlemail.com>
14062
14063 PR rtl-optimization/43358
14064 * ira-lives.c (process_single_reg_class_operands): Adjust the costs
14065 of a single hard register, using simplify_subreg_regno to decide
14066 what that register should be.
14067
14068 2010-08-14 Mingjie Xing <mingjie.xing@gmail.com>
14069
14070 * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
14071 * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
14072 (loongson_pmull<V_suffix>): Rename to...
14073 (mul<mode>3): ...this and use MULT instead of an UNSPEC.
14074
14075 2010-08-13 Jack Howarth <howarth@bromo.med.uc.edu>
14076
14077 * configure.ac: Enable -fomit-frame-pointer on darwin
14078 which support dwarf2.
14079 * config/i386/i386.c (override_options): Same.
14080
14081 2010-08-13 Jie Zhang <jie@codesourcery.com>
14082
14083 * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
14084
14085 2010-08-12 Joseph Myers <joseph@codesourcery.com>
14086
14087 * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
14088 -MMD.
14089
14090 2010-08-12 Changpeng Fang <changpeng.fang@amd.com>
14091
14092 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
14093 up dot_prod pattern searching if a stmt is outside the loop.
14094
14095 2010-08-12 H.J. Lu <hongjiu.lu@intel.com>
14096 Uros Bizjak <ubizjak@gmail.com>
14097
14098 * config.gcc: Handle --enable-frame-pointer.
14099
14100 * configure.ac: Add --enable-frame-pointer.
14101 * configure: Regenerated.
14102
14103 * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
14104 (override_options): If not configured with --enable-frame-pointer,
14105 enable -fomit-frame-pointer (but not for TARGET_MACHO or when
14106 optimizing for size), -fasynchronous-unwind-tables and
14107 -maccumulate-outgoing-args by default.
14108
14109 2010-08-12 Jakub Jelinek <jakub@redhat.com>
14110
14111 * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
14112
14113 PR middle-end/45262
14114 * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
14115 -a overflows. Normalize the range.
14116
14117 2010-08-12 Richard Guenther <rguenther@suse.de>
14118
14119 PR tree-optimization/45232
14120 * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
14121 for types with undefined overflow.
14122 (reassociate_bb): Allow re-associating of bit and min/max
14123 operations for types with undefined overflow.
14124 * tree-ssa-forwprop.c (associate_plusminus): New function.
14125 (tree_ssa_forward_propagate_single_use_vars): Call it.
14126
14127 2010-08-12 Richard Guenther <rguenther@suse.de>
14128
14129 * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
14130 * tree-ssa-alias.c (get_ptr_info): Move ...
14131 * tree-ssanames.c (get_ptr_info): ... here. Initialize
14132 align and misalign fields conservatively.
14133 * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
14134 derive alignment information.
14135 (evaluate_stmt): Derive alignment information from memory
14136 allocation functions.
14137 * tree.h (get_pointer_alignment): Make unsigned.
14138 * builtins.c (get_object_alignment): Use alignment information we
14139 have computed for pointers.
14140 (get_pointer_alignment): Likewise. Make conservative, return
14141 and unsigned value.
14142 (expand_builtin_strlen): Adjust.
14143 (expand_builtin_memcmp): Likewise.
14144 (expand_builtin_strcmp): Likewise.
14145 (expand_builtin_strncmp): Likewise.
14146 (get_builtin_sync_mem): Use at least mode alignment.
14147 (fold_builtin_memset): Adjust.
14148 (fold_builtin_memory_op): Likewise.
14149 * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
14150 information also dump pointer alignment knowledge.
14151 (dump_gimple_stmt): Likewise.
14152
14153 2010-08-12 Uros Bizjak <ubizjak@gmail.com>
14154
14155 * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
14156 (EMPTY_FIELD_BOUNDARY): Remove.
14157 * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
14158
14159 2010-08-12 Jakub Jelinek <jakub@redhat.com>
14160
14161 PR debug/45259
14162 * caller-save.c (save_call_clobbered_regs): Only swap notes with
14163 DEBUG_INSNs if n_regs_saved.
14164
14165 2010-08-12 Wei Guozhi <carrot@google.com>
14166
14167 PR target/44999
14168 * config/arm/arm.md (andsi3): Change to zero extension if possible.
14169 * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
14170
14171 2010-08-11 Vladimir Makarov <vmakarov@redhat.com>
14172
14173 * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
14174
14175 * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
14176
14177 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14178
14179 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
14180 the case removed in the previous patch, when the only phi argument
14181 is defined in the same loop as the phi node itself. Handle it
14182 separately from the invariant case by both propagating it outside
14183 the region and replacing the phi node with an assign.
14184
14185 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14186
14187 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
14188 constant phi nodes with one argument are is_gimple_min_invariant
14189 and SSA_NAME_IS_DEFAULT_DEF.
14190
14191 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
14192
14193 * graphite-cloog-util.c (oppose_constraint):
14194 Extend loop counter's value range (CLOOG_ORG).
14195 (cloog_matrix_to_ppl_constraint): Same.
14196 (new_Constraint_System_from_Cloog_matrix): Same.
14197 * graphite-cloog-compat.h (matrix_num_type): New.
14198
14199 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
14200
14201 * graphite.c (graphite_initialize): Do not initialize
14202 CLooG and initialize the Parma Polyhedra Library
14203 manually when using CLOOG_ORG.
14204 (graphite_finalize): Do not finalize CLooG and finalize
14205 the Parma Polyhedra Library manually when using CLOOG_ORG.
14206 * graphite-cloog-compat.h (cloog_initialize): Hide function
14207 when using CLOOG_ORG.
14208 (cloog_finalize): Same.
14209
14210 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
14211
14212 * graphite-clast-to-gimple.c (free_scattering): Change
14213 CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
14214 (CLOOG_ORG).
14215 (build_cloog_prog): Same.
14216 * graphite-cloog-compat.h (cloog_domain): Removed.
14217 (cloog_scattering): New.
14218 (cloog_set_domain): Removed.
14219 (cloog_set_scattering): New.
14220 (cloog_next_domain): Removed.
14221 (cloog_next_scattering): New.
14222 (cloog_set_next_domain): Removed.
14223 (cloog_set_next_scattering): New.
14224 (CloogScatteringList): New.
14225 (CloogScattering): New.
14226 (cloog_scattering_free): New.
14227 (new_Cloog_Scattering_from_ppl_Polyhedron): New.
14228 * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
14229 New.
14230
14231 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
14232
14233 * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
14234 CloogState.
14235 (set_cloog_options): Same.
14236 (print_clast_stmt): Same.
14237 (scop_to_clast): Same.
14238 (print_generated_program): Same.
14239 (gloog): Same.
14240 * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
14241 (scop_to_clast): Extend with CloogState.
14242 * graphite-cloog-util.c: Include graphite-cloog-compat.h
14243 (new_Cloog_Domain_from_ppl_Polyhedron):
14244 Extend with CloogState. Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
14245 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
14246 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
14247 * graphite-cloog-util.h (build_cloog_prog): Same.
14248 * graphite-cloog-copat.h (build_cloog_prog): New.
14249 (CloogState): New.
14250 (cloog_state_malloc): New.
14251 (cloog_state_free): New.
14252 (cloog_loop_malloc): New.
14253 (cloog_options_malloc): New.
14254 (cloog_statement_alloc): New.
14255 (cloog_domain_from_cloog_matrix): New.
14256 (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
14257 (new_Cloog_Domain_from_ppl_Polyhedron): New.
14258
14259 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
14260
14261 * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
14262 type of NAME now depends on used CLooG version.
14263 (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
14264 (gcc_type_for_clast_expr): Same.
14265 (print_clast_stmt): Replace pprint with clast_pprint.
14266 * graphite-cloog-compat.h: Provide compatibility macros for
14267 CLooG Legacy.
14268 (clast_name_p): New.
14269 (clast_expr_term): New.
14270 (clast_expr_red): New.
14271 (clast_expr_bin): New.
14272 (clast_pprint): New.
14273
14274 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
14275
14276 * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
14277 compatible to newer CLooG releases (CLOOG_ORG).
14278 (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
14279 (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
14280 * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
14281 (build_cloog_prog) : New.
14282 (cloog_program_extract_scalars): New.
14283 (cloog_program_scatter): New.
14284
14285 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
14286
14287 * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
14288 conditionally (CLOOG_ORG).
14289 * graphite-cloog-compat.h: New. Include graphite-cloog-compat.h.
14290 (cloog_statement_usr): New.
14291 (cloog_domain): Same.
14292 (cloog_set_domain): Same.
14293 (cloog_next_domain): Same.
14294 (cloog_set_next_domain): Same.
14295 (cloog_program_nb_scattdims): Same.
14296 (cloog_program_set_nb_scattdims): Same.
14297 (cloog_program_names): Same.
14298 (cloog_program_set_names): Same.
14299 (cloog_program_set_context): Same.
14300 (cloog_program_set_loop): Same.
14301 (cloog_program_blocklist): Same.
14302 (cloog_program_set_blocklist): Same.
14303 (cloog_program_scaldims): Same.
14304 (cloog_program_set_scaldims): Same.
14305 (cloog_names_nb_parameters): Same.
14306 (cloog_names_set_nb_parameters): Same.
14307 (cloog_names_parameters): Same.
14308 (cloog_names_set_parameters): Same.
14309 (cloog_names_set_nb_iterators): Same.
14310 (cloog_names_set_iterators): Same.
14311 (cloog_names_set_nb_scattering): Same.
14312 (cloog_names_set_scattering): Same.
14313 (cloog_statement_set_usr): Same.
14314 (cloog_loop_set_next): Same.
14315 (cloog_loop_set_domain): Same.
14316 (cloog_loop_set_block): Same.
14317 (cloog_block_list_next): Same.
14318 (cloog_block_list_set_next):
14319 (cloog_block_list_set_block): Same.
14320
14321 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14322
14323 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
14324 a bool.
14325 (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
14326 (rewrite_commutative_reductions_out_of_ssa_loop): Same.
14327 (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
14328 when something has been changed.
14329 (rewrite_commutative_reductions_out_of_ssa): Same.
14330
14331 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14332
14333 * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
14334 handle the case when def is in the sese region.
14335 (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
14336 for invariant expressions.
14337 (rewrite_cross_bb_phi_deps): Removed.
14338 (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
14339 (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
14340 rewrite_cross_bb_phi_deps.
14341
14342 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14343
14344 * graphite-sese-to-poly.c
14345 (rewrite_commutative_reductions_out_of_ssa_loop): Call
14346 scev_analyzable_p only on is_gimple_reg
14347
14348 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14349
14350 * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
14351 (rewrite_close_phi_out_of_ssa): Propagate constant values or
14352 parametric expressions outside the scop region.
14353 (rewrite_cross_bb_scalar_deps): Same.
14354 * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
14355
14356 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14357
14358 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
14359 SSA_NAME_DEF_STMT only on SSA_NAMEs.
14360
14361 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14362
14363 * tree-scalar-evolution.c (instantiate_scev_name): Do not
14364 instantiate default definitions.
14365
14366 2010-08-11 Vladimir Kargov <kargov@gmail.com>
14367 Sebastian Pop <sebastian.pop@amd.com>
14368
14369 * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
14370 (loop_exits_from_bb_p): New.
14371 * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
14372 (loop_exits_from_bb_p): Declared.
14373 * graphite-scop-detection.c (scopdet_basic_block_info): Call
14374 loop_exits_to_bb_p.
14375
14376 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14377
14378 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
14379 extra parameter for the region. Call scev_analyzable_p.
14380 (rewrite_reductions_out_of_ssa): Update call to
14381 rewrite_close_phi_out_of_ssa.
14382 (rewrite_cross_bb_phi_deps): Same.
14383 (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
14384 parameter for the region. Call scev_analyzable_p.
14385 (rewrite_commutative_reductions_out_of_ssa): Update call to
14386 rewrite_commutative_reductions_out_of_ssa_loop.
14387
14388 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14389
14390 * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
14391
14392 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14393
14394 * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
14395 SSA scalar phi nodes that can be scev_analyzable_p.
14396
14397 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14398
14399 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
14400 handle SSA_NAME_IS_DEFAULT_DEF.
14401
14402 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14403
14404 * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
14405
14406 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14407
14408 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
14409 case non close-phi nodes with one argument.
14410
14411 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14412
14413 * sese.h (scev_analyzable_p): Scevs could be expressions without
14414 chrecs and still be scev_analyzable_p.
14415
14416 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14417
14418 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
14419
14420 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14421
14422 * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
14423 * cfgloop.h (struct loop): Remove single_iv field.
14424 * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
14425 (scop_canonicalize_loops): Removed.
14426 (scop_ivs_can_be_represented): Do not use loop->single_iv. Iterate
14427 over all the loop phi nodes in loop->header.
14428 (build_poly_scop): Remove use of scop_canonicalize_loops.
14429
14430 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14431
14432 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
14433 handle GIMPLE_CALL.
14434
14435 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14436
14437 * tree-chrec.c (chrec_apply): Should only apply to the specified
14438 variable. Also handle multivariate chains of recurrences that
14439 satisfy evolution_function_is_affine_p. Also handle CASE_CONVERT.
14440
14441 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14442
14443 * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
14444 (debug_clast_name_indexes_1): Removed.
14445 (debug_clast_name_indexes): Removed.
14446 (pbb_to_depth_to_oldiv): Removed.
14447 (build_iv_mapping): Replace the use of rename_map with iv_map.
14448 (translate_clast_user): Remove uses of rename_map. Allocate and
14449 free iv_map.
14450 (translate_clast_for_loop): Remove uses of rename_map.
14451 (translate_clast_for): Same.
14452 (translate_clast_guard): Same.
14453 (translate_clast): Same.
14454 (gloog): Same.
14455 * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
14456 * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
14457 * sese.c (set_rename): Now static.
14458 (rename_variables_in_stmt): Removed.
14459 (rename_uses): New.
14460 (is_parameter): Removed.
14461 (is_iv): Removed.
14462 (expand_scalar_variables_call): Removed.
14463 (expand_scalar_variables_ssa_name): Removed.
14464 (expand_scalar_variables_expr): Removed.
14465 (expand_scalar_variables_stmt): Removed.
14466 (expand_scalar_variables): Removed.
14467 (rename_variables): Removed.
14468 (remove_condition): Removed.
14469 (get_true_edge_from_guard_bb): Removed.
14470 (get_false_edge_from_guard_bb): Removed.
14471 (struct igp): Removed.
14472 (default_before_guard): Removed.
14473 (convert_for_phi_arg): Removed.
14474 (add_guard_exit_phis): Removed.
14475 (insert_guard_phis): Removed.
14476 (graphite_copy_stmts_from_block): Now also uses iv_map and a
14477 region. Do not copy conditions. Do not copy induction variables.
14478 Call rename_uses.
14479 (copy_bb_and_scalar_dependences): Allocate a local rename_map for
14480 the translated statement. Use the iv_map for the induction
14481 variable renaming.
14482 * sese.h (copy_bb_and_scalar_dependences): Update declaration.
14483 (set_rename): Removed declaration.
14484 (scev_analyzable_p): ...here.
14485 * tree-chrec.c (chrec_apply_map): New.
14486 * tree-chrec.h (chrec_apply_map): Declared.
14487
14488 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14489
14490 * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
14491 insert_loop_close_phis.
14492 * sese.c (name_defined_in_loop_p): Removed.
14493 (expr_defined_in_loop_p): Removed.
14494 (alive_after_loop): Removed.
14495 (close_phi_not_yet_inserted_p): Removed.
14496 (struct alep): Removed.
14497 (add_loop_exit_phis): Removed.
14498 (insert_loop_close_phis): Removed.
14499
14500 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
14501
14502 * graphite-cloog-util.c
14503 (cloog_matrix_to_ppl_constraint): Fix flipped condition.
14504 * graphite-poly.c
14505 (psct_scattering_dim_for_loop_depth): Same.
14506
14507 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
14508
14509 * graphite-cloog-util.h: Added cloog.h.
14510 * graphite-blocking.c: Removed cloog.h.
14511 * graphite-dependences.c: Same.
14512 * graphite-interchange.c: Same.
14513 * graphite-poly.c: Same.
14514 * graphite-ppl.c: Same.
14515 * graphite-scop-detection.c: Same.
14516 * graphite-sese-to-poly.c:
14517 Removed cloog.h.
14518 Removed graphite-clast-to-gimple.h.
14519 (check_poly_representation): Removed (unused).
14520 * graphite-sese-to-poly.h
14521 (check_poly_representation): Removed (unused).
14522
14523 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
14524
14525 * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
14526 (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
14527 (graphite-cloog-util.o): New.
14528 (graphite-ppl.o): Added graphite-cloog-util.h.
14529 * graphite-clast-to-gimple.c:
14530 Added graphite-cloog-util.h to include statements.
14531 * graphite-cloog-util.c: New.
14532 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
14533 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
14534 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
14535 (new_C_Polyhedron_from_Cloog_Matrix): Same.
14536 (insert_constraint_into_matrix): Same.
14537 (ppl_Constrain_System_number_of_constraints): Same.
14538 (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
14539 (oppose_constraint): Same.
14540 (cloog_matrix_to_ppl_constraint): Same.
14541 (new_Constraint_System_from_Cloog_Matrix): Same.
14542 * graphite-cloog-util.h: New.
14543 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
14544 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
14545 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
14546 (new_C_Polyhedron_from_Cloog_Matrix): Same.
14547 (insert_constraint_into_matrix): Same.
14548 * graphite-ppl.c:
14549 Added graphite-cloog-util.h to include statements.
14550 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
14551 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
14552 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
14553 (new_C_Polyhedron_from_Cloog_Matrix): Same.
14554 (insert_constraint_into_matrix): Same.
14555 (ppl_Constrain_System_number_of_constraints): Same.
14556 (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
14557 (oppose_constraint): Same.
14558 (cloog_matrix_to_ppl_constraint): Same.
14559 (new_Constraint_System_from_Cloog_Matrix): Same.
14560 * graphite-ppl.h:
14561 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
14562 graphite-cloog-util.h.
14563 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
14564 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
14565 (new_C_Polyhedron_from_Cloog_Matrix): Same.
14566 (insert_constraint_into_matrix): Same.
14567
14568 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
14569
14570 * graphite-clast-to-gimple.c
14571 (precision_for_value): Resolve value_* calls to matching mpz_* calls.
14572 (precision_for_interval): Same.
14573 (gcc_type_for_interval): Same.
14574 (compute_type_for_level): Same.
14575 * graphite-interchange.c
14576 (lst_interchange_profitable_p): Same.
14577 * graphite-poly.c
14578 (psct_scattering_dim_for_loop_depth): Same.
14579 * graphite-ppl.c
14580 (ppl_max_for_le_pointset): Same.
14581 (ppl_min_for_le_pointset): Same.
14582
14583 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14584
14585 * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
14586 (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
14587
14588 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14589
14590 * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
14591 rewrite_close_phi_out_of_ssa.
14592
14593 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14594
14595 * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
14596
14597 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14598
14599 * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
14600 rename_map.
14601 * sese.c (debug_rename_map): Same.
14602 (get_rename): Same.
14603 (set_rename): Same.
14604 (rename_variables_in_stmt): Same.
14605 (expand_scalar_variables_call): Same.
14606 (expand_scalar_variables_ssa_name): Same.
14607 (expand_scalar_variables_expr): Same.
14608 (expand_scalar_variables_stmt): Same.
14609 (expand_scalar_variables): Same.
14610 (rename_variables): Same.
14611 (graphite_copy_stmts_from_block): Same.
14612 (copy_bb_and_scalar_dependences): Same.
14613
14614 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14615
14616 * graphite-clast-to-gimple.c (copy_renames): Removed.
14617 (translate_clast_for): Do not call copy_renames.
14618 (translate_clast_guard): Same.
14619
14620 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14621
14622 * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
14623 (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
14624 (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
14625 before rewrite_cross_bb_scalar_deps.
14626
14627 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14628
14629 * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
14630 Early return in when flag_associative_math is not set.
14631
14632 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14633
14634 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
14635 of SSA copies on edges except for loop->latch.
14636
14637 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14638
14639 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
14640 Split out of rewrite_reductions_out_of_ssa.
14641 * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
14642 Declared.
14643 * graphite.c (graphite_transform_loops): Call it.
14644
14645 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14646
14647 * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
14648
14649 2010-08-11 Alexander Monakov <amonakov@ispras.ru>
14650
14651 * dbgcnt.def (graphite_scop): New counter.
14652 * graphite.c: Include dbgcnt.h.
14653 (graphite_transform_loops): Use new counter to limit transformations.
14654 * Makefile.in (graphite.o): Depend on DBGCNT_H.
14655
14656 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14657
14658 * passes.c (init_optimization_passes): Add pass_graphite.
14659 Schedule a pass_copy_prop before pass_graphite_transforms.
14660 * timevar.def (TV_GRAPHITE): Declared.
14661 * tree-pass.h (pass_graphite): Declared.
14662 * tree-ssa-loop.c (pass_graphite): New.
14663
14664 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14665
14666 * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
14667 Remove calls to rename_nb_iterations and rename_sese_parameters.
14668 * graphite-clast-to-gimple.h (gloog): Update declaration.
14669 * graphite.c (graphite_transform_loops): Update call to gloog.
14670 * sese.c (rename_variables_in_expr): Removed.
14671 (rename_nb_iterations): Removed.
14672 (rename_sese_parameters): Removed.
14673 * sese.h (rename_nb_iterations): Removed.
14674 (rename_sese_parameters): Removed.
14675
14676 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14677
14678 * graphite-clast-to-gimple.c (gloog): Remove call to
14679 sese_adjust_liveout_phis.
14680 * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
14681 SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
14682 (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
14683 rewrite_phi_out_of_ssa.
14684 * sese.c (get_vdef_before_sese): Removed.
14685 (sese_adjust_vphi): Removed.
14686 (sese_adjust_liveout_phis): Removed.
14687 * sese.h (sese_adjust_liveout_phis): Removed.
14688
14689 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14690
14691 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
14692 argument for the place after which to insert the out of SSA copy.
14693 (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
14694 (rewrite_phi_out_of_ssa): Same.
14695 (rewrite_cross_bb_scalar_deps): Same.
14696 (insert_copyout): Removed.
14697 (insert_copyin): Removed.
14698 (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
14699 insert_out_of_ssa_copy_on_edge instead of insert_copyout and
14700 insert_copyin.
14701
14702 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14703
14704 * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
14705 (rewrite_reductions_out_of_ssa): Same.
14706 (rewrite_commutative_reductions_out_of_ssa): Same.
14707 (build_poly_scop): Do not call these functions.
14708 * graphite-sese-to-poly.h (build_poly_scop): Declared.
14709 (rewrite_reductions_out_of_ssa): Declared.
14710 (rewrite_commutative_reductions_out_of_ssa): Declared.
14711 * graphite.c (graphite_transform_loops): Call on every scop
14712 rewrite_commutative_reductions_out_of_ssa before calling
14713 rewrite_reductions_out_of_ssa and build_scop_bbs.
14714
14715 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14716
14717 * graphite-dependences.c (dot_deps): Make system call to dotty run
14718 in background.
14719 (dot_deps_stmt): Same.
14720 * graphite-poly.c (dot_lst): Same.
14721
14722 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14723
14724 * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
14725 phi_arg_in_outermost_loop.
14726 (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
14727 (remove_invariant_phi): Same.
14728
14729 2010-08-11 Anatoly Sokolov <aesok@post.ru>
14730
14731 * target.def (output_addr_const_extra): New hook.
14732 * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
14733 * doc/tm.texi: Regenerate.
14734 * targhooks.c (default_asm_output_addr_const_extra): New function.
14735 * targhooks.h (default_asm_output_addr_const_extra): Declare.
14736 * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
14737 target hook.
14738
14739 * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
14740 * config/i386/i386-protos.h (output_addr_const_extra): Remove.
14741 * config/i386/i386.h (output_addr_const_extra): Rename to...
14742 (i386_asm_output_addr_const_extra): ...this. Make static.
14743 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
14744
14745 2010-08-11 Richard Henderson <rth@redhat.com>
14746
14747 * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
14748
14749 2010-08-11 Nick Clifton <nickc@redhat.com>
14750
14751 * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
14752 * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
14753 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
14754 stormy16-lib2-cmpsi.c.
14755
14756 * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
14757 -O2.
14758
14759 2010-08-11 Joseph Myers <joseph@codesourcery.com>
14760
14761 * opts.h (struct cl_option_handler_func): Make handler take
14762 cl_decoded_option structure as parameter, not individual elements.
14763 (struct cl_option_handlers): Make callbacks take cl_decoded_option
14764 structure as parameter, not individual elements.
14765 (handle_option): Take cl_decoded_option structure as parameter,
14766 not individual elements.
14767 (handle_generated_option): Declare.
14768 * opts-common.c (handle_option): Take cl_decoded_option structure
14769 as parameter, not individual elements. Update calls to callback
14770 and handler functions.
14771 (handle_generated_option): New.
14772 (read_cmdline_option): Update calls to callback functions and
14773 handle_option.
14774 * opts.c (common_handle_option, complain_wrong_lang,
14775 unknown_option_callback, post_handling_callback,
14776 lang_handle_option, target_handle_option): Take cl_decoded_option
14777 structure as parameter, not individual elements.
14778 (lang_handle_option, target_handle_option, common_handle_option):
14779 Assert option has at most one argument.
14780 (enable_warning_as_error): Call handle_generated_option instead of
14781 handle_option. Do not pass -Werror argument as argument of
14782 generated option.
14783
14784 2010-08-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14785
14786 * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
14787 'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
14788 (SUBWORD_BOOL_CAS): Likewise.
14789 (SUBWORD_SYNC_OP): Likewise.
14790 (SUBWORD_TEST_AND_SET): Likewise.
14791 (FETCH_AND_OP_WORD): Parenthesise INF_OP
14792 (SUBWORD_SYNC_OP): Likewise.
14793 (OP_AND_FETCH_WORD): Likewise.
14794
14795 2010-08-10 Xinliang David Li <davidxl@google.com>
14796
14797 * tree-ssa-loop-ivopts.c (get_address_cost): Properly
14798 compute max/min offset in address.
14799
14800 2010-08-10 Vladimir Makarov <vmakarov@redhat.com>
14801
14802 * ira-live.c: Include sbitmap.h.
14803 (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
14804 Compress live ranges even more.
14805
14806 2010-08-10 Nathan Froyd <froydnj@codesourcery.com>
14807
14808 * coverage.c (ctr_labels): Delete.
14809
14810 2010-08-10 Bernd Schmidt <bernds@codesourcery.com>
14811
14812 PR bootstrap/45177
14813 * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
14814 test here from arm_gen_load_multiple_1.
14815 (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
14816 multiple_operation_profitable_p.
14817
14818 2010-08-10 Nathan Froyd <froydnj@codesourcery.com>
14819
14820 * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
14821 (fini_pre): Call free_aux_for_blocks. Delete unused bb variable.
14822
14823 2010-08-10 Richard Henderson <rth@redhat.com>
14824
14825 * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
14826 after saving registers. Assert that SSE registers are only saved
14827 with a sufficiently aligned frame.
14828 (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
14829 remove stack_realign_fp handling.
14830 (ix86_expand_prologue): Save int registers before stack_realign_fp,
14831 and do not mark the stack alignment as frame related.
14832 (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
14833
14834 * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
14835 saves when re-aligning the stack.
14836
14837 2010-08-10 Nathan Froyd <froydnj@codesourcery.com>
14838
14839 * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
14840 * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
14841 (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
14842
14843 2010-08-10 Nathan Froyd <froydnj@codesourcery.com>
14844
14845 * dwarf2out.c (struct die_struct): Move die_tag to the end.
14846
14847 2010-08-09 Sofiane Naci <sofiane.naci@arm.com>
14848
14849 * config/arm/iterators.md: New file.
14850 * config/arm/arm.md: Include iterators.md.
14851 (QHSI): Move to new file.
14852 (LTUGEU, cnb, optab, ior_xor): Likewise.
14853 * config/arm/iwmmxt.md (VMMX): Move to new file.
14854 (VSHFT, MMX_char): Likewise.
14855 * config/arm/neon.md (VD): Move to new file.
14856 (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
14857 (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
14858 (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
14859 (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
14860 (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
14861 (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
14862 (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
14863 (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
14864 (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
14865 (Is_d_reg, V_mode_nunits): Likewise.
14866 * config/arm/vec-common.md (VALL): Move to new file.
14867 (VALLW, VINT, VINTW): Likewise.
14868
14869 2010-08-10 Bernd Schmidt <bernds@codesourcery.com>
14870
14871 PR middle-end/45182
14872 * combine.c (make_compound_operation): Don't try to convert
14873 shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
14874
14875 2010-08-10 Richard Guenther <rguenther@suse.de>
14876
14877 * tree.h (get_object_alignment): Adjust prototype.
14878 * builtins.c (get_object_alignment): Return unsigned int,
14879 drop the align parameter. Handle MEM_REF, MISALIGNED_INDIRECT_REF
14880 and TARGET_MEM_REF properly.
14881 (get_pointer_alignment): Adjust.
14882 * emit-rtl.c (get_mem_align_offset): Adjust comment.
14883 (set_mem_attributes_minus_bitpos): Adjust.
14884 * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
14885
14886 2010-08-10 Richard Guenther <rguenther@suse.de>
14887
14888 * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
14889 (copy_prop_visit_assignment): Simplify.
14890 (copy_prop_visit_stmt): Also visit assignments from
14891 constants.
14892 (copy_prop_visit_phi_node): Use operand_equal_p.
14893
14894 2010-08-09 Nathan Froyd <froydnj@codesourcery.com>
14895
14896 * ipa-split.c (find_split_points): Free stack.
14897
14898 2010-08-09 Nathan Froyd <froydnj@codesourcery.com>
14899
14900 * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
14901 * tree.c (tree_node_kind): Delete corresponding entries.
14902
14903 2010-08-09 H.J. Lu <hongjiu.lu@intel.com>
14904
14905 * alias.c (may_alias_p): Remove unused ret.
14906
14907 2010-08-09 Bingfeng Mei <bmei@broadcom.com>
14908
14909 * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
14910 alias_sets_conflict_p.
14911 (walk_mems_1): Moved from alias.c.
14912 (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
14913 in alias.c.
14914 (add_inter_loop_mem_dep): Use insns_may_alias_p now.
14915 * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
14916 * alias.c (walk_mems_2): Moved to ddg.c.
14917 (walk_mems_1): Ditto.
14918 (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
14919 to ddg.c.
14920 (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
14921 disambiguation.
14922 *(may_alias_p): New function to check whether two memory expression
14923 may alias or not. Currently used in buidling inter-iteration memory
14924 dependence.
14925 *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
14926 (insn_alias_sets_conflict_p): Removed
14927 *rtl.h (may_alias_p): New function prototype.
14928
14929 2010-08-09 Nathan Froyd <froydnj@codesourcery.com>
14930
14931 * tree.c (nreverse): Assert that we don't have a BLOCK.
14932
14933 2010-08-09 Nathan Froyd <froydnj@codesourcery.com>
14934
14935 * builtins.c (fold_builtin_next_arg): Use stdarg_p.
14936 * config/arm/arm.c (arm_get_pcs_model): Likewise.
14937 * config/avr/avr.c (init_cumulative_args): Likewise.
14938 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
14939 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
14940 * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
14941 * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
14942 * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
14943 * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
14944 * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
14945 * dwarf2out.c (gen_subprogram_die): Likewise.
14946 * function.c (allocate_struct_function): Likewise.
14947 * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
14948 (deserves_ellipsis): Delete.
14949
14950 2010-08-09 Richard Guenther <rguenther@suse.de>
14951
14952 * tree-ssa-copy.c (cached_last_copy_of): Remove.
14953 (valueize_val): New function.
14954 (get_last_copy_of): Remove.
14955 (set_copy_of_val): Simplify.
14956 (dump_copy_of): Likewise.
14957 (copy_prop_visit_cond_stmt): Use valueize_val.
14958 (copy_prop_visit_phi_node): Properly handle unvisited names.
14959 Drop code managing copy-of chains.
14960 (init_copy_prop): Adjust.
14961 (fini_copy_prop): Likewise.
14962 (execute_copy_prop): Remove obsolete comment.
14963
14964 2010-08-09 Richard Guenther <rguenther@suse.de>
14965
14966 PR middle-end/44632
14967 * function.c (gimplify_parameters): Do not clear addressable
14968 bit of the original parameter.
14969
14970 2010-08-09 Richard Guenther <rguenther@suse.de>
14971
14972 PR middle-end/45212
14973 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
14974 alignment from MEM_REF offset only if we took it from the
14975 base object.
14976
14977 2010-08-09 Eric Fisher <joefoxreal@gmail.com>
14978
14979 * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
14980
14981 2010-08-08 Nathan Froyd <froydnj@codesourcery.com>
14982
14983 * c-tree.h (build_arg_info): Declare.
14984 * c-decl.c (build_arg_info): Define.
14985 (get_parm_info): Call it. Delete initialization code.
14986 * c-parser.c (c_parser_parms_declarator): Likewise.
14987 (c_parser_parms_list_declaractor): Likewise.
14988
14989 2010-08-08 Nathan Froyd <froydnj@codesourcery.com>
14990
14991 * c-tree.h (c_arg_tag): Define. Define a VEC containing it.
14992 (struct c_arg_info): Change type of tags field.
14993 * c-decl.c (grokdeclarator): Update for changed type of tags field.
14994 (get_parm_info): Likewise.
14995 (store_parm_decls_newstyle): Likewise.
14996
14997 2010-08-08 Nathan Froyd <froydnj@codesourcery.com>
14998
14999 * config/rs6000/rs6000.c (branch_island): Define. Define a VEC of it.
15000 (branch_island_list): Delete.
15001 (branch_islands): Declare.
15002 (add_compiler_branch_island): Adjust for branch_islands instead of
15003 branch_island_list.
15004 (macho_branch_islands): Likewise.
15005 (no_previous_def): Likewise.
15006 (get_prev_label): Likewise.
15007
15008 2010-08-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15009
15010 PR boehm-gc/34544
15011 * gthr-posix.h (__gthread_start): Delete.
15012 (__gthread_active_init): Use pthread_default_stacksize_np instead of
15013 pthread_create to determine if hpux pthreads are active.
15014 * gthr-posix95.h (__gthread_start): Delete.
15015 (__gthread_active_init): Likewise use pthread_default_stacksize_np.
15016
15017 2010-08-08 Kai Tietz <kai.tietz@onevision.com>
15018
15019 * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
15020 _WIN64 not expanded.
15021
15022 2010-08-07 Uros Bizjak <ubizjak@gmail.com>
15023 H.J. Lu <hongjiu.lu@intel.com>
15024
15025 PR target/45213
15026 * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
15027 to output 32bit SFmode immediate as 8 byte sign extended value.
15028
15029 2010-08-07 Marcus Shawcroft <marcus.shawcroft@arm.com>
15030
15031 * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
15032 'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
15033 (SUBWORD_BOOL_CAS): Likewise.
15034 (SUBWORD_SYNC_OP): Likewise.
15035 (SUBWORD_TEST_AND_SET): Likewise.
15036 (FETCH_AND_OP_WORD): Parenthesise INF_OP
15037 (SUBWORD_SYNC_OP): Likewise.
15038 (OP_AND_FETCH_WORD): Likewise.
15039
15040 2010-08-07 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15041
15042 * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
15043 * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
15044 (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
15045 (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
15046 generic part.
15047 (cortex_a9_sched_adjust_cost): New function.
15048 (xscale_sched_adjust_cost): New function.
15049 * config/arm/arm-protos.h (struct tune_params): New field
15050 sched_adjust_cost.
15051 * config/arm/arm-cores.def: Adjust costs for cortex-a9.
15052
15053 2010-08-06 Eric Botcazou <ebotcazou@adacore.com>
15054
15055 PR target/44942
15056 * config/sparc/sparc.c (function_arg_advance): Always take into account
15057 the padding, if any.
15058
15059 2010-08-06 Richard Guenther <rguenther@suse.de>
15060
15061 * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
15062 (dump_lattice_value): Dump it.
15063 (get_default_value): Adjust.
15064 (get_constant_value): Likewise.
15065 (set_value_varying): Likewise.
15066 (set_lattice_value): Make sure to not go up the lattice
15067 with bitwise constant values.
15068 (get_value_for_expr): Handle ADDR_EXPRs.
15069 (value_to_double_int): New function.
15070 (get_value_from_alignment): Likewise.
15071 (do_dbg_cnt): Adjust.
15072 (ccp_lattice_meet): Handle partially constant values.
15073 (bit_value_unop_1): New function.
15074 (bit_value_binop_1): Likewise.
15075 (bit_value_unop): Likewise.
15076 (bit_value_binop): Likewise.
15077 (evaluate_stmt): Track partially constant values if
15078 flag_tree_bit_ccp is set.
15079 (ccp_fold_stmt): Dump if we folded a predicate.
15080 (ccp_visit_stmt): Adjust.
15081 * common.opt (ftree-bit-ccp): New flag.
15082 * doc/invoke.texi (ftree-bit-ccp): Document.
15083 * opts.c (decode_options): Enable bit-CCP at -O1.
15084
15085 2010-08-06 Alan Modra <amodra@gmail.com>
15086
15087 * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
15088 and -mrelocatable-lib description.
15089
15090 2010-08-05 Bernd Schmidt <bernds@codesourcery.com>
15091
15092 From Martin Thuresson <martint@google.com>
15093 * postreload.c (reload_cse_simplify_operands): Use
15094 SET_REGNO_RAW instead of SET_REGNO.
15095 * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
15096 SET_REGNO.
15097 * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
15098 instead of SET_REGNO.
15099 * rtl.h (SET_REGNO_RAW): New macro.
15100
15101 2010-08-05 Eric Botcazou <ebotcazou@adacore.com>
15102
15103 * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
15104 computations. Fix formatting issues.
15105 (num_sign_bit_copies1): Likewise.
15106 (canonicalize_condition): Likewise.
15107
15108 2010-08-05 Richard Henderson <rth@redhat.com>
15109
15110 * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
15111 (floor_log2): Use clz_hwi.
15112 (exact_log2): Use ctz_hwi.
15113 * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
15114 * builtins.c (fold_builtin_bitop): Use them.
15115 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
15116 * combine.c (get_pos_from_mask): Use ctz_hwi.
15117 * double-int.c (double_int_ctz): Likewise.
15118 * explow.c (force_reg): Likewise.
15119 * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
15120
15121 2010-08-05 Richard Henderson <rth@redhat.com>
15122
15123 PR target/45189
15124 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
15125 the alignment constant is properly sign-extended.
15126
15127 2010-08-05 Richard Guenther <rguenther@suse.de>
15128
15129 * expr.c (store_expr): Use emit_block_move only if both
15130 source and target are MEMs. Use store_bit_field if only
15131 the target is a MEM.
15132
15133 2010-08-05 Richard Henderson <rth@redhat.com>
15134
15135 PR debug/45188
15136 * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
15137 (INCOMING_RETURN_ADDR_RTX): Likewise.
15138 (dwarf2out_do_frame): Remove conditional compilation.
15139 (dwarf2out_frame_init): Likewise.
15140
15141 2010-08-05 Nicolas Setton <setton@adacore.com>
15142
15143 * gcov.c (flag_display_progress): New static variable.
15144 (main): Display progress info on standard output if requested.
15145 (options): Add -d/--display-progress.
15146 (print_usage): Print them.
15147 (process_args): Handle them.
15148 * doc/gcov.texi: Document them.
15149
15150 2010-08-05 Martin Jambor <mjambor@suse.cz>
15151
15152 * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
15153 (ipcp_insert_stage): Redirect only edges not flagged with
15154 indirect_inlining_edge. Call ipcp_discover_new_direct_edges for all
15155 discovered constants.
15156
15157 2010-08-05 Martin Jambor <mjambor@suse.cz>
15158
15159 * ipa-prop.h (enum ipa_lattice_type): Changed comments.
15160 (struct ipa_param_descriptor): New fields types and
15161 cannot_devirtualize.
15162 (ipa_param_cannot_devirtualize_p): New function.
15163 (ipa_param_types_vec_empty): Likewise.
15164 (ipa_make_edge_direct_to_target): Declare.
15165 * ipa-cp.c: Fixed first stage driver name in initial comment,
15166 described devirtualization there too.
15167 (ipcp_analyze_node): Call ipa_analyze_params_uses.
15168 (ipcp_print_all_lattices): Print devirtualization info.
15169 (ipa_set_param_cannot_devirtualize): New function.
15170 (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
15171 lattice to BOTTOM.
15172 (ipcp_init_stage): Merged into...
15173 (ipcp_generate_summary): ...its caller.
15174 (ipcp_change_tops_to_bottom): Also process type lists.
15175 (ipcp_add_param_type): New function.
15176 (ipcp_copy_types): Likewise.
15177 (ipcp_propagate_types): Likewise.
15178 (ipcp_propagate_stage): Also propagate types.
15179 (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
15180 Also return true if propagated types require it.
15181 (ipcp_update_callgraph): Dump redirection info.
15182 (ipcp_process_devirtualization_opportunities): New function.
15183 (ipcp_const_param_count): Include known type information.
15184 (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
15185 on new node. Fixed formatting.
15186 * ipa-prop.c (make_edge_direct_to_target): Renamed to
15187 ipa_make_edge_direct_to_target and changed all callers. Made
15188 externally visible.
15189 (ipa_node_duplication_hook): Duplicate types vector.
15190 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
15191 redirect outgoing calls for which we can't get a decl from the
15192 statement. Check that we can get a decl from the call statement.
15193 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
15194 ipa_analyze_params_uses only when ipa-cp is disabled.
15195 * tree-inline.c (get_indirect_callee_fndecl): Removed.
15196 (expand_call_inline): Do not call get_indirect_callee_fndecl.
15197 * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
15198 * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
15199
15200 2010-08-05 Uros Bizjak <ubizjak@gmail.com>
15201
15202 * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
15203 temporary. Emit move from temporary to accum, so REG_EQUAL note will
15204 be attached to this insn in correct mode.
15205
15206 2010-08-05 Uros Bizjak <ubizjak@gmail.com>
15207
15208 * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
15209 using REGNO of base_reg directly.
15210
15211 2010-08-05 Jie Zhang <jie@codesourcery.com>
15212
15213 PR tree-optimization/45144
15214 * tree-sra.c (type_consists_of_records_p): Return false
15215 if the record contains bit-field.
15216
15217 2010-08-04 Richard Henderson <rth@redhat.com>
15218
15219 * config/i386/i386.c (struct ix86_frame): Remove padding and
15220 to_allocate members.
15221 (ix86_compute_frame_layout): Don't store them.
15222 (ix86_can_use_return_insn_p): Use a more direct and more obviously
15223 correct condition for the position of the stack pointer.
15224 (ix86_expand_prologue): Compute remaining stack allocation based
15225 on the ultimate stack pointer offset.
15226 (ix86_expand_epilogue): Use more obvious expressions testing for
15227 the stack pointer already pointing to the saved registers.
15228
15229 * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
15230 duplication deconstructing the frame pointer. Simplify
15231 deallocation of the local stack frame.
15232
15233 * reg-notes.def (CFA_EXPRESSION): New.
15234 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
15235 (dwarf2out_frame_debug_cfa_expression): New.
15236 (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
15237
15238 * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
15239 * config/i386/i386.c (ix86_expand_prologue): Set it.
15240 (ix86_expand_epilogue): Clear it.
15241 (ix86_emit_save_reg_using_mov): For registers saved in a realigned
15242 context, add REG_CFA_EXPRESSION notes.
15243
15244 * config/i386/i386.h (struct machine_frame_state): Rename from
15245 machine_cfa_state. Add members tracking SP and FP regardless
15246 of the current CFA register.
15247 (ix86_cfa_state): Remove.
15248 * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
15249 and sse_reg_save_offset members.
15250 (ix86_compute_frame_layout): Set them.
15251 (gen_push): Increment sp_offset too.
15252 (choose_baseaddr_len, choose_baseaddr): New.
15253 (ix86_emit_save_reg_using_mov): New.
15254 (ix86_emit_save_regs_using_mov): Use it.
15255 (ix86_emit_save_sse_regs_using_mov): Likewise.
15256 (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
15257 compare vs the saved red_zone_offset.
15258 (pro_epilogue_adjust_stack): Adjust sp_offset.
15259 (ix86_adjust_stack_and_probe): Likewise.
15260 (ix86_expand_prologue): Set up, use, and validate the new
15261 frame_state_info members. Use gen_frame_mem.
15262 (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
15263 (ix86_emit_restore_reg_using_pop): Likewise. Use and update the
15264 new frame_state_info members.
15265 (ix86_emit_leave): Likewise.
15266 (ix86_emit_restore_regs_using_mov): Likewise. Don't check for
15267 out-of-range stack pointer offsets here.
15268 (ix86_emit_restore_sse_regs_using_mov): Likewise.
15269 (ix86_expand_epilogue): Use and validate the new frame_state_info
15270 members. Break up and simplify the logic selecting the
15271 restore_regs_via_mov code path. Ensure that there will be no
15272 out-of-range stack pointer offsets.
15273
15274 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
15275
15276 * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
15277 argument name to reflect the expected tree; fix indentation.
15278 (ix86_asm_output_function_label): Output the entire 32-bit
15279 ms_hook here as bytes ...
15280 (ix86_expand_prologue): ... not here as insns. Attach the
15281 unwind info for the ms_hook to a blockage insn.
15282 (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
15283 (ix86_ms_bitfield_layout_p): Fix indentation.
15284 * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
15285
15286 * config/i386/i386.c (ix86_using_red_zone): New.
15287 (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
15288 ix86_expand_prologue, ix86_force_to_memory): Use it.
15289
15290 * config/i386/i386.c (ix86_expand_prologue): Simplify logic
15291 saving the int registers.
15292
15293 * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
15294 and DWARF2_UNWIND_INFO conditional compilation.
15295
15296 2010-08-04 Richard Henderson <rth@redhat.com>
15297
15298 PR debug/45171
15299 * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
15300 an is_naming_typedef_decl.
15301
15302 2010-08-04 Bernd Schmidt <bernds@codesourcery.com>
15303
15304 PR rtl-optimization/45162
15305 * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
15306 * dce.c (word_dce_process_block): Likewise.
15307
15308 2010-08-04 Steve Ellcey <sje@cup.hp.com>
15309
15310 PR target/44583
15311 * config/ia64/constraints.md (Z): New.
15312 * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
15313 (xfreg_or_signed_fp01_operand): New.
15314 * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
15315 with fr_reg_or_signed_fp01_operand and constraint G with Z.
15316 (subsf3): Ditto.
15317 (*maddsf4): Ditto.
15318 (*msubsf4): Ditto.
15319 (adddf3): Ditto.
15320 (adddf3_trunc): Ditto.
15321 (subdf3): Ditto.
15322 (*subdf3_trunc): Ditto.
15323 (*madddf4): Ditto.
15324 (*madddf4_trunc): Ditto.
15325 (*msubdf4): Ditto.
15326 (*msubdf4_trunc): Ditto.
15327 (addxf3): Replace xfreg_or_fp01_operand with
15328 xfreg_or_signed_fp01_operand and constraint G with Z.
15329 (*addxf3_truncsf): Ditto.
15330 (*addxf3_truncdf): Ditto.
15331 (subxf3): Ditto.
15332 (*subxf3_truncsf): Ditto.
15333 (*subxf3_truncdf): Ditto.
15334 (*maddxf4): Ditto.
15335 (*maddxf4_truncsf): Ditto.
15336 (*maddxf4_truncdf): Ditto.
15337 (*msubxf4): Ditto.
15338 (*msubxf4_truncsf): Ditto.
15339 (*msubxf4_truncdf): Ditto.
15340
15341 2010-08-04 Richard Guenther <rguenther@suse.de>
15342
15343 * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
15344 if either alias-set is zero.
15345
15346 2010-08-04 Richard Guenther <rguenther@suse.de>
15347
15348 * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
15349 * tree-ssa-ccp.c: ... here.
15350 * tree-ssa-copy.c: ... and here.
15351 * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
15352 value_range_t): Move ...
15353 * tree-vrp.c: ... here.
15354 * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
15355 (substitute_and_fold): Adjust prototype.
15356 * tree-ssa-propagate.c (replace_uses_in): Adjust.
15357 (replace_phi_args_in): Likewise.
15358 (substitute_and_fold): Take callback to query lattice instead
15359 of pointer to lattice. Replace SSA name defs with lattice
15360 values first.
15361 * tree-ssa-ccp.c (ccp_finalize): Adjust.
15362 * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
15363 (get_value): New function.
15364 (fini_copy_prop): Adjust.
15365 * tree-vrp.c (vrp_finalize): Adjust.
15366
15367 2010-08-04 Richard Guenther <rguenther@suse.de>
15368
15369 PR middle-end/45176
15370 * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
15371 points-to set for original MEM_REF.
15372
15373 2010-08-04 Richard Guenther <rguenther@suse.de>
15374
15375 * tree-ssa-ccp.c (get_constant_value): New function.
15376 (get_rhs_assign_op_for_ccp): Remove.
15377 (valueize_op): New function.
15378 (ccp_fold): Use get_constant_value and valueize_op.
15379 (fold_const_aggregate_ref): Likewise.
15380 (ccp_fold_stmt): Likewise.
15381 (visit_assignment): Simplify.
15382
15383 2010-08-04 Richard Guenther <rguenther@suse.de>
15384
15385 * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
15386 * double-int.h (double_int_ctz): Declare.
15387 * double-int.c (double_int_ctz): New function.
15388
15389 2010-08-04 Hariharan Sandanagobalane <hariharan@picochip.com>
15390
15391 * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
15392 Define.
15393 picochip_expand_movmemhi : Expand movmem pattern.
15394 * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
15395 Declare.
15396 * config/picochip/picochip.md (movmemhi) : New pattern.
15397
15398 2010-08-03 Uros Bizjak <ubizjak@gmail.com>
15399
15400 * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
15401
15402 2010-08-03 Bernd Schmidt <bernds@codesourcery.com>
15403
15404 * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
15405 NEG as operand of a MULT by merging it with the other operand.
15406 * combine.c (make_compound_operation): Use trunc_int_for_mode when
15407 generating a MULT with constant. Canonicalize PLUS and MINUS involving
15408 MULT.
15409 * config/arm/constraints.md (M): Examine only 32 bits of a
15410 HOST_WIDE_INT.
15411 * config/arm/predicates.md (power_of_two_operand): Likewise.
15412
15413 2010-08-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15414
15415 * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
15416 non-NOTE insns.
15417
15418 2010-08-03 Jan Hubicka <jh@suse.cz>
15419
15420 * ipa-split.c (struct split_point): Add split_part_set_retval.
15421 (find_retval): Forward declare.
15422 (test_nonssa_use, mark_nonssa_use): Special case return by reference.
15423 (consider_split): Compute current->split_part_set_retval.
15424 (visit_bb): Do not look into return value.
15425 (split_function): Handle !split_part_set_retval
15426
15427 2010-08-03 Martin Jambor <mjambor@suse.cz>
15428
15429 * tree-sra.c (completely_scalarize_record): New parameter REF, create
15430 its own access->expr intead of using build_ref_for_offset.
15431
15432 2010-08-03 Joseph Myers <joseph@codesourcery.com>
15433
15434 * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
15435 * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
15436 * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
15437 * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
15438 * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
15439 * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
15440 * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
15441 DEFAULT_SWITCH_TAKES_ARG.
15442 * config/rx/rx.opt (-patch=): Remove option.
15443 * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
15444 * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
15445 * doc/invoke.texi (RX Options): Remove -patch=.
15446 * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
15447 (option_map): Remove --profile-blocks, --quiet and --silent.
15448
15449 2010-08-03 Uros Bizjak <ubizjak@gmail.com>
15450
15451 * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
15452 * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
15453 (ix86_expand_branch): Add op0 and op1 arguments. Do not access
15454 ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
15455 Update calls to ix86_expand_compare and ix86_expand_branch.
15456 (ix86_expand_setcc): Add op0 and op1 arguments. Update calls to
15457 ix86_expand_compare.
15458 (ix86_expand_compare): Add op0 and op1 arguments. Do not access
15459 ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
15460 Make static.
15461 (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
15462 and ix86_compare_op1. Update calls to ix86_expand_compare.
15463 (ix86_expand_int_movcc): Ditto.
15464 (ix86_expand_fp_movcc): Ditto. Update calls to ix86_expand_setcc.
15465 * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
15466 (ix86_expand_setcc): Ditto.
15467 (ix86_expand_compare): Remove prototype.
15468 * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
15469 ix86_compare_op0 and ix86_compare_op1. Update calls
15470 to ix86_expand_branch to directly pass operands[1] and operands[2].
15471 (cbranchxf4): Ditto.
15472 (cbranch<MODEF:mode>4): Ditto.
15473 (cbranchcc4): Ditto.
15474 (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
15475 Update calls to ix86_expand_setcc to directly pass operands[2] and
15476 operands[3].
15477 (cstorexf4): Ditto.
15478 (cstore<MODEF:mode>4): Ditto.
15479 (cstorecc4): Ditto.
15480
15481 2010-08-02 Bernd Schmidt <bernds@codesourcery.com>
15482
15483 PR target/45063
15484 * caller-save.c (save_call_clobbered_regs): Remove regs from
15485 hard_regs_saved when they are set.
15486
15487 2010-08-02 Uros Bizjak <ubizjak@gmail.com>
15488
15489 PR target/41089
15490 * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
15491 as volatile.
15492
15493 2010-08-02 Sebastian Pop <sebastian.pop@amd.com>
15494
15495 * common.opt (ftree-loop-distribute-patterns): New.
15496 * invoke.texi (-ftree-loop-distribute-patterns): Documented.
15497 * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
15498 at -O3.
15499 * tree-data-ref.c (stores_zero_from_loop): New.
15500 * tree-data-ref.h (stores_zero_from_loop): Declared.
15501 * tree-loop-distribution.c (tree_loop_distribution): Call
15502 stores_zero_from_loop.
15503 (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
15504
15505 2010-08-02 Bernd Schmidt <bernds@codesourcery.com>
15506
15507 * postreload.c (reload_cse_simplify_operands): Take attribute enabled
15508 into account.
15509
15510 * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
15511 * config/arm/arm.c (thumb1_code): New variable.
15512 (arm_override_options): Set it.
15513 (thumb1_final_prescan_insn): Keep track of condition code status.
15514 (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
15515 jumps that depend on them.
15516 * config/arm/arm.h (thumb1_code): Declare variable.
15517 (struct machine_function): Guard with #ifndef GENERATOR_FILE. Add
15518 members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
15519 thumb1_cc_mode.
15520 (CC_STATUS_INIT): New macro.
15521 * config/arm/constraints.md (Pd): New constraint.
15522 * config/arm/predicates.md (noov_comparison_operator): New predicate.
15523 * config/arm/arm.md (is_thumb1): New define_attr.
15524 (conds): Set default to "clob" when generating Thumb1 code.
15525 (thumb1_bicsi3): Renamed from bicsi3. All uses changed. Condition
15526 code are set. Use two-operand assembly syntax.
15527 (thumb1_subsi3_insn): Condition codes are set. Now a properly named
15528 pattern.
15529 (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
15530 codes are set. Use two-operand assembly syntax.
15531 (zero_extendhisi splitter): Remove constraints.
15532 (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
15533 thumb1_movsf_insn): Set conds attribute as appropriate.
15534 (cbranchsi4_insn): Use condition code status from struct
15535 machine_function to determine whether the comparison can be eliminated.
15536 Discourage the alternative using high registers.
15537 (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
15538 orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
15539 bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
15540 subsi3_cbranch): Delete.
15541 (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
15542 one subtract and one cbranch insn.
15543
15544 * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
15545 thumb2_movdf_soft_insn): Delete patterns.
15546 * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
15547 arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
15548 (pool_range, neg_pool_range): Use them to define defaults.
15549 (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
15550 and allow for TARGET_32BIT.
15551
15552 PR target/40457
15553 * config/arm/arm.h (arm_regs_in_sequence): Declare.
15554 * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
15555 load_multiple_sequence, store_multiple_sequence): Delete
15556 declarations.
15557 (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
15558 declarations.
15559 * config/arm/ldmstm.md: New file.
15560 * config/arm/arm.c (arm_regs_in_sequence): New array.
15561 (load_multiple_sequence): Now static. New args SAVED_ORDER,
15562 CHECK_REGS. All callers changed.
15563 If SAVED_ORDER is nonnull, copy the computed order into it.
15564 If CHECK_REGS is false, don't sort REGS. Handle Thumb mode.
15565 (store_multiple_sequence): Now static. New args NOPS_TOTAL,
15566 SAVED_ORDER, REG_RTXS and CHECK_REGS. All callers changed.
15567 If SAVED_ORDER is nonnull, copy the computed order into it.
15568 If CHECK_REGS is false, don't sort REGS. Set up REG_RTXS just
15569 like REGS. Handle Thumb mode.
15570 (arm_gen_load_multiple_1): New function, broken out of
15571 arm_gen_load_multiple.
15572 (arm_gen_store_multiple_1): New function, broken out of
15573 arm_gen_store_multiple.
15574 (arm_gen_multiple_op): New function, with code from
15575 arm_gen_load_multiple and arm_gen_store_multiple moved here.
15576 (arm_gen_load_multiple, arm_gen_store_multiple): Now just
15577 wrappers around arm_gen_multiple_op. Remove argument UP, all callers
15578 changed.
15579 (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
15580 * config/arm/predicates.md (commutative_binary_operator): New.
15581 (load_multiple_operation, store_multiple_operation): Handle more
15582 variants of these patterns with different starting offsets. Handle
15583 Thumb-1.
15584 * config/arm/arm.md: Include "ldmstm.md".
15585 (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
15586 ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
15587 stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
15588 peepholes): Delete.
15589 * config/arm/ldmstm.md: New file.
15590 * config/arm/arm-ldmstm.ml: New file.
15591
15592 * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
15593 if statement which adds extra costs to frame-related expressions.
15594
15595 2010-08-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15596
15597 * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
15598
15599 2010-08-01 Uros Bizjak <ubizjak@gmail.com>
15600
15601 PR target/45142
15602 * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
15603 alternative 2.
15604 (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
15605 split V4SI operands.
15606
15607 2010-08-01 Anatoly Sokolov <aesok@post.ru>
15608
15609 * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
15610 * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
15611 * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
15612 (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
15613
15614 2010-07-31 Kai Tietz <kai.tietz@onevision.com>
15615
15616 * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
15617 LOCAL_INCLUDE_DIR.
15618
15619 2010-07-31 Richard Sandiford <rdsandiford@googlemail.com>
15620
15621 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
15622 used in the call to optab_for_tree_code. Fix the second
15623 is_widening_mult_p call. Check that both unwidened operands
15624 have the same sign.
15625
15626 2010-07-31 John Tytgat <John.Tytgat@aaug.net>
15627
15628 * config/arm/arm.c (arm_function_arg): Remove superfluous test.
15629
15630 2010-07-31 Anatoly Sokolov <aesok@post.ru>
15631
15632 * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
15633
15634 2010-07-30 DJ Delorie <dj@redhat.com>
15635
15636 * config/rx/predicates.md (rx_constshift_operand): New.
15637 * config/rx/rx.md (zs_cond): New.
15638 (cbranchsi4): Remove mode.
15639 (*cbranchsi4_<code>): Likewise.
15640 (*tstbranchsi4_<code>): New.
15641 (*tstbranchsi4r_<code>): New.
15642 (*tstbranchsi4m_eq): New.
15643 (*tstbranchsi4m_ne): New.
15644 (cbranchsf4): Remove mode.
15645 (*cbranchsf4_<code>): Likewise.
15646
15647 2010-07-30 Bernd Schmidt <bernds@codesourcery.com>
15648
15649 * rtlanal.c (simplify_subreg_regno): Don't treat
15650 HARD_FRAME_POINTER_REGNUM specially.
15651
15652 2010-07-30 Joseph Myers <joseph@codesourcery.com>
15653
15654 * common.opt (-G): Don't define option here.
15655 * config/g.opt: New.
15656 * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
15657 rs6000/powerpc and score targets.
15658 * opts.c (common_handle_option): Don't handle -G here.
15659 * config/alpha/alpha.c (alpha_handle_option): Handle -G.
15660 * config/frv/frv.c (frv_handle_option): Handle -G.
15661 * config/ia64/ia64.c (ia64_handle_option): Handle -G.
15662 * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
15663 * config/m32r/m32r.c (m32r_handle_option): Handle -G.
15664 * config/mips/mips.c (mips_handle_option): Handle -G.
15665 * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
15666 * config/score/score.c (score_handle_option): Handle -G.
15667
15668 2010-07-30 Anatoly Sokolov <aesok@post.ru>
15669
15670 * config/mmix/mmix.c: Include basic-block.h.
15671
15672 2010-07-30 Jakub Jelinek <jakub@redhat.com>
15673
15674 PR debug/45055
15675 PR rtl-optimization/45137
15676 * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
15677 prototypes.
15678 * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
15679 New functions.
15680 * combine.c (next_nonnote_nondebug_insn): Removed.
15681 * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
15682 * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
15683 * sched-deps.c (sched_analyze_insn): Likewise.
15684 (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
15685 * rtlanal.c (canonicalize_condition): Likewise.
15686 * postreload.c (reload_combine_recognize_pattern): Likewise.
15687 (reload_cse_move2add): Use next_nonnote_nondebug_insn.
15688
15689 2010-07-29 Uros Bizjak <ubizjak@gmail.com>
15690
15691 * config/i386/i386.md (int_cond): Remove code iterator.
15692 (fp_cond): Ditto.
15693 (cbranch<mode>4): Use ordered_comparison_operator predicate
15694 for operator0.
15695 (cstore<mode>4): Ditto for operator1.
15696 (mov<SWIM:mode>cc and corresponding splitter): Ditto.
15697 (add<mode>cc): ditto.
15698
15699 2010-07-30 Richard Guenther <rguenther@suse.de>
15700
15701 PR middle-end/45141
15702 * expr.c (expand_expr_real_1): Check for not handled base address.
15703
15704 2010-07-30 Richard Guenther <rguenther@suse.de>
15705
15706 * ipa-prop.c (ipa_modify_formal_parameters): Use
15707 build_distinct_type_copy.
15708
15709 2010-07-30 Anthony Green <green@moxielogic.com>
15710
15711 * config/moxie/rtems.h: New file.
15712 * config.gcc: Add moxie-rtems support.
15713
15714 2010-07-29 Bernd Schmidt <bernds@codesourcery.com>
15715
15716 * dce.c (run_word_dce): Take flag_dce into account. Clear and restore
15717 df flags as in run_fast_df_dce.
15718
15719 2010-07-29 Jakub Jelinek <jakub@redhat.com>
15720
15721 Revert:
15722 2010-07-27 Bernd Schmidt <bernds@codesourcery.com>
15723
15724 * rtl.def (NOTE): Swap operands 4 and 5.
15725 * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
15726 NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
15727 Adjust accordingly.
15728 * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
15729
15730 2010-07-29 Jakub Jelinek <jakub@redhat.com>
15731
15732 PR debug/45110
15733 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
15734 (gen_formal_types_die): Add DW_AT_object_pointer in methods.
15735 (gen_subprogram_die): Likewise. Remove it when removing declaration's
15736 formal parameters.
15737 (gen_decl_die): Change return type to dw_die_ref, return what
15738 gen_formal_parameter_die returned.
15739
15740 2010-07-29 Martin Jambor <mjambor@suse.cz>
15741
15742 * dbgcnt.def (eipa_sra): New counter.
15743 * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
15744
15745 2010-07-29 Xinliang David Li <davidxl@google.com>
15746
15747 PR bootstrap/45119
15748 * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
15749 in revision 162652.
15750
15751 2010-07-29 Richard Guenther <rguenther@suse.de>
15752
15753 * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
15754 (TV_TREE_STORE_CCP): Likewise.
15755 (TV_TREE_REDPHI): Likewise.
15756
15757 2010-07-29 Richard Guenther <rguenther@suse.de>
15758
15759 * double-int.h (double_int_and_not): New function.
15760 * combine.c (try_combine): Use it.
15761 * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
15762
15763 2010-07-29 Bernd Schmidt <bernds@codesourcery.com>
15764
15765 PR rtl-optimization/42575
15766 * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
15767 Argument AU removed. All callers changed. Ignore artificial refs.
15768 Use return value of df_word_lr_simulate_defs to decide whether an insn
15769 is necessary.
15770 (fast_dce): Rename arg to WORD_LEVEL.
15771 (run_word_dce): Renamed from rest_of_handle_fast_byte_dce. No longer
15772 static.
15773 (pass_fast_rtl_byte_dce): Delete.
15774 * dce.h (run_word_dce): Declare.
15775 * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
15776 All callers changed. Simplify code to only deal with two-word regs.
15777 * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
15778 (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
15779 (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
15780 (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
15781 (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
15782 (df_word_lr_mark_ref): Declare.
15783 (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
15784 df_word_lr_simulate_uses): Declare or rename from byte variants.
15785 (df_byte_lr_simulate_artificial_refs_at_top,
15786 df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
15787 df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
15788 declarations.
15789 (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
15790 (enum df_mm): Delete.
15791 * df-byte-scan.c: Delete file.
15792 * df-problems.c (df_word_lr_problem_data): Renamed from
15793 df_byte_lr_problem_data, all members deleted except for
15794 WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS. Uses changed.
15795 (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
15796 df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
15797 df_byte_lr_get_regno_len, df_byte_lr_check_regs,
15798 df_byte_lr_confluence_0): Delete functions.
15799 (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
15800 callers changed.
15801 (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
15802 Don't initialize members that were deleted, don't try to discover data
15803 about registers. Ignore hard regs.
15804 (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
15805 (df_word_lr_mark_ref): New function.
15806 (df_word_lr_bb_local_compute): Renamed from
15807 df_byte_bb_lr_local_compute; all callers changed. Use
15808 df_word_lr_mark_ref. Assert that artificial refs don't include
15809 pseudos. Ignore hard registers.
15810 (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
15811 Assert that exit block uses don't contain pseudos.
15812 (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
15813 (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
15814 callers changed. Ignore hard regs.
15815 (df_word_lr_transfer_function): Renamed from
15816 df_byte_lr_transfer_function; all callers changed.
15817 (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
15818 (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
15819 changed.
15820 (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
15821 callers changed.
15822 (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
15823 confluence operator 0 set to NULL.
15824 (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
15825 callers changed.
15826 (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
15827 Return bool, true if bitmap changed or insn otherwise necessary.
15828 All callers changed. Simplify using df_word_lr_mark_ref.
15829 (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
15830 all callers changed. Simplify using df_word_lr_mark_ref.
15831 * lower-subreg.c: Include "dce.h"
15832 (decompose_multiword_subregs): Call run_word_dce if df available.
15833 * Makefile.in (lower-subreg.o): Adjust dependencies.
15834 (df-byte-scan.o): Delete.
15835 * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
15836
15837 2010-07-29 Richard Guenther <rguenther@suse.de>
15838
15839 * tree.c (build_vector): Assert that the vector constant
15840 has enough elements.
15841 (build_vector_from_ctor): Pad with trailing zeros.
15842
15843 2010-07-29 Richard Guenther <rguenther@suse.de>
15844
15845 PR tree-optimization/45120
15846 * tree-ssa-structalias.c (get_constraint_for_component_ref):
15847 Handle offset in DEREFs properly.
15848 (get_constraint_for_1): Handle MEM_REF offset properly.
15849
15850 2010-07-29 Richard Guenther <rguenther@suse.de>
15851
15852 PR middle-end/45034
15853 * convert.c (convert_to_integer): Always use an unsigned
15854 type for narrowed negate and bitwise not.
15855
15856 2010-07-29 Ira Rosen <irar@il.ibm.com>
15857
15858 * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
15859 to outer loop when creating reduction epilogue for double reduction,
15860 and switch back to the inner loop when updating the phi nodes.
15861 Update uses of outer loop exit phi nodes in double reduction (instead
15862 of uses of reduction).
15863
15864 2010-07-28 Michael Meissner <meissner@linux.vnet.ibm.com>
15865
15866 * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
15867 popcount on power7 and parity on power6 systems.
15868 (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
15869 (rs6000_emit_parity): Add support for power6 prtyd/prtyw
15870 instructions.
15871
15872 * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
15873 (UNSPEC_PARITY): Ditto.
15874 (SFDF): New iterator for SF/DF.
15875 (rreg2): New mode attribute for floating register constraint.
15876 (TARGET_FLOAT): New mode attribute for whether single/double float
15877 is supported.
15878 (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
15879 pattern.
15880 (parity<mode>2_cmpb): New insn for parity on power6 and newer
15881 machines.
15882 (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
15883 pattern. Add support for fcpsgn instruction added in power6.
15884 (copysignsf3): Delete.
15885 (copysigndf3): Delete.
15886 (copysign<mode>3_fcpsgn): New insn to generate fcpsgn. Use UNSPEC
15887 instead of if_then_else in RTL to avoid problems with -0.
15888
15889 * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
15890 of if_then_else to mirror scalar code.
15891 (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
15892 rs6000.md.
15893
15894 * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
15895 instead of if_then_else.
15896
15897 2010-07-28 Xinliang David Li <davidxl@google.com>
15898
15899 * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
15900 (dump_cand): Dump var_before/after.
15901 (htab_inv_expr_eq): New function.
15902 (htab_inv_expr_hash): New function.
15903 (tree_ssa_iv_optimize_init): Support pseudo invariants.
15904 (add_candidate_1): consider base type precision.
15905 (set_use_iv_cost): New parameter.
15906 (adjust_setup_cost): Use profile information.
15907 (get_address_cost): Do not hard code width in computing address
15908 offset limits.
15909 (compare_aff_trees): New function.
15910 (get_loop_invariant_expr_id): New function.
15911 (get_computation_cost_at): New parameter and use profile information.
15912 (get_computation_cost): New parameter.
15913 (determine_use_iv_cost_generic): Pass new parameter.
15914 (determine_use_iv_cost_address): Ditto.
15915 (determine_use_iv_cost_condition): Ditto.
15916 (autoinc_possible_for_pair): Ditto.
15917 (determine_use_iv_costs): More dumps.
15918 (iv_ca_get_num_inv_exprs): New function.
15919 (iv_ca_recount_cost): Consider loop invariants in register pressure
15920 cost.
15921 (iv_ca_add_use): New parameter.
15922 (iv_ca_dump): Better dumping.
15923 (iv_ca_extend): New parameter.
15924 (try_add_cand_for): Attempt to get better partial solution.
15925 (try_improve_iv_set): Pass new parameter to iv_ca_extend.
15926 (create_new-ivs): More dumps.
15927 (rewrite_use_compare): Ditto.
15928 (free_loop_data): More cleanup.
15929 (treee_ssa_iv_optimize_finalize): Ditto.
15930
15931 2010-07-28 Kai Tietz <kai.tietz@onevision.com>
15932
15933 * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
15934 * config/i386/i386.c (ix86_profile_before_prologue): New.
15935 (override_options): Add special handling for -mfentry.
15936 (ix86_function_regparm): Likewise.
15937 (ix86_function_sseregparm): Likewise.
15938 (ix86_frame_pointer_required): Likewise.
15939 (ix86_expand_prologue): Check for ms_hook_prologue.
15940 (x86_function_profiler): Adjust mcount output.
15941 (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
15942 * config/i386/i386.opt (mfentry): New.
15943 * doc/invoke.texi (mfentry): Add documentation.
15944 * doc/tm.texi: Regenerated..
15945 * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
15946 * final.c (final_start_function): Replace macro
15947 PROFILE_BEFORE_PROLOGUE by target hook.
15948 * function.c (thread_prologue_and_epilogue_insns): Likewise.
15949 * target.def (profile_before_prologue): New hook.
15950 * targhooks.c (default_profile_before_prologue): New.
15951 * targhooks.h (default_profile_before_prologue): New.
15952
15953 2010-07-28 Jakub Jelinek <jakub@redhat.com>
15954
15955 PR debug/45105
15956 * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
15957
15958 PR debug/45103
15959 * dwarf2out.c (dwarf2out_var_location): Always consider
15960 NOTE_DURING_CALL_P notes, even when not followed by real instructions.
15961
15962 2010-07-28 Maxim Kuvyrkov <maxim@codesourcery.com>
15963
15964 PR rtl-optimization/45107
15965 * gcse.c (hash_scan_set): Use max_distance for gcse-las.
15966
15967 2010-07-28 Richard Guenther <rguenther@suse.de>
15968
15969 * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
15970 (set_lattice_value): Do not query an old default value.
15971 (get_value_for_expr): New function. Properly canonicalize
15972 float values.
15973 (ccp_visit_phi_node): Use it.
15974
15975 2010-07-28 Chung-Lin Tang <cltang@codesourcery.com>
15976
15977 * config/arm/arm.c (arm_pcs_default): Remove static.
15978 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
15979 __ARM_PCS_VFP to indicate soft/hard-float calling convention.
15980 (arm_pcs_default): Declare.
15981
15982 2010-07-28 Iain Sandoe <iains@gcc.gnu.org>
15983
15984 * config/rs6000/rs6000.c (rs6000_override_options):
15985 Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
15986 ... to darwin_rs6000_override_options.
15987 (rs6000_return_in_memory): Update preceding comment for darwin
15988 64 bit ABI. Use TARGET_MACHO inline.
15989 (rs6000_darwin64_struct_check_p): New.
15990 (function_arg_advance): Use rs6000_darwin64_struct_check_p.
15991 (function_arg): Likewise.
15992 (rs6000_arg_partial_bytes): Likewise.
15993 (rs6000_function_value): Likewise.
15994
15995 2010-07-28 Andi Kleen <ak@linux.intel.com>
15996
15997 * lto-opts.c (lto_file_read_options): Add loop over all inputs.
15998
15999 2010-07-28 Richard Guenther <rguenther@suse.de>
16000
16001 PR middle-end/44903
16002 * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
16003 targets try harder to not generate unaligned accesses.
16004
16005 2010-07-28 Maxim Kuvyrkov <maxim@codesourcery.com>
16006
16007 PR rtl-optimization/45101
16008 * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
16009 for gcse-las.
16010
16011 2010-07-28 Eric Botcazou <ebotcazou@adacore.com>
16012
16013 PR tree-optimization/44885
16014 * tree-sra.c (find_param_candidates): Skip pointer types to arrays
16015 with non-aliased component.
16016
16017 2010-07-28 Joseph Myers <joseph@codesourcery.com>
16018
16019 * config/darwin-driver.c (SWITCH_TAKES_ARG,
16020 WORD_SWITCH_TAKES_ARG): Remove.
16021 * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
16022 * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
16023 DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
16024 (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
16025 definitions from gcc.c.
16026 * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
16027 defaults.h.
16028 * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
16029 Move to defaults.h.
16030 * opts-common.c: Include tm.h.
16031 (decode_cmdline_option): Use SWITCH_TAKES_ARG and
16032 WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
16033 Handle more than one argument. Set canonical_option_num_elements.
16034 (decode_cmdline_options_to_array): Set
16035 canonical_option_num_elements and trailing elements of
16036 canonical_option.
16037 * opts.h (struct cl_decoded_option): Allow four elements in
16038 canonical_option. Add field canonical_option_num_elements.
16039 * Makefile.in (opts-common.o): Update dependencies.
16040
16041 2010-07-28 Eric Botcazou <ebotcazou@adacore.com>
16042
16043 PR middle-end/44790
16044 PR middle-end/44993
16045 * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change. Make
16046 sure the base has address_mode before adding the offset.
16047
16048 2010-07-27 Xinliang David Li <davidxl@google.com>
16049
16050 * tree-flow.h (create_mem_ref): Add one new parameter.
16051 * tree-ssa-address.c (create_mem_ref): New parameter.
16052 (addr_to_parts): Ditto.
16053 (move_variant_to_index): New function.
16054 * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
16055
16056 2010-07-27 Bernd Schmidt <bernds@codesourcery.com>
16057
16058 * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
16059 4 and 5.
16060 * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
16061 NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
16062 NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
16063 * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
16064 CODE_LABELs and NOTEs.
16065 * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
16066 * combine.c (try_combine): Likewise.
16067 * ira.c (setup_prohibited_mode_move_regs): Likewise.
16068 * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
16069
16070 2010-07-27 Joseph Myers <joseph@codesourcery.com>
16071
16072 * coretypes.h (struct cl_option_handlers): Declare.
16073 * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
16074 * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
16075 * langhooks-def.h (lhd_handle_option): Declare.
16076 (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
16077 * langhooks.c (lhd_handle_option): New.
16078 * langhooks.h (struct lang_hooks): Update prototype and return
16079 value type of handle_option hook.
16080 * optc-gen.awk: Generate target_flags_explicit definition for the
16081 driver.
16082 * opts-common.c: Include diagnostic.h.
16083 (handle_option): Move from opts.c. Update prototype and return
16084 value type. Use handlers structure.
16085 (read_cmdline_option): Move from opts.c. Update prototype. Use
16086 handlers structure.
16087 (set_option): Move from opts.c.
16088 * opts.c (common_handle_option): Update prototype and return value
16089 type. Update calls to handle_option and enable_warning_as_error.
16090 (unknown_option_callback, post_handling_callback,
16091 lang_handle_option, target_handle_option): New.
16092 (handle_option, read_cmdline_option): Move to opts-common.c.
16093 (read_cmdline_options): Update prototype. Update call to
16094 read_cmdline_option.
16095 (decode_options): Initialize and use handlers structure.
16096 (set_option): Move to opts-common.c.
16097 (enable_warning_as_error): Update prototype. Update call to
16098 handle_option.
16099 * opts.h (struct cl_option_handler_func, struct
16100 cl_option_handlers): New.
16101 (handle_option, enable_warning_as_error): Update prototypes.
16102 (read_cmdline_option): Declare.
16103 * Makefile.in (opts-common.o): Update dependencies.
16104
16105 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
16106
16107 * config/arm/arm.c (params.h): Include.
16108 (arm_override_options): Tune gcse-unrestricted-cost.
16109 * config/arm/t-arm (arm.o): Define dependencies.
16110
16111 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
16112
16113 PR target/42495
16114 PR middle-end/42574
16115 * basic-block.h (get_dominated_to_depth): Declare.
16116 * dominance.c (get_dominated_to_depth): New function, use
16117 get_all_dominated_blocks as a base.
16118 (get_all_dominated_blocks): Use get_dominated_to_depth.
16119
16120 * gcse.c (occr_t, VEC (occr_t, heap)): Define.
16121 (hoist_exprs): Remove.
16122 (alloc_code_hoist_mem, free_code_hoist_mem): Update.
16123 (compute_code_hoist_vbeinout): Add debug print outs.
16124 (hoist_code): Partially rewrite, simplify. Use get_dominated_to_depth.
16125
16126 * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
16127 quadratic behavior.
16128 * params.h (MAX_HOIST_DEPTH): New macro.
16129 * doc/invoke.texi (max-hoist-depth): Document.
16130
16131 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
16132
16133 PR rtl-optimization/40956
16134 * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
16135 constants.
16136
16137 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
16138
16139 PR target/42495
16140 PR middle-end/42574
16141 * config/arm/arm.c (legitimize_pic_address): Use
16142 gen_calculate_pic_address pattern to emit calculation of PIC address.
16143 (will_be_in_index_register): New function.
16144 (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
16145 (thumb1_legitimate_address_p): Use it provided !strict_p.
16146 * config/arm/arm.md (calculate_pic_address): New expand and split.
16147
16148 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
16149
16150 PR target/42495
16151 PR middle-end/42574
16152 * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
16153 * config/arm/arm.md (define_split "J", define_split "K"): Make
16154 IRA/reload friendly.
16155
16156 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
16157
16158 * gcse.c (insert_insn_end_basic_block): Update signature, remove
16159 unused checks.
16160 (pre_edge_insert, hoist_code): Update.
16161
16162 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
16163
16164 PR target/42495
16165 PR middle-end/42574
16166 * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
16167
16168 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
16169
16170 * gcse.c (hoist_code): Generate new pseudo for every new set insn.
16171
16172 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
16173
16174 PR rtl-optimization/40956
16175 PR target/42495
16176 PR middle-end/42574
16177 * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
16178 for hoisting.
16179 (hoist_code): Count occurences in current block too.
16180
16181 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
16182
16183 * gcse.c (struct expr:max_distance): New field.
16184 (doing_code_hoisting_p): New static variable.
16185 (want_to_gcse_p): Change signature. Allow constrained hoisting of
16186 simple expressions, don't change behavior for PRE. Set max_distance.
16187 (insert_expr_in_table): Set new max_distance field.
16188 (hash_scan_set): Update.
16189 (hoist_expr_reaches_here_p): Stop search after max_distance
16190 instructions.
16191 (find_occr_in_bb): New static function. Use it in ...
16192 (hoist_code): Calculate sizes of basic block before any changes are
16193 done. Pass max_distance to hoist_expr_reaches_here_p.
16194 (one_code_hoisting_pass): Set doing_code_hoisting_p.
16195
16196 * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
16197 (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
16198 * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
16199 macros.
16200 * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
16201 Document.
16202
16203 2010-07-27 Jeff Law <law@redhat.com>
16204 Maxim Kuvyrkov <maxim@codesourcery.com>
16205
16206 * gcse.c (compute_transpout, transpout): Remove, move logic
16207 to prune_expressions.
16208 (compute_pre_data): Move pruning of trapping expressions ...
16209 (prune_expressions): ... here. New static function.
16210 (compute_code_hoist_data): Use it.
16211 (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
16212
16213 2010-07-27 Xinliang David Li <davidxl@google.com>
16214
16215 * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
16216 (rewrite_use_address): Adjust iv update position when needed.
16217
16218 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
16219
16220 * dbgcnt.def (hoist_insn): New debug counter.
16221 * gcse.c (hoist_code): Use it.
16222
16223 2010-07-27 Xinliang David Li <davidxl@google.com>
16224
16225 * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
16226 (niter_for_single_dom_exit): Passes additional parameter.
16227 (iv_period): Fix comments.
16228 (may_eliminate_iv): Handles multiple exit loops properly.
16229 (free_tree_niter_desc): New function.
16230 (free_loop_data): Frees up loop iteration descriptors.
16231
16232 2010-07-27 Jakub Jelinek <jakub@redhat.com>
16233
16234 PR target/44542
16235 * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
16236 of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
16237 instead of MAX_SUPPORTED_STACK_ALIGNMENT.
16238 (expand_one_var): Don't consider DECL_ALIGN for variables for
16239 which expand_one_stack_var_at has been already called.
16240
16241 PR testsuite/44701
16242 * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
16243 constraints on IA-64.
16244
16245 2010-07-27 Jie Zhang <jie@codesourcery.com>
16246
16247 PR target/44290
16248 Revert:
16249 2010-07-23 Jie Zhang <jie@codesourcery.com>
16250
16251 * tree-sra.c (ipa_sra_preliminary_function_checks): Return
16252 false if ! tree_versionable_function_p.
16253
16254 2010-07-27 Jakub Jelinek <jakub@redhat.com>
16255
16256 * dwarf2out.c (add_data_member_location_attribute): Use
16257 add_AT_unsigned instead of add_AT_int if offset is non-negative.
16258
16259 2010-07-27 Bernd Schmidt <bernds@codesourcery.com>
16260
16261 * postreload.c (try_replace_in_use): New static function.
16262 (reload_combine_recognize_const_pattern): Use it here. Allow
16263 substituting into a final add insn, and substituting into a memory
16264 reference in an insn that sets the reg.
16265
16266 2010-07-27 Joseph Myers <joseph@codesourcery.com>
16267
16268 * common.opt (o): Add MissingArgError.
16269 * doc/options.texi (MissingArgError): Document.
16270 * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
16271 * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
16272 * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
16273 (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
16274 * langhooks.h (struct lang_hooks): Remove missing_argument.
16275 * optc-gen.awk: Handle MissingArgError and output new structure
16276 field initializers.
16277 * opts.c (read_cmdline_option): Use missing_argument_error field
16278 instead of missing_argument langhook.
16279 * opts.h (struct cl_option): Add missing_argument_error field.
16280 * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
16281
16282 2010-07-27 Iain Sandoe <iains@gcc.gnu.org>
16283
16284 PR target/29090
16285 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
16286 Darwin64 ABI, for zero-sized objects.
16287
16288 2010-07-27 Iain Sandoe <iains@gcc.gnu.org>
16289
16290 PR target/35491
16291 PR target/29090
16292
16293 Merge from Apple local 4.2.1.
16294 2005-05-11 Stan Shebs <shebs@apple.com>
16295 Fix 64-bit varargs for Darwin (Radar 4028089).
16296 * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
16297 * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
16298 Add argument, add case for 8-byte register half-filled with a float.
16299 (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
16300 single-precision floats specially.
16301
16302 2010-07-27 Ira Rosen <irar@il.ibm.com>
16303
16304 PR tree-optimization/44152
16305 * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
16306 complex numbers for further check.
16307 (vect_supported_load_permutation_p): Check nodes with
16308 complex numbers.
16309
16310 2010-07-27 Joseph Myers <joseph@codesourcery.com>
16311
16312 * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
16313 LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
16314 (LANG_HOOKS_INIT_OPTIONS): Update default definition.
16315 (LANG_HOOKS_INITIALIZER): Add new hooks.
16316 * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
16317 * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
16318 and complain_wrong_lang_p. Update init_options prototype.
16319 * c-objc-common.c (c_initialize_diagnostics): First call
16320 c_common_initialize_diagnostics.
16321 * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
16322 LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
16323 * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
16324 * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
16325 (hook_uint_void_0): New.
16326 * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
16327 (hook_uint_void_0): New.
16328 * opts-common.c (decode_cmdline_option,
16329 decode_cmdline_options_to_array): Also fill in canonical_option field.
16330 * opts.c (complain_wrong_lang): Use langhook to determine whether
16331 to complain instead of special-casing LTO.
16332 (decode_options): Separate lang_mask determination with
16333 option_lang_mask hook from call of init_options hook.
16334 * opts.h (struct cl_decoded_option): Add canonical_option.
16335
16336 2010-07-27 Jakub Jelinek <jakub@redhat.com>
16337
16338 PR tree-optimization/45083
16339 * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
16340
16341 2010-07-27 Bernd Schmidt <bernds@codesourcery.com>
16342
16343 * postreload.c (reload_combine_recognize_const_pattern): Move test
16344 for limiting the insn movement to the right scope.
16345
16346 PR rtl-optimization/45051
16347 * reload1.c (delete_output_reload): Use refers_to_regno_p rather
16348 than reg_mentioned_p.
16349
16350 2010-07-26 Richard Henderson <rth@redhat.com>
16351
16352 PR target/44132
16353 * tree-emutls.c: New file.
16354 * Makefile.in (OBJS-common): Add it.
16355 * tree-pass.h (pass_ipa_lower_emutls): Declare.
16356 * passes.c (init_optimization_passes): Add it.
16357
16358 * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
16359 pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
16360 * expr.c (emutls_var_address): Delete.
16361 (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
16362 * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
16363 (emutls_finish): Delete.
16364 * toplev.c (compile_file): Don't call it.
16365 * tree.h (emutls_decl): Delete.
16366 * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
16367 (emutls_finish, emutls_finalize_control_var): Delete.
16368 (emutls_object_type): Move to tree-emutls.c.
16369 (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
16370 default_emutls_var_fields, get_emutls_object_type,
16371 get_emutls_init_templ_addr, emutls_decl, emutls_common_1
16372 default_emutls_var_init): Likewise.
16373 (get_variable_section): Don't special case emutls.
16374 (assemble_variable, do_assemble_alias, categorize_decl_for_section,
16375 default_elf_select_section, default_unique_section,
16376 default_encode_section_info): Likewise.
16377 * varpool.c (decide_is_variable_needed): Likewise.
16378 * gimple-iterator.c (update_call_edge_frequencies): New
16379 (gsi_insert_on_edge_immediate): Use it.
16380 (gsi_insert_seq_on_edge_immediate): Likewise.
16381 (gsi_commit_one_edge_insert): Likewise.
16382
16383 * config/i386/i386.c (x86_64_elf_select_section): Don't handle
16384 SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
16385 (x86_64_elf_unique_section): Likewise.
16386
16387 2010-07-26 Jan Hubicka <jh@suse.cz>
16388
16389 * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
16390 GTY((skip)).
16391
16392 2010-07-26 Anatoly Sokolov <aesok@post.ru>
16393
16394 * target.def (output_source_filename): New hook.
16395 * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
16396 * doc/tm.texi: Regenerate.
16397 * toplev.c (output_file_directive) Remove function.
16398 * toplev.h (output_file_directive) Remove.
16399 * output.h (default_asm_output_source_filename,
16400 output_file_directive): Declare.
16401 * varasm.h (default_asm_output_source_filename,
16402 output_file_directive): New functions.
16403
16404 * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
16405 * config/mips/mips-protos.h (mips_output_filename): Remove.
16406 * config/mips/mips.c (mips_output_filename): Make Static.
16407 (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
16408
16409 2010-07-26 Richard Guenther <rguenther@suse.de>
16410
16411 PR tree-optimization/43784
16412 * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
16413 if the destination is used by the call.
16414
16415 2010-07-26 Richard Guenther <rguenther@suse.de>
16416
16417 PR middle-end/45073
16418 * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
16419 SSA updating on being in SSA form.
16420
16421 2010-07-26 Richard Guenther <rguenther@suse.de>
16422
16423 PR middle-end/45056
16424 * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
16425
16426 2010-07-26 Richard Guenther <rguenther@suse.de>
16427
16428 PR tree-optimization/45071
16429 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
16430 adjust op->opcode.
16431
16432 2010-07-26 Naveen.H.S <naveen.S@kpitcummins.com>
16433
16434 * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
16435 save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
16436 save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
16437 save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
16438 save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
16439 save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
16440 save_r31, return_r31, save_interrupt, return_interrupt,
16441 save_all_interrupt, return_all_interrupt, L_save_r2_r31,
16442 L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
16443 L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
16444 new ABI requirements.
16445 (save_r6_r9, L_callt_save_r6_r9): Remove.
16446 * config/v850/predicates.md (even_reg_operand, disp23_operand,
16447 const_float_1_operand const_float_0_operand): New Predicates.
16448 (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
16449 pattern_is_ok_for_epilogue): Update as per the ABI requirements.
16450 * config/v850/t-v850: Update multilibs for new target variants.
16451 (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
16452 * config/v850/t-v850e: Likewise.
16453 * config/v850/v850.c (v850_issue_rate): New.
16454 (v850_strict_argument_naming): New.
16455 (function_arg): Modify to generate a different ABI.
16456 (print_operand): Update case 'z' to support float modes.
16457 (output_move_single): Modify to generate appropriate and better
16458 assembly.
16459 (v850_float_z_comparison_operator, v850_select_cc_mode,
16460 v850_float_nz_comparison_operator, v850_gen_float_compare,
16461 v850_gen_compare): New functions to support comparison of float values.
16462 (ep_memory_offset): Add support for V850E2 targets.
16463 (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
16464 (INTERRUPT_REGPARM_NUM): Remove.
16465 (compute_register_save_size): Add extra case to save/restore long call.
16466 (use_prolog_function): New function to support prologue.
16467 (expand_prologue): Add support for V850E2 targets and modified
16468 as per the current ABI requirements.
16469 (expand_epilogue): Likewise.
16470 (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
16471 (construct_save_jarl): Likewise.
16472 (construct_dispose_instruction): Update as per the current ABI
16473 requirements.
16474 (construct_prepare_instruction): Likewise.
16475 * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
16476 (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
16477 (CPP_SPEC): Updated to support v850e2 targets.
16478 (STRICT_ALIGNMENT): Modified.
16479 (FIRST_PSEUDO_REGISTER): Updated to add even registers.
16480 (FIXED_REGISTERS): Likewise.
16481 (CALL_USED_REGISTERS): Likewise.
16482 (CONDITIONAL_REGISTER_USAGE): Updated.
16483 (HARD_REGNO_MODE_OK): Updated.
16484 (reg_class): Updated to add even registers.
16485 (REG_CLASS_NAMES): Likewise.
16486 (REG_CLASS_CONTENTS): Likewise.
16487 (REGNO_REG_CLASS): Updated for CC registers.
16488 (REG_CLASS_FROM_LETTER): Added support for even registers.
16489 (REGNO_OK_FOR_BASE_P): Updated for CC registers.
16490 (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
16491 ARG_POINTER_REGNUM): Updated.
16492 (FUNCTION_ARG_ADVANCE): Define.
16493 (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
16494 (OUTGOING_REG_PARM_STACK_SPACE): Remove.
16495 (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
16496 (GO_IF_LEGITIMATE_ADDRESS): Updated.
16497 (SELECT_CC_MODE): Define.
16498 (REGISTER_NAMES): Updated to add psw and fcc registers.
16499 (ADDITIONAL_REGISTER_NAMES): Updated.
16500 (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
16501 (JUMP_TABLES_IN_TEXT_SECTION): Updated.
16502 * config/v850/v850.md (define_constants): Define new constants.
16503 (type): Update store,bit1,macc,div,fpu and single attributes.
16504 (cpu): New attribute.
16505 (cc): Add set_z attribute.
16506 (unsign23byte_load, sign23byte_load, unsign23hword_load,
16507 sign23hword_load, 23word_load, 23byte_store, 23hword_store,
16508 23word_store): New instructions for 23-bit displacement load and store.
16509 (movqi_internal, movhi_internal): Update the attributes.
16510 (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
16511 (movsi_internal_v850e, movsi_internal, movsf_internal): Update
16512 the attributes.
16513 (v850_tst1): Modified using CC_REGNUM.
16514 (tstsi): Remove.
16515 (cmpsi): Modified as define_expand from define_insn.
16516 (cmpsi_insn, cmpsf, cmpdf): New instructions.
16517 (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
16518 udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
16519 v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
16520 one_cmplsi2): Clobber the CC_REGNUM register.
16521 (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
16522 v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
16523 v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
16524 (setf_insn, set_z_insn, set_nz_insn): New instructions for
16525 v850e2v3 target.
16526 (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
16527 (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
16528 targets.
16529 (sasf_1, sasf_2): Remove.
16530 (sasf): New instruction.
16531 (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
16532 targets. CC_REGNUM register is clobbered and attributes are
16533 updated.
16534 (branch_z_normal, branch_z_invert, branch_nz_normal,
16535 branch_nz_invert): New branch related instructions.
16536 (jump): Updated the attributes.
16537 (switch): Update to support new targets. CC_REGNUM register is
16538 clobbered and attributes are updated.
16539 (call_internal_short, call_internal_long, call_value_internal_short,
16540 call_value_internal_long): Updated the attributes.
16541 (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
16542 clobbered and attributes are updated.
16543 (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
16544 Update to support new targets. CC_REGNUM register is clobbered.
16545 (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
16546 instructions.
16547 (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
16548 are updated.
16549 (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
16550 divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
16551 negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
16552 floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
16553 rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
16554 cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
16555 cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
16556 cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
16557 movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
16558 movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
16559 point instructions defined for V850e2v3 target.
16560 (callt_save_interrupt, callt_return_interrupt, return_interrupt):
16561 Add support for V850E2 targets and CC_REGNUM register is clobbered.
16562 (callt_save_all_interrupt, callt_restore_all_interrupt): Add
16563 support for new targets.
16564 * config/v850/v850-modes.def: New file.
16565 * config/v850/v850.opt(mstrict-align): Remove.
16566 (mno-strict-align, mjump-tables-in-data-section, mv850e2,
16567 mv850e2v3): New command line options for V850.
16568 * config.gcc: Update the newly added files.
16569 * doc/invoke.texi: Update the newly added command line options for
16570 V850 target.
16571
16572 2010-07-26 Richard Guenther <rguenther@suse.de>
16573
16574 PR tree-optimization/45052
16575 * ipa-pure-const.c (check_stmt): Check volatileness.
16576
16577 2010-07-25 Eric Botcazou <ebotcazou@adacore.com>
16578
16579 PR target/44707
16580 * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
16581 * config/sparc/sparc.c: Include reload.h.
16582 (legitimize_tls_address): Rename into...
16583 (sparc_legitimize_tls_address): ...this.
16584 (legitimize_pic_address): Rename into...
16585 (sparc_legitimize_pic_address): ...this.
16586 (sparc_expand_move): Adjust to above renaming.
16587 (sparc_tls_referenced_p): Likewise.
16588 (sparc_legitimize_tls_address): Likewise.
16589 (sparc_legitimize_pic_address): Likewise.
16590 (sparc_legitimize_address): Likewise.
16591 (sparc_output_mi_thunk): Likewise.
16592 (sparc_legitimize_reload_address): New global function. Recognize
16593 (lo_sum (high ...) ...) patterns generated by earlier passes.
16594 * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
16595
16596 2010-07-25 Eric Botcazou <ebotcazou@adacore.com>
16597
16598 PR target/44484
16599 * config/sparc/predicates.md (memory_reg_operand): Delete.
16600 * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
16601 (*sync_compare_and_swap): Encode the address form in the pattern.
16602 (*sync_compare_and_swapdi_v8plus): Likewise.
16603
16604 2010-07-24 Gerald Pfeifer <gerald@pfeifer.com>
16605
16606 * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
16607 Streamline paragraph on compatibility with the system compiler.
16608
16609 2010-07-24 Steven Bosscher <steven@gcc.gnu.org>
16610
16611 PR middle-end/45035
16612 * alias.c (true_dependence_1): Fix thinko in merge of old
16613 true_dependence and canon_true_dependence.
16614
16615 2010-07-23 Jan Hubicka <jh@suse.cz>
16616
16617 * lto-streamer-out.c (write_symbol): Fix visibilities of external
16618 references.
16619
16620 2010-07-23 Le-Chun Wu <lcwu@google.com>
16621
16622 * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
16623 * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
16624 and an unnecessary assignment.
16625 * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
16626 self-assign warning.
16627 * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
16628 unnecessary self-init.
16629
16630 2010-07-23 Richard Guenther <rguenther@suse.de>
16631
16632 PR lto/43071
16633 * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
16634 for -flto and -fwhopr.
16635
16636 2010-07-23 Kai Tietz <kai.tietz@onevision.com>
16637
16638 PR target/41943
16639 * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
16640 (stmp-int-hdrs): Prefix/postfix headers by include_next.
16641 * config.gcc (user_headers_inc_next_pre): New.
16642 (user_headers_inc_next_post): Likewise.
16643 (*-w64-mingw*): Use for float.h post-fixing, and for
16644 stddef.h/stdarg.h pre-fixing by include_next.
16645 * configure.ac (user_headers_inc_next_post): New.
16646 (user_headers_inc_next_pre): New.
16647 * configure: Regenerated.
16648
16649 2010-07-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16650
16651 * configure.ac: Don't disable TLS on Solaris 8/9 by default
16652 Set tga_func for Solaris 2/x86 resp. SPARC.
16653 Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
16654 (LIB_THREAD_LDFLAGS_SPEC): Define.
16655 (LIB_TLS_SPEC): Define. Check for required Sun ld version.
16656 * configure: Regenerate.
16657 * config.in: Regenerate.
16658 * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
16659 -pthread, -threads, LIB_TLS_SPEC with -pthread.
16660 * doc/install.texi (Specific, *-*-solaris2*): Document use of
16661 alternate thread libraries on Solaris 8.
16662 Document TLS patch requirements.
16663 * doc/sourcebuild.texi (Add Options): Sort alphabetically.
16664 Document tls.
16665
16666 PR target/18788
16667 * config/sol2.h (LIB_SPEC): Link with thread libraries even with
16668 -shared.
16669
16670 2010-07-23 Jakub Jelinek <jakub@redhat.com>
16671
16672 * tree.h (struct tree_base): Add nameless_flag bitfield.
16673 (TYPE_NAMELESS, DECL_NAMELESS): Define.
16674 * omp-low.c (create_omp_child_function, scan_omp_parallel,
16675 scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
16676 DECL_ARTIFICIAL where needed.
16677 * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
16678 (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
16679 has DECL_NAMELESS set.
16680
16681 2010-07-23 Martin Jambor <mjambor@suse.cz>
16682
16683 PR tree-optimization/44915
16684 * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
16685 * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
16686 (analyze_function): Likewise.
16687
16688 2010-07-23 Martin Jambor <mjambor@suse.cz>
16689
16690 PR tree-optimization/44914
16691 * tree-sra.c (sra_modify_function_body): Return true if CFG was
16692 changed, add purging dead eh edges.
16693 (ipa_sra_modify_function_body): Return true if CFG was changed,
16694 simplify purging dead eh edges.
16695 (modify_function): Return true if CFG was changed.
16696 (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
16697 was changed.
16698 (ipa_early_sra): Likewise.
16699
16700 2010-07-23 Jie Zhang <jie@codesourcery.com>
16701
16702 PR target/44290
16703 * attribs.c (decl_attributes): Insert "noinline" and "noclone"
16704 if "naked".
16705 * tree-sra.c (ipa_sra_preliminary_function_checks): Return
16706 false if ! tree_versionable_function_p.
16707
16708 2010-07-23 Nathan Froyd <froydnj@codesourcery.com>
16709
16710 * builtins.def (BUILT_IN_ARGS_INFO): Remove.
16711 * ipa-pure-const.c (special_builtlin_state): Remove
16712 BUILT_IN_ARGS_INFO case.
16713 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
16714 * builtins.c (expand_builtin): Likewise.
16715 (expand_builtin_args_info): Remove.
16716 * doc/tm.texi (__builtin_args_info): Remove.
16717 (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
16718 * doc/tm.text.in: Likewise.
16719
16720 2010-07-23 Richard Guenther <rguenther@suse.de>
16721
16722 * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
16723 (lto_symtab_merge_decls_2): Likewise.
16724 * tree-ssa.c (useless_type_conversion_p): Likewise.
16725 * lto-streamer-in.c (input_gimple_stmt): Likewise.
16726 * gimple.c (gtc_visited2, gtc_ob2): Remove.
16727 (struct type_pair_d): Make same_p an array indexed by mode.
16728 Update comment.
16729 (lookup_type_pair): Update initialization.
16730 (struct sccs): Adjust same_p type.
16731 (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
16732 Adjust.
16733 (print_gimple_types_stats): Likewise.
16734 * gimple.h (enum gtc_mode): New.
16735 (gimple_types_compatible_p): Adjust prototype.
16736
16737 2010-07-23 Daniel Jacobowitz <dan@codesourcery.com>
16738
16739 * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
16740 again after processing insn.
16741
16742 2010-07-23 Jie Zhang <jie@codesourcery.com>
16743
16744 * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
16745 proper words when !tree_versionable_function_p.
16746
16747 2010-07-23 Richard Guenther <rguenther@suse.de>
16748
16749 PR tree-optimization/45037
16750 * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
16751
16752 2010-07-23 Jie Zhang <jie@codesourcery.com>
16753
16754 * doc/extend.texi: Remove IP2K from the description of naked attribute.
16755 Add MCORE instead.
16756
16757 2010-07-10 Andi Kleen <ak@linux.intel.com>
16758
16759 PR lto/44992
16760 * lto-opts.c (lto_write_options): Add NULL file_data argument to
16761 lto_get_section_name.
16762 * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
16763 * lto-streamer-out.c (produce_asm): Likewise.
16764 (copy_function): Likewise.
16765 (produce_symtab): Likewise.
16766 (produce_asm_for_decls): Likewise.
16767 * lto-streamer.c (lto_get_section_name): Add file_data argument.
16768 Rewrite to add random postfix to LTO sections.
16769 * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
16770 (lto_get_section_name): Add file_data argument to prototype.
16771
16772 2010-07-10 Andi Kleen <ak@linux.intel.com>
16773
16774 * lto-section-in.c (lto_section_name): Synchronize names
16775 with lto_get_section_name.
16776
16777 2010-07-10 Andi Kleen <ak@linux.intel.com>
16778
16779 * lto-opts.c (lto_read_file_options): Check for missing section.
16780
16781 2010-07-22 Bernd Schmidt <bernds@codesourcery.com>
16782
16783 * ira.c (check_allocation): Correctly handle the case where an allocno
16784 with two objects was allocated to a single reg.
16785
16786 2010-07-22 Richard Sandiford <rdsandiford@googlemail.com>
16787
16788 * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
16789 (is_widening_mult_p): Likewise.
16790 (convert_to_widen): Use them.
16791 (convert_plusminus_to_widen): Likewise. Handle fixed-point types as
16792 well as integer ones.
16793
16794 2010-07-22 Steven Bosscher <steven@gcc.gnu.org>
16795
16796 * alias.c (true_dependence_1): New function, merged version of
16797 true_dependence and canon_true_dependence.
16798 (true_dependence): Simplify.
16799 (canon_true_dependence): Simplify.
16800
16801 2010-07-22 Richard Henderson <rth@redhat.com>
16802
16803 PR target/45027
16804 * config/i386/i386.c (setup_incoming_varargs_64): Force the use
16805 of V4SFmode for the SSE saves; increase stack alignment if needed.
16806 (ix86_gimplify_va_arg): Don't increase stack alignment here.
16807
16808 2010-07-22 Jakub Jelinek <jakub@redhat.com>
16809
16810 PR bootstrap/45028
16811 * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
16812 call cprop_find_used_regs again via note_uses.
16813
16814 2010-07-22 Eric Botcazou <ebotcazou@adacore.com>
16815
16816 * alias.c (get_alias_set): Fix formatting issues.
16817
16818 2010-07-22 Steve Ellcey <sje@cup.hp.com>
16819
16820 PR middle-end/44878
16821 * stmt.c (expand_value_return): Call promote_function_mode with
16822 a for_return argument of 2 when returning by reference.
16823
16824 2010-07-22 Dodji Seketeli <dodji@redhat.com>
16825
16826 PR debug/45024
16827 * dwarf2out.c (scope_die_for): Don't fall back to the compilation
16828 unit DIE if we can find the scope DIE.
16829
16830 2010-07-22 Bernd Schmidt <bernds@codesourcery.com>
16831
16832 * ira-build.c (ira_create_object): New arg SUBWORD; all callers
16833 changed. Initialize OBJECT_SUBWORD.
16834 (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
16835 (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
16836 all callers changed.
16837 (merge_hard_reg_conflicts): Iterate over allocno subobjects.
16838 (finish_allocno): Likewise.
16839 (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
16840 (remove_low_level_allocnos): Likewise.
16841 (update_bad_spill_attribute): Likewise.
16842 (setup_min_max_allocno_live_range_point): Likewise.
16843 (sort_conflict_id_map): Likewise.
16844 (ira_flattening): Likewise. Use ior_hard_reg_conflicts.
16845 (ior_hard_reg_conflicts): New function.
16846 (ior_allocate_object_conflicts): Renamed first argument to OBJ.
16847 (compress_conflict_vecs): Iterate over objects, not allocnos.
16848 (ira_add_live_range_to_object): New function.
16849 (object_range_compare_func): Renamed from allocno_range_compare_func.
16850 All callers changed.
16851 (setup_min_max_conflict_allocno_ids): For allocnos with multiple
16852 subobjects, widen the min/max range of the lowest-order object to
16853 potentially include all other such low-order objects.
16854 * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
16855 (check_allocation): Likewise. Use more fine-grained tests for register
16856 conflicts.
16857 * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
16858 allocno subobjects.
16859 (assign_hard_reg): Keep multiple sets of conflicts. Make finer-grained
16860 choices about which bits to set in each set. Don't use
16861 ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
16862 using the multiple sets we computed.
16863 (push_allocno_to_stack): Iterate over allocno subobjects.
16864 (all_conflicting_hard_regs_coalesced): New static function.
16865 (setup_allocno_available_regs_num): Use it.
16866 (setup_allocno_left_conflicts_size): Likewise. Iterate over allocno
16867 subobjects.
16868 (coalesced_allocno_conflict): Test subobject 0 in each allocno.
16869 (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
16870 by ALLOCNO_NUM_OBJECTS.
16871 (calculate_spill_cost): Likewise.
16872 (color_pass): Express if statement in a more normal way.
16873 (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
16874 (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
16875 (setup_slot_coalesced_allocno_live_ranges): Likewise.
16876 (allocno_reload_assign): Likewise.
16877 (ira_reassign_pseudos): Likewise.
16878 (fast_allocation): Likewise.
16879 * ira-conflicts.c (build_conflict_bit_table): Likewise.
16880 (print_allocno_conflicts): Likewise.
16881 (ira_build_conflicts): Likewise.
16882 (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p. All
16883 callers changed. Test subword 0 of each allocno for conflicts.
16884 (build_object_conflicts): Renamed from build_allocno_conflicts. All
16885 callers changed. Iterate over allocno subobjects.
16886 * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
16887 * ira-int.h (struct ira_allocno): New member: num_objects.
16888 Rename object to objects and change it into an array.
16889 (ALLOCNO_OBJECT): Add new argument N.
16890 (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
16891 (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
16892 (ior_hard_reg_conflicts): Declare.
16893 (ira_add_live_range_to_object): Declare.
16894 (ira_allocno_object_iterator): New.
16895 (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
16896 (FOR_EACH_ALLOCNO_OBJECT): New macro.
16897 * ira-lives.c (objects_live): Renamed from allocnos_live; all
16898 uses changed.
16899 (allocnos_processed): New sparseset.
16900 (make_object_born): Renamed from make_allocno_born; take an
16901 ira_object_t argument. All callers changed.
16902 (make_object_dead): Renamed from make_allocno_dead; take an
16903 ira_object_t argument. All callers changed.
16904 (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
16905 All callers changed.
16906 (mark_pseudo_regno_live): Iterate over allocno subobjects.
16907 (mark_pseudo_regno_dead): Likewise.
16908 (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
16909 functions.
16910 (mark_ref_live): Detect subword accesses and call
16911 mark_pseudo_regno_subword_live as appropriate.
16912 (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
16913 (process_bb_nodes_live): Deal with object-related updates first; set
16914 and test bits in allocnos_processed to avoid computing allocno
16915 statistics more than once.
16916 (create_start_finish_chains): Iterate over objects, not allocnos.
16917 (print_object_live_ranges): New function.
16918 (print_allocno_live_ranges): Use it.
16919 (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
16920 and objects_live.
16921
16922 2010-07-22 Richard Guenther <rguenther@suse.de>
16923
16924 PR lto/42451
16925 * gimple.c (gtc_next_dfs_num): New global.
16926 (struct sccs): Make value a union, add integer same_p member.
16927 (gtc_visit): New function.
16928 (gimple_types_compatible_p_1): New function, split out from ...
16929 (gimple_types_compatible_p): ... here. Start a DFS walk here.
16930 (iterative_hash_gimple_type): Adjust for sccs change.
16931
16932 2010-07-22 Martin Jambor <mjambor@suse.cz>
16933
16934 PR tree-optimization/44891
16935 * tree-sra.c: Include gimple-pretty-print.h.
16936 (replace_uses_with_default_def_ssa_name): Renamed to
16937 get_repl_default_def_ssa_name, return the new SSA name instead of
16938 replacing the old one.
16939 (sra_modify_assign): Dump a message when removing a load, if the LHS
16940 is an SSA_NAME, do not do any propagation, just set the RHS to a
16941 default definition SSA NAME, type convert if necessary.
16942 * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
16943
16944 2010-07-22 Richard Guenther <rguenther@suse.de>
16945
16946 PR tree-optimization/45017
16947 * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
16948 TYPE_PRECISION of integral types in addition to size.
16949
16950 2010-07-22 Maxim Kuvyrkov <maxim@codesourcery.com>
16951
16952 * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
16953 when no C library is specified.
16954
16955 2010-07-22 Martin Jambor <mjambor@suse.cz>
16956
16957 * ipa-prop.h (struct ipa_node_params): Updated comment.
16958 (struct ipa_edge_args): Likewise.
16959 * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
16960
16961 2010-07-22 Martin Jambor <mjambor@suse.cz>
16962
16963 * cgraphunit.c (verify_edge_count_and_frequency): New function.
16964 (verify_cgraph_node): Verify frequencies of indirect edges.
16965 * tree-inline.c (tree_function_versioning): Update frequencies of
16966 indirect edges.
16967
16968 2010-07-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16969
16970 PR target/43698
16971 * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
16972 Set *arm_rev to be predicable.
16973
16974 2010-07-22 Iain Sandoe <iains@gcc.gnu.org>
16975
16976 * config/darwin.h (LINK_COMMAND_SPEC): Split into...
16977 (LINK_COMMAND_SPEC_A): New.
16978 (DSYMUTIL): New.
16979 (DSYMUTIL_SPEC): New.
16980 * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
16981 (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
16982
16983 2010-07-22 Iain Sandoe <iains@gcc.gnu.org>
16984
16985 * calls.c (load_register_parameters): Move check for zero
16986 sized items so that only the call to
16987 mem_overlaps_already_clobbered_arg_p () is protected.
16988
16989 2010-07-22 Jan Hubicka <jh@suse.cz>
16990
16991 * ipa-pure-const.c (varying_state): Break out from ...
16992 (get_function_state): ... here; always return varying_state
16993 when state would be NULL otherwise.
16994 (remove_node_data): Do not free varying state.
16995
16996 2010-07-22 Bernd Schmidt <bernds@codesourcery.com>
16997
16998 PR bootstrap/44970
16999 PR middle-end/45009
17000 * postreload.c: Include "target.h".
17001 (reload_combine_closest_single_use): Don't take DEBUG_INSNs
17002 into account.
17003 (fixup_debug_insns): Don't copy the rtx.
17004 (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
17005 Don't copy when replacing. Call fixup_debug_insns in the case where
17006 we merged one add with another.
17007 (reload_combine_recognize_pattern): Fail if there aren't any uses.
17008 Try harder to determine whether we're picking a valid index register.
17009 Don't set store_ruid for an insn we're going to scan in the
17010 next iteration.
17011 (reload_combine): Remove unused code.
17012 (reload_combine_note_use): When updating use information for
17013 an old insn, ignore a use that occurs after store_ruid.
17014 * Makefile.in (postreload.o): Update dependencies.
17015
17016 * function.c (record_hard_reg_sets): Restrict the previous change
17017 to cases where the incoming nominal mode is the same as the
17018 incoming promoted mode and everything happens in MODE_INT.
17019
17020 2010-07-21 Jakub Jelinek <jakub@redhat.com>
17021
17022 PR debug/45015
17023 * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
17024 ASM_OPERANDS_OUTPUT_IDX.
17025 (adjust_insn): For inline asm with multiple sets ensure first
17026 ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
17027 the insn.
17028
17029 2010-07-21 Richard Henderson <rth@redhat.com>
17030
17031 * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
17032 comparison for avoiding xmm register saves. Emit the xmm register
17033 saves explicitly.
17034 * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
17035 (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
17036 (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
17037 Remove patterns and the associated splitters.
17038
17039 2010-07-21 Changpeng Fang <changpeng.fang@amd.com>
17040
17041 * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
17042 and imagine parts of a complex, so that they can have the same
17043 base and fall into the same group.
17044
17045 2010-07-21 Richard Guenther <rguenther@suse.de>
17046
17047 PR lto/45018
17048 * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
17049 of TYPE_DECLs. Do not follow TYPE_NEXT_VARIANT,
17050 TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
17051
17052 2010-07-21 Martin Jambor <mjambor@suse.cz>
17053
17054 PR tree-optimization/44900
17055 * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
17056 (sra_modify_assign): Move gsi to the next statmenent unconditionally.
17057
17058 2010-07-21 Bernd Schmidt <bernds@codesourcery.com>
17059
17060 PR middle-end/44738
17061 * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
17062
17063 2010-07-21 Richard Guenther <rguenther@suse.de>
17064
17065 PR middle-end/45013
17066 * tree-ssa.c (useless_type_conversion_p): Dispatch to
17067 gimple_types_compatible_p only when in lto.
17068 * gimple.c (gimple_types_compatible_p): Use canonical types
17069 to speed up comparison.
17070
17071 2010-07-21 Richard Guenther <rguenther@suse.de>
17072
17073 * tree-flow.h (referenced_var): Move define ...
17074 * tree-flow-inline.h (referenced_var): ... here as an inline
17075 function. Assert here ...
17076 * tree-dfa.c (referenced_var_lookup): ... instead of here.
17077 * tree-ssa.c (maybe_optimize_var): Check if the variable
17078 is in referenced vars.
17079 (execute_update_addresses_taken): Remove old broken check.
17080 * gimple-pretty-print.c (pp_points_to_solution): Use
17081 referenced_var_lookup.
17082 * tree-into-ssa.c (dump_decl_set): Likewise.
17083
17084 2010-07-21 Jakub Jelinek <jakub@redhat.com>
17085
17086 PR debug/45003
17087 * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
17088 * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
17089 ZERO_EXTEND here.
17090
17091 2010-07-20 Richard Henderson <rth@redhat.com>
17092
17093 * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
17094
17095 2010-07-20 Bernd Schmidt <bernds@codesourcery.com>
17096
17097 * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
17098 computing the sum of the stack pointer and a large constant.
17099 * config/arm/constraints.md (M): Remove superfluous parentheses.
17100 (Pc): New constraint.
17101
17102 2010-07-20 Jakub Jelinek <jakub@redhat.com>
17103
17104 PR debug/45006
17105 * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
17106 operand's type if exp is tcc_unary class tree.
17107
17108 2010-07-20 Nathan Froyd <froydnj@codesourcery.com>
17109
17110 * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
17111 Reverse sense of if_then_else condition.
17112
17113 2010-07-20 Nathan Froyd <froydnj@codesourcery.com>
17114
17115 * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
17116 * config/rs6000/rs6000.c (rs6000_override_options): Set
17117 rs6000_block_move_inline_limit appropriately.
17118 (expand_block_move): Use rs6000_block_move_inline_limit.
17119 * doc/invoke.texi (mblock-move-inline-limit): Document.
17120
17121 2010-07-20 Bernd Schmidt <bernds@codesourcery.com>
17122
17123 * postreload.c (fixup_debug_insns): Remove arg REGNO. New args
17124 FROM and TO. All callers changed. Don't look for tracked uses,
17125 just scan the RTL for DEBUG_INSNs and substitute.
17126 (reload_combine_recognize_pattern): Call fixup_debug_insns.
17127 (reload_combine): Ignore DEBUG_INSNs.
17128
17129 2010-07-20 Jakub Jelinek <jakub@redhat.com>
17130
17131 * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
17132 depth to 8 from 5.
17133
17134 PR debug/45003
17135 * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
17136 or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
17137 instead of the result's type.
17138
17139 2010-07-20 Richard Guenther <rguenther@suse.de>
17140
17141 PR tree-optimization/44977
17142 * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
17143 SSA form.
17144
17145 2010-07-20 Richard Guenther <rguenther@suse.de>
17146
17147 * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
17148 (lto_symtab_merge_decls_2): Likewise.
17149 * gimple.h (gimple_types_compatible_p): Declare.
17150 * gimple.c (gimple_queue_type_fixup): Remove.
17151 (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
17152 (gimple_compatible_complete_and_incomplete_type_p): New function.
17153 (gimple_types_compatible_p): Adjust.
17154 (gimple_register_type): Remove type fixup code.
17155 (print_gimple_types_stats): Adjust.
17156 (free_gimple_type_tables): Likewise.
17157 * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
17158 * tree-ssa.c (useless_type_conversion_p): Likewise.
17159
17160 2010-07-20 Richard Guenther <rguenther@suse.de>
17161
17162 PR middle-end/44971
17163 PR middle-end/44988
17164 * tree-ssa.c (maybe_optimize_var): New function split out from ...
17165 (execute_update_addresses_taken): ... here.
17166 (non_rewritable_mem_ref_base): Likewise.
17167 (execute_update_addresses_taken): Do not iterate over all referenced
17168 vars but just all local decls and parms.
17169 Properly check call and asm arguments and rewrite call arguments.
17170
17171 2010-07-20 Maxim Kuvyrkov <maxim@codesourcery.com>
17172
17173 * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
17174 to top level.
17175 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
17176 definitions ...
17177 * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
17178 New macro.
17179 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
17180
17181 2010-07-19 Richard Sandiford <rdsandiford@googlemail.com>
17182
17183 * gengtype.c (start_root_entry): New function, split out from
17184 write_root. Check whether V is null and raise an error if so.
17185 (write_field_root): Check for V being null. Don't raise an error here;
17186 set V to null instead.
17187 (write_root): Update comment above function. Use start_root_entry.
17188
17189 2010-07-19 Xinliang David Li <davidxl@google.com>
17190
17191 PR testsuite/44932
17192 * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
17193 def edges.
17194 (find_uninit_use): Add dump.
17195 (is_use_properly_guarded): Ditto.
17196 (warn_uninitialized_phi): Ditto.
17197 (execute_late_warn_uninitialized): Ditto.
17198
17199 2010-07-19 Richard Guenther <rguenther@suse.de>
17200
17201 PR middle-end/44941
17202 * expr.c (emit_block_move_hints): Move zero size check first.
17203 Move asserts to more useful places.
17204 * calls.c (load_register_parameters): Check for zero size.
17205
17206 2010-07-19 Richard Henderson <rth@redhat.com>
17207
17208 * tree-optimize.c (execute_all_early_local_passes): New. Change
17209 cgraph_state here ...
17210 (execute_early_local_optimizations): ... not here. Remove.
17211 (pass_early_local_passes, pass_all_early_optimizations): Update.
17212
17213 2010-07-19 Bernd Schmidt <bernds@codesourcery.com>
17214
17215 * postreload.c (reload_combine_closest_single_use): Ignore the
17216 number of uses for DEBUG_INSNs.
17217 (fixup_debug_insns): New static function.
17218 (reload_combine_recognize_const_pattern): Use it. Don't let the
17219 main loop be affected by DEBUG_INSNs.
17220 Really disallow moving adds past a jump insn.
17221 (reload_combine_recognize_pattern): Don't update use_ruid here.
17222 (reload_combine_note_use): Do it here.
17223 (reload_combine): Use control_flow_insn_p rather than JUMP_P.
17224
17225 2010-07-19 Bingfeng Mei <bmei@broadcom.com>
17226
17227 * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
17228 of a loop.
17229 * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
17230
17231 2010-07-19 Iain Sandoe <iains@gcc.gnu.org>
17232
17233 * config/i386/darwin.h: Define darwin_emit_branch_islands.
17234 (TARGET_MACHO_BRANCH_ISLANDS): New.
17235 (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
17236 * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
17237 default value.
17238 * config/i386/i386.c (output_pic_addr_const): Do not emit
17239 branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
17240 (x86_output_mi_thunk): Adjust symbol creation.
17241 * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
17242 Remove out of date comment.
17243 * config/rs6000/rs6000.c (print_operand): Adjust symbol.
17244 (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
17245 (DARWIN_GENERATE_ISLANDS): Ditto.
17246 (output_call): Do not emit branch islands unless
17247 darwin_emit_branch_islands is set.
17248 * config/darwin.c: Declare darwin_emit_branch_islands.
17249 (machopic_indirect_data_reference): Do not emit unless
17250 darwin_emit_branch_islands is set.
17251 (darwin_override_options): Set darwin_emit_branch_islands
17252 where it is needed.
17253 * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
17254
17255 2010-07-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17256
17257 * doc/sourcebuild.texi (Effective-Target Keywords): Document
17258 sse_runtime, sse2_runtime.
17259
17260 2010-07-18 Richard Sandiford <rdsandiford@googlemail.com>
17261
17262 * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
17263 low half of a single-register SCmode return value before ORing
17264 it with the high half.
17265 * config/mips/mips16.S (MERGE_GPRf): Likewise.
17266
17267 2010-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17268
17269 PR target/44805
17270 * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
17271 on all targets.
17272
17273 2010-07-17 Bernd Schmidt <bernds@codesourcery.com>
17274
17275 PR target/42235
17276 * postreload.c (reload_cse_move2add): Return bool, true if anything.
17277 changed. All callers changed.
17278 (move2add_use_add2_insn): Likewise.
17279 (move2add_use_add3_insn): Likewise.
17280 (reload_cse_regs): If reload_cse_move2add changed anything, rerun
17281 reload_combine.
17282 (RELOAD_COMBINE_MAX_USES): Bump to 16.
17283 (last_jump_ruid): New static variable.
17284 (struct reg_use): New members CONTAINING_MEM and RUID.
17285 (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
17286 (reload_combine_split_one_ruid, reload_combine_split_ruids,
17287 reload_combine_purge_insn_uses, reload_combine_closest_single_use
17288 reload_combine_purge_reg_uses_after_ruid,
17289 reload_combine_recognize_const_pattern): New static functions.
17290 (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
17291 is true for our reg and that we have available index regs.
17292 (reload_combine_note_use): New args RUID and CONTAINING_MEM. All
17293 callers changed. Use them to initialize fields in struct reg_use.
17294 (reload_combine): Initialize last_jump_ruid. Be careful when to
17295 take PREV_INSN of the scanned insn. Update REAL_STORE_RUID fields.
17296 Call reload_combine_recognize_const_pattern.
17297 (reload_combine_note_store): Update REAL_STORE_RUID field.
17298
17299 2010-07-16 Jason Merrill <jason@redhat.com>
17300
17301 * Makefile.in (opts-common.o): Depend on options.h.
17302
17303 2010-07-16 Nathan Froyd <froydnj@codesourcery.com>
17304
17305 * tree.c (build_common_builtin_nodes): Use build_function_type_list
17306 instead of build_function_type.
17307 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
17308 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
17309
17310 2010-07-16 Nathan Froyd <froydnj@codesourcery.com>
17311
17312 * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
17313 do all the work.
17314 (rs6000_emit_int_cmove): Use function pointers for insn generation.
17315 Don't force values into registers unnecessarily.
17316 (output_isel): Assert that we're not given conditions we can't handle.
17317 Delete corresponding code.
17318 * config/rs6000/rs6000.md (isel_signed_<mode>): Use
17319 scc_comparison_operator constraint. Permit 0 for the consequent
17320 operand. Permit any GPR for the alternative operand.
17321 (isel_unsigned_<mode>): Likewise.
17322
17323 2010-07-16 Jakub Jelinek <jakub@redhat.com>
17324
17325 PR target/44942
17326 * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
17327 argument to const_tree.
17328 * config/i386/i386.c (function_arg_advance): If padding needs to be
17329 inserted before argument, increment cum->words by number of padding
17330 words as well.
17331 (contains_aligned_value_p): Change argument to const_tree.
17332 (ix86_function_arg_boundary): Change second argument to const_tree.
17333
17334 2010-07-16 Bernd Schmidt <bernds@codesourcery.com>
17335
17336 PR target/42235
17337 * function.c (record_hard_reg_sets): New static function.
17338 (assign_parm_setup_reg): If an optab for extending exists and the
17339 generated code clobbbers no hard regs, emit the insn directly and
17340 create a REG_EQUIV note.
17341
17342 2010-07-15 Nathan Froyd <froydnj@codesourcery.com>
17343
17344 * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
17345 TREE_CHAIN.
17346 * c-typeck.c (push_init_level): Likewise.
17347 (process_init_element): Likewise.
17348
17349 2010-07-15 Anatoly Sokolov <aesok@post.ru>
17350
17351 * tree.h (enum tree_index): Add TI_INTEGER_THREE.
17352 (integer_three_node): Add.
17353 * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
17354 NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
17355 * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
17356 of call build_int_cst.
17357 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
17358 * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
17359 (find_interesting_uses_address): Ditto.
17360 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
17361 * tree-eh.c (lower_eh_constructs_2): Ditto.
17362 * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
17363 * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
17364 * expmed.c (expand_divmod): Ditto.
17365 * tree-mudflap.c (mx_register_decls): Ditto.
17366 * varasm.c (array_size_for_constructor): Ditto.
17367 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
17368 * c-parser.c (c_parser_postfix_expression): Ditto.
17369
17370 2010-07-15 Bernd Schmidt <bernds@codesourcery.com>
17371
17372 * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
17373 New static variables.
17374 (reload_combine_recognize_pattern): New static function, broken out
17375 of reload_combine.
17376 (reload_combine): Use it. Only initialize first_index_reg and
17377 last_index_reg once.
17378
17379 2010-07-15 Richard Henderson <rth@redhat.com>
17380
17381 * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
17382 when done.
17383
17384 2010-07-15 Jan Hubicka <jh@suse.cz>
17385
17386 * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
17387 comdats for broken gold.
17388 (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
17389
17390 2010-07-15 Nathan Froyd <froydnj@codesourcery.com>
17391
17392 * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
17393
17394 2010-07-15 Nathan Froyd <froydnj@codesourcery.com>
17395
17396 * tree.h (DECL_CHAIN): Define.
17397 * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
17398 * c-decl.c: Likewise.
17399 * c-parser.c: Likewise.
17400 * c-typeck.c: Likewise.
17401 * cfgexpand.c: Likewise.
17402 * cgraph.c: Likewise.
17403 * cgraphunit.c: Likewise.
17404 * combine.c: Likewise.
17405 * config/alpha/alpha.c: Likewise.
17406 * config/arm/arm.c: Likewise.
17407 * config/frv/frv.c: Likewise.
17408 * config/i386/i386.c: Likewise.
17409 * config/i386/winnt-cxx.c: Likewise.
17410 * config/ia64/ia64.c: Likewise.
17411 * config/iq2000/iq2000.c: Likewise.
17412 * config/mep/mep.c: Likewise.
17413 * config/mips/mips.c: Likewise.
17414 * config/pa/som.h: Likewise.
17415 * config/rs6000/rs6000.c: Likewise.
17416 * config/s390/s390.c: Likewise.
17417 * config/sh/sh.c: Likewise.
17418 * config/sh/symbian-cxx.c: Likewise.
17419 * config/sparc/sparc.c: Likewise.
17420 * config/spu/spu.c: Likewise.
17421 * config/stormy16/stormy16.c: Likewise.
17422 * config/vxworks.c: Likewise.
17423 * config/xtensa/xtensa.c: Likewise.
17424 * coverage.c: Likewise.
17425 * dbxout.c: Likewise.
17426 * dwarf2out.c: Likewise.
17427 * emit-rtl.c: Likewise.
17428 * expr.c: Likewise.
17429 * function.c: Likewise.
17430 * gimple-low.c: Likewise.
17431 * gimple-pretty-print.c: Likewise.
17432 * gimplify.c: Likewise.
17433 * integrate.c: Likewise.
17434 * ipa-inline.c: Likewise.
17435 * ipa-prop.c: Likewise.
17436 * ipa-split.c: Likewise.
17437 * ipa-struct-reorg.c: Likewise.
17438 * ipa-type-escape.c: Likewise.
17439 * langhooks.c: Likewise.
17440 * lto-cgraph.c: Likewise.
17441 * omp-low.c: Likewise.
17442 * stor-layout.c: Likewise.
17443 * tree-cfg.c: Likewise.
17444 * tree-complex.c: Likewise.
17445 * tree-dfa.c: Likewise.
17446 * tree-dump.c: Likewise.
17447 * tree-inline.c: Likewise.
17448 * tree-mudflap.c: Likewise.
17449 * tree-nested.c: Likewise.
17450 * tree-object-size.c: Likewise.
17451 * tree-pretty-print.c: Likewise.
17452 * tree-sra.c: Likewise.
17453 * tree-ssa-live.c: Likewise.
17454 * tree-ssa-loop-niter.c: Likewise.
17455 * tree-ssa-math-opts.c: Likewise.
17456 * tree-ssa-reassoc.c: Likewise.
17457 * tree-ssa-sccvn.c: Likewise.
17458 * tree-ssa-structalias.c: Likewise.
17459 * tree-tailcall.c: Likewise.
17460 * tree-vrp.c: Likewise.
17461 * tree.c: Likewise.
17462 * var-tracking.c: Likewise.
17463 * varasm.c: Likewise.
17464
17465 2010-07-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17466
17467 PR target/44877
17468 * config/spu/spu.c (spu_expand_builtin_1): Allow references
17469 (as well as pointers) as argument to mask_for_load builtins.
17470
17471 2010-07-15 Richard Guenther <rguenther@suse.de>
17472
17473 PR tree-optimization/44946
17474 * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
17475 with accessing only padding properly.
17476
17477 2010-07-15 Jan Hubicka <jh@suse.cz>
17478
17479 * ipa.c (function_and_variable_visibility): Variables marked as used
17480 should not be localized.
17481
17482 2010-07-15 Jan Hubicka <jh@suse.cz>
17483
17484 * cgraph.c: Include lto-streamer.h
17485 (change_decl_assembler_name): Work when assembler name hash is at place.
17486 (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
17487 be sure to rename it to avoid name clash.
17488 * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
17489 Localize hidden symbols only when locally defined.
17490
17491 2010-07-15 Uros Bizjak <ubizjak@gmail.com>
17492
17493 * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
17494
17495 2010-07-15 Magnus Granberg <zorry@gentoo.org>
17496 Kevin F. Quinn <kevquinn@gentoo.org>
17497
17498 * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
17499 * common.opt: Add -Wtrampolines.
17500 * doc/invoke.texi: Add -Wtrampolines.
17501
17502 2010-07-15 Jie Zhang <jie@codesourcery.com>
17503
17504 * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
17505 cortex_a8_issue_ls.
17506
17507 2010-07-15 Dave Korn <dave.korn.cygwin@gmail.com>
17508
17509 * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
17510 * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
17511
17512 2010-07-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17513
17514 * config/spu/spu.c (reg_names): Remove prototype.
17515 (call_used_regs): Likewise.
17516
17517 2010-07-14 Dave Korn <dave.korn.cygwin@gmail.com>
17518
17519 * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
17520 "unused" with attribute "used".
17521 (__JCR_END__): Likewise.
17522 * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
17523 "used" attribute.
17524 (__JCR_LIST__): Replace attribute "unused" with attribute "used".
17525
17526 2010-07-14 Richard Guenther <rguenther@suse.de>
17527
17528 * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
17529 (maybe_fixup_decls): Likewise.
17530 (input_gimple_stmt): Do not fixup anything.
17531 * lto-streamer-out.c (output_gimple_stmt): Make sure all
17532 non-automatic variable uses are wrapped inside a MEM_REF.
17533
17534 2010-07-14 Richard Henderson <rth@redhat.com>
17535
17536 * passes.c (rest_of_decl_compilation): Do not call assemble_variable
17537 for functions.
17538 * varasm.c (assemble_variable): Remove early exit for functions;
17539 assert that we're given a variable.
17540
17541 2010-07-14 Jie Zhang <jie@codesourcery.com>
17542
17543 * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
17544 cortex_a8_default when neon_type is not none.
17545
17546 2010-07-14 Bernd Schmidt <bernds@codesourcery.com>
17547
17548 * lower-subreg.c (subreg_context): New static bitmap.
17549 (decompose_multiword_subregs): Allocate and free it.
17550 (find_decomposable_subregs): Set a bit in it for a register that
17551 occurs in a subreg that changes mode but not size.
17552 (can_decompose_p): Test it instead of non_decomposable_context.
17553
17554 2010-07-14 Richard Guenther <rguenther@suse.de>
17555
17556 PR tree-optimization/44824
17557 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
17558 is_gimple_mem_ref_addr.
17559 (tree_ssa_forward_propagate_single_use_vars): Do not propagate
17560 non-decl_address_invariant_p addresses.
17561
17562 2010-07-14 Bernd Schmidt <bernds@codesourcery.com>
17563
17564 * reload.c (find_reloads): Revert code to penalize small register
17565 classes that was brought in with the IRA merge.
17566
17567 2010-07-14 Richard Guenther <rguenther@suse.de>
17568
17569 * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
17570 as base of ARRAY_REFs.
17571
17572 2010-07-14 Richard Guenther <rguenther@suse.de>
17573
17574 PR middle-end/44930
17575 * tree-pretty-print.c (do_niy): Do not print a newline.
17576
17577 2010-07-14 Bernd Schmidt <bernds@codesourcery.com>
17578
17579 * ira-int.h (struct ira_object): New.
17580 (ira_object_t): New typedef. Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
17581 (struct ira_allocno): Remove members min, max,
17582 conflict_allocno_array, conflict_id, conflict_allocno_array_size,
17583 conflict_allocnos_num and conflict_vec_p. Add new member object.
17584 (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
17585 OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
17586 OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
17587 OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
17588 ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
17589 ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
17590 ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
17591 ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
17592 an ira_object_t rather than ira_allocno_t. All uses changed.
17593 (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
17594 contains a vector of ira_object_t; all uses changed.
17595 (ira_objects_num): Declare variable.
17596 (ira_create_allocno_object): Declare function.
17597 (ira_conflict_vector_profitable_p): Adjust prototype.
17598 (ira_allocate_conflict_vec): Renamed from
17599 ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
17600 (ira_allocate_object_conflicts): Renamed from
17601 ira_allocate_allocno_conflicts; first arg now ira_object_t.
17602 (struct ira_object_iterator): New.
17603 (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
17604 (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
17605 to conflict_vec_p. All uses changed.
17606 (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
17607 Changed to take into account that conflicts are now tracked for
17608 objects.
17609 * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
17610 Args changed to accept ira_object_t. All uses changed.
17611 (allocnos_conflict_p): New static function.
17612 (collected_conflict_objects): Renamed from collected_allocno_objects;
17613 now a vector of ira_object_t. All uses changed.
17614 (build_conflict_bit_table): Changed to take into account that
17615 conflicts are now tracked for objects.
17616 (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
17617 (print_allocno_conflicts, ira_build_conflicts): Likewise.
17618 * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
17619 setup_allocno_left_conflicts_size, allocno_reload_assign,
17620 fast_allocation): Likewise.
17621 * ira-lives.c (make_hard_regno_born, make_allocno_born)
17622 process_single_reg_class_operands, process_bb_node_lives): Likewise.
17623 * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
17624 Likewise.
17625 * ira-build.c (ira_objects_num): New variable.
17626 (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
17627 contains a vector of ira_object_t; all uses changed.
17628 (ira_object_id_map_vec): Corresponding change.
17629 (object_pool): New static variable.
17630 (initiate_allocnos): Initialize it.
17631 (finish_allocnos): Free it.
17632 (ira_create_object, ira_create_allocno_object, create_allocno_objects):
17633 New functions.
17634 (ira_create_allocno): Don't set members that were removed.
17635 (ira_set_allocno_cover_class): Don't change conflict hard regs.
17636 (merge_hard_reg_conflicts): Changed to take into account that
17637 conflicts are now tracked for objects.
17638 (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
17639 allocate_conflict_bit_vec, ira_allocate_object_conflicts,
17640 compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
17641 setup_min_max_allocno_live_range_point, allocno_range_compare_func,
17642 setup_min_max_conflict_allocno_ids, ): Likewise.
17643 (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
17644 to ira_object_t; all callers changed.
17645 (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
17646 to ira_object_t, all callers changed.
17647 (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
17648 to ira_object_t, all callers changed.
17649 (conflict_check, curr_conflict_check_tick): Renamed from
17650 allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
17651 changed.
17652 (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
17653 arg changed to ira_object_t, all callers changed.
17654 (create_cap_allocno): Call ira_create_allocno_object.
17655 (finish_allocno): Free the corresponding object.
17656 (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
17657 callers changed. Adjusted for dealing with objects.
17658 (ira_build): Call create_allocno_objects after ira_costs. Adjusted for
17659 dealing with objects.
17660 * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
17661
17662 * ira-int.h (struct live_range): Rename allocno member to object
17663 and change type to ira_object_t.
17664 (struct ira_object): New member live_ranges.
17665 (struct ira_allocno): Remove member live_ranges.
17666 (ALLOCNO_LIVE_RANGES): Remove.
17667 (OBJECT_LIVE_RANGES): New macro.
17668 (ira_create_live_range, ira_copy_live_range_list,
17669 ira_merge_live_range_list, ira_live_ranges_intersect_p,
17670 ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
17671 * ira-build.c (ira_create_object): Initialize live ranges here.
17672 (ira_create_allocno): Not here.
17673 (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
17674 changed to ira_object_t, all callers changed.
17675 (copy_live_range): Rename from copy_allocno_live_range, all callers
17676 changed.
17677 (ira_copy_live_range_list): Rename from
17678 ira_copy_allocno_live_range_list, all callers changed.
17679 (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
17680 all callers changed.
17681 (ira_live_ranges_intersect_p): Rename from
17682 ira_allocno_live_ranges_intersect_p, all callers changed.
17683 (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
17684 callers changed.
17685 (ira_finish_live_range_list): Rename from
17686 ira_finish_allocno_live_range_list, all callers changed.
17687 (change_object_in_range_list): Rename from change_allocno_in_range_list,
17688 last arg changed to ira_object_t, all callers changed.
17689 (finish_allocno): Changed to expect live ranges in the allocno's object.
17690 (move_allocno_live_ranges, copy_allocno_live_ranges,
17691 update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
17692 ira_flattening, ira_build): Likewise.
17693 * ira-color.c (allocnos_have_intersected_live_ranges_p,
17694 slot_coalesced_allocno_live_ranges_intersect,
17695 setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
17696 * ira-conflicts.c (build_conflict_bit_table): Likewise.
17697 * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
17698 * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
17699 make_allocno_dead, create_start_finish_chains,
17700 remove_some_program_points_and_update_live_ranges,
17701 ira_debug_live_range_list): Likewise.
17702
17703 * ira-int.h (ira_object_conflict_iterator): Rename from
17704 ira_allocno_conflict_iterator.
17705 (ira_object_conflict_iter_init): Rename from
17706 ira_allocno_conflict_iter_init, second arg changed to
17707 * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
17708 FOR_EACH_ALLOCNO_CONFLICT.
17709 * ira-color.c (assign_hard_reg, push_allocno_to_stack)
17710 setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
17711 ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
17712 * ira-conflicts.c (print_allocno_conflicts): Likewise.
17713
17714 2010-07-13 Joern Rennecke <joern.rennecke@embecosm.com>
17715
17716 PR other/44874
17717 * tree-dump.c (dump_options): Add enumerate_locals entry.
17718 Add TDF_NOID exclusion to all entry.
17719 * tree-dump.h (dump_enumerated_decls): Declare.
17720 * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
17721 Don't display type uid.
17722 (print_declaration): Don't crash on TREE_TYPE (t) == 0.
17723 * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
17724 * tree-ssa-live.c: Include gimple.h.
17725 (numbered_tree_d): New struct.
17726 (numbered_tree): New typedef.
17727 (DEF_VEC_O (numbered_tree): New.
17728 (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
17729 (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
17730 (dump_enumerated_decls): Likewise.
17731 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
17732 debug info and flag_dump_final_insns, call dump_enumerated_decls.
17733 * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
17734 * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
17735
17736 2010-07-13 Richard Sandiford <rdsandiford@googlemail.com>
17737
17738 * expmed.h (MAX_BITS_PER_WORD): Move to...
17739 * defaults.h (MAX_BITS_PER_WORD): ...here.
17740
17741 2010-07-13 DJ Delorie <dj@redhat.com>
17742
17743 * config/h8300/h8300.c (h8300_init_once): Default to
17744 -fstrict_volatile_bitfields.
17745
17746 * config/sh/sh.c (sh_override_options): Default to
17747 -fstrict_volatile_bitfields.
17748
17749 * config/rx/rx.c (rx_option_override): New.
17750
17751 * config/m32c/m32c.c (m32c_override_options): Default to
17752 -fstrict_volatile_bitfields.
17753
17754 2010-07-13 Nathan Froyd <froydnj@codesourcery.com>
17755
17756 * tree.h (build_function_call_expr): Delete.
17757 (build_call_expr_loc_array): New function.
17758 (build_call_expr_loc_vec): New function.
17759 * tree-flow.h (struct omp_region): Change type of ws_args field
17760 to a VEC.
17761 * builtins.c (build_function_call_expr): Delete.
17762 (build_call_expr_loc_array): New function.
17763 (build_call_expr_loc): Call it. Use XALLOCAVEC.
17764 (build_call_expr): Likewise.
17765 (build_call_expr_loc_vec): New function.
17766 * cgraphunit.c (build_cdtor): Call build_call_expr instead of
17767 build_function_call_expr.
17768 * expr.c (emutls_var_address): Likewise.
17769 * varasm.c (emutls_common_1): Likewise.
17770 * omp-low.c (expand_omp_atomic_mutex): Likewise.
17771 (expand_omp_taskreg): Adjust for new type of region->ws_args.
17772 (get_ws_args_for): Return a VEC instead of a tree.
17773 (expand_parallel_call): Call build_call_expr_loc_vec instead of
17774 build_function_call_expr.
17775 * stor-layout.c (self_referential_size): Likewise.
17776
17777 2010-07-13 Jakub Jelinek <jakub@redhat.com>
17778
17779 PR testsuite/44701
17780 * recog.c (constrain_operands): Allow side-effects in memory
17781 operands if either < or > constraint is used, rather than if
17782 both < and > is used.
17783
17784 2010-07-13 Richard Guenther <rguenther@suse.de>
17785
17786 PR middle-end/44911
17787 * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
17788 MEM_REF pointer type dumping. Avoid recursing for TYPE_DECLs
17789 without name.
17790
17791 2010-07-13 Kaz Kojima <kkojima@gcc.gnu.org>
17792
17793 PR target/44761
17794 * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
17795 to variable emited.
17796 * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
17797 * config/sh/sh.md (symGOT_load): Likewise.
17798 (symDTPOFF2reg): Likewise.
17799 (symTPOFF2reg): Likewise.
17800
17801 2010-07-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17802
17803 * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
17804 * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
17805
17806 2010-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17807
17808 * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
17809 explanation.
17810 Find ucontext_t * on Solaris 11.
17811 (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
17812 Handle new Solaris 11 __sighndlr patterns.
17813
17814 2010-07-13 Jakub Jelinek <jakub@redhat.com>
17815
17816 PR debug/44901
17817 * vec.h (VEC_block_remove): Fix comment.
17818 * tree-ssa-live.c (remove_unused_locals): Don't use
17819 VEC_unordered_remove on local_decls, instead replace a single
17820 vector element in each iteration if at least one element had
17821 to be removed and VEC_truncate at the end.
17822 * omp-low.c (expand_omp_taskreg): Likewise.
17823
17824 2010-07-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
17825
17826 * c-decl.c (finish_function): Fix typo in comment.
17827
17828 2010-07-12 H.J. Lu <hongjiu.lu@intel.com>
17829
17830 PR bootstrap/44921
17831 * postreload.c (move2add_use_add3_insn): Silence gcc warning
17832 on min_regno.
17833
17834 2010-07-12 Jakub Jelinek <jakub@redhat.com>
17835
17836 * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
17837 (simplify_stmt_using_ranges): Use it.
17838
17839 2010-07-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17840
17841 * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
17842 member. Do not mark as GTY(()).
17843 * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
17844 (spu_builtin_decls): New static variable.
17845 (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
17846 (spu_init_builtins): Likewise.
17847 (spu_builtin_mul_widen_even): Likewise.
17848 (spu_builtin_mul_widen_odd): Likewise.
17849 (spu_builtin_mask_for_load): Likewise.
17850 (spu_builtin_vec_perm): Likewise.
17851 * config/spu/spu-c.c: Include "target.h".
17852 (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
17853 of using spu_builtins[].fndecl.
17854
17855 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
17856
17857 * config/mips/mips.c (mips_override_options): Make -mflip-mips16
17858 imply -minterlink-mips16.
17859
17860 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
17861
17862 * config/mips/mips.h (mips16_globals): Declare.
17863 (SWITCHABLE_TARGET): Define.
17864 * config/mips/mips.c: Include target-globals.h.
17865 (mips16_globals): New variable.
17866 (mips_set_mips16_mode): Use save_target_globals and
17867 restore_target_globals instead of target_reinit.
17868
17869 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
17870
17871 * reginfo.c (init_reg_sets): Don't zero globals here. Update comment
17872 to say that the function can be called more than once.
17873 * target-globals.c (save_target_globals): Call init_reg_sets.
17874
17875 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
17876
17877 * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
17878 * bb-reorder.h: New file.
17879 * bb-reorder.c (default_target_bb_reorder): New variable.
17880 (this_target_bb_reorder): New conditional variable.
17881 (uncond_jump_length): Redefine as a macro.
17882 * target-globals.h (this_target_bb_reorder): Declare.
17883 (target_globals): Add a bb_reorder field.
17884 (restore_target_globals): Copy the bb_reorder field to
17885 this_target_bb-reorder.
17886 * target-globals.c: Include bb-reorder.h.
17887 (default_target_globals): Initialize the bb_reorder field.
17888 (save_target_globals): Likewise.
17889
17890 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
17891
17892 * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
17893 * gcse.h: New file.
17894 * gcse.c: Include gcse.h.
17895 (default_target_gcse): New variable.
17896 (this_target_gcse): New conditional variable.
17897 (can_copy): Redefine as a macro.
17898 (can_copy_init_p): New macro.
17899 (can_copy_p): Remove can_copy_init_p.
17900 * target-globals.h (this_target_gcse): Declare.
17901 (target_globals): Add a gcse field.
17902 (restore_target_globals): Copy the gcse field to this_target_gcse.
17903 * target-globals.c: Include gcse.h.
17904 (default_target_globals): Initialize the gcse field.
17905 (save_target_globals): Likewise.
17906
17907 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
17908
17909 * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
17910 and x_ira_prohibited_mode_move_regs_initialized_p.
17911 (ira_prohibited_mode_move_regs): Redefine as a macro.
17912 * ira.c (ira_prohibited_mode_move_regs): Delete.
17913 (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
17914
17915 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
17916
17917 * reload.h (target_reload): Add x_cached_reg_save_code and
17918 x_cached_reg_restore_code.
17919 * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
17920 Redefine as macros.
17921
17922 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
17923
17924 * Makefile.in (target-globals.o): Depend on builtins.h.
17925 * builtins.h: New file.
17926 * builtins.c: Include builtins.h.
17927 (default_target_builtins): New variable.
17928 (this_target_builtins): New conditional variable.
17929 (apply_args_mode, apply_result_mode): Redefine as macros.
17930 * target-globals.h (this_target_builtins): Declare.
17931 (target_globals): Add a builtins field.
17932 (restore_target_globals): Copy the builtins field to
17933 this_target_builtins.
17934 * target-globals.c: Include builtins.h.
17935 (default_target_globals): Initialize the builtins field.
17936 (save_target_globals): Likewise.
17937
17938 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
17939
17940 * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
17941 (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
17942 from expmed.c.
17943 (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
17944 (alg_hash, alg_hash_used_p): New macros.
17945 * expmed.c (init_expmed): Clear alg_hash if reinitializing.
17946 (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
17947 (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
17948
17949 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
17950
17951 * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
17952 x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
17953 * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
17954 (this_op_costs, costs_classes): Redefine as macros.
17955 (record_reg_classes): Don't take op_costs as a parameter.
17956 (record_operand_costs): Likewise. Update calls to record_reg_classes.
17957 (scan_one_insn): Update call to record_operand_costs.
17958
17959 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
17960
17961 * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
17962 * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
17963 (target_ira_int): New structure.
17964 (default_target_ira_int): Declare.
17965 (this_target_ira_int): Declare as a variable or define as a macro.
17966 (ira_reg_mode_hard_regset, ira_register_move_cost)
17967 (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
17968 (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
17969 (prohibited_class_mode_regs, ira_important_classes_num)
17970 (ira_important_classes, ira_reg_class_intersect)
17971 (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
17972 (ira_reg_class_union): Redefine as macros.
17973 * ira.h (target_ira): New structure.
17974 (default_target_ira): Declare.
17975 (this_target_ira): Declare as a variable or define as a macro.
17976 (ira_available_class_regs, ira_hard_regno_cover_class)
17977 (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
17978 (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
17979 (ira_class_hard_regs_num): Redefine as macros.
17980 * ira.c (default_target_ira, default_target_ira_int): New variables.
17981 (this_target_ira, this_target_ira_int): New conditional variables.
17982 (ira_reg_mode_hard_regset, ira_memory_move_cost)
17983 (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
17984 (ira_class_subset_p): Delete.
17985 (no_unit_alloc_regs): Redefine as a macro.
17986 (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
17987 (ira_class_hard_regs_num, ira_class_hard_reg_index)
17988 (ira_available_class_regs): Delete.
17989 (alloc_reg_class_subclasses): Redefine as a macro.
17990 (ira_reg_class_cover_size, ira_reg_class_cover)
17991 (ira_important_classes_num, ira_important_classes)
17992 (ira_important_class_nums, ira_class_translate): Delete.
17993 (cover_class_order): Document the variable's lifetime.
17994 (reorder_important_classes): Don't set ira_important_class_nums.
17995 (ira_reg_class_intersect, ira_reg_classes_intersect_p)
17996 (ira_reg_class_super_classes, ira_reg_class_union)
17997 (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
17998 Delete.
17999 (setup_reg_class_nregs): Don't set ira_max_regs.
18000 (prohibited_class_mode_regs): Delete.
18001 * target-globals.h (this_target_ira, this_target_ira_int): Declare.
18002 (target_globals): Add ira and ira_int fields.
18003 (restore_target_globals): Copy the ira field to this_target_ira
18004 and the ira_int field to this_target_ira_int.
18005 * target-globals.c: Include ira-int.h.
18006 (default_target_globals): Initialize the ira and ira_int fields.
18007 (save_target_globals): Likewise.
18008
18009 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
18010
18011 * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
18012 * cfgloop.h (target_cfgloop): New structure.
18013 (default_target_cfgloop): Declare.
18014 (this_target_cfgloop): Declare as a variable or define as a macro.
18015 (target_avail_regs, target_clobbered_regs, target_res_regs)
18016 (target_reg_cost, target_spill_cost): Redefine as macros.
18017 * cfgloopanal.c (default_target_cfgloop): New variable.
18018 (this_target_cfgloop): New conditional variable.
18019 (target_avail_regs, target_clobbered_regs, target_res_regs)
18020 (target_reg_cost, target_spill_cost): Delete.
18021 * target-globals.h (this_target_cfgloop): Declare.
18022 (target_globals): Add a cfgloop field.
18023 (restore_target_globals): Copy the cfgloop field to
18024 this_target_cfgloop.
18025 * target-globals.c: Include cfgloop.h.
18026 (default_target_globals): Initialize the cfgloop field.
18027 (save_target_globals): Likewise.
18028
18029 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
18030
18031 * regs.h (target_regs): Add x_direct_load, x_direct_store and
18032 x_float_extend_from_mem.
18033 (direct_load, direct_store, float_extend_from_mem): New macros.
18034 * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
18035
18036 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
18037
18038 * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
18039 (target-globals.o): Depend on $(LIBFUNCS_H).
18040 * libfuncs.h: Include hashtab.h.
18041 (libfunc_entry): Moved from optabs.c.
18042 (target_libfuncs): New structure.
18043 (default_target_libfuncs): Declare.
18044 (this_target_libfuncs): Declare as a variable or define as a macro.
18045 (libfunc_table): Redefine as a macro.
18046 * optabs.c (default_target_libfuncs): New variable.
18047 (this_target_libfuncs): New conditional variable.
18048 (libfunc_table): Delete.
18049 (libfunc_entry): Moved to optabs.h.
18050 (libfunc_hash): Redefine as a macro.
18051 (hash_libfunc, eq_libfunc): Fix comments.
18052 (init_optabs): Use libfunc_hash to detect cases where the function
18053 has already been called. Clear the hash table instead of
18054 recreating it.
18055 * target-globals.h (this_target_libfuncs): Declare.
18056 (target_globals): Add a libfuncs field.
18057 (restore_target_globals): Copy the libfuncs field to
18058 this_target_libfuncs.
18059 * target-globals.c: Include libfuncs.h.
18060 (default_target_globals): Initialize the libfuncs field.
18061 (save_target_globals): Likewise.
18062
18063 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
18064
18065 * Makefile.in (LIBFUNCS_H): New variable. Use instead of libfuncs.h
18066 in all dependency lists.
18067
18068 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
18069
18070 * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
18071 * optabs.h (target_optabs): New structure.
18072 (default_target_optabs): Declare.
18073 (this_target_optabs): Declare as a variable or define as a macro.
18074 (optab_table, convert_optab_table, direct_optab_table): Redefine
18075 as macros.
18076 * optabs.c (default_target_optabs): New variable.
18077 (this_target_optabs): New conditional variable.
18078 (optab_table, convert_optab_table, direct_optab_table): Delete.
18079 * target-globals.h (this_target_optabs): Declare.
18080 (target_globals): Add a optabs field.
18081 (restore_target_globals): Copy the optabs field to
18082 this_target_optabs.
18083 * target-globals.c: Include expr.h and optabs.h.
18084 (default_target_globals): Initialize the optabs field.
18085 (save_target_globals): Likewise.
18086
18087 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
18088
18089 * flags.h (target_flagstate): Add x_flag_excess_precision.
18090 (flag_excess_precision): Redefine as a macro.
18091 * toplev.c (flag_excess_precision): Delete.
18092
18093 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
18094
18095 * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
18096 * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
18097 * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
18098 (no_caller_save_reg_set): Redefine as a macro.
18099 * reload.h (target_reload): Add x_caller_save_initialized_p and
18100 x_regno_save_mode.
18101 (caller_save_initialized_p): Redefine as a macro.
18102 * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
18103 (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
18104 (regno_save_mode): Redefine as a macro.
18105
18106 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
18107
18108 * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
18109 * expmed.h: New file.
18110 * expmed.c (default_target_costs): New variable.
18111 (this_target_costs): New conditional variable.
18112 (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
18113 (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
18114 (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
18115 * target-globals.h (this_target_expmed): Declare.
18116 (target_globals): Add a expmed field.
18117 (restore_target_globals): Copy the expmed field to
18118 this_target_expmed.
18119 * target-globals.c: Include expmed.h.
18120 (default_target_globals): Initialize the expmed field.
18121 (save_target_globals): Likewise.
18122
18123 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
18124
18125 * Makefile.in (target-globals.o): Depend on reload.h.
18126 * reload.h (target_reload): New structure.
18127 (default_target_reload): Declare.
18128 (this_target_reload): Declare as a variable or define as a macro.
18129 (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
18130 * reload1.c (default_target_reload): New variable
18131 (this_target_reload): New conditional variable.
18132 (indirect_symref_ok, double_reg_address_ok): Delete.
18133 (spill_indirect_levels): Redefine as a macro.
18134 * target-globals.h (this_target_reload): Declare.
18135 (target_globals): Add a reload field.
18136 (restore_target_globals): Copy the reload field to
18137 this_target_reload.
18138 * target-globals.c: Include hard-reg-set.h.
18139 (default_target_globals): Initialize the reload field.
18140 (save_target_globals): Likewise.
18141
18142 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
18143
18144 * rtl.h (target_rtl): Add x_static_reg_base_value.
18145 * alias.c (static_reg_base_value): Redefine as a macro.
18146
18147 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
18148
18149 * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
18150 (GTFILES): Remove reginfo.c.
18151 * rtl.h (target_rtl): Add x_top_of_stack.
18152 (top_of_stack): New macro.
18153 * reginfo.c: Don't include ggc.h or gt-reginfo.h.
18154 (top_of_stack): Delete.
18155
18156 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
18157
18158 * regs.h (target_regs): Add x_hard_regs_of_mode,
18159 x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
18160 x_may_move_out_cost and x_last_mode_for_init_move_cost.
18161 (have_regs_of_mode, contains_reg_of_mode, move_cost)
18162 (may_move_in_cost, may_move_out_cost): Redefine as macros.
18163 * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
18164 (may_move_in_cost, may_move_out_cost): Delete.
18165 (last_mode_for_init_move_cost): Redefine as a macro.
18166
18167 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
18168
18169 * hard-reg-set.h (target_hard_regs): New structure.
18170 (default_target_hard_regs): Declare.
18171 (this_target_hard_regs): Declare as a variable or define as a macro.
18172 (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
18173 (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
18174 (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
18175 (reg_class_size, reg_class_subclasses, reg_class_subunion)
18176 (reg_class_superunion, reg_names): Redefine as macros.
18177 * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
18178 (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
18179 (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
18180 (reg_class_contents, reg_class_size, reg_class_subclasses)
18181 (reg_class_subunion, reg_class_superunion, reg_names): Delete.
18182 (default_target_hard_regs): New variable
18183 (this_target_hard_regs, initial_call_really_used_regs)
18184 (initial_reg_alloc_order): New conditional variables.
18185 (initial_reg_names): New variable.
18186 (init_reg_sets): Assert that initial_call_really_used_regs,
18187 initial_reg_alloc_order and initial_reg_names
18188 are all the same size as their variable counterparts. Use them to
18189 initialize those counterparts.
18190 * target-globals.h (this_target_hard_regs): Declare.
18191 (target_globals): Add a hard_regs field.
18192 (restore_target_globals): Copy the hard_regs field to
18193 this_target_hard_regs.
18194 * target-globals.c: Include hard-reg-set.h.
18195 (default_target_globals): Initialize the hard_regs field.
18196 (save_target_globals): Likewise.
18197
18198 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
18199
18200 * Makefile.in (target-globals.o): Depend on $(RTL_H).
18201 * rtl.h (target_rtl): New structure.
18202 (default_target_rtl): Declare.
18203 (this_target_rtl): Declare as a variable or define as a macro.
18204 (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
18205 Redefine as macros.
18206 * emit-rtl.c (default_target_rtl): New variable.
18207 (this_target_rtl): New conditional variable.
18208 (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
18209 (return_address_pointer_rtx): Delete.
18210 (initial_regno_reg_rtx): New macro.
18211 (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
18212 (init_emit_regs): Likewise.
18213 * target-globals.h (this_target_rtl): Declare.
18214 (target_globals): Add a rtl field.
18215 (restore_target_globals): Copy the rtl field to this_target_rtl.
18216 * target-globals.c: Include rtl.h.
18217 (default_target_globals): Initialize the rtl field.
18218 (save_target_globals): Likewise.
18219
18220 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
18221
18222 * Makefile.in (target-globals.o): Depend on $(REGS_H).
18223 * regs.h (target_reg_modes): New structure.
18224 (default_target_reg_modes): Declare.
18225 (this_target_reg_modes): Declare as a variable or define as a macro.
18226 (hard_regno_nregs, reg_raw_mode): Redefine as macros.
18227 * reginfo.c (default_target_reg_modes): New variable.
18228 (this_target_reg_modes): New conditional variable.
18229 (hard_regno_nregs, reg_raw_mode): Delete.
18230 * target-globals.h (this_target_regs): Declare.
18231 (target_globals): Add a regs field.
18232 (restore_target_globals): Copy the regs field to this_target_regs.
18233 * target-globals.c: Include regs.h.
18234 (default_target_globals): Initialize the regs field.
18235 (save_target_globals): Likewise.
18236
18237 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
18238
18239 * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
18240 * doc/tm.texi: Regenerate.
18241 * Makefile.in (OBJS-common): Add target-globals.o.
18242 (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
18243 and target-globals.h.
18244 (target-globals.o): New rule.
18245 (GTFILES): Include $(srcdir)/target-globals.h.
18246 * defaults.h (SWITCHABLE_TARGET): Define.
18247 * gengtype.c (open_base_files): Add target-globals.h to the
18248 list of includes.
18249 * target-globals.h: New file.
18250 * target-globals.c: Likewise.
18251
18252 * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
18253 * flags.h (target_flag_state): New structure.
18254 (default_target_flag_state): Declare.
18255 (this_target_flag_state): Declare as a variable or define as a macro.
18256 (align_loops_log): Redefine as a macro.
18257 (align_loops_max_skip, align_jumps_log): Likewise.
18258 (align_jumps_max_skip, align_labels_log): Likewise.
18259 (align_labels_max_skip, align_functions_log): Likewise.
18260 * toplev.c (default_target_flag_state): New variable.
18261 (this_target_flag_state): New conditional variable.
18262 (align_loops_log): Delete.
18263 (align_loops_max_skip, align_jumps_log): Likewise.
18264 (align_jumps_max_skip, align_labels_log): Likewise.
18265 (align_labels_max_skip, align_functions_log): Likewise.
18266 * target-globals.h (this_target_flag_state): Declare.
18267 (target_globals): Add a flag_state field.
18268 (restore_target_globals): Copy the flag_state field to
18269 this_target_flag_state.
18270 * target-globals.c: Include flags.h.
18271 (default_target_globals): Initialize the flag_state field.
18272 (save_target_globals): Likewise.
18273
18274 2010-07-12 Jie Zhang <jie@codesourcery.com>
18275
18276 * postreload.c (reg_symbol_ref[]): New.
18277 (move2add_use_add2_insn): New.
18278 (move2add_use_add3_insn): New.
18279 (reload_cse_move2add): Handle SYMBOL + OFFSET case.
18280 (move2add_note_store): Likewise.
18281
18282 2010-07-12 Joern Rennecke <joern.rennecke@embecosm.com>
18283
18284 PR rtl-optimization/44752
18285 * genautomata.c (main): Don't emit an empty file even if there
18286 is no automaton.
18287
18288 2010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18289
18290 * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
18291 ix86_solaris_return_in_memory.
18292 * config/i386-protos.h: Reflect this.
18293 * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
18294 * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
18295 Move ...
18296 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
18297
18298 2010-07-12 Jie Zhang <jie@codesourcery.com>
18299
18300 * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
18301 align the stack when it's going to be saved.
18302
18303 2010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18304
18305 PR pch/14940
18306 * config/host-solaris.c (mmap_fixed): New function.
18307 (sol_gt_pch_get_address): Use it.
18308 (sol_gt_pch_use_address): Likewise.
18309
18310 2010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18311
18312 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
18313 pentiumpro on Solaris 8 and 9/x86.
18314 * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
18315 Document SSE/SSE2 support.
18316 * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
18317
18318 2010-07-12 Andi Kleen <ak@linux.intel.com>
18319
18320 * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
18321 instead of gcc_assert to print better error message for multiple
18322 prevailing defs.
18323
18324 2010-07-12 Uros Bizjak <ubizjak@gmail.com>
18325
18326 * config/i386/i386.c (ix86_asm_output_function_label): Change format
18327 string placeholder from 0x%x to %#x.
18328 (ix86_code_end): Use putc to output '\n'.
18329 (ix86_print_operand) <case ';'>: Use putc to output ';'.
18330
18331 2010-07-11 Kai Tietz <kai.tietz@onevision.com>
18332
18333 * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
18334 in directive -export.
18335
18336 2010-07-10 Anatoly Sokolov <aesok@post.ru>
18337
18338 * reginfo.h (reg_classes_intersect_p): Change arguments type to
18339 reg_class_t.
18340 * rtl.h (reg_classes_intersect_p): Adjust prototype.
18341
18342 * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
18343 Remove macros.
18344 * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
18345 rs6000_memory_move_cost): Remove
18346 * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
18347 TARGET_MEMORY_MOVE_COST): Define.
18348 (rs6000_register_move_cost): Make static. Change arguments type from
18349 enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
18350 (rs6000_memory_move_cost): Make static. Change arguments type from
18351 'enum reg_class' to reg_class_t.
18352
18353 2010-07-10 Sandra Loosemore <sandra@codesourcery.com>
18354
18355 PR middle-end/42505
18356 * tree-inline.c (estimate_num_insns): Refactor builtin complexity
18357 lookup code into....
18358 * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
18359 new functions.
18360 * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
18361 * cfgloopanal.c (target_clobbered_regs): Define.
18362 (init_set_costs): Initialize target_clobbered_regs.
18363 (estimate_reg_pressure_cost): Add call_p argument. When true,
18364 adjust the number of available registers to exclude the
18365 call-clobbered registers.
18366 * cfgloop.h (target_clobbered_regs): Declare.
18367 (estimate_reg_pressure_cost): Adjust declaration.
18368 * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
18369 (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
18370 (determine_set_costs): Dump target_clobbered_regs.
18371 (loop_body_includes_call): New function.
18372 (tree_ssa_iv_optimize_loop): Use it to initialize new field.
18373 * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
18374 call_p flag through.
18375 (best_gain_for_invariant): Likewise.
18376 (find_invariants_to_move): Likewise.
18377 (move_single_loop_invariants): Likewise, using already-computed
18378 has_call field.
18379
18380 2010-07-10 Richard Guenther <rguenther@suse.de>
18381 Joern Rennecke <joern.rennecke@embecosm.com>
18382
18383 PR debug/44832
18384 * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
18385 (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
18386 unless they have DECL_IGNORED_P set.
18387
18388 2010-07-10 Richard Guenther <rguenther@suse.de>
18389
18390 PR lto/44889
18391 * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
18392 helper function.
18393 (gimple_types_compatible_p): Similar to pointed-to
18394 types allow and merge a mix of complete and incomplete aggregate.
18395 Use gimple_fixup_complete_and_incomplete_subtype_p for that.
18396 (iterative_hash_gimple_type): Adjust for that.
18397
18398 2010-07-10 Richard Sandiford <r.sandiford@uk.ibm.com>
18399
18400 * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
18401
18402 2010-07-10 Iain Sandoe <iains@gcc.gnu.org>
18403
18404 PR objc/44140
18405 * config/darwin.c (output_objc_section_asm_op): Save and restore
18406 section when outputting ObjC section list.
18407
18408 2010-07-09 Jan Hubicka <jh@suse.cz>
18409
18410 * lto-streamer-out.c (produce_symtab): Do not write alias
18411 cgraph/varpool nodes.
18412
18413 2010-07-09 Jan Hubicka <jh@suse.cz>
18414
18415 * tree-inline.c (declare_return_variable): Fix ICE while
18416 inlining DECL_BY_VALUE function not in SSA form
18417
18418 2010-07-09 Changpeng Fang <changpeng.fang@amd.com>
18419
18420 PR tree-optimization/44576
18421 * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
18422 New. Pull out from is_loop_prefetching_profitable to implement
18423 the trip count to ahead ratio heuristic.
18424 (mem_ref_count_reasonable_p): New. Pull out from
18425 is_loop_prefetching_profitable to implement the instruction to
18426 memory reference ratio heuristic. Also consider not reasonable if
18427 the memory reference count is above a threshold (to avoid
18428 explosive compilation time.
18429 (insn_to_prefetch_ratio_too_small_p): New. Pull out from
18430 is_loop_prefetching_profitable to implement the instruction to
18431 prefetch ratio heuristic.
18432 (is_loop_prefetching_profitable): Removed.
18433 (loop_prefetch_arrays): Distribute the cost analysis across the
18434 function to allow early exit of the prefetch analysis.
18435 is_loop_prefetching_profitable is splitted into three functions,
18436 with each one called as early as possible.
18437 (PREFETCH_MAX_MEM_REFS_PER_LOOP): New. Threshold above which the
18438 number of memory references in a loop is considered too many.
18439
18440 2010-07-09 Bernd Schmidt <bernds@codesourcery.com>
18441
18442 * reload.c (find_reloads): Don't clear badop if we have a winreg
18443 alternative, but not win, and the class only has fixed regs.
18444 * hard-reg-set.h (class_only_fixed_regs): Declare.
18445 * reginfo.c (class_only_fixed_regs): New array.
18446 (init_reg_sets_1): Initialize it.
18447 * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
18448 discourage alternatives using the stack pointer.
18449
18450 * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
18451
18452 * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
18453
18454 * config/arm/arm.md (cbranchqi4): Fix array size.
18455 (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
18456 calculating length.
18457
18458 2010-07-09 Richard Guenther <rguenther@suse.de>
18459
18460 * gimple.c (struct type_fixup_s): New struct and VEC type.
18461 (gimple_register_type_fixups): New static global.
18462 (gimple_queue_type_fixup): New function.
18463 (gimple_types_compatible_p): Queue type fixups instead of
18464 applying them here.
18465 (gimple_register_type): Apply queued fixups for the
18466 canonical type. Empty the type fixup queue.
18467
18468 2010-07-09 Uros Bizjak <ubizjak@gmail.com>
18469
18470 * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
18471 * configure: Regenerate.
18472 * config.in: Ditto.
18473
18474 2010-07-09 Jakub Jelinek <jakub@redhat.com>
18475 Denys Vlasenko <dvlasenk@redhat.com>
18476 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
18477
18478 PR tree-optimization/28632
18479 * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
18480 (extract_range_from_binary_expr): Further optimize
18481 BIT_AND_EXPR and BIT_IOR_EXPR.
18482
18483 2010-07-09 Sebastian Pop <sebastian.pop@amd.com>
18484
18485 * tree-if-conv.c (fold_or_predicates): New.
18486 (add_to_predicate_list): Call it.
18487
18488 2010-07-09 Richard Guenther <rguenther@suse.de>
18489
18490 PR middle-end/44890
18491 * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
18492 if base is a pointer.
18493 * tree-cfg.c (verify_expr): Update MEM_REF checking.
18494
18495 2010-07-08 Michael Meissner <meissner@linux.vnet.ibm.com>
18496
18497 PR target/44877
18498 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
18499 POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
18500 builtin mask for load/store builtins.
18501
18502 2010-07-09 Uros Bizjak <ubizjak@gmail.com>
18503
18504 * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
18505 for "lock addl".
18506 * configure: Regenerate.
18507 * config/i386/i386.c (ix86_print_operand) <case ';'>:
18508 Remove TARGET_MACHO.
18509
18510 2010-07-09 Peter Bergner <bergner@vnet.ibm.com>
18511
18512 * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
18513 default ISA flags.
18514 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
18515
18516 2010-07-09 Tom de Vries <tjvries@xs4all.nl>
18517
18518 * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
18519
18520 2010-07-09 Hariharan Sandanagobalane <hariharan@picochip.com>
18521
18522 * config/picochip/picochip.md (commsTestPort): Emit more
18523 efficient sequence for tstport instruction.
18524
18525 2010-07-09 Uros Bizjak <ubizjak@gmail.com>
18526
18527 * config/i386/i386.c (ix86_veclib_handler): Make static.
18528
18529 2010-07-09 Richard Guenther <rguenther@suse.de>
18530
18531 PR tree-optimization/44852
18532 * tree-ssa-alias.c: Include toplev.h for exact_log2.
18533 (indirect_ref_may_alias_decl_p): Properly handle negative offsets
18534 in MEM_REF.
18535 (indirect_refs_may_alias_p): Likewise.
18536 * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
18537
18538 2010-07-09 Richard Guenther <rguenther@suse.de>
18539
18540 PR tree-optimization/44882
18541 * tree-vect-stmts.c (vectorizable_store): Do not assert alias
18542 sets do conflict.
18543 (vectorizable_load): Likewise.
18544
18545 2010-07-09 Bernd Schmidt <bernds@codesourcery.com>
18546
18547 PR target/40657
18548 * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
18549 All callers changed.
18550 Handle the case when we're called for the epilogue.
18551 (thumb_unexpanded_epilogue): Use it.
18552 (thumb1_expand_epilogue): Likewise.
18553
18554 2010-07-09 Jakub Jelinek <jakub@redhat.com>
18555
18556 * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
18557 both ranges are range_int_cst_p with non-negative minimum,
18558 try harder to derive smaller range.
18559
18560 2010-07-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
18561
18562 * genrecog.c: Include diagnostic-core.h before toplev.h.
18563 * genoutput.c: Likewise.
18564 * genextract.c: Likewise.
18565 * genautomata.c: Likewise.
18566 * genemit.c: Likewise.
18567 * genpeep.c: Likewise.
18568 * genattrtab.c: Likewise.
18569 * genconditions.c: Likewise.
18570 * genpreds.c: Likewise.
18571
18572 2010-07-08 Andi Kleen <ak@linux.intel.com>
18573
18574 * lto-section-in.c (lto_section_name): Add missing comma.
18575
18576 2010-07-08 Anatoly Sokolov <aesok@post.ru>
18577
18578 * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
18579 * config/ia64/ia64-protos.h (ia64_override_options): Remove.
18580 * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
18581 (ia64_override_options): Rename to...
18582 (ia64_option_override): ... this one. Make static.
18583
18584 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
18585
18586 PR middle-end/44843
18587 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
18588 pointed-to type of the offset in a MEM_REF to compute the alignment.
18589
18590 2010-07-08 Kai Tietz <kai.tietz@onevision.com>
18591
18592 * final.c (final_scan_insn): Replace
18593 TARGET_UNWIND_INFO macro check by unwind_emit
18594 hook NULL check.
18595 * targhooks.c (default_unwind_emit): Removed.
18596 * targhooks.h (default_unwind_emit): Likewise.
18597 * target.def (unwind_emit): Set default value to NULL.
18598
18599 * config/i386/i386-protos.h (ix86_asm_output_function_label):
18600 New prototype.
18601 * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
18602 for NULL fntype argument and allow 64-bit targets.
18603 (ix86_asm_output_function_label): New function.
18604 (ix86_expand_prologue): Handle 64-bit ms hook prologue.
18605 (ix86_handle_fndecl_attribute): Likewise.
18606 * doc/extend.texi (ms_hook_prologue): Adjust documentation.
18607 * doc/doc/tm.texi: Regenerated.
18608 * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
18609 (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
18610 * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
18611 * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
18612 ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
18613 * config/elfos.h: Likewise.
18614 * config/i386/cygming.h: Likewise.
18615 * config/netbsd-aout.h: Likewise.
18616 * config/openbsd.h: Likewise.
18617 * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
18618 by ix86_asm_output_function_label function call.
18619 * varasm.c (assemble_start_function): Use
18620 ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
18621
18622 2010-07-08 Jan Hubicka <jh@suse.cz>
18623
18624 * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
18625 New function.
18626 * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
18627 Declare.
18628 * ipa-cp.c (ipcp_estimate_growth): Use it.
18629 * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
18630 Likewise.
18631
18632 2010-07-08 Jan Hubicka <jh@suse.cz>
18633
18634 * tree-inline.c (declare_return_variable): Allocate annotation for new
18635 temporary.
18636
18637 2010-07-08 Sebastian Pop <sebastian.pop@amd.com>
18638
18639 PR tree-optimization/44710
18640 * tree-if-conv.c (parse_predicate): New.
18641 (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
18642 Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
18643
18644 2010-07-08 Sebastian Pop <sebastian.pop@amd.com>
18645
18646 * common.opt (ftree-loop-if-convert): New flag.
18647 * doc/invoke.texi (ftree-loop-if-convert): Documented.
18648 * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
18649 when flag_tree_loop_if_convert is set.
18650
18651 2010-07-08 Uros Bizjak <ubizjak@gmail.com>
18652
18653 * config/i386/i386.c: Use short syntax for function calls
18654 through function pointers.
18655 * config/i386/i386.md: Ditto.
18656
18657 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
18658
18659 * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
18660
18661 2010-07-08 Richard Guenther <rguenther@suse.de>
18662
18663 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
18664 stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
18665
18666 2010-07-08 Jakub Jelinek <jakub@redhat.com>
18667
18668 * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
18669 instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
18670 (loc_list_from_tree): Likewise.
18671 (output_loc_operands): Handle outputting DW_OP_const[48]u
18672 with loc->dtprel set.
18673 (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
18674
18675 2010-07-08 Jan Hubicka <jh@suse.cz>
18676
18677 * ipa.c: Include pointer-set.h
18678 (cgraph_externally_visible_p): New attribute ALIASED;
18679 when in LTO, hidden symbols are local unless they are aliased.
18680 (function_and_variable_visibility): Compute aliased nodes;
18681 handle LTO and hidden symbol on functions and vars.
18682 * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
18683 for COMDAT symbols; handle COMDAT_GROUPS also at vars.
18684
18685 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
18686
18687 * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
18688 * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
18689 * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
18690 * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
18691 * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
18692 * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
18693 (ix86_gen_probe_stack_range): Likewise.
18694 (override_options): Set them.
18695 (ix86_target_stack_probe): New function.
18696 (ix86_compute_frame_layout): Force use of push instructions to
18697 save registers if stack checking with probes is enabled.
18698 (get_scratch_register_on_entry): New function.
18699 (release_scratch_register_on_entry): Likewise.
18700 (ix86_adjust_stack_and_probe): Likewise.
18701 (output_adjust_stack_and_probe): Likewise.
18702 (ix86_emit_probe_stack_range): Likewise.
18703 (output_probe_stack_range): Likewise.
18704 (ix86_expand_prologue): Emit stack checking code if static built-in
18705 stack checking is enabled.
18706 Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
18707 * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
18708 (output_adjust_stack_and_probe): Likewise.
18709 (output_probe_stack_range): Likewise.
18710 * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
18711 (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
18712 TARGET_STACK_PROBE.
18713 (allocate_stack_worker_64): Likewise.
18714 (allocate_stack): Likewise.
18715 (adjust_stack_and_probe): New insn.
18716 (probe_stack_range): Likewise.
18717
18718 2010-07-08 Richard Guenther <rguenther@suse.de>
18719
18720 PR tree-optimization/44831
18721 * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
18722 a MEM_REF preserving TBAA info of the original dereference.
18723 Dereference the original pointer if the address is not invariant.
18724 (propagate_with_phi): Fixup type checks wrt MEM_REFs. Require
18725 at least one invariant address that we are going to dereference.
18726
18727 2010-07-08 Richard Guenther <rguenther@suse.de>
18728
18729 PR tree-optimization/44861
18730 * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
18731 information when building MEM_REFs.
18732 (vectorizable_load): Likewise.
18733 * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
18734
18735 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
18736
18737 * config/sol2-c.c: Do not include diagnostic-core.h.
18738
18739 2010-07-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18740
18741 PR bootstrap/44768
18742 * cfgexpand.c (estimated_stack_frame_size): Make self-contained
18743 with respect to current_function_decl. Pass decl of the function.
18744 * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
18745 * ipa-inline.c (compute_inline_parameters): Pass decl to
18746 estimated_stack_frame_size.
18747
18748 2010-07-08 Richard Guenther <rguenther@suse.de>
18749
18750 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
18751 New function.
18752 (valueize_refs): Call it.
18753
18754 2010-07-08 Richard Guenther <rguenther@suse.de>
18755
18756 PR rtl-optimization/44838
18757 * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
18758 SSA form do not use pointer equivalence.
18759
18760 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
18761
18762 * dwarf2out.c (AT_linkage_name): Delete.
18763 (add_linkage_attr): New function.
18764 (add_linkage_name): Call it to emit the linkage attribute.
18765 (dwarf2out_finish): Likewise.
18766 (move_linkage_attr): Explicitly accept both attribute variants.
18767
18768 2010-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
18769
18770 * toplev.h: Do not include diagnostic-core.h.
18771 Include diagnostic-core.h in every file that includes toplev.h.
18772 * c-tree.h: Do not include toplev.h.
18773 * pretty-print.h: Update comment.
18774 * Makefile.in: Update dependencies.
18775 * alias.c: Include diagnostic-core.h in every file that includes
18776 toplev.h.
18777 * attribs.c: Likewise.
18778 * auto-inc-dec.c: Likewise.
18779 * bb-reorder.c: Likewise.
18780 * bt-load.c: Likewise.
18781 * caller-save.c: Likewise.
18782 * calls.c: Likewise.
18783 * cfg.c: Likewise.
18784 * cfganal.c: Likewise.
18785 * cfgbuild.c: Likewise.
18786 * cfgcleanup.c: Likewise.
18787 * cfghooks.c: Likewise.
18788 * cfgloop.c: Likewise.
18789 * combine.c: Likewise.
18790 * config/alpha/alpha.c: Likewise.
18791 * config/arc/arc.c: Likewise.
18792 * config/arm/arm.c: Likewise.
18793 * config/arm/pe.c: Likewise.
18794 * config/avr/avr.c: Likewise.
18795 * config/bfin/bfin.c: Likewise.
18796 * config/cris/cris.c: Likewise.
18797 * config/crx/crx.c: Likewise.
18798 * config/darwin-c.c: Likewise.
18799 * config/darwin.c: Likewise.
18800 * config/fr30/fr30.c: Likewise.
18801 * config/frv/frv.c: Likewise.
18802 * config/h8300/h8300.c: Likewise.
18803 * config/host-darwin.c: Likewise.
18804 * config/i386/i386.c: Likewise.
18805 * config/i386/netware.c: Likewise.
18806 * config/i386/nwld.c: Likewise.
18807 * config/i386/winnt-cxx.c: Likewise.
18808 * config/i386/winnt-stubs.c: Likewise.
18809 * config/i386/winnt.c: Likewise.
18810 * config/ia64/ia64-c.c: Likewise.
18811 * config/ia64/ia64.c: Likewise.
18812 * config/iq2000/iq2000.c: Likewise.
18813 * config/lm32/lm32.c: Likewise.
18814 * config/m32c/m32c-pragma.c: Likewise.
18815 * config/m32c/m32c.c: Likewise.
18816 * config/m32r/m32r.c: Likewise.
18817 * config/m68hc11/m68hc11.c: Likewise.
18818 * config/m68k/m68k.c: Likewise.
18819 * config/mcore/mcore.c: Likewise.
18820 * config/mep/mep-pragma.c: Likewise.
18821 * config/mep/mep.c: Likewise.
18822 * config/mmix/mmix.c: Likewise.
18823 * config/mn10300/mn10300.c: Likewise.
18824 * config/moxie/moxie.c: Likewise.
18825 * config/pa/pa.c: Likewise.
18826 * config/pdp11/pdp11.c: Likewise.
18827 * config/picochip/picochip.c: Likewise.
18828 * config/rs6000/rs6000-c.c: Likewise.
18829 * config/rs6000/rs6000.c: Likewise.
18830 * config/rx/rx.c: Likewise.
18831 * config/s390/s390.c: Likewise.
18832 * config/score/score.c: Likewise.
18833 * config/score/score3.c: Likewise.
18834 * config/score/score7.c: Likewise.
18835 * config/sh/sh.c: Likewise.
18836 * config/sh/symbian-base.c: Likewise.
18837 * config/sh/symbian-c.c: Likewise.
18838 * config/sh/symbian-cxx.c: Likewise.
18839 * config/sol2-c.c: Likewise.
18840 * config/sol2.c: Likewise.
18841 * config/sparc/sparc.c: Likewise.
18842 * config/spu/spu.c: Likewise.
18843 * config/stormy16/stormy16.c: Likewise.
18844 * config/v850/v850-c.c: Likewise.
18845 * config/v850/v850.c: Likewise.
18846 * config/vax/vax.c: Likewise.
18847 * config/vxworks.c: Likewise.
18848 * config/xtensa/xtensa.c: Likewise.
18849 * convert.c: Likewise.
18850 * cse.c: Likewise.
18851 * cselib.c: Likewise.
18852 * dbgcnt.c: Likewise.
18853 * dbxout.c: Likewise.
18854 * ddg.c: Likewise.
18855 * dominance.c: Likewise.
18856 * emit-rtl.c: Likewise.
18857 * explow.c: Likewise.
18858 * expmed.c: Likewise.
18859 * fixed-value.c: Likewise.
18860 * fold-const.c: Likewise.
18861 * fwprop.c: Likewise.
18862 * gcse.c: Likewise.
18863 * ggc-common.c: Likewise.
18864 * ggc-page.c: Likewise.
18865 * ggc-zone.c: Likewise.
18866 * gimple-low.c: Likewise.
18867 * gimplify.c: Likewise.
18868 * graph.c: Likewise.
18869 * haifa-sched.c: Likewise.
18870 * ifcvt.c: Likewise.
18871 * implicit-zee.c: Likewise.
18872 * integrate.c: Likewise.
18873 * ira-build.c: Likewise.
18874 * ira-color.c: Likewise.
18875 * ira-conflicts.c: Likewise.
18876 * ira-costs.c: Likewise.
18877 * ira-lives.c: Likewise.
18878 * ira.c: Likewise.
18879 * lists.c: Likewise.
18880 * loop-doloop.c: Likewise.
18881 * loop-iv.c: Likewise.
18882 * lto-opts.c: Likewise.
18883 * lto-symtab.c: Likewise.
18884 * main.c: Likewise.
18885 * modulo-sched.c: Likewise.
18886 * optabs.c: Likewise.
18887 * params.c: Likewise.
18888 * plugin.c: Likewise.
18889 * postreload-gcse.c: Likewise.
18890 * postreload.c: Likewise.
18891 * predict.c: Likewise.
18892 * profile.c: Likewise.
18893 * real.c: Likewise.
18894 * regcprop.c: Likewise.
18895 * reginfo.c: Likewise.
18896 * regmove.c: Likewise.
18897 * reorg.c: Likewise.
18898 * resource.c: Likewise.
18899 * rtl.c: Likewise.
18900 * rtlanal.c: Likewise.
18901 * sched-deps.c: Likewise.
18902 * sched-ebb.c: Likewise.
18903 * sched-rgn.c: Likewise.
18904 * sdbout.c: Likewise.
18905 * sel-sched-dump.c: Likewise.
18906 * sel-sched-ir.c: Likewise.
18907 * simplify-rtx.c: Likewise.
18908 * stmt.c: Likewise.
18909 * stor-layout.c: Likewise.
18910 * store-motion.c: Likewise.
18911 * targhooks.c: Likewise.
18912 * tree-cfg.c: Likewise.
18913 * tree-cfgcleanup.c: Likewise.
18914 * tree-dump.c: Likewise.
18915 * tree-eh.c: Likewise.
18916 * tree-inline.c: Likewise.
18917 * tree-nomudflap.c: Likewise.
18918 * tree-object-size.c: Likewise.
18919 * tree-optimize.c: Likewise.
18920 * tree-outof-ssa.c: Likewise.
18921 * tree-phinodes.c: Likewise.
18922 * tree-profile.c: Likewise.
18923 * tree-ssa-ccp.c: Likewise.
18924 * tree-ssa-coalesce.c: Likewise.
18925 * tree-ssa-live.c: Likewise.
18926 * tree-ssa-loop-niter.c: Likewise.
18927 * tree-ssa-loop-prefetch.c: Likewise.
18928 * tree-ssa-loop.c: Likewise.
18929 * tree-ssa-structalias.c: Likewise.
18930 * tree-ssa-uninit.c: Likewise.
18931 * tree-ssa.c: Likewise.
18932 * tree-vect-data-refs.c: Likewise.
18933 * tree-vect-loop-manip.c: Likewise.
18934 * tree-vect-loop.c: Likewise.
18935 * tree-vect-patterns.c: Likewise.
18936 * tree-vect-stmts.c: Likewise.
18937 * tree-vrp.c: Likewise.
18938 * varasm.c: Likewise.
18939 * vec.c: Likewise.
18940 * web.c: Likewise.
18941 * xcoffout.c: Likewise.
18942
18943 2010-07-07 Richard Sandiford <rdsandiford@googlemail.com>
18944
18945 * gengtype.c (write_field_root): New function.
18946 (write_root): Use it.
18947
18948 2010-07-07 Wei Guozhi <carrot@google.com>
18949
18950 * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
18951 of lowest bits to lshift/compare): Add a missing line.
18952
18953 2010-07-07 Wei Guozhi <carrot@google.com>
18954
18955 * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
18956 of lowest bits to lshift/compare): New.
18957
18958 2010-07-07 Tom Tromey <tromey@redhat.com>
18959
18960 * doc/tm.texi: Update.
18961 * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
18962 Add @hook.
18963 * target.def (want_debug_pub_sections): New hook.
18964 * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
18965 * dwarf2out.c (add_pubname_string): Check
18966 targetm.want_debug_pub_sections.
18967 (add_pubname): Likewise.
18968 (add_pubtype): Likewise.
18969
18970 2010-07-07 Jie Zhang <jie@codesourcery.com>
18971
18972 * genautomata.c (output_automata_list_min_issue_delay_code):
18973 Correctly decompress min_issue_delay.
18974
18975 2010-07-07 Bernd Schmidt <bernds@codesourcery.com>
18976
18977 PR rtl-optimization/44404
18978 * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
18979 possible, use reg_overlap_mentioned_p instead.
18980
18981 2010-07-07 Duncan Sands <baldrick@free.fr>
18982
18983 PR middle-end/41355
18984 * tree.c (build_function_type_skip_args): Copy the original type using
18985 build_distinct_type_copy rather than copy_node.
18986
18987 2010-07-07 H.J. Lu <hongjiu.lu@intel.com>
18988
18989 PR target/44850
18990 * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
18991 revision 161876.
18992 (ix86_expand_prologue): Likewise.
18993 (ix86_handle_fndecl_attribute): Likewise.
18994 (ix86_asm_declare_function_name): Likewise.
18995 * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
18996 * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
18997 (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
18998 * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
18999 * doc/extend.texi: Likewise.
19000
19001 2010-07-07 H.J. Lu <hongjiu.lu@intel.com>
19002
19003 PR target/44844
19004 * config/i386/i386.md (rdrand<mode>): Changed to expand to
19005 retry if the carry flag isn't valid.
19006 (rdrand<mode>_1): New.
19007
19008 2010-07-07 Richard Guenther <rguenther@suse.de>
19009
19010 PR middle-end/44790
19011 * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
19012 for expanding the constant offset for MEM_REFs.
19013
19014 2010-07-07 Richard Guenther <rguenther@suse.de>
19015
19016 * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
19017 * tree-ssa-propagate.c (valid_gimple_call_p): Make static. Fix.
19018 * gimple.h (is_gimple_operand): Remove.
19019 * gimple.c (is_gimple_operand): Likewise.
19020 (walk_gimple_op): Fix wi->val_only setting for calls.
19021 * tree-cfg.c (verify_gimple_call): Fix argument validation.
19022 * tree-profile.c (tree_gen_ic_func_profiler): Do not create
19023 invalid gimple calls.
19024
19025 2010-07-06 Jan Hubicka <jh@suse.cz>
19026
19027 * lto-cgraph.c (output_cgraph): Add missing declaration.
19028
19029 2010-07-06 Jan Hubicka <jh@suse.cz>
19030
19031 * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
19032 partition.
19033
19034 2010-07-06 Alexandre Oliva <aoliva@redhat.com>
19035
19036 * doc/gimple.texi (GIMPLE_DEBUG): Document.
19037 * doc/rtl.texi (Debug Information): New node.
19038 (NOTE_INSN_VAR_LOCATION): Document.
19039 (debug_insn): Likewise.
19040 * doc/generic.texi (DEBUG_EXPR_DECL): Document.
19041
19042 2010-07-07 Jan Hubicka <jh@suse.cz>
19043
19044 With parts by Richard Guenther.
19045
19046 PR middle-end/44813
19047 * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
19048 for functions passed by reference.
19049 * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
19050 in memory when passed by reference.
19051 * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
19052 beggining.
19053 * ipa-split.c (split_function): Cleanup way return value is passed;
19054 handle SSA DECL_BY_REFERENCE retvals.
19055 * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
19056 DECL_BY_REFERENCE is set.
19057 * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
19058 find_what_p_points_to): Handle RESULT_DECL.
19059 * tree-inline.c (declare_return_variable): Get new entry_block argument;
19060 when passing by reference ensure that RESULT_DECL is gimple_val.
19061 (remap_gimple_op_r): Remap RESULT_DECL ssa name.
19062 (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
19063
19064 2010-07-07 Bernd Schmidt <bernds@codesourcery.com>
19065
19066 PR rtl-optimization/44787
19067 * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
19068 * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
19069
19070 2010-07-06 Jan Hubicka <jh@suse.cz>
19071
19072 * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
19073 (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
19074 with body can prevail.
19075 (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
19076 (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
19077 * cgraph.c (cgraph_get_node_or_alias): New function.
19078 * cgraph.h (cgraph_get_node_or_alias): Declare.
19079
19080 2010-07-06 Kai Tietz <kai.tietz@onevision.com>
19081
19082 * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
19083 support.
19084 (ix86_expand_prologue): Likewise.
19085 (ix86_handle_fndecl_attribute): Likewise.
19086 (ix86_asm_declare_function_name): New function for
19087 ASM_DECLARE_FUNCTION_NAME.
19088 * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
19089 * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
19090 (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
19091 * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
19092 * doc/extend.texi: Adjust documentation about ms_hook_prologue
19093 attribute.
19094
19095 2010-07-06 Uros Bizjak <ubizjak@gmail.com>
19096
19097 * config/i386/i386.md (immediate_operand): New mode attribute.
19098
19099 (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
19100 pro_epilogue_adjust_stack and pro_epilogue_adjust_stack_rex64
19101 using P mode iterator.
19102 (pro_epilogue_adjust_stack_di_2): Rename from
19103 pro_epilogue_adjust_stack_rex64_2.
19104
19105 * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
19106
19107 2010-07-06 Uros Bizjak <ubizjak@gmail.com>
19108
19109 * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
19110 through gen_mov_insv_1 function pointer.
19111 (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
19112 gen_truncxf<mode>2 through gen_truncxf function pointer.
19113 (remainder<mode>3): Ditto.
19114 (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
19115 (allocate_stack): Call gen_allocate_stack_worker_64 or
19116 gen_allocate_stack_worker_32 through gen_allocate_stack_worker
19117 function pointer.
19118 (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
19119 function pointer.
19120
19121 2010-07-06 Uros Bizjak <ubizjak@gmail.com>
19122
19123 * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
19124 operand constraint instead of <r><i>m.
19125
19126 2010-07-06 Richard Guenther <rguenther@suse.de>
19127
19128 PR middle-end/44828
19129 * convert.c (convert_to_integer): Watch out for overflowing
19130 MULT_EXPR as well.
19131
19132 2010-07-05 Jan Hubicka <jh@suse.cz>
19133
19134 * lto-streamer.c (write_symbol_vec): Rename to ...
19135 (write_symbol) ... this one; write only symbol given and when
19136 present in cache. Sanity check that what is defined is present
19137 in cgraph/varpool with body/finalized decl.
19138 (write_symbols_of_kind): Remove.
19139 (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
19140 pairs to produce symtab.
19141 (produce_asm_for_decls): Update call of produce_symtab; don't do so
19142 when doing WPA streaming.
19143
19144 2010-07-05 Jan Hubicka <jh@suse.cz>
19145
19146 * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
19147 function is still available to fold into.
19148
19149 2010-07-05 Nathan Froyd <froydnj@codesourcery.com>
19150
19151 * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
19152 * function.h (struct_function): Change type of local_decls field
19153 to a VEC.
19154 (add_local_decl): New function.
19155 (FOR_EACH_LOCAL_DECL): New macro.
19156 * cfgexpand.c (init_vars_expansion): Adjust for new type of
19157 cfun->local_decls.
19158 (estimated_stack_frame_size): Likewise.
19159 (expand_used_vars): Likewise.
19160 * cgraphbuild.c (build_cgraph_edges): Likewise.
19161 * function.c (instantiate_decls_1): Likewise.
19162 * ipa-struct-reorg.c (build_data_structure): Likewise.
19163 * ipa-type-escape.c (analyze_function): Likewise.
19164 * lto-streamer-in.c (input_function): Likewise.
19165 * lto-streamer-out.c (output_function): Likewise.
19166 * tree-ssa-live.c (remove_unused_locals): Likewise.
19167 * tree.c (free_lang_data_in_decl): Likewise.
19168 (find_decls_types_in_node): Likewise.
19169 * omp-low.c (remove_exit_barrier): Likewise.
19170 (expand_omp_taskreg): Likewise.
19171 (list2chain): Rename to...
19172 (vec2chain): ...this. Adjust.
19173 * cgraphunit.c (assemble_thunk): Call add_local_decl.
19174 * tree-cfg.c (replace_by_duplicate_decl): Likewise.
19175 * gimple-low.c (record_vars_into): Likewise.
19176 * tree-inline.c (remap_decls): Likewise.
19177 (declare_return_variable): Likewise.
19178 (declare_inline_vars): Likewise.
19179 (copy_forbidden): Adjust for new type of cfun->local_decls.
19180 (add_local_variables): New function.
19181 (expand_call_inline): Call it.
19182 (tree_function_versioning): Likewise.
19183
19184 2010-07-05 H.J. Lu <hongjiu.lu@intel.com>
19185
19186 AVX Programming Reference (June, 2010)
19187 * config/i386/cpuid.h (bit_F16C): New.
19188 (bit_RDRND): Likewise.
19189 (bit_FSGSBASE): Likewise.
19190
19191 * config/i386/i386-builtin-types.def: Add
19192 "DEF_FUNCTION_TYPE (UINT16)", function types for
19193 float16 <-> float conversions and
19194 "DEF_FUNCTION_TYPE (VOID, UINT64)".
19195
19196 * config/i386/i386-c.c (ix86_target_macros_internal): Support
19197 OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
19198 OPTION_MASK_ISA_F16C.
19199
19200 * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
19201 (OPTION_MASK_ISA_RDRND_SET): Likewise.
19202 (OPTION_MASK_ISA_F16C_SET): Likewise.
19203 (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
19204 (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
19205 (OPTION_MASK_ISA_F16C_UNSET): Likewise.
19206 (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
19207 (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
19208 (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
19209 (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
19210 (override_options): Handle them.
19211 (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
19212 (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
19213 IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
19214 IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
19215 IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
19216 IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
19217 IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
19218 IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
19219 IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
19220 (bdesc_args): Likewise.
19221 (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
19222 V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
19223 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
19224 VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
19225 Handle non-memory store.
19226
19227 * config/i386/i386.h (TARGET_FSGSBASE): New.
19228 (TARGET_RDRND): Likewise.
19229 (TARGET_F12C): Likewise.
19230
19231 * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
19232 (UNSPEC_VCVTPS2PH): Likewise.
19233 (UNSPECV_RDFSBASE): Likewise.
19234 (UNSPECV_RDGSBASE): Likewise.
19235 (UNSPECV_WRFSBASE): Likewise.
19236 (UNSPECV_WRGSBASE): Likewise.
19237 (UNSPECV_RDRAND): Likewise.
19238 (rdfsbase<mode>): Likewise.
19239 (rdgsbase<mode>): Likewise.
19240 (wrfsbase<mode>): Likewise.
19241 (wrgsbase<mode>): Likewise.
19242 (rdrand<mode>): Likewise.
19243
19244 * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
19245
19246 * config/i386/immintrin.h (_rdrand_u16): New.
19247 (_rdrand_u32): Likewise.
19248 (_readfsbase_u32): Likewise.
19249 (_readfsbase_u64): Likewise.
19250 (_readgsbase_u32): Likewise.
19251 (_readgsbase_u64): Likewise.
19252 (_writefsbase_u32): Likewise.
19253 (_writefsbase_u64): Likewise.
19254 (_writegsbase_u32): Likewise.
19255 (_writegsbase_u64): Likewise.
19256 (_rdrand_u64): Likewise.
19257 (_cvtsh_ss): Likewise.
19258 (_mm_cvtph_ps): Likewise.
19259 (_mm256_cvtph_ps): Likewise.
19260 (_cvtss_sh): Likewise.
19261 (_mm_cvtps_ph): Likewise.
19262 (_mm256_cvtps_ph): Likewise.
19263
19264 * config/i386/sse.md (vcvtph2ps): New.
19265 (*vcvtph2ps_load): Likewise.
19266 (vcvtph2ps256): Likewise.
19267 (vcvtps2ph): Likewise.
19268 (*vcvtps2ph): Likewise.
19269 (*vcvtps2ph_store): Likewise.
19270 (vcvtps2ph256): Likewise.
19271
19272 * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
19273
19274 * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
19275
19276 2010-07-05 Joern Rennecke <joern.rennecke@embecosm.com>
19277
19278 PR bootstrap/44512
19279 * genenums.c (main): Output include of insn-constants.h
19280 * Makefile.in (insn-enums.o): Depend on insn-constants.h.
19281
19282 2010-07-05 Uros Bizjak <ubizjak@gmail.com>
19283
19284 * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
19285 (override_options): Initialize it.
19286 (ix86_expand_prologue): Use it.
19287
19288 2010-07-05 Jakub Jelinek <jakub@redhat.com>
19289
19290 * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
19291
19292 2010-07-05 Anatoly Sokolov <aesok@post.ru>
19293
19294 * double-int.h (fit_double_type): Remove declaration.
19295 * double-int.c (fit_double_type): Remove function.
19296 * tree.h (int_fits_type_p): Adjust prototype.
19297 * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
19298 instead of fit_double_type.
19299 (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
19300 instead of fit_double_type and build_int_cst_wide.
19301 * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
19302 instead of fit_double_type and build_int_cst_wide.
19303 (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
19304 of fit_double_type.
19305
19306 2010-07-05 Jan Hubicka <jh@suse.cz>
19307
19308 * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
19309 in_other_partition.
19310 * lto-cgraph.c (referenced_from_other_partition_p,
19311 reachable_from_other_partition_p): Use in_other_partition flags.
19312 (output_node, output_varpool_node): COMDAT nodes always have private
19313 copies and thus are never used from other partition.
19314
19315 2010-07-05 Anatoly Sokolov <aesok@post.ru>
19316
19317 * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
19318 * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
19319 * config/ia64/ia64.c Include reload.h.
19320 (ia64_memory_move_cost): New function.
19321 (TARGET_MEMORY_MOVE_COST): Define.
19322 (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
19323 memory_move_cost.
19324
19325 2010-07-05 Sandra Loosemore <sandra@codesourcery.com>
19326
19327 PR middle-end/42505
19328 * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
19329 comments about cost model.
19330 (try_add_cand_for): Add second strategy for choosing initial set
19331 based on original IVs, controlled by ORIGINALP argument.
19332 (get_initial_solution): Add ORIGINALP argument.
19333 (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
19334 (find_optimal_iv_set): Try two different strategies for choosing
19335 the IV set, and return the one with lower cost.
19336
19337 2010-07-05 Richard Guenther <rguenther@suse.de>
19338
19339 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
19340
19341 2010-07-05 Richard Guenther <rguenther@suse.de>
19342
19343 * tree.c (reference_alias_ptr_type): New function.
19344 * tree.h (reference_alias_ptr_type): Declare.
19345 * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
19346 allow non-TARGET_MEM_REF new refs.
19347 (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
19348 * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
19349 Build a MEM_REF instead of a TARGET_MEM_REF if possible.
19350 (create_mem_ref): Get alias pointer type. Adjust calls to
19351 create_mem_ref_raw.
19352 (maybe_fold_tmr): Likewise.
19353 * tree-flow.h (create_mem_ref): Adjust prototype.
19354
19355 2010-07-05 Jakub Jelinek <jakub@redhat.com>
19356
19357 PR c++/44808
19358 * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
19359 *from_p is VAR_DECL.
19360
19361 2010-07-05 Nathan Froyd <froydnj@codesourcery.com>
19362
19363 * tree.h (build_call_list): Remove.
19364 * tree.c (build_call_list): Remove.
19365
19366 2010-07-05 Richard Guenther <rguenther@suse.de>
19367
19368 * double-int.h (double_int_sub): Declare.
19369 * double-int.c (double_int_sub): New function.
19370 * dwarf2out.c (field_byte_offset): Use it.
19371 * fixed-value.c (do_fixed_add): Likewise.
19372 (do_fixed_multiply): Likewise.
19373 (do_fixed_divide): Likewise.
19374 * tree-predcom.c (add_ref_to_chain): Likewise.
19375 (determine_roots_comp): Likewise.
19376 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
19377
19378 2010-07-05 Nathan Froyd <froydnj@codesourcery.com>
19379
19380 * vec.h (VEC_splice, VEC_safe_splice): New macros. Add function
19381 implementations.
19382
19383 2010-07-05 Bernd Schmidt <bernds@codesourcery.com>
19384
19385 * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
19386 * arm-modes.def (CC_NOTB): Don't define.
19387 * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
19388 (adddi_sesidi_di, adddi_zesidi_di): Likewise.
19389 (LTUGEU): New code_iterator.
19390 (cnb, optab): New corresponding code_attrs.
19391 (addsi3_carryin_<optab>): Renamed from addsi3_carryin. Change pattern
19392 to canonical form. Operands 1 and 2 are commutative. Parametrize
19393 using LTUGEU.
19394 (addsi3_carryin_shift_<optab>): Likewise.
19395 (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
19396 Operands 1 and 2 are commutative. Parametrize using LTUGEU.
19397 (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
19398 (subsi3_compare): Renamed from subsi3_compare0_c.
19399 Change CC_NOTB to CC.
19400 (arm_subsi3_insn): Allow constants for operand 0.
19401 (compare_scc peephole for eq case): New.
19402 (compare_scc splitters): Change CC_NOTB to CC.
19403
19404 2010-07-05 Richard Guenther <rguenther@suse.de>
19405
19406 * tree-ssa-loop-im.c (for_each_index): Do not handle
19407 ALIGN_INDIRECT_REF.
19408 (gen_lsm_tmp_name): Likewise.
19409 * tree-dump.c (dequeue_and_dump): Likewise.
19410 * tree-pretty-print.c (dump_generic_node): Likewise.
19411 (op_code_prio): Likewise.
19412 (op_symbol_code): Likewise.
19413 * tree.c (staticp): Likewise.
19414 (build1_stat): Likewise.
19415 * tree.h (INDIRECT_REF_P): Likewise.
19416 * fold-const.c (maybe_lvalue_p): Likewise.
19417 (operand_equal_p): Likewise.
19418 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
19419 (ao_ref_init_from_vn_reference): Likewise.
19420 * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
19421 (find_interesting_uses_address): Likewise.
19422 * dwarf2out.c (loc_list_from_tree): Likewise.
19423 * gimplify.c (gimplify_expr): Likewise.
19424 * tree-eh.c (tree_could_trap_p): Likewise.
19425 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
19426 * cfgexpand.c (expand_debug_expr): Likewise.
19427 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
19428 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
19429 * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
19430 * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
19431 * tree-ssa-operands.c (get_expr_operands): Likewise.
19432 * expr.c (safe_from_p): Likewise.
19433 (expand_expr_real_1): Likewise. TER BIT_AND_EXPRs into MEM_REFs.
19434 * tree-vect-data-refs.c (vect_setup_realignment): Build
19435 BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
19436 * tree-vect-stmts.c (vectorizable_load): Likewise.
19437 * tree.def (ALIGN_INDIRECT_REF): Remove.
19438
19439 2010-07-05 Richard Guenther <rguenther@suse.de>
19440
19441 PR tree-optimization/44784
19442 * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
19443 for inserted stmts.
19444 (find_or_generate_expression): Fix SCCVN insertion check.
19445
19446 2010-07-05 Nathan Sidwell <nathan@codesourcery.com>
19447
19448 * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
19449 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
19450 * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
19451 directives.
19452
19453 2010-07-05 Ira Rosen <irar@il.ibm.com>
19454
19455 * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
19456 statements that are not vectorized.
19457 * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
19458 in INSIDE_COST.
19459
19460 2010-07-05 Mikael Pettersson <mikpe@it.uu.se>
19461
19462 PR bootstrap/44820
19463 * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
19464
19465 2010-07-05 Richard Guenther <rguenther@suse.de>
19466
19467 * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
19468 RESULT_DECLs properly.
19469
19470 2010-07-04 H.J. Lu <hongjiu.lu@intel.com>
19471
19472 PR rtl-optimization/44695
19473 * config/i386/i386.md (extract_code): Removed.
19474 (<u>divmodqi4): Likewise.
19475 (divmodqi4): New.
19476 (udivmodqi4): Likewise.
19477 (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
19478 (udivmodhiqi3): Likewise.
19479
19480 2010-07-04 Jan Hubicka <jh@suse.cz>
19481
19482 * lto-cgraph.c (input_edge): Do not care about resolution decisions.
19483
19484 2010-07-04 Jan Hubicka <jh@suse.cz>
19485
19486 * cgraphunit.c (init_cgraph): Only initialize dump file if it
19487 is not already initialized.
19488
19489 2010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
19490
19491 * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
19492 (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
19493 (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
19494 (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
19495 (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
19496 (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
19497 (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
19498 (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
19499 (sync_new_nand_optab): Redefine as macros.
19500 (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
19501 Delete.
19502 (direct_optab_index): New enum.
19503 (direct_optab_d): New structure.
19504 (direct_optab): New typedef.
19505 (direct_optab_table): Declare.
19506 (direct_optab_handler, set_direct_optab_handler): New functions.
19507 (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
19508 (sync_lock_release_optab): New macros.
19509 * optabs.c (direct_optab_table): New variable.
19510 (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
19511 (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
19512 cmpstr_optab and cmpstrn_optab.
19513 (emit_conditional_move): Likewise for movcc_optab.
19514 (can_conditionally_move_p): Likewise for movcc_gen_code.
19515 (init_insn_codes): Clear direct_optab_table.
19516 (init_optabs): Don't initialize the new "direct optabs" here.
19517 (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
19518 vcond_gen_code.
19519 (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
19520 (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
19521 (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
19522 (expand_sync_operation): Likewise other sync_*_optabs.
19523 (expand_sync_fetch_operation): Likewise. Rename sync_compare_and_swap
19524 to sync_compare_and_swap_optab.
19525 (expand_sync_lock_test_and_set): Use direct_optab_handler for
19526 sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
19527 to the names of both.
19528 * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
19529 cmpstr_optab and cmpstrn_optab.
19530 (expand_builtin_lock_release): Likewise sync_lock_release.
19531 * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
19532 (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
19533 (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
19534 (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
19535 (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
19536 (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
19537 (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
19538 (sync_lock_test_and_set, sync_lock_release): Delete.
19539 (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
19540 (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
19541 * genopinit.c (optabs): Use set_direct_optab_handler for the new
19542 macro optabs.
19543 * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
19544 the "optab" local variable. Use direct_optab_handler for optab and
19545 sync_compare_and_swap_optab.
19546 * reload1.c (reload_in_optab, reload_out_optab): Delete.
19547 * targhooks.c (default_secondary_reload): Use direct_optab_handler for
19548 reload_in_optab and reload_out_optab.
19549 * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
19550 * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
19551 * config/pa/pa.c (pa_secondary_reload): Likewise.
19552 * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
19553 for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
19554 (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
19555 (VMSupportsCS8_builtin): Likewise.
19556
19557 2010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
19558
19559 * optabs.h (optab_handlers): Change type of insn_code to int.
19560 (optab_handler, set_optab_handler, convert_optab_handler)
19561 (set_convert_optab_handler): Treat the insn_code field as "insn_code -
19562 CODE_FOR_nothing".
19563 * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
19564 (init_insn_codes): Zero both the above arrays.
19565 (init_optabs): Never call init_insn_codes first time around.
19566
19567 2010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
19568
19569 * optabs.h (optab_handler, convert_optab_handler): Turn into
19570 inline functions that return an insn code.
19571 (set_optab_handler, set_convert_optab_handler): New functions.
19572 * builtins.c: Replace optab_handler(X)->insn_code with
19573 optab_handler or set_optab_handler thoughout. Likewise
19574 convert_optab_handler(X)->insn_code with convert_optab_handler
19575 and set_convert_optab_handler.
19576 * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
19577 reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
19578 tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
19579 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
19580 tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
19581 config/spu/spu.c: Likewise.
19582
19583 2010-07-04 Kaz Kojima <kkojima@gcc.gnu.org>
19584
19585 PR target/44531
19586 * config.gcc (sh*-*-*): Use regular expressions instead of
19587 the 'i' modifier for sed substitutions.
19588
19589 2010-07-04 Jeremie Salvucci <jeremie.salvucci@free.fr>
19590
19591 * gimple.c (gimple_body): Comments added.
19592
19593 2010-07-04 Richard Guenther <rguenther@suse.de>
19594
19595 PR middle-end/44809
19596 * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
19597 of an INDIRECT_REF.
19598
19599 2010-07-04 Richard Guenther <rguenther@suse.de>
19600
19601 PR tree-optimization/44479
19602 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
19603 extra SSA name copy statements which preserves points-to
19604 information.
19605 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
19606 Copy points-to information for all pointers. Properly handle
19607 MEM_REFs.
19608 (vect_create_data_ref_ptr): Likewise. Avoid extra SSA name
19609 copy statements.
19610 * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
19611 dependency.
19612
19613 2010-07-04 Richard Guenther <rguenther@suse.de>
19614
19615 PR middle-end/44785
19616 * tree-inline.c (initialize_inlined_parameters): Do not
19617 re-use pointer-map slot over remap_type call.
19618
19619 2010-07-04 Richard Guenther <rguenther@suse.de>
19620
19621 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
19622
19623 2010-07-04 Richard Guenther <rguenther@suse.de>
19624
19625 PR tree-optimization/44656
19626 * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
19627 again after value-replacing in the defintions lhs.
19628
19629 2010-07-04 Ira Rosen <irar@il.ibm.com>
19630 Revital Eres <eres@il.ibm.com>
19631
19632 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
19633 Document new arguments.
19634 * doc/tm.texi: Regenerate.
19635 * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
19636 Handle unaligned store.
19637 * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
19638 * target.def (builtin_vectorization_cost): Add new arguments.
19639 * target.h (enum vect_cost_for_stmt): Add unaligned_store.
19640 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
19641 of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
19642 (vect_vfa_segment_size): Fix indentation.
19643 * tree-vectorizer.h (struct _vect_peel_info): New.
19644 (struct _vect_peel_extended_info): New.
19645 (struct _loop_vec_info): Add new field for peeling hash table and a
19646 macro for its access.
19647 (VECT_MAX_COST): Define.
19648 (vect_get_load_cost): Declare.
19649 (vect_get_store_cost, vect_get_known_peeling_cost,
19650 vect_get_single_scalar_iteraion_cost): Likewise.
19651 (vect_supportable_dr_alignment): Add new argument.
19652 * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
19653 field.
19654 (destroy_loop_vec_info): Free peeling hash table.
19655 (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
19656 (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
19657 vect_analyze_slp. Fix indentation.
19658 (vect_get_single_scalar_iteraion_cost): New function.
19659 (vect_get_known_peeling_cost): Likewise.
19660 (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
19661 Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
19662 statement. Move outside cost calculation inside unknown peeling case.
19663 Call vect_get_known_peeling_cost for known amount of peeling.
19664 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
19665 reference to the print message of forced alignment.
19666 (vect_verify_datarefs_alignment): Update call to
19667 vect_supportable_dr_alignment.
19668 (vect_get_data_access_cost): New function.
19669 (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
19670 vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
19671 vect_peeling_hash_choose_best_peeling): Likewise.
19672 (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
19673 to store all the accesses in the loop and find best possible access to
19674 align using peeling for known alignment case. For unknown alignment
19675 check if stores are preferred or if peeling is worthy.
19676 (vect_find_same_alignment_drs): Analyze pairs of loads too.
19677 (vect_supportable_dr_alignment): Add new argument and check aligned
19678 accesses according to it.
19679 * tree-vect-stmts.c (vect_get_stmt_cost): New function.
19680 (cost_for_stmt): Call vect_get_stmt_cost.
19681 (vect_model_simple_cost): Likewise.
19682 (vect_model_store_cost): Call vect_get_stmt_cost. Call
19683 vect_get_store_cost to calculate the cost of the statement.
19684 (vect_get_store_cost): New function.
19685 (vect_model_load_cost): Call vect_get_stmt_cost. Call
19686 vect_get_load_cost to calculate the cost of the statement.
19687 (vect_get_load_cost): New function.
19688 (vectorizable_store): Update call to vect_supportable_dr_alignment.
19689 (vectorizable_load): Likewise.
19690 * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
19691 * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
19692 arguments. Handle unaligned store.
19693 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
19694 (rs6000_builtin_support_vector_misalignment): Return true for word and
19695 double word alignments for VSX.
19696 * tree-vect-slp.c (vect_build_slp_tree): Update calls to
19697 vect_supportable_dr_alignment and builtin_vectorization_cost.
19698
19699 2010-07-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19700
19701 PR target/44597
19702 * config/pa/predicates.md (prefetch_cc_operand): Remove.
19703 (prefetch_nocc_operand): Likewise.
19704 * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
19705 (prefetch_20): New insn.
19706 (prefetch_cc): Remove.
19707 (prefetch_nocc): Likewise.
19708
19709 2010-07-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
19710
19711 * expr.c (vector_mode_valid_p): Move to c-common.c.
19712 * expr.h (vector_mode_valid_p): Do not declare here.
19713 * system.h: Poison GCC_EXPR_H in front-ends.
19714 * Makefile.in: Update dependencies.
19715
19716 2010-07-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19717
19718 PR target/44705
19719 * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
19720
19721 2010-07-03 Jan Hubicka <jh@suse.cz>
19722
19723 * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
19724 TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
19725 * cfgexpand.c (gimple_expand_cfg): Use new timevars.
19726 * var-tracking.c (vt_find_locations, variable_tracking_main_1):
19727 Likewise.
19728
19729 * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
19730 Update timevars.V
19731 * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
19732 (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
19733 TV_IPA_LTO_DECL_OUT): New.
19734 * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
19735
19736 2010-07-03 Jan Hubicka <jh@suse.cz>
19737
19738 * ipa-inline.c (update_edge_key): Break out from ...
19739 update_callers_keys): ... here;
19740 (update_callee_keys): Update only the edges from caller to callee.
19741 (update_all_calle_keys): Do what update_calle_keys did.
19742 (decide_inlining_of_small_functions): Avoid recomputing of all
19743 callees when badness increase.
19744
19745 2010-07-03 Jie Zhang <jie@codesourcery.com>
19746
19747 * config/arm/arm.c (arm_attr_length_move_neon): New.
19748 * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
19749 * config/arm/neon.md (define_mode_attr V_slen): Remove.
19750 (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
19751 to compute length attribute.
19752
19753 2010-07-03 Jie Zhang <jie@codesourcery.com>
19754
19755 * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
19756 as predicate for operand 1 and remove its constraint.
19757 * config/arm/predicates.md (vfp_register_operand): New.
19758 * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
19759 (*push_fp_multi): Likewise.
19760
19761 2010-07-03 Eric Botcazou <ebotcazou@adacore.com>
19762
19763 * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
19764
19765 2010-07-03 Jan Hubicka <jh@suse.cz>
19766
19767 * config/i386/i386.c (override_options): Revert accidental commit.
19768
19769 2010-07-02 Le-Chun Wu <lcwu@google.com>
19770
19771 PR c++/44128
19772 * doc/invoke.texi: Update documentation of -Wshadow.
19773
19774 2010-07-02 Daniel Jacobowitz <dan@codesourcery.com>
19775 Julian Brown <julian@codesourcery.com>
19776 Sandra Loosemore <sandra@codesourcery.com>
19777
19778 * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
19779 comparisons. Adjust to take both operands.
19780 (arm_select_cc_mode): Handle DImode comparisons.
19781 (arm_gen_compare_reg): Generate a scratch register for DImode
19782 comparisons which require one. Use xor for Thumb equality checks.
19783 (arm_const_double_by_immediates): New.
19784 (arm_print_operand): Allow 'Q' and 'R' for constants.
19785 (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
19786 * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
19787 arm_canonicalize_comparison.
19788 * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
19789 * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
19790 prototype.
19791 (arm_const_double_by_immediates): Declare.
19792 * config/arm/constraints.md (Di): New constraint.
19793 * config/arm/predicates.md (arm_immediate_di_operand)
19794 (arm_di_operand, cmpdi_operand): New.
19795 * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
19796 (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
19797 (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
19798 (cstoredi4): Handle non-Cirrus also.
19799
19800 2010-07-02 Julian Brown <julian@codesourcery.com>
19801 Sandra Loosemore <sandra@codesourcery.com>
19802
19803 PR target/43703
19804 * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
19805 (smax<mode>3): Disable for NEON float modes when
19806 flag_unsafe_math_optimizations is false.
19807 * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
19808 (*mul<mode>3_neon)
19809 (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
19810 (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
19811 for NEON float modes when flag_unsafe_math_optimizations is false.
19812 (quad_halves_<code>v4sf): Only enable if
19813 flag_unsafe_math_optimizations is true.
19814 * doc/invoke.texi (ARM Options): Add note about floating point
19815 vectorization requiring -funsafe-math-optimizations.
19816
19817 2010-07-02 Sandra Loosemore <sandra@codesourcery.com>
19818 Julian Brown <julian@codesourcery.com>
19819
19820 * config/arm/neon.md (UNSPEC_VABA): Delete.
19821 (UNSPEC_VABAL): Delete.
19822 (UNSPEC_VABS): Delete.
19823 (UNSPEC_VMUL_N): Delete.
19824 (adddi3_neon): New.
19825 (subdi3_neon): New.
19826 (mul<mode>3add<mode>_neon): Make the pattern named.
19827 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
19828 (neon_vadd<mode>): Replace with define_expand, and move the remaining
19829 unspec parts...
19830 (neon_vadd<mode>_unspec): ...to this.
19831 (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
19832 (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
19833 (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
19834 (neon_vaba<mode>): Rewrite in terms of vabd.
19835 (neon_vabal<mode>): Rewrite in terms of vabdl.
19836 (neon_vabs<mode>): Rewrite without unspec.
19837 * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
19838 (*arm_subdi3): Likewise.
19839 * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
19840 No_op attribute to disable assembly output checks.
19841 * config/arm/arm_neon.h: Regenerated.
19842 * doc/arm-neon-intrinsics.texi: Regenerated.
19843
19844 2010-07-02 Jan Hubicka <jh@suse.cz>
19845
19846 * ipa-split.c (split_function): For aggregate values, set the return
19847 slot optimization bit. When passing DECL_BY_REFERENCE, produce
19848 *<retval> = fncall.part ().
19849 (execute_split_functions): Do not care about DECL_BY_REFERENCE.
19850
19851 2010-07-02 Sandra Loosemore <sandra@codesourcery.com>
19852
19853 * config/arm/neon.md (UNSPEC_VAND): Delete.
19854 (UNSPEC_VBIC): Delete.
19855 (UNSPEC_VCLZ): Delete.
19856 (UNSPEC_VCNT): Delete.
19857 (UNSPEC_VEOR): Delete.
19858 (UNSPEC_VORN): Delete.
19859 (UNSPEC_VORR): Delete.
19860 (iordi3_neon): Rewrite RTL without unspec. Add alternatives to handle
19861 core registers too.
19862 (anddi3_neon): Likewise.
19863 (orndi3_neon): Likewise.
19864 (bicdi3_neon): Likewise.
19865 (xordi3_neon): Likewise.
19866 (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
19867 rid of unspec and handle unused operand.
19868 (neon_vcnt<mode>): Similarly, with popcount<mode>2.
19869 * config/arm/predicates.md (imm_for_neon_logic_operand):
19870 Require TARGET_NEON.
19871 (imm_for_neon_inv_logic_operand): Likewise.
19872 * config/arm/arm.md (define_split for logical_binary_operator):
19873 Disable for NEON registers.
19874 (anddi3): Add new define_expand, and rename the insn. Disable
19875 this insn for NEON, where anddi3_neon now applies.
19876 (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
19877 (iordi3): As for anddi3.
19878 (xordi3): Likewise.
19879 * config/arm/neon.ml (Vand): Split DImode variants and mark them
19880 as No_op to disable testing for exact instruction match.
19881 (Vorr): Likewise.
19882 (Veor): Likewise.
19883 (Vbic): Likewise.
19884 (Vorn): Likewise.
19885 * config/arm/arm_neon.h: Regenerated.
19886 * doc/arm-neon-intrinsics.texi: Regenerated.
19887
19888 2010-07-02 Eric Botcazou <ebotcazou@adacore.com>
19889
19890 * expr.h (emit_stack_probe): Declare.
19891 * explow.c (emit_stack_probe): Make global.
19892 (anti_adjust_stack_and_probe): Fix comments.
19893 * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
19894 * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19895 * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19896 * config/sparc/sparc.c: Include except.h.
19897 (sparc_emit_probe_stack_range): New function.
19898 (output_probe_stack_range): Likewise.
19899 (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
19900 built-in stack checking is enabled.
19901 * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
19902 * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
19903 (probe_stack_range): New insn.
19904
19905 2010-07-02 Richard Guenther <rguenther@suse.de>
19906
19907 PR target/43958
19908 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
19909 for argument alignment.
19910
19911 2010-07-02 Jan Hubicka <jh@suse.cz>
19912
19913 * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
19914 walk backwards from entry_bb to check only those basic block of header
19915 that might lead to execution of split part.
19916 (consider_split) ... here.
19917 (find_return_bb): Allow assignment in return BB.
19918 (find_retval): New.
19919 (split_function): Fix name of cloned function; take care of updating
19920 return value in return_bb containing move.
19921
19922 2010-07-02 Andreas Schwab <schwab@linux-m68k.org>
19923
19924 PR target/44771
19925 * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
19926 used variable insn.
19927
19928 2010-07-02 Eric Botcazou <ebotcazou@adacore.com>
19929
19930 * implicit-zee.c (combine_reaching_defs): Fix long lines.
19931 (is_set_with_extension_DI): Delete.
19932 (struct zero_extend_info): New structure.
19933 (add_removable_zero_extend): New function.
19934 (find_removable_zero_extends): Use note_stores to find SETs.
19935 (find_and_remove_ze): Fix long line, remove superfluous parentheses.
19936
19937 2010-07-02 Changpeng Fang <changpeng.fang@amd.com>
19938
19939 * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
19940 is_miss_rate_acceptable. Pull total_positions computation
19941 out of the loops. Early return if miss_positions exceeds
19942 the acceptable threshold.
19943 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
19944 is_miss_rate_acceptable after renaming of compute_miss_rate.
19945
19946 2010-07-02 Changpeng Fang <changpeng.fang@amd.com>
19947
19948 PR middle-end/44576
19949 * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
19950 of 1000) for miss rate if the address diference is greater than or
19951 equal to the cache line size (the two reference will never hit the
19952 same cache line).
19953
19954 2010-07-02 Bernd Schmidt <bernds@codesourcery.com>
19955
19956 PR target/42835
19957 * config/arm/arm-modes.def (CC_NOTB): New mode.
19958 * config/arm/arm.c (get_arm_condition_code): Handle it.
19959 * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
19960 * config/arm/arm.md (subsi3_compare0_c): New pattern.
19961 (compare_scc): Now a define_and_split. Add a number of extra
19962 splitters before it.
19963
19964 PR target/42172
19965 * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
19966 and ZERO_EXTEND.
19967 (arm_rtx_costs_1): Likewise.
19968 (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
19969 * config/arm/arm.md (is_arch6): New attribute.
19970 (zero_extendhisi2, zero_extendqisi2, extendhisi2,
19971 extendqisi2): Tighten the code somewhat, avoiding invalid
19972 RTL to occur in the expander patterns.
19973 (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
19974 (thumb1_zero_extendhisi2_v6): Delete.
19975 (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
19976 (thumb1_extendhisi2_v6): Delete.
19977 (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
19978 (thumb1_extendqisi2_v6): Delete.
19979 (zero_extendhisi2 for register input splitter): New.
19980 (zero_extendqisi2 for register input splitter): New.
19981 (thumb1_extendhisi2 for register input splitter): New.
19982 (extendhisi2 for register input splitter): New.
19983 (extendqisi2 for register input splitter): New.
19984 (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
19985 (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
19986 and add support for a register alternative requiring a split.
19987 (thumb1_zero_extendqisi2): Likewise.
19988 (arm_zero_extendqisi2): Likewise.
19989 (arm_extendhisi2): Likewise.
19990 (arm_extendqisi2): Likewise.
19991
19992 2010-07-02 Sandra Loosemore <sandra@codesourcery.com>
19993
19994 * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
19995 instead of an unspec.
19996 (neon_expand_vector_init): Likewise.
19997 * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
19998 (UNSPEC_VDUP_LANE): Delete.
19999 (UNSPEC VDUP_N): Delete.
20000 (UNSPEC_VGET_HIGH): Delete.
20001 (UNSPEC_VGET_LANE): Delete.
20002 (UNSPEC_VGET_LOW): Delete.
20003 (UNSPEC_VMVN): Delete.
20004 (UNSPEC_VSET_LANE): Delete.
20005 (V_double_vector_mode): New.
20006 (vec_set<mode>_internal): Make code emitted match that for the
20007 corresponding intrinsics.
20008 (vec_setv2di_internal): Likewise.
20009 (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
20010 (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
20011 (neon_vset_lane<mode>): Combine double and quad patterns and
20012 expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
20013 (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
20014 (neon_vdup_n<mode>): Rewrite RTL without unspec.
20015 (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
20016 (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
20017 with neon_vdup_lanev2di, adjusting the pattern from the latter
20018 to be predicable for consistency.
20019 (neon_vdup_lane<mode>_internal): New.
20020 (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
20021 to avoid using an unspec.
20022 (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
20023 (neon_vdup_lanev2di): Turn into a define_expand.
20024 (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
20025 (neon_vget_high<mode>): Replace with....
20026 (neon_vget_highv16qi): New pattern using canonical RTL.
20027 (neon_vget_highv8hi): Likewise.
20028 (neon_vget_highv4si): Likewise.
20029 (neon_vget_highv4sf): Likewise.
20030 (neon_vget_highv2di): Likewise.
20031 (neon_vget_low<mode>): Replace with....
20032 (neon_vget_lowv16qi): New pattern using canonical RTL.
20033 (neon_vget_lowv8hi): Likewise.
20034 (neon_vget_lowv4si): Likewise.
20035 (neon_vget_lowv4sf): Likewise.
20036 (neon_vget_lowv2di): Likewise.
20037
20038 * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
20039 test for this emitting vmov.
20040 (Vset_lane): Likewise.
20041 (Vdup_n): Likewise.
20042 (Vmov_n): Likewise.
20043
20044 * doc/arm-neon-intrinsics.texi: Regenerated.
20045
20046 2010-07-02 Sandra Loosemore <sandra@codesourcery.com>
20047
20048 * config/arm/neon.md (vec_extractv2di): Correct error in register
20049 numbering to reconcile with neon_vget_lanev2di.
20050
20051 2010-07-02 Richard Guenther <rguenther@suse.de>
20052
20053 * tree-ssa-structalias.c (pt_solution_set_var): New function.
20054 * tree-ssa-alias.h (pt_solution_set_var): Declare.
20055 * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
20056 points-to information.
20057
20058 2010-07-02 Christian Borntraeger <borntraeger@de.ibm.com>
20059
20060 * config/s390/s390.c (override_options): Adopt prefetching
20061 at -O3 to handle flag_prefetch_loop_arrays as a tristate.
20062
20063 2010-07-02 Jan Hubicka <jh@suse.cz>
20064
20065 * df-problems.c (df_kill_notes): Do not collect dead notes.
20066 (df_set_note): Just call add_reg_note.
20067 (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
20068 df_create_unused_note): Do not deal with lists of old notes.
20069 (df_note_bb_compute): Likewise.
20070
20071 2010-07-02 Richard Guenther <rguenther@suse.de>
20072
20073 * tree-ssa-structalias.c (find_func_aliases): Handle
20074 pointer alignment via BIT_AND_EXPR.
20075 * tree-vrp.c (extract_range_from_binary_expr): Likewise.
20076
20077 2010-07-02 Richard Guenther <rguenther@suse.de>
20078
20079 * tree-data-ref.c (initialize_data_dependence_relation): Handle
20080 mismatching number of dimensions properly.
20081
20082 2010-07-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
20083
20084 PR target/44707
20085 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
20086 (lo_sum (high ...) ...) patterns generated by earlier passes.
20087
20088 2010-07-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20089
20090 * doc/install.texi (Prerequisites): Document Perl requirement on
20091 Solaris 2.
20092 (Specific, *-*-solaris2*): Document GNU c++filt requirement.
20093
20094 2010-07-02 Richard Guenther <rguenther@suse.de>
20095
20096 PR middle-end/44777
20097 * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
20098
20099 2010-07-02 Jan Hubicka <jh@suse.cz>
20100
20101 PR middle-end/44706
20102 * predict.c (predict_paths_for_bb): Handle case when control dependence
20103 BB has only abnormal edges.
20104
20105 2010-07-02 Richard Guenther <rguenther@suse.de>
20106
20107 PR tree-optimization/44748
20108 * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
20109 the embedded conversion in MEM_REFs.
20110
20111 2010-07-01 López-Ibáñez <manu@gcc.gnu.org>
20112
20113 * reload.c: Include toplev.h.
20114 * recog.c: Likewise.
20115 * Makefile.in: Adjust dependencies.
20116
20117 2010-07-01 Jakub Jelinek <jakub@redhat.com>
20118
20119 PR debug/44694
20120 * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
20121 or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
20122
20123 2010-07-01 Richard Guenther <rguenther@suse.de>
20124
20125 * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
20126 types for offsets.
20127
20128 2010-07-01 Joern Rennecke <joern.rennecke@embecosm.com>
20129
20130 PR target/44732
20131 * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
20132 Fix argument types.
20133
20134 2010-07-01 Bernd Schmidt <bernds@codesourcery.com>
20135
20136 PR target/44727
20137 * config/i386/i386.md (peephole2 for arithmetic ops with memory):
20138 Make sure operand 0 dies.
20139
20140 2010-07-01 Richard Guenther <rguenther@suse.de>
20141
20142 PR middle-end/42834
20143 PR middle-end/44468
20144 * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
20145 * doc/generic.texi (References to storage): Document MEM_REF.
20146 * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
20147 (print_call_name): Likewise.
20148 * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
20149 (build_simple_mem_ref_loc): New function.
20150 (mem_ref_offset): Likewise.
20151 * tree.h (build_simple_mem_ref_loc): Declare.
20152 (build_simple_mem_ref): Define.
20153 (mem_ref_offset): Declare.
20154 * fold-const.c: Include tree-flow.h.
20155 (operand_equal_p): Handle MEM_REF.
20156 (build_fold_addr_expr_with_type_loc): Likewise.
20157 (fold_comparison): Likewise.
20158 (fold_unary_loc): Fold
20159 VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
20160 (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
20161 fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
20162 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
20163 (ptr_deref_may_alias_ref_p_1): Likewise.
20164 (ao_ref_base_alias_set): Properly differentiate base object for
20165 offset and TBAA.
20166 (ao_ref_init_from_ptr_and_size): Use MEM_REF.
20167 (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
20168 (indirect_refs_may_alias_p): Likewise.
20169 (refs_may_alias_p_1): Likewise. Remove pointer SSA name def
20170 chasing code.
20171 (ref_maybe_used_by_call_p_1): Handle MEM_REF.
20172 (call_may_clobber_ref_p_1): Likewise.
20173 * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
20174 * expr.c (expand_assignment): Handle MEM_REF.
20175 (store_expr): Handle MEM_REFs from STRING_CSTs.
20176 (store_field): If expanding a MEM_REF of a non-addressable
20177 decl use bitfield operations.
20178 (get_inner_reference): Handle MEM_REF.
20179 (expand_expr_addr_expr_1): Likewise.
20180 (expand_expr_real_1): Likewise.
20181 * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
20182 * alias.c (ao_ref_from_mem): Handle MEM_REF.
20183 (get_alias_set): Likewise. Properly handle VIEW_CONVERT_EXPRs.
20184 * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
20185 (dr_analyze_indices): Likewise.
20186 (dr_analyze_alias): Likewise.
20187 (object_address_invariant_in_loop_p): Likewise.
20188 * gimplify.c (mark_addressable): Handle MEM_REF.
20189 (gimplify_cond_expr): Build MEM_REFs.
20190 (gimplify_modify_expr_to_memcpy): Likewise.
20191 (gimplify_init_ctor_preeval_1): Handle MEM_REF.
20192 (gimple_fold_indirect_ref): Adjust.
20193 (gimplify_expr): Handle MEM_REF. Gimplify INDIRECT_REF to MEM_REF.
20194 * tree.def (MEM_REF): New tree code.
20195 * tree-dfa.c: Include toplev.h.
20196 (get_ref_base_and_extent): Handle MEM_REF.
20197 (get_addr_base_and_unit_offset): New function.
20198 * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
20199 * gimple-fold.c (may_propagate_address_into_dereference): Handle
20200 MEM_REF.
20201 (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
20202 accesses if the array has just one dimension. Remove always true
20203 parameter. Do not require type compatibility here.
20204 (maybe_fold_offset_to_component_ref): Remove.
20205 (maybe_fold_stmt_indirect): Remove.
20206 (maybe_fold_reference): Remove INDIRECT_REF handling.
20207 Fold back to non-MEM_REF.
20208 (maybe_fold_offset_to_address): Simplify. Deal with type
20209 mismatches here.
20210 (maybe_fold_reference): Likewise.
20211 (maybe_fold_stmt_addition): Likewise. Also handle
20212 &ARRAY + I in addition to &ARRAY[0] + I.
20213 (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
20214 (gimple_get_relevant_ref_binfo): Handle MEM_REF.
20215 * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
20216 * tree-ssa.c (useless_type_conversion_p): Make most pointer
20217 conversions useless.
20218 (warn_uninitialized_var): Handle MEM_REF.
20219 (maybe_rewrite_mem_ref_base): New function.
20220 (execute_update_addresses_taken): Implement re-writing of MEM_REFs
20221 to SSA form.
20222 * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
20223 INDIRECT_REF handling.
20224 (copy_tree_body_r): Handle MEM_REF.
20225 * gimple.c (is_gimple_addressable): Adjust.
20226 (is_gimple_address): Likewise.
20227 (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
20228 invariant base are invariant.
20229 (is_gimple_min_lval): Adjust.
20230 (is_gimple_mem_ref_addr): New function.
20231 (get_base_address): Handle MEM_REF.
20232 (count_ptr_derefs): Likewise.
20233 (get_base_loadstore): Likewise.
20234 * gimple.h (is_gimple_mem_ref_addr): Declare.
20235 (gimple_call_fndecl): Handle invariant MEM_REF addresses.
20236 * tree-cfg.c (verify_address): New function, split out from ...
20237 (verify_expr): ... here. Use for verifying ADDR_EXPRs and
20238 the address operand of MEM_REFs. Verify MEM_REFs. Reject
20239 INDIRECT_REFs.
20240 (verify_types_in_gimple_min_lval): Handle MEM_REF. Disallow
20241 INDIRECT_REF. Allow conversions.
20242 (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
20243 a register does not change its size.
20244 (verify_types_in_gimple_reference): Verify MEM_REF.
20245 (verify_gimple_assign_single): Disallow INDIRECT_REF.
20246 Handle MEM_REF.
20247 * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
20248 New.
20249 (mark_address_taken): Handle MEM_REF.
20250 (get_indirect_ref_operands): Pass through opf_not_non_addressable.
20251 (get_asm_expr_operands): Pass opf_not_non_addressable.
20252 (get_expr_operands): Handle opf_[not_]non_addressable.
20253 Handle MEM_REF. Remove INDIRECT_REF handling.
20254 * tree-vrp.c (check_array_ref): Handle MEM_REF.
20255 (search_for_addr_array): Likewise.
20256 (check_array_bounds): Likewise.
20257 (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
20258 * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
20259 (ref_always_accessed_p): Likewise.
20260 (gen_lsm_tmp_name): Likewise. Handle ADDR_EXPR.
20261 * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
20262 Handle MEM_REF.
20263 * cgraphbuild.c (mark_load): Properly check for NULL result
20264 from get_base_address.
20265 (mark_store): Likewise.
20266 * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
20267 * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
20268 handling for MEM_REF.
20269 * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
20270 &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
20271 * builtins.c (stabilize_va_list_loc): Use the function ABI
20272 valist type if we couldn't canonicalize the argument type.
20273 Always dereference with the canonical va-list type.
20274 (maybe_emit_free_warning): Handle MEM_REF.
20275 (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
20276 memmove to memcpy.
20277 * builtins.c (fold_builtin_memory_op): Use ref-all types
20278 for all memcpy foldings.
20279 * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
20280 (build_outer_var_ref): Likewise.
20281 (scan_omp_1_op): Likewise.
20282 (lower_rec_input_clauses): Likewise.
20283 (lower_lastprivate_clauses): Likewise.
20284 (lower_reduction_clauses): Likewise.
20285 (lower_copyprivate_clauses): Likewise.
20286 (expand_omp_atomic_pipeline): Likewise.
20287 (expand_omp_atomic_mutex): Likewise.
20288 (create_task_copyfn): Likewise.
20289 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
20290 Remove old union trick. Initialize constant offsets.
20291 (ao_ref_init_from_vn_reference): Likewise. Do not handle
20292 INDIRECT_REF. Init base_alias_set properly.
20293 (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
20294 (vn_reference_fold_indirect): Adjust for MEM_REFs.
20295 (valueize_refs): Fold MEM_REFs. Re-evaluate constant offset
20296 for ARRAY_REFs.
20297 (may_insert): Remove.
20298 (visit_reference_op_load): Do not test may_insert.
20299 (run_scc_vn): Remove parameter, do not fiddle with may_insert.
20300 * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
20301 a field to store the constant offset this op applies.
20302 (run_scc_vn): Adjust prototype.
20303 * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
20304 * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
20305 MEM_REF. Propagate &foo + CST as &MEM[&foo, CST]. Do not
20306 bother about volatile qualifiers on pointers.
20307 (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
20308 * tree-ssa-loop-ivopts.c
20309 * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
20310 (strip_offset_1): Likewise.
20311 (find_interesting_uses_address): Replace INDIRECT_REF handling with
20312 MEM_REF handling.
20313 (get_computation_cost_at): Likewise.
20314 * ipa-pure-const.c (check_op): Handle MEM_REF.
20315 * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
20316 * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
20317 and constants.
20318 * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
20319 * tree-parloops.c (take_address_of): Adjust for MEM_REF.
20320 (eliminate_local_variables_1): Likewise.
20321 (create_call_for_reduction_1): Likewise.
20322 (create_loads_for_reductions): Likewise.
20323 (create_loads_and_stores_for_name): Likewise.
20324 * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
20325 (ssa_accessed_in_tree): Handle MEM_REF.
20326 (ssa_accessed_in_assign_rhs): Likewise.
20327 (update_type_size): Likewise.
20328 (analyze_accesses_for_call_stmt): Likewise.
20329 (analyze_accesses_for_assign_stmt): Likewise.
20330 (transform_access_sites): Likewise.
20331 (transform_allocation_sites): Likewise.
20332 * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
20333 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
20334 not handle INDIRECT_REF.
20335 * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
20336 (cond_store_replacement): Likewise.
20337 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
20338 MEM_REF, no not handle INDIRECT_REFs.
20339 (insert_into_preds_of_block): Properly initialize avail.
20340 (phi_translate_1): Fold MEM_REFs. Re-evaluate constant offset
20341 for ARRAY_REFs. Properly handle reference lookups that
20342 require a bit re-interpretation.
20343 (can_PRE_operation): Do not handle INDIRECT_REF. Handle MEM_REF.
20344 * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
20345 (build_ref_for_offset_1): Remove.
20346 (build_ref_for_offset): Build MEM_REFs.
20347 (gate_intra_sra): Disable for now.
20348 (sra_ipa_modify_expr): Handle MEM_REF.
20349 (ipa_early_sra_gate): Disable for now.
20350 * tree-sra.c (create_access): Swap INDIRECT_REF handling for
20351 MEM_REF handling.
20352 (disqualify_base_of_expr): Likewise.
20353 (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
20354 MEM_REF handling.
20355 (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
20356 Use mem_ref_offset. Remove bogus folding.
20357 (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
20358 (make_fancy_name_1): Add support for MEM_REF.
20359 * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
20360 * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
20361 * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
20362 (compute_complex_ancestor_jump_func): Likewise.
20363 (ipa_analyze_virtual_call_uses): Likewise.
20364 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
20365 INDIRECT_REF folding with more generalized MEM_REF folding.
20366 (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
20367 (forward_propagate_addr_into_variable_array_index): Also handle
20368 &ARRAY + I in addition to &ARRAY[0] + I.
20369 * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
20370 * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
20371 creates assignments with overlap.
20372 * tree-nested.c (get_static_chain): Adjust for MEM_REF.
20373 (get_frame_field): Likewise.
20374 (get_nonlocal_debug_decl): Likewise.
20375 (convert_nonlocal_reference_op): Likewise.
20376 (struct nesting_info): Add mem_refs pointer-set.
20377 (create_nesting_tree): Allocate it.
20378 (convert_local_reference_op): Insert to be folded mem-refs.
20379 (fold_mem_refs): New function.
20380 (finalize_nesting_tree_1): Perform defered folding of mem-refs
20381 (free_nesting_tree): Free the pointer-set.
20382 * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
20383 (vectorizable_load): Likewise.
20384 * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
20385 (propagate_with_phi): Likewise.
20386 * tree-object-size.c (addr_object_size): Handle MEM_REFs
20387 instead of INDIRECT_REFs.
20388 (compute_object_offset): Handle MEM_REF.
20389 (plus_stmt_object_size): Handle MEM_REF.
20390 (collect_object_sizes_for): Dispatch to plus_stmt_object_size
20391 for &MEM_REF.
20392 * tree-flow.h (get_addr_base_and_unit_offset): Declare.
20393 (symbol_marked_for_renaming): Likewise.
20394 * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
20395 (fold-const.o): Add $(TREE_FLOW_H).
20396 * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
20397 (find_func_clobbers): Likewise.
20398 * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
20399 (decompose_access): Likewise.
20400 (replace_field_acc): Likewise.
20401 (replace_field_access_stmt): Likewise.
20402 (insert_new_var_in_stmt): Likewise.
20403 (get_stmt_accesses): Likewise.
20404 (reorg_structs_drive): Disable.
20405 * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
20406 (ix86_canonical_va_list_type): Likewise.
20407
20408 2010-06-30 Joern Rennecke <joern.rennecke@embecosm.com>
20409
20410 PR other/44566
20411 * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
20412 * target.def (struct gcc_target): Replace enum reg_class with
20413 reg_class_t in hook argument / return types.
20414 * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
20415 (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
20416 (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
20417 * targhooks.h (default_branch_target_register_class): Likewise.
20418 (default_ira_cover_classes, default_secondary_reload): Likewise.
20419 (default_memory_move_cost, default_register_move_cost): Likewise.
20420 * targhooks.c (default_branch_target_register_class): Likewise.
20421 (default_ira_cover_classes, default_secondary_reload): Likewise.
20422 (default_memory_move_cost, default_register_move_cost): Likewise.
20423 * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
20424 * bt-load.c (branch_target_load_optimize): Likewise.
20425 * ira.c (setup_cover_and_important_classes): Likewise.
20426 * ira-costs.c (copy_cost): Likewise.
20427 * reload1.c (emit_input_reload_insns): Likewise.
20428 * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
20429 * config/frv/frv.c (frv_secondary_reload): Likewise.
20430 * config/s390/s390.c (s390_secondary_reload): Likewise.
20431 * config/i386/i386.c (i386_ira_cover_classes): Likewise.
20432 (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
20433 (ix86_register_move_cost): Likewise.
20434 * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
20435 * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
20436 * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
20437 * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
20438 * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
20439 (rs6000_ira_cover_classes): Likewise.
20440 * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
20441 * config/picochip/picochip-protos.h (picochip_secondary_reload):
20442 Likewise.
20443 * config/pa/pa.c (pa_secondary_reload): Likewise.
20444 * config/mips/mips.c (mips_ira_cover_classes): Likewise.
20445 * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
20446 * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
20447 * doc/tm.texi: Regenerate.
20448
20449 2010-06-30 Sebastian Pop <sebastian.pop@amd.com>
20450
20451 PR bootstrrap/44726
20452 * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
20453 use.
20454 (build_alias_set_optimal_p): Likewise.
20455 (build_base_obj_set_for_drs): Likewise.
20456
20457 2010-06-30 Joern Rennecke <joern.rennecke@embecosm.com>
20458
20459 * target.def: Remove comment about licensing problems of function
20460 declarations.
20461
20462 * target.def (declare_constant_name): Change exp to expr. Use DEFHOOK.
20463 * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
20464 * doc/tm.texi: Regenerate.
20465
20466 * target.def (builtin_reciprocal): Change tm_fn to md_fn. Use DEFHOOK.
20467 * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
20468
20469 * target.def (enum_va_list_p): Use DEFHOOK.
20470 * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
20471 Rename ptype to ptree.
20472 * doc/tm.texi: Regenerate.
20473
20474 * target.def (fold_builtin): Rename nargs to n_args. Use DEFHOOK.
20475 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
20476 * doc/tm.texi: Regenerate.
20477
20478 * target.def (memory_move_cost): Use DEFHOOK.
20479 * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
20480 Rename regclass AKA class to rclass.
20481 * doc/tm.texi: Regenerate.
20482
20483 * target.def (pragma_parse): Use DEFHOOK.
20484 * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
20485 s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
20486 * doc/tm.texi: Regenerate.
20487
20488 * target.def (pass_by_reference): Use DEFHOOK.
20489 * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
20490 * doc/tm.texi: Regenerate.
20491
20492 * target.def (resolve_overloaded_builtin): Rename params to arglist.
20493 Use DEFHOOK.
20494 * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
20495 * doc/tm.texi: Regenerate.
20496
20497 * target.def (return_pops_args): Use DEFHOOK.
20498 * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
20499 Rename stack-size to size.
20500 * doc/tm.texi: Regenerate.
20501
20502 * target.def (dfa_new_cycle): Use DEFHOOK. Rename dump_file to dump,
20503 last-sched_cycle to last_clock, cur_cycle to clock.
20504 * doc/tm.texi.in: Use @hook.
20505 * doc/tm.texi: Regenerate.
20506
20507 * target.def (print_operand, print_operand_address): Update comment.
20508 (print_operand_punct_valid_p): Likewise.
20509
20510 2010-06-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
20511
20512 * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
20513 to rtl.h.
20514 (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
20515 * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
20516 * rtl-error.h: New.
20517 * regrename.c: Do not include toplev.h. Include rtl-error.h.
20518 * rtl-error.c: Likewise.
20519 * reload.c: Likewise.
20520 * recog.c: Likewise.
20521 * sel-sched.c: Likewise.
20522 * function.c: Likewise.
20523 * reg-stack.c: Likewise.
20524 * cfgrtl.c: Likewise.
20525 * reload1.c: Likewise.
20526 * final.c: Include rtl-error.
20527 * Makefile.in: Adjust dependencies.
20528
20529 2010-06-30 Jan Hubicka <jh@suse.cz>
20530
20531 PR middle-end/PR44706
20532 * ipa-split (split_function): Refine conditions when to use DECL_RESULT
20533 to return the value.
20534
20535 2010-06-30 Michael Matz <matz@suse.de>
20536
20537 PR bootstrap/44699
20538 * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
20539 * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
20540 a gimple reg, attach the original VDEF to the last store in the
20541 sequence.
20542
20543 2010-06-30 Iain Sandoe <iains@gcc.gnu.org>
20544
20545 PR other/44034
20546 * config/darwin.c (darwin_override_options): Use renamed
20547 targetm.asm_out.emit_unwind_label.
20548
20549 2010-06-30 Bernd Schmidt <bernds@codesourcery.com>
20550
20551 PR tree-optimization/39799
20552 * tree-inline.c (remap_ssa_name): Initialize variable only if
20553 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
20554
20555 2010-06-30 Nathan Froyd <froydnj@codesourcery.com>
20556
20557 * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
20558
20559 2010-06-30 Richard Guenther <rguenther@suse.de>
20560
20561 PR target/44722
20562 * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
20563 against oscillation with reverse peephole2.
20564
20565 2010-06-30 H.J. Lu <hongjiu.lu@intel.com>
20566
20567 PR target/44721
20568 * config/i386/i386.md (peephole2 for arithmetic ops with memory):
20569 Fix last commit.
20570
20571 2010-06-30 Nick Clifton <nickc@redhat.com>
20572
20573 * config/rx/rx-modes.def: New file.
20574 * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
20575 (CC_REGNUM): Define.
20576 (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
20577 register.
20578 (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
20579 (SELECT_CC_MODE): Define.
20580 * config/rx/rx.md (CC_REG): Define. Update all patterns to use
20581 (reg:CC CC_REG) instead of (cc0).
20582 (attr "cc"): Delete.
20583 (cbranchsi4): Do not split compare and branch here. Instead move
20584 it to...
20585 (cbranchsi4_<code>): ... here. New patterns.
20586 (cmpsi): Call rx-compare_redundant to find out if it is necessary
20587 to emit the compare instruction.
20588 * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
20589 cc_status flags.
20590 (rx_get_stack_layout): Iterate up to before CC_REGNUM not
20591 FIRST_PSEUDO_REGNUM.
20592 (rx_expand_prologue, rx_expand_epilogue): Likewise.
20593 (rx_notice_update_cc): Delete.
20594 (rx_cc_modes_compatible): New function.
20595 (flags_needed_for_conditional): New function.
20596 (flags_from_mode): New function.
20597 (rx_compare_redundant): New function - scans backwards through
20598 insn list to find out if condition flags are already set correctly.
20599 (TARGET_CC_MODES_COMPATIBLE): Define.
20600 * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
20601
20602 * config/rx/rx.h (BRANCH_COST): Define.
20603 (REGISTER_MOVE_COST): Define.
20604 * config/rx/predicates (rx_source_operand): Allow all constant types.
20605 * config/rx/rx.md (addsi3): Add alternative for swapped operands.
20606 (tstsi4): New pattern.
20607 * config/rx/rx.c (rx_memory_move_cost): Define.
20608 (TARGET_MEMORY_MOVE_COST): Define.
20609
20610 2010-06-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
20611
20612 * tree.h (block_may_fallthru): Declare here.
20613 * tree-flow.h (block_may_fallthru): Do not declare here.
20614 * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
20615 bitmap.h
20616 * Makefile.in (c-typeck.o): Update dependencies.
20617
20618 2010-06-30 Jakub Jelinek <jakub@redhat.com>
20619
20620 PR debug/44694
20621 * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
20622 * cselib.c (cfa_base_preserved_regno): New static variable.
20623 (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
20624 of REGNO (cfa_base_preserved_val->locs->loc).
20625 (cselib_preserve_cfa_base_value): Add regno argument, set
20626 cfa_base_preserved_regno to it.
20627 (cselib_invalidate_regno): Allow removal of registers other than
20628 cfa_base_preserved_regno from cfa_base_preserved_val.
20629 (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
20630 * var-tracking.c (adjust_mems): Replace sp or hfp even outside
20631 of MEM addresses, if not on LHS.
20632 (reverse_op): Don't add reverse ops for cfa_base_rtx.
20633 (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
20634
20635 2010-06-30 Bernd Schmidt <bernds@codesourcery.com>
20636
20637 * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
20638 static variables.
20639 (peep2_buf_position): New static function.
20640 (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
20641 peephole2_optimize): Use it.
20642 (peep2_attempt, peep2_update_life): New static functions, broken out
20643 of peephole2_optimize.
20644 (peep2_fill_buffer): New static function.
20645 (peephole2_optimize): Change the main loop to try to fill the buffer
20646 with the maximum number of insns before matching them against
20647 peepholes. Use a forward scan. Remove special case for targets with
20648 conditional execution.
20649 * genrecog.c (change_state): Delete dead code.
20650 * config/i386/i386.md (peephole2 for arithmetic ops with memory):
20651 Rewrite so as not to expect the second insn to have had a peephole
20652 applied yet.
20653
20654 2010-06-29 Nathan Froyd <froydnj@codesourcery.com>
20655
20656 * genhooks.c (emit_findices): Cast field precision to int.
20657 (emit_documentation): Likewise.
20658
20659 2010-06-29 Jakub Jelinek <jakub@redhat.com>
20660
20661 PR tree-optimization/43801
20662 * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
20663 if old_decl was DECL_ONE_ONLY.
20664
20665 PR debug/44668
20666 * dwarf2out.c (add_accessibility_attribute): New function.
20667 (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
20668 instead of adding DW_AT_accessibility manually.
20669 (gen_enumeration_type_die, gen_struct_or_union_type_die,
20670 gen_typedef_die): Use it.
20671
20672 2010-06-29 Douglas B Rupp <rupp@gnat.com>
20673
20674 * vmsdbgout.c (full_name): Just output the file name if not native.
20675
20676 2010-06-29 Douglas B Rupp <rupp@gnat.com>
20677
20678 * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
20679 (funcnam_table): New static table.
20680 (funcnum_table): New static table.
20681 (write_rtnbeg): Write value saved in funcnum_table.
20682 (write_rtnend): Write value saved in funcnum_table.
20683 (vmsdbgout_begin_function): Save current function info in
20684 (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
20685 (vmsdbgout_finish): Iterate over funcnum_table.
20686
20687 2010-06-29 Douglas B Rupp <rupp@gnat.com>
20688
20689 * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
20690 (vmsdbgout_type_decl): Declare
20691 (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
20692 (FUNC_EPILOGUE_LABEL): New macro
20693 (vmsdbgout_begin_epilogue): New function.
20694 (vmsdbgout_type_decl): New function.
20695
20696 2010-06-29 Douglas B Rupp <rupp@gnat.com>
20697
20698 * vmsdbg.h: Update copyright.
20699
20700 2010-06-29 Douglas B Rupp <rupp@gnat.com>
20701
20702 * vmsdbg.h (DST_K_TBG): New DST constant.
20703 * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
20704 (write_modbeg): Cast module_language to avoid warning.
20705 (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
20706
20707 2010-06-29 Joern Rennecke <joern.rennecke@embecosm.com>
20708
20709 PR other/44034
20710 * target.def, doc/tm.texi.in, genhooks.c: New files.
20711 * target.h: Instead of defining individual hook members,
20712 define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
20713 include target.def.
20714 * target-def.h: Instead of defining individual hook initializers,
20715 include target-hooks-def.h.
20716 * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
20717 targetm.live_on_entry -> targetm.extra_live_on_entry
20718 targetm.sched.md_finish ->targetm.sched.finish
20719 targetm.sched.md_init -> targetm.sched.init
20720 targetm.sched.md_init_global -> targetm.sched.init_global
20721 targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
20722 targetm.asm_out.except_table_label ->
20723 targetm.asm_out.emit_except_table_label
20724 targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
20725 targetm.target_help -> targetm.help
20726 targetm.vectorize.builtin_support_vector_misalignment ->
20727 targetm.vectorize.support_vector_misalignment
20728 targetm.file_start_app_off -> targetm.asm_file_start_app_off
20729 targetm.file_start_file_directive ->
20730 targetm.asm_file_start_file_directive
20731 * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
20732 * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
20733 * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
20734 TARGET_VECTOR_ALIGNMENT_REACHABLE ->
20735 TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
20736 TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
20737 TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
20738 TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
20739 * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
20740 * Makefile.in (TARGET_H): Depend on target.def.
20741 (TARGET_DEF_H): Depend on target-hooks-def.h.
20742 (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
20743 (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
20744 * doc/tm.texi: Regenerate.
20745
20746 * Makefile.in (s-tm-texi): Remove stray tab / rule.
20747
20748 * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
20749 (targetm.sched.init): Likewise.
20750
20751 2010-06-29 Nathan Froyd <froydnj@codesourcery.com>
20752
20753 PR bootstrap/44713
20754 * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
20755 (function_arg_advance_32): Const-ify TYPE parameter.
20756 (function_arg_advance_64): Likewise. Change type of NAMED to bool.
20757 (ix86_function_arg_advance): Change type of NAMED to bool.
20758 (function_arg_32): Const-ify CUM and TYPE parameters.
20759 (function_arg_64): Likewise. Change type of NAMED to bool.
20760 (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
20761 to bool.
20762 (ix86_function_arg): Change type of NAMED to bool.
20763 (ix86_setup_incoming_varargs): Call ix86_function_arg_advance. Pass
20764 last argument as a bool.
20765
20766 2010-06-29 Joern Rennecke <joern.rennecke@embecosm.com>
20767
20768 * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
20769 (OVERRIDE_OPTIONS): Add note of obsolescence.
20770 Replace references with references to TARGET_OPTION_OVERRIDE.
20771 (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
20772 the macro).
20773 * targhooks.c (default_target_option_override): New function.
20774 * targhooks.h (default_target_option_override): Declare.
20775 * target.h (struct gcc_target): Add override member to
20776 target_option member.
20777 * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
20778 targetm.target_option.override call.
20779 * target-def.h (TARGET_OPTION_OVERRIDE): Define.
20780 (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
20781
20782 2010-06-29 Jan Hubicka <jh@suse.cz>
20783
20784 * tree-inline.c: Replace incomming by incomin and clonning by cloning.
20785
20786 2010-06-29 Jan Hubicka <jh@suse.cz>
20787
20788 * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
20789 unreachable.
20790 (rebuild_frequencies): New function.
20791 * predict.h (rebuild_frequencies): Declare.
20792 * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
20793 entry block and edge reaching new_entry.
20794 (tree_function_versioning): When doing partial cloning, rebuild
20795 frequencies when done.
20796 * passes.c (execute_function_todo): Use rebild_frequencies.
20797
20798 2010-06-29 Richard Guenther <rguenther@suse.de>
20799
20800 * tree-dfa.c (dump_variable): Remove noalias_state dumping.
20801 * tree-flow.h (enum noalias_state): Remove.
20802 (struct var_ann_d): Remove noalias_state member.
20803
20804 2010-06-29 Bernd Schmidt <bernds@codesourcery.com>
20805
20806 PR target/43902
20807 * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
20808 (maddhisi4): Renamed from mulhisi3addsi. Operands renumbered.
20809 (maddhidi4): Likewise.
20810
20811 Revert parts of the change for PR25130.
20812 * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
20813 MEM_ALIAS_SET.
20814
20815 2010-06-29 Nathan Froyd <froydnj@codesourcery.com>
20816
20817 * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
20818 targetm.calls.function_incoming_arg, and
20819 targetm.calls.function_arg_advance instead of FUNCTION_ARG,
20820 FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
20821 * target.h (struct gcc_target): Add function_arg_advance,
20822 function_arg, and function_incoming_arg fields.
20823 * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
20824 (TARGET_FUNCTION_INCOMING_ARG): Define.
20825 (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
20826 and TARGET_FUNCTION_INCOMING_ARG.
20827 * targhooks.h (default_function_arg_advance): Declare.
20828 (default_function_arg, default_function_incoming_arg): Declare.
20829 * targhooks.c (default_function_arg_advance): New function.
20830 (default_function_arg, default_function_incoming_arg): New function.
20831 * config/i386/i386.c (function_arg_advance): Rename to...
20832 (ix86_function_arg_advance): ...this. Make static.
20833 (function_arg): Rename to...
20834 (ix86_function_arg): ...this. Make static.
20835 (TARGET_FUNCTION_ARG_ADVANCE): Define.
20836 (TARGET_FUNCTION_ARG): Define.
20837 * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
20838 (FUNCTION_ARG): Delete.
20839 * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
20840 (function_arg): Delete prototype.
20841
20842 2010-06-29 Nathan Froyd <froydnj@codesourcery.com>
20843
20844 * reginfo.c (init_reg_sets_1): Adjust comments.
20845 * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
20846 * calls.c (prepare_call_address): Likewise.
20847 (emit_call_1): Use targetm.calls.return_pops_args.
20848 (expand_call): Likewise.
20849 * function.c (assign_parms): Likewise.
20850 * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
20851 * target.h (struct gcc_target) [struct calls]: Add
20852 return_pops_args field.
20853 * targhooks.h (default_return_pops_args): Declare.
20854 * targhooks.c (default_return_pops_args): Define.
20855 * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
20856 (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
20857 * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
20858 (TARGET_RETURN_POPS_ARGS): ...this. Use deftypefn. Adjust
20859 documentation.
20860 * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
20861 * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
20862 * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
20863 * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
20864 * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
20865 * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
20866 * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
20867 * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
20868 * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
20869 * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
20870 * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
20871 * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
20872 * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
20873 * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
20874 * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
20875 * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
20876 * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
20877 * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
20878 * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
20879 * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
20880 * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
20881 * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
20882 * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
20883 * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
20884 * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
20885 * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
20886 * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
20887 * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
20888 * config/score/score.h (RETURN_POPS_ARGS): Likewise.
20889 * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
20890 * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
20891 * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
20892 * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
20893 * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
20894 * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
20895 * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
20896 * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
20897 * config/i386/i386.c (ix86_return_pops_args): Make static.
20898 Constify arguments.
20899 (TARGET_RETURN_POPS_ARGS): Define.
20900 * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
20901 * config/m68k/m68k.c (m68k_return_pops_args): ...here. New function.
20902 (TARGET_RETURN_POPS_ARGS): Define.
20903 * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
20904 * config/vax/vax.c (vax_return_pops_args): ...here. New function.
20905 (TARGET_RETURN_POPS_ARGS): Define.
20906
20907 2010-06-29 Richard Guenther <rguenther@suse.de>
20908
20909 PR middle-end/44667
20910 * tree-inline.c (initialize_inlined_parameters): Make sure
20911 to remap the inlined parameter variable substitutions types.
20912
20913 2010-06-29 Eric Botcazou <ebotcazou@adacore.com>
20914
20915 PR rtl-optimization/44659
20916 * combine.c (make_compound_operation) <SUBREG>: Do not return the
20917 result of force_to_mode if it partially re-expanded the compound.
20918
20919 2010-06-28 Jan Hubicka <jh@suse.cz>
20920
20921 PR middle-end/44671
20922 * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
20923 RESULT_DECL.
20924
20925 2010-06-28 Anatoly Sokolov <aesok@post.ru>
20926
20927 * double-int.h (force_fit_type_double): Remove declaration.
20928 * double-int.c (force_fit_type_double): Move to tree.c.
20929 * tree.h (force_fit_type_double): Declare.
20930 * tree.h (force_fit_type_double): Moved from double-int.c. Use
20931 double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
20932 double_int_to_tree instead of fit_double_type and build_int_cst_wide.
20933 * convert.c (convert_to_pointer): Adjust call to
20934 force_fit_type_double.
20935 * tree-vrp.c (extract_range_from_assert,
20936 extract_range_from_unary_expr): Adjust call to force_fit_type_double.
20937 * fold-const.c: Update comment.
20938 (int_const_binop, fold_convert_const_int_from_int,
20939 fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
20940 extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
20941 fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
20942 round_up_loc): Adjust call to force_fit_type_double.
20943
20944 2010-06-28 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
20945
20946 * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
20947
20948 2010-06-28 Martin Jambor <mjambor@suse.cz>
20949
20950 * tree-sra.c (convert_callers): New parameter, change fndecls of
20951 recursive calls.
20952 (modify_function): Pass the old decl to convert_callers.
20953
20954 2010-06-28 Martin Jambor <mjambor@suse.cz>
20955
20956 * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
20957 ipa_check_create_node_params and ipa_initialize_node_params with
20958 checking asserts they are not necessary.
20959
20960 2010-06-28 Jan Hubicka <jh@suse.cz>
20961
20962 PR tree-optimization/44687
20963 * ipa-split.c (split_function): Use DECL_RESULT to store return value.
20964
20965 2010-06-28 Martin Jambor <mjambor@suse.cz>
20966
20967 PR c++/44535
20968 * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
20969 (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
20970 instead of BINFO_BASE_BINFO.
20971
20972 2010-06-28 Michael Matz <matz@suse.de>
20973
20974 PR middle-end/44592
20975 * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
20976 proper VDEF chain for intermediate stores in the sequence.
20977
20978 2010-06-28 Jan Hubicka <jh@suse.cz>
20979
20980 PR tree-optimization/44357
20981 * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
20982 uninlinable functions.
20983
20984 2010-06-28 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
20985
20986 * config.gcc (powerpc*-*-*): Handle titan.
20987 * config/rs6000/rs6000.c (titan_cost): New costs.
20988 (rs6000_override_options): Add "titan" to processor_target_table.
20989 Add Titan to branch alignment logic.
20990 Correctly set rs6000_cost for titan.
20991 * config/rs6000/rs6000.md (cpu): Add titan. Include "titan.md".
20992 * config/rs6000/titan.md: New file.
20993 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
20994
20995 2010-06-28 Nathan Froyd <froydnj@codesourcery.com>
20996
20997 * tree-browser.c (TB_history_stack): Convert to a VEC.
20998 (TB_SET_HEAD): Adjust for new type of TB_history_stack.
20999 (TB_history_prev): Likewise.
21000
21001 2010-06-28 Nathan Froyd <froydnj@codesourcery.com>
21002
21003 * vec.h (vec_heap_free): Add parentheses around free.
21004
21005 2010-06-28 Steven Bosscher <steven@gcc.gnu.org>
21006
21007 * system.h: Poison GCC_EXCEPT_H for front-end files.
21008
21009 * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
21010 langhook.
21011 * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
21012 Define to NULL by default.
21013 * except.h: Define GCC_EXCEPT_H.
21014 (doing_eh): Remove prototype.
21015 (init_eh, init_eh_for_function): Move prototypes to toplev.h.
21016 (lang_protect_cleanup_actions): Remove.
21017 * except.c (lang_protect_cleanup_actions): Remove.
21018 (doing_eh): Remove.
21019 (gen_eh_region): Don't check doing_eh here.
21020 * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
21021 * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
21022 instead of lang_protect_cleanup_actions.
21023 * omp-low.c (maybe_catch_exception): Likewise.
21024 * Makefile.in: Update dependencies.
21025
21026 2010-06-28 Bingfeng Mei <bmei@broadcom.com>
21027
21028 * cgraph.h (struct varpool_node): new used_from_object_file flag.
21029 (struct cgraph_local_info): new used_from_object_file flag.
21030 * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
21031 (cgraph_clone_node): initialize used_from_object_file.
21032 (cgraph_create_virtual_clone): initialize used_from_object_file.
21033 * lto-symbtab.c (lto_symtab_merge_decls_1): Set
21034 used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
21035 when compiling with -fwhole-program.
21036 (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
21037 internal resolver.
21038 * ipa.c (function_and_variable_visibility): Set externally_visible
21039 flag of varpool_node if used_from_object_file flag is set.
21040 (cgraph_externally_visible_p): check used_from_object_file flag.
21041 * doc/invoke.texi (-fwhole-program option): Change description of
21042 externally_visible attribute accordingly.
21043 * doc/extend.texi (externally_visible): Ditto.
21044
21045 2010-06-27 Jan Hubicka <jh@suse.cz>
21046
21047 * params.def (max-inline-insns-auto): Default to 40.
21048 * doc/invoke.texi (max-inline-insns-auto): Document the change.
21049
21050 2010-06-27 Jan Hubicka <jh@suse.cz>
21051
21052 PR middle-end/44671
21053 PR middle-end/44686
21054 * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
21055 signature change.
21056 * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
21057 * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
21058
21059 2010-06-27 Anatoly Sokolov <aesok@post.ru>
21060
21061 * target.h (struct gcc_target): Add register_move_cost field.
21062 * target-def.h (TARGET_REGISTER_MOVE_COST): New.
21063 (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
21064 * targhooks.c (default_register_move_cost): New function.
21065 * targhooks.h (default_register_move_cost): Declare function.
21066 * defaults.h (REGISTER_MOVE_COST): Delete.
21067 * ira-int.h (ira_register_move_cost): Update comment.
21068 * ira.c (ira_register_move_cost): Update comment.
21069 * reload.h (register_move_cost): Declare.
21070 * reginfo.c (register_move_cost): New function.
21071 (move_cost): Update comment.
21072 (init_move_cost, memory_move_secondary_cost): Replace
21073 REGISTER_MOVE_COST with register_move_cost.
21074 * postreload.c (reload_cse_simplify_set): (Ditto.).
21075 * reload.c (find_valid_class, find_reloads): (Ditto.).
21076 * reload1.c (choose_reload_regs): (Ditto.).
21077 * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
21078 (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
21079 * doc/md.texi (can_create_pseudo_p): Update documentation.
21080
21081 * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
21082 * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
21083 * config/i386/i386.h (ix86_memory_move_cost): Make static.
21084 (TARGET_MEMORY_MOVE_COST): Define.
21085
21086 * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
21087 * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
21088 * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
21089 (TARGET_MEMORY_MOVE_COST): Define.
21090
21091 2010-06-27 Richard Guenther <rguenther@suse.de>
21092
21093 PR tree-optimization/44683
21094 * tree-ssa-dom.c (record_edge_info): Record equivalences for the
21095 false edge from the inverted condition.
21096
21097 2010-06-27 Richard Guenther <rguenther@suse.de>
21098
21099 PR middle-end/44684
21100 * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
21101 (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
21102 for register LHS. Or non-store assignments.
21103
21104 2010-06-26 Eric Botcazou <ebotcazou@adacore.com>
21105
21106 * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
21107 (sparc_emit_set_const64): Likewise. Remove disabled code.
21108 * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
21109 (sparc_emit_set_const64): Likewise.
21110
21111 2010-06-26 Catherine Moore <clm@codesourcery.com>
21112
21113 * config/mips/mips.md (alu_type): New attribute.
21114 (type): Infer type from alu_type.
21115 (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
21116 *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
21117 *subsi3_extended, negsi2, negdi2, *low<mode>,
21118 *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
21119 xor<mode>3, *nor<mode>3,
21120 *zero_extend<GPR:mode>_trunc<SHORT:mode>,
21121 *zero_extendhi_truncqi): Set alu_type instead of type.
21122
21123 2010-06-26 Douglas B Rupp <rupp@gnat.com>
21124
21125 * config/alpha/alpha.c (alpha_need_linkage): Adjust
21126 splay_tree_new_ggc call.
21127 (alpha_use_linkage): Likewise.
21128
21129 2010-06-26 Joseph Myers <joseph@codesourcery.com>
21130
21131 * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
21132 * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
21133 * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
21134 (static_specs): Remove switches_need_spaces.
21135 (process_command, do_self_spec): Hardcode handling "-o" instead of
21136 checking switches_need_spaces.
21137 * system.h (SWITCHES_NEED_SPACES): Poison.
21138
21139 2010-06-26 Richard Guenther <rguenther@suse.de>
21140
21141 PR tree-optimization/44393
21142 * tree-loop-distribution.c (generate_loops_for_partition): Fix
21143 stmt removal and VOP renaming.
21144 (generate_memset_zero): Remove redundant stmt updating.
21145 * tree-flow.h (mark_virtual_ops_in_bb): Remove.
21146 * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
21147
21148 2010-06-26 Jan Hubicka <jh@suse.cz>
21149
21150 * ipa-split.c (consider_split): PHI in entry block is OK as long as all
21151 edges comming from header are equivalent.
21152 (visit_bb): Handle PHIs correctly.
21153 * tree-inline.c (copy_phis_for_bb): Be able to copy
21154 PHI from entry edge.
21155 (copy_cfg_body): Produce edge from entry BB before copying PHIs.
21156
21157 2010-06-26 Richard Guenther <rguenther@suse.de>
21158
21159 PR middle-end/44674
21160 * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
21161 decls. Handle LABEL_DECLs like FUNCTION_DECLs.
21162
21163 2010-06-26 Joseph Myers <joseph@codesourcery.com>
21164
21165 * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
21166 add_infile, alloc_switch): New.
21167 (process_command): Remove variable lang_n_infiles. Process
21168 options in a single pass. Use new functions for allocating
21169 infiles and switches arrays. Properly skip operands of
21170 -Xpreprocessor and -Xassembler.
21171
21172 2010-06-26 Jan Hubicka <jh@suse.cz>
21173
21174 PR middle-end/44671
21175 * cgraphunit.c (cgraph_function_versioning): Remove wrong
21176 cgraph_make_decl_local call; fix typo copying RTL data.
21177
21178 2010-06-25 DJ Delorie <dj@redhat.com>
21179
21180 * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
21181 (m32c_output_aligned_common): Likewise.
21182 * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
21183 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
21184 * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
21185 (m32c_register_pragmas): Register it.
21186 * config/m32c/m32c.c (m32c_get_pragma_address): New.
21187 (m32c_insert_attributes): Set #pragma address decls volatile.
21188 (pragma_entry_eq): New.
21189 (pragma_entry_hash): New.
21190 (m32c_note_pragma_address): New.
21191 (m32c_get_pragma_address): New.
21192 (m32c_output_aligned_common): New.
21193 * doc/extend.texi: Document the new pragma.
21194
21195 * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
21196 also.
21197 * config/m32c/predicates.md (m32c_any_operand): Check the code
21198 instead of memory_operand so as to allow matching volatile MEMs.
21199 (m32c_nonimmediate_operand): Likewise.
21200 (mra_operand): Allow volatiles.
21201
21202 2010-06-25 Alexandre Oliva <aoliva@redhat.com>
21203
21204 PR debug/44610
21205 * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
21206 address if the offset is unknown.
21207
21208 2010-06-25 Douglas B Rupp <rupp@gnat.com>
21209
21210 * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
21211 * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
21212 * config/ia64/ia64-protos.h (ia64_start_function): Declare.
21213 * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
21214 to ia64_start_function. Invoke it.
21215 * config/ia64/ia64.c (ia64_start_function): Call new function
21216 dwarf2out_vms_debug_main_pointer.
21217
21218 2010-06-25 Sebastian Pop <sebastian.pop@amd.com>
21219
21220 * tree-if-conv.c (insert_gimplified_predicates): Do not insert
21221 statements computing the true predicate.
21222
21223 2010-06-25 Sebastian Pop <sebastian.pop@amd.com>
21224
21225 * tree-if-conv.c (init_bb_predicate): Initialize the predicate
21226 to boolean_true_node.
21227 (reset_bb_predicate): New.
21228 (predicate_bbs): Call reset_bb_predicate.
21229
21230 2010-06-25 Sebastian Pop <sebastian.pop@amd.com>
21231
21232 * tree-if-conv.c (combine_blocks): Remove FIXME comment.
21233 (tree_if_conversion): Returns true when something has been changed.
21234 (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
21235 changed something.
21236
21237 2010-06-25 Sebastian Pop <sebastian.pop@amd.com>
21238
21239 * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
21240 * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
21241 * tree-if-conv.c: Include dbgcnt.h.
21242 (tree_if_conversion): Use if_conversion_tree to count the number of
21243 if-convertible loops.
21244
21245 2010-06-25 Changpeng Fang <changpeng.fang@amd.com>
21246
21247 * common.opt (fprefetch-loop-arrays): Re-define
21248 -fprefetch-loop-arrays as a tri-state option with the initial
21249 value of -1.
21250 * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
21251 pass only when flag_prefetch_loop_arrays > 0.
21252 * toplev.c (process_options): Note that, with tri-states,
21253 flag_prefetch_loop_arrays>0 means prefetching is enabled.
21254 * config/i386/i386.c (override_options): Enable prefetching at -O3
21255 for a set of CPUs that sw prefetching is helpful.
21256 (software_prefetching_beneficial_p): New. Return TRUE if software
21257 prefetching is beneficial for the given CPU.
21258
21259 2010-06-25 H.J. Lu <hongjiu.lu@intel.com>
21260
21261 PR rtl-optimization/44326
21262 * implicit-zee.c (find_removable_zero_extends): Replace
21263 INSN_P with NONDEBUG_INSN_P.
21264
21265 2010-06-25 Martin Jambor <mjambor@suse.cz>
21266
21267 * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
21268 (struct ipa_node_params): Removed the modification_analysis_done flag.
21269 (ipa_is_param_modified): Removed.
21270 (ipa_analyze_node): Declare.
21271 (ipa_compute_jump_functions): Remove declaration.
21272 (ipa_count_arguments): Likewise.
21273 (ipa_detect_param_modifications): Likewise.
21274 (ipa_analyze_params_uses): Likewise.
21275 * ipa-prop.c (struct param_analysis_info): New type.
21276 (visit_store_addr_for_mod_analysis): Removed.
21277 (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
21278 moved down in the file.
21279 (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
21280 (ipa_count_arguments): Made static.
21281 (mark_modified): New function.
21282 (is_parm_modified_before_call): New function.
21283 (compute_pass_through_member_ptrs): New parameter parms_info, call
21284 is_parm_modified_before_call instead of ipa_is_param_modified.
21285 (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
21286 it to compute_pass_through_member_ptrs.
21287 (ipa_compute_jump_functions): New parameter parms_info, pass it to
21288 ipa_compute_jump_functions_for_edge. Call ipa_initialize_node_params
21289 on the callee if it is analyzed. Made static.
21290 (ipa_analyze_indirect_call_uses): New parameter parms_info, call
21291 is_parm_modified_before_call instead of ipa_is_param_modified.
21292 (ipa_analyze_call_uses): New parameter parms_info, pass it to
21293 ipa_analyze_indirect_call_uses.
21294 (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
21295 ipa_analyze_call_uses.
21296 (ipa_analyze_params_uses): New parameter parms_info, pass it to
21297 ipa_analyze_stmt_uses. Also perform the used analysis. Made static.
21298 (ipa_analyze_node): New function.
21299 (ipa_print_node_params): Do not dump the modified flag.
21300 (ipa_write_node_info): Assert uses_analysis_done rather than streaming
21301 it. Do not stream the modified parameter flag.
21302 (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
21303 it. Do not stream the modified parameter flag.
21304 * ipa-cp.c (ipcp_analyze_node): Removed.
21305 (ipcp_init_stage): Iterate only once over the nodes, analyze each one
21306 with only a call to ipa_analyze_node.
21307 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
21308 node with only a call to ipa_analyze_node.
21309
21310 2010-06-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
21311
21312 * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
21313
21314 2010-06-25 Jan Hubicka <jh@suse.cz>
21315
21316 * tree-pass.h (pass_split_functions): Declare.
21317 * opts.c (decode_options): Enable function splitting at -O2
21318 * timevar.def (TV_IPA_FNSPLIT): New macro.
21319 * ipa-split.c: New file.
21320 * common.opt (-fpartial-inlining): New flag.
21321 * Makefile.in (ipa-split.o): New object file.
21322 * passes.c (init_optimization_passes): Add ipa-split.
21323 * params.def (partial-inlining-entry-probability): New parameters.
21324 * doc/invoke.texi (-fpartial-inlining): New.
21325
21326 2010-06-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
21327
21328 PR 44665
21329 * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
21330 * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
21331 (gimplify_expr): Likewise.
21332
21333 2010-06-25 Martin Jambor <mjambor@suse.cz>
21334
21335 * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
21336 statements instead of bailing out on them.
21337 (ipa_analyze_indirect_call_uses): Do not require that loads from the
21338 parameter are in the same BB as the condition. Update comments.
21339
21340 2010-06-25 Jakub Jelinek <jakub@redhat.com>
21341
21342 PR middle-end/43866
21343 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
21344 true or always false, return NULL_TREE.
21345 (tree_unswitch_single_loop): Optimize conditions even when reaching
21346 max-unswitch-level parameter. If num > 0, optimize first all conditions
21347 using entry checks, then do still reachable block discovery and consider
21348 only conditions in still reachable basic blocks in the loop.
21349
21350 PR tree-optimization/44539
21351 * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
21352 the call doesn't have LHS, but has VDEF.
21353
21354 2010-06-25 Joseph Myers <joseph@codesourcery.com>
21355
21356 * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
21357 * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
21358 * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
21359 (process_command): Remove code conditional on MODIFY_TARGET_NAME.
21360 * system.h (MODIFY_TARGET_NAME): Poison.
21361
21362 2010-06-25 Alan Modra <amodra@gmail.com>
21363
21364 * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
21365 * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
21366 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
21367 CMODEL_LARGE as default.
21368 * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
21369 (offsettable_ok_by_alignment): Delete.
21370 (rs6000_emit_move): Remove mcmodel=medium optimization.
21371
21372 2010-06-25 Bernd Schmidt <bernds@codesourcery.com>
21373
21374 With large parts from Jim Wilson:
21375 PR target/43902
21376 * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
21377 WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
21378 * optabs.c (optab_for_tree_code): Likewise.
21379 (expand_widen_pattern_expr): Likewise.
21380 * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
21381 out of execute_optimize_widening_mul.
21382 (convert_plusminus_to_widen): New function.
21383 (execute_optimize_widening_mul): Use the two new functions.
21384 * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
21385 Remove code to generate widening multiply-accumulate. Add support
21386 for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
21387 * gimple-pretty-print.c (dump_ternary_rhs): New function.
21388 (dump_gimple_assign): Call it when appropriate.
21389 * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
21390 * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
21391 (expand_gimple_stmt_1): Likewise.
21392 (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
21393 WIDEN_MULT_MINUS_EXPR.
21394 * tree-ssa-operands.c (get_expr_operands): Likewise.
21395 * tree-inline.c (estimate_operator_cost): Likewise.
21396 * gimple.c (extract_ops_from_tree_1): Renamed from
21397 extract_ops_from_tree. Add new arg for a third operand; fill it.
21398 (gimple_build_assign_stat): Support operations with three operands.
21399 (gimple_build_assign_with_ops_stat): Likewise.
21400 (gimple_assign_set_rhs_from_tree): Likewise.
21401 (gimple_assign_set_rhs_with_ops_1): Renamed from
21402 gimple_assign_set_rhs_with_ops. Add new arg for a third operand.
21403 (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
21404 (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
21405 WIDEN_MULT_MINUS_EXPR.
21406 * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
21407 (extract_ops_from_tree_1): Adjust declaration.
21408 (gimple_assign_set_rhs_with_ops_1): Likewise.
21409 (gimple_build_assign_with_ops): Pass NULL for last operand.
21410 (gimple_build_assign_with_ops3): New macro.
21411 (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
21412 gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
21413 functions.
21414 * tree-cfg.c (verify_gimple_assign_ternary): New static function.
21415 (verify_gimple_assign): Call it.
21416 * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
21417 (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
21418 functions for dealing with three-operand statements.
21419 * tree.c (commutative_ternary_tree_code): New function.
21420 * tree.h (commutative_ternary_tree_code): Declare it.
21421 * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
21422 ternary statements.
21423 (gimple_assign_nonzero_warnv_p): Likewise.
21424 * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
21425 * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
21426 (ccp_fold): Use it. Handle GIMPLE_TERNARY_RHS.
21427 * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
21428 (struct hashtable_expr): New member ternary in the union.
21429 (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
21430 (hashable_expr_equal_p): Fix indentation. Handle EXPR_TERNARY.
21431 (iterative_hash_hashable_expr): Likewise.
21432 (print_expr_hash_elt): Handle EXPR_TERNARY.
21433 * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
21434 * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
21435 statements. Handle GIMPLE_TERNARY_RHS.
21436
21437 2010-06-25 Jan Hubicka <jh@suse.cz>
21438
21439 * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
21440
21441 2010-06-25 Shujing Zhao <pearly.zhao@oracle.com>
21442
21443 PR c/44517
21444 * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
21445 parameters are not good.
21446 (c_parser_parameter_declaration): Error unknown type name if the type
21447 name can't start declaration specifiers.
21448
21449 2010-06-25 Joseph Myers <joseph@codesourcery.com>
21450
21451 * gcc.c (translate_options): Don't mention +e in comment.
21452 (process_command): Don't handle +e specially.
21453
21454 2010-06-25 Bernd Schmidt <bernds@codesourcery.com>
21455
21456 * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
21457
21458 * ira-build.c (merge_hard_reg_conflicts): New function.
21459 (create_cap_allocno, copy_info_to_removed_store_destinations,
21460 propagate_some_info_from_allocno, propagate_allocno_info): Use it.
21461 (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
21462 (remove_unnecessary_allocnos, remove_low_level_allocnos)
21463 copy_nifo_to_removed_store_destination): Use them.
21464 * ira-lives.c (make_hard_regno_born): New function, split out of
21465 make_regno_born.
21466 (make_allocno_born): Likewise.
21467 (make_hard_regno_dead): New function, split out of make_regno_dead.
21468 (make_allocno_dead): Likewise.
21469 (inc_register_pressure): New function, split out of set_allocno_live.
21470 (dec_register_pressure): New function, split out of clear_allocno_live.
21471 (mark_pseudo_regno_live): New function, split out of mark_reg_live.
21472 (mark_hard_reg_live): Likewise. Use inc_register_pressure.
21473 (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
21474 (mark_hard_reg_dead): Likewise. Use dec_register_pressure.
21475 (make_pseudo_conflict): Use mark_pseudo_regno_dead and
21476 mark_pseudo_regno_live.
21477 (process_bb_node_lives): Use mark_pseudo_regno_live,
21478 make_hard_regno_born and make_allocno_dead.
21479 (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
21480 set_allocno_live, clear_allocno_live): Delete functions.
21481
21482 * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
21483 * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
21484 functions.
21485 (ira_flattening): Use ira_parent_allocno.
21486 * ira-conflicts.c (process_regs_for_copy, propagate_copies)
21487 build_allocno_conflicts): Use ira_parent_or_cap_allocno.
21488
21489 * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
21490 statement.
21491
21492 * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
21493 TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
21494 minmax_set_iter_cond, minmax_set_iter_next,
21495 FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
21496 CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
21497 ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
21498 ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET. All
21499 uses changed.
21500
21501 * ira-int.h (struct live_range, live_range_t): Renamed from struct
21502 ira_allocno_live_range and allocno_live_range_t; all uses changed.
21503 * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
21504 All uses changed.
21505
21506 2010-06-24 Richard Earnshaw <rearnsha@arm.com>
21507
21508 * thumb2.md (thumb2_tlobits_cbranch): Delete.
21509 (peephole2 to convert zero_extract/compare of single bit to
21510 lshift/compare): New.
21511
21512 2010-06-24 Anatoly Sokolov <aesok@post.ru>
21513
21514 * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
21515 recursive call and call to 'int_const_binop'.
21516 (build_range_check, fold_cond_expr_with_comparison, unextend,
21517 fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
21518 multiple_of_p): Adjust call to const_binop.
21519
21520 2010-06-24 Uros Bizjak <ubizjak@gmail.com>
21521
21522 * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
21523 determine size of XFmode operand.
21524 (XFmode extended DFmode push splitter): Ditto.
21525 (XFmode extended SFmode push splitter): Ditto.
21526
21527 2010-06-24 H.J. Lu <hongjiu.lu@intel.com>
21528
21529 PR target/44588
21530 * config/i386/i386.md (extract_code): New.
21531 (<u>divmodqi4): Likewise.
21532 (divmodhiqi3): Likewise.
21533 (udivmodhiqi3): Likewise.
21534 (<u>divqi3): Remvoved.
21535
21536 2010-06-24 Jakub Jelinek <jakub@redhat.com>
21537
21538 PR middle-end/44492
21539 * recog.h (struct recog_data): Add is_asm field.
21540 * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
21541 present in constraints of inline-asm operand and memory operand
21542 contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
21543 (extract_insn): Initialize recog_data.is_asm.
21544 * doc/md.texi (Constraints): Document operand side-effect rules.
21545
21546 2010-06-24 Andi Kleen <ak@linux.intel.com>
21547
21548 * c-parser.c (c_parser_conditional_expression): Call
21549 warn_for_omitted_condop.
21550 * doc/invoke.texi: Document omitted condop warning.
21551
21552 2010-06-24 Nick Clifton<nickc@redhat.com>
21553
21554 * loop-unswitch.c (compare_and_jump_seq): Assert that the last
21555 insn in the sequence is a jump insn before setting its label.
21556
21557 2010-06-24 Alan Modra <amodra@gmail.com>
21558
21559 * collect2.c (main): Match exactly --version and --help.
21560
21561 2010-06-24 DJ Delorie <dj@redhat.com>
21562
21563 * config/m32c/m32c-pragma.c: Don't include rtl.h.
21564
21565 2010-06-23 Uros Bizjak <ubizjak@gmail.com>
21566
21567 * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
21568 using X87MODEF mode iterator.
21569 (pushsf splitter): Macroize splitter using P mode iterator.
21570 (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
21571 mode iterator.
21572
21573 (*movxf_internal): Rename from *movxf_integer.
21574 (*movxf_internal_nointeger): Rename from *movxf_nointeger.
21575 (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
21576 (*movdf_internal): Rename from *movdf_integer.
21577 (*movdf_internal_nointeger): Rename from *movdf_nointeger.
21578 (*movsf_internal): Rename from *movdf_1.
21579
21580 2010-06-23 Basile Starynkevitch <basile@starynkevitch.net>
21581
21582 * coretypes.h (gimple_seq_node_d, gimple_seq_node)
21583 (const_gimple_seq_node): Removed typedefs.
21584
21585 * gimple.h (gimple_seq_node_d, gimple_seq_node)
21586 (const_gimple_seq_node): Added typedefs moved from coretypes.h.
21587
21588 2010-06-23 H.J. Lu <hongjiu.lu@intel.com>
21589
21590 * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
21591 CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
21592 CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
21593 and CODE_FOR_vec_extract_lo_v4df.
21594
21595 * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
21596 Changed to define_insn_and_split.
21597 (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
21598 (vec_extract_lo_v16hi): Likewise.
21599 (vec_extract_lo_v32qi): Likewise.
21600 (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
21601 (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
21602
21603 2010-06-23 Joern Rennecke <joern.rennecke@embecosm.com>
21604
21605 PR target/44640
21606 * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
21607 * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
21608 (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
21609 (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
21610 (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
21611
21612 PR target/44640
21613 * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
21614
21615 PR other/44644
21616 * df-core.c (struct df): Rename to df_d.
21617 * df.h (struct df): Likewise.
21618 * dse.h (struct df): Remove forward declaration.
21619 * recog.h (struct insn_data): Rename to:
21620 (struct_insn_data_d). Adjusted all users.
21621
21622 2010-06-23 Arnaud Charlet <charlet@adacore.com
21623
21624 PR ada/22220
21625 * doc/install.texi: Update requirements to build GNAT.
21626
21627 2010-06-22 Andreas Schwab <schwab@linux-m68k.org>
21628
21629 * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
21630 enum type.
21631 (m68k_sched_attr_opx_type): Remove unreachable return.
21632 (m68k_sched_attr_opy_type): Likewise.
21633 (m68k_sched_attr_size): Likewise.
21634 (sched_get_opxy_mem_type): Likewise.
21635 (m68k_sched_attr_op_mem): Likewise.
21636
21637 2010-06-22 Eric Botcazou <ebotcazou@adacore.com>
21638
21639 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
21640 new statement and adjust VDEF only if necessary. Remove superfluous
21641 call to maybe_clean_or_replace_eh_stmt.
21642 * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
21643 copy the flags.
21644 * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
21645 * tree-inline.c (copy_bb): ...and not there.
21646
21647 2010-06-22 Cary Coutant <ccoutant@google.com>
21648
21649 * dwarf2out.c (is_nested_in_subprogram): New function.
21650 (should_move_die_to_comdat): Use it.
21651 (copy_ancestor_tree): Don't mark DIEs here.
21652 (copy_decls_walk): Start walk from root of newly-added tree;
21653 mark DIEs here instead.
21654
21655 2010-06-22 H.J. Lu <hongjiu.lu@intel.com>
21656
21657 * config/i386/i386.md (unit): Also check sseishft1.
21658
21659 2010-06-22 Jan Hubicka <jh@suse.cz>
21660
21661 * gimple.h (gimple_expr_code): Do checking on when gimple checking is
21662 enabled.
21663
21664 2010-06-22 Jan Hubicka <jh@suse.cz>
21665
21666 * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
21667 df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
21668 Return true if something changed.
21669 * df.h (df_confluence_function_n): Return bool.
21670 * df-core.c (df_worklist_propagate_forward,
21671 df_worklist_propagate_backward): Track changes and ages.
21672 (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
21673 track ages.
21674 * dse.c (dse_confluence_n): Return always true.
21675
21676 2010-06-22 Jan Hubicka <jh@suse.cz>
21677
21678 * bitmap.c (bitmap_clear_bit): Micro optimize.
21679
21680 2010-06-22 Uros Bizjak <ubizjak@gmail.com>
21681
21682 * config/i386/i386.md (SWI1248x): New mode iterator.
21683 (SWI48x): Ditto.
21684 (SWI12): Ditto.
21685 (SWI24): Ditto.
21686
21687 (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
21688 SWI1248x mode iterator.
21689 (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
21690 using SWI124 mode iterator.
21691 (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
21692 mode iterator.
21693 (*push<mode>2_prologue): Macroize insn from *pushsi2_prologue and
21694 *pushdi2_prologue_rex64 using P mode iterator.
21695 (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
21696 using SWI48 mode iterator.
21697 (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
21698 (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
21699 using SWI1248x mode iterator.
21700 (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
21701 (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
21702 SWI48 mode iterator.
21703 (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
21704 iterator.
21705 (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
21706 (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
21707 SWI12 mode iterator.
21708 (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
21709 SWI12 mode iterator.
21710 (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
21711 (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
21712 SWI24 mode iterator.
21713 (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
21714 SWI48 mode iterator.
21715 (mov<mode>_insn_1): New expander.
21716 (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
21717 using SWI48x mode iterator.
21718
21719 (*movoi_internal_avx): Rename from *movoi_internal.
21720 (*movti_internal_rex64): Rename from *movti_rex64.
21721 (*movti_internal_sse): Rename from *movti_sse.
21722 (*movdi_internal_rex64): Rename from *movdi_1_rex64.
21723 (*movdi_internal): Rename from *movdi_2.
21724 (*movsi_internal): Rename from *movsi_1.
21725 (*movhi_internal): Rename from *movhi_1.
21726 (*movqi_internal): Rename from *movqi_1.
21727
21728 (insv): Update the call to gen_movsi_insv_1 for rename.
21729 * config/i386/i386.c (promote_duplicated_reg): Ditto.
21730
21731 2010-06-22 Jan Hubicka <jh@suse.cz>
21732
21733 * passes.c (execute_function_todo): Move call of statistics_fini_pass
21734 to ...
21735 (execute_todo) ... this one.
21736
21737 2010-06-22 Alan Modra <amodra@gmail.com>
21738
21739 PR target/44364
21740 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
21741 * caller-save.c (insert_restore, insert_save): Use non-validate
21742 form of adjust_address.
21743
21744 2010-06-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21745
21746 PR target/39690
21747 * config/pa/pa.c (override_options): Disable
21748 -freorder-blocks-and-partition.
21749
21750 2010-06-21 H.J. Lu <hongjiu.lu@intel.com>
21751
21752 PR target/44615
21753 * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
21754
21755 * config/i386/i386.md (type): Add sseishft1
21756
21757 * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
21758 (ppro_insn_load): Likewise.
21759 (ppro_insn_store): Likewise.
21760 (ppro_insn_both): Likewise.
21761
21762 * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
21763 (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
21764 for type.
21765 (*vec_extractv2di_1_avx): Likewise.
21766 (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
21767 type. Remove atom_unit.
21768 (*vec_extractv2di_1_sse2): Likewise.
21769
21770 2010-06-21 DJ Delorie <dj@redhat.com>
21771
21772 * diagnostic.h (diagnostic_classification_change_t): New.
21773 (diagnostic_context): Add history and push/pop list.
21774 (diagnostic_push_diagnostics): Declare.
21775 (diagnostic_pop_diagnostics): Declare.
21776 * diagnostic.c (diagnostic_classify_diagnostic): Store changes
21777 from pragmas in a history chain instead of the global table.
21778 (diagnostic_push_diagnostics): New.
21779 (diagnostic_pop_diagnostics): New.
21780 (diagnostic_report_diagnostic): Scan history chain to find state
21781 of diagnostics as of the diagnostic location.
21782 * opts.c (set_option): Pass UNKNOWN_LOCATION to
21783 diagnostic_classify_diagnostic.
21784 (enable_warning_as_error): Likewise.
21785 * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
21786 use in the history chain.
21787 * doc/extend.texi: Document pragma GCC diagnostic changes.
21788
21789 2010-06-21 Jakub Jelinek <jakub@redhat.com>
21790
21791 * dwarf2out.c (add_linkage_name): New function. Don't add
21792 anything to DW_TAG_member DIEs.
21793 (add_name_and_src_coords_attributes): Use it.
21794 (gen_variable_die): Call it for C++ static data members if
21795 specification is DW_TAG_member.
21796
21797 * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
21798 C++ char16_t and char32_t.
21799
21800 * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
21801 * genattrtab.c: Include vecprim.h.
21802 (cached_attrs, cached_attr_count, attrs_seen_once,
21803 attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
21804 attrs_cached_after): New variables.
21805 (find_attrs_to_cache): New function.
21806 (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
21807 (write_test_expr): Add attrs_cached argument, return it too,
21808 attempt to cache non-const attributes used more than once in
21809 a single case handling.
21810 (write_attr_get): Use find_attrs_to_cache, for caching candidates
21811 emit cached_* variables. Adjust write_attr_set callers.
21812 (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
21813 to find attributes that should be cached in this block. Adjust
21814 write_test_expr callers.
21815 (write_attr_case): Clear attrs_to_cache. Adjust write_attr_set
21816 callers.
21817 (make_automaton_attrs): Adjust write_test_expr caller.
21818
21819 * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
21820 * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
21821 (make_automaton_attrs): If find_tune_attr returns non-NULL,
21822 write separate internal_dfa_insn_code_* and insn_default_latency_*
21823 functions for each attribute's value and emit init_sched_attrs
21824 function and function pointers.
21825 * genattr.c (const_attrs, reservations): New variables.
21826 (gen_attr): Add const attributes to const_attrs vector.
21827 (check_tune_attr, find_tune_attr): New functions.
21828 (main): Add reservations to reservations vector. If find_tune_attr
21829 returns true, add prototype for init_sched_attrs and make
21830 internal_dfa_insn_code and insn_default_latency function pointers,
21831 otherwise define init_sched_attrs as dummy macro.
21832 * cfgexpand.c: Include insn-attr.h.
21833 (gimple_expand_cfg): Call init_sched_attrs.
21834
21835 * stmt.c (resolve_asm_operand_names): Fix handling of %%.
21836
21837 PR target/44575
21838 * config/i386/i386.c (ix86_gimplify_va_arg): When copying
21839 va_arg from a set of register save slots into a temporary,
21840 if the container is bigger than type size, do the copying
21841 using smaller mode or using memcpy.
21842
21843 PR bootstrap/44426
21844 * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
21845 prototype.
21846 (sel_print_to_dot): Remove macro.
21847 (sel_print): Likewise. New prototype.
21848 * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
21849 (sel_print): New function.
21850
21851 2010-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21852
21853 * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
21854 __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
21855
21856 2010-06-21 Nick Clifton <nickc@redhat.com>
21857
21858 * config/rx/rx.h (PTRDIFF_TYPE): Define.
21859 (SMALL_REGISTER_CLASS): Define (to zero).
21860 (PRINT_OPERAND): Delete.
21861 (PRINT_OPERAND_ADDRESS): Delete.
21862 * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
21863 (rx_print_operand_address): Delete prototype.
21864 * config/rx/rx.c (rx_print_operand): Make static.
21865 Allow %H and %L to handle CONST_DOUBLEs.
21866 (rx_print_operand_address): Make static.
21867 (rx_gen_move_template): Rename local variable 'template' to
21868 out_template.
21869 (rx_function_arg): Do not pass unknown sized objects in registers.
21870 (TARGET_PRINT_OPERAND): Define.
21871 (TARGET_PRINT_OPERAND_ADDRESS): Define.
21872
21873 2010-06-21 Jan Kratochvil <jan.kratochvil@redhat.com>
21874
21875 * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
21876
21877 2010-06-21 Kai Tietz <kai.tietz@onevision.com>
21878
21879 * config/i386/i386.c (ix86_compute_frame_layout): Avoid
21880 stack-alignment for simple leaf-functions.
21881
21882 2010-06-20 Alexandre Oliva <aoliva@redhat.com>
21883
21884 * doc/install.texi: Document bootstrap-lto.
21885
21886 2010-06-20 Alexandre Oliva <aoliva@redhat.com>
21887
21888 PR debug/44248
21889 * lto-streamer-in.c (input_bb): Leave debug stmts alone.
21890 (input_function): Drop them here, if VTA is disabled.
21891
21892 2010-06-20 Uros Bizjak <ubizjak@gmail.com>
21893
21894 PR target/44546
21895 * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
21896 New predicate.
21897 * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
21898 ix86_swapped_fp_comparsion_operator instead of
21899 ix86_fp_comparison_operator.
21900
21901 (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
21902 (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
21903 (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
21904 (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
21905 (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
21906 (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
21907
21908 2010-06-20 Joseph Myers <joseph@codesourcery.com>
21909
21910 PR other/32998
21911 * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
21912 OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
21913 * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
21914 (decode_cmdline_option): Update for this return value. Set
21915 orig_option_with_args_text field. Set arg field for unknown
21916 options. Make static.
21917 (decode_cmdline_options_to_array): New.
21918 (prune_options): Update handling of find_opt return value.
21919 * opts.c (read_cmdline_option): Take decoded option. Return void.
21920 (read_cmdline_options): Take decoded options.
21921 (decode_options): Add parameters for decoded options. Use
21922 decode_cmdline_options_to_array. Use decoded options for -O
21923 scan. Use integral_argument for -O parameters. Update call to
21924 read_cmdline_options.
21925 (enable_warning_as_error): Update handling of find_opt return value.
21926 * opts.h: Update comment on unknown options.
21927 (struct cl_decoded_option): Update comments on opt_index and arg.
21928 Add orig_option_with_args_text.
21929 (decode_cmdline_option): Remove.
21930 (decode_cmdline_options_to_array): Declare.
21931 (decode_options): Update prototype.
21932 * toplev.c (save_argv): Remove.
21933 (save_decoded_options, save_decoded_options_count): New.
21934 (read_integral_parameter): Remove.
21935 (print_switch_values): Use decoded options.
21936 (toplev_main): Don't set save_argv. Update call to decode_options.
21937 * toplev.h (read_integral_parameter): Remove.
21938 * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
21939
21940 2010-06-19 Richard Earnshaw <rearnsha@arm.com>
21941
21942 PR target/44072
21943 * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
21944 immediate.
21945 * constraints.md (Pw, Px): New constraints.
21946 * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
21947
21948 2010-06-19 H.J. Lu <hongjiu.lu@intel.com>
21949
21950 * config/i386/sse.md (fma4modesuffixf4): Removed.
21951 (ssemodesuffixf2s): Likewise.
21952 (ssemodesuffixf4): Likewise.
21953 (ssemodesuffixf2c): Likewise.
21954 (ssescalarmodesuffix2s): Likewise.
21955 (avxmodesuffixf2c): Likewise.
21956 (ssemodesuffix): New.
21957 (ssescalarmodesuffix): Likewise.
21958 Update patterns with ssemodesuffix and ssescalarmodesuffix.
21959
21960 2010-06-19 Philip Herron <herron.philip@googlemail.com>
21961
21962 * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
21963
21964 2010-06-18 H.J. Lu <hongjiu.lu@intel.com>
21965
21966 * stor-layout.c (debug_rli): Remove unused local variables.
21967
21968 2010-06-18 Eric Botcazou <ebotcazou@adacore.com>
21969
21970 PR rtl-optimization/40900
21971 * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line. Save the
21972 original expression for later reuse.
21973 <expand_decl_rtl>: Use promote_function_mode to compute the signedness
21974 of the promoted RTL for a SSA_NAME on the LHS of a call statement.
21975
21976 2010-06-18 Anatoly Sokolov <aesok@post.ru>
21977
21978 * double-int.h (double_int_to_shwi, double_int_to_uhwi,
21979 double_int_fits_in_uhwi_p): Implement as static inline.
21980 (double_int_xor): New inline function.
21981 (double_int_lrotate, double_int_rrotate, double_int_max,
21982 double_int_umax, double_int_smax, double_int_min, double_int_umin,
21983 double_int_smin): Declare.
21984 (lrotate_double, rrotate_double): Remove declaration.
21985 * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
21986 double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
21987 (double_int_lrotate, double_int_rrotate, double_int_max,
21988 double_int_umax, double_int_smax, double_int_min, double_int_umin,
21989 double_int_smin): New function.
21990 * fold-const.c (int_const_binop): Clean up, use double_int_*
21991 functions.
21992 * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
21993 double_int_* and immed_double_int_const functions.
21994
21995 2010-06-18 Nathan Froyd <froydnj@codesourcery.com>
21996
21997 * function.h (types_used_by_cur_var_decl): Change type to a VEC.
21998 * function.c (types_used_by_cur_var_decl): Likewise.
21999 (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
22000
22001 2010-06-18 Nathan Froyd <froydnj@codesourcery.com>
22002
22003 * tree.h (record_layout_info): Change type of pending_statics field
22004 to a VEC.
22005 * stor-layout.c (start_record_layout): Store NULL into
22006 pending_statics.
22007 (debug_rli): Call debug_vec_tree instead of debug_tree.
22008 (place_field): Likewise.
22009 (finish_record_layout): Likewise.
22010
22011 2010-06-18 Alan Modra <amodra@gmail.com>
22012
22013 * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
22014
22015 2010-06-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22016
22017 PR target/43740
22018 * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
22019 for SET source operand from SET destination operand.
22020
22021 2010-06-17 Bernd Schmidt <bernds@codesourcery.com>
22022
22023 PR rtl-optimization/39871
22024 * reload1.c (init_eliminable_invariants): For flag_pic, disable
22025 equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
22026 (function_invariant_p): Rule out a plus of frame or arg pointer with
22027 a SYMBOL_REF.
22028 * ira.c (find_reg_equiv_invariant_const): Likewise.
22029
22030 2010-06-17 Gunther Nikl <gnikl@users.sourceforge.net>
22031
22032 * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
22033 print_operand_address and puts to output the operand for CONST.
22034
22035 2010-06-17 Jakub Jelinek <jakub@redhat.com>
22036
22037 PR debug/44572
22038 * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
22039 hook.
22040
22041 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
22042
22043 * v850-protos.h (print_operand): Delete.
22044 (print_operand_address): Delete.
22045 * v850.h (PRINT_OPERAND): Delete.
22046 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22047 (PRINT_OPERAND_ADDRESS): Delete.
22048 * v850.c (print_operand_address): Rename to...
22049 (v850_print_operand_address): ...this. Make static. Call
22050 v850_print_operand.
22051 (print_operand): Rename to...
22052 (v850_print_operand): ...this. Make static. Call
22053 v850_print_operand_address.
22054 (v850_print_operand_punct_valid_p): New function.
22055 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
22056 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
22057
22058 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
22059
22060 * config/sh/sh-protos.h (print_operand): Delete.
22061 (print_operand_address): Delete.
22062 * config/sh/sh.h (PRINT_OPERAND): Delete.
22063 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22064 (PRINT_OPERAND_ADDRESS): Delete.
22065 * config/sh/sh.c (sh_print_operand_address): Make static.
22066 (sh_print_operand): Make static. Call sh_print_operand_address
22067 and sh_print_operand.
22068 (sh_print_operand_punct_valid_p): New function.
22069 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
22070 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
22071
22072 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
22073
22074 * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
22075 (mcore_print_operand_address): Delete.
22076 * config/mcore/mcore.h (PRINT_OPERAND): Delete.
22077 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22078 (PRINT_OPERAND_ADDRESS): Delete.
22079 * config/mcore/mcore.c (mcore_print_operand_address): Make static.
22080 (mcore_print_operand): Make static.
22081 (mcore_print_operand_punct_valid_p): New function.
22082 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
22083 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
22084
22085 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
22086
22087 * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
22088 (print_operand_address): Delete.
22089 * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
22090 (PRINT_OPERAND_ADDRESS): Delete.
22091 * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
22092 static.
22093 (m68hc11_print_operand): Make static.
22094 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
22095
22096 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
22097
22098 * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
22099 (m32r_print_operand_address): Delete.
22100 * config/m32r/m32r.h (m32r_punct_chars): Delete.
22101 (PRINT_OPERAND): Delete.
22102 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22103 (PRINT_OPERAND_ADDRESS): Delete.
22104 * config/m32r/m32r.c (m32r_punct_chars): Make static.
22105 (m32r_print_operand_address): Make static.
22106 (m32r_print_operand): Make static.
22107 (m32r_print_operand_punct_valid_p): New function.
22108 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
22109 (TARGET_PRINT_OPERAND_ADDRESS): Define.
22110
22111 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
22112
22113 * config/iq2000/iq2000-protos.h (print_operand): Delete.
22114 (print_operand_address): Delete.
22115 * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
22116 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22117 (PRINT_OPERAND_ADDRESS): Delete.
22118 (iq2000_print_operand_punct): Delete.
22119 * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
22120 (iq2000_print_operand_address): Make static.
22121 (iq2000_print_operand): Make static.
22122 (iq2000_print_operand_punct_valid_p): New function.
22123 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
22124 (TARGET_PRINT_OPERAND_ADDRESS): Define.
22125
22126 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
22127
22128 * config/frv/frv-protos.h (frv_print_operand): Delete.
22129 (frv_print_operand_address): Delete.
22130 * config/frv/frv.h (PRINT_OPERAND): Delete.
22131 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22132 (PRINT_OPERAND_ADDRESS): Delete.
22133 * config/frv/frv.c (frv_print_operand_address): Make static.
22134 (frv_print_operand): Make static.
22135 (frv_print_operand_punct_valid_p): New function.
22136 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
22137 (TARGET_PRINT_OPERAND_ADDRESS): Define.
22138
22139 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
22140
22141 * tree.h (vec_member): Declare.
22142 * tree.c (vec_member): Define.
22143
22144 2010-06-17 Richard Guenther <rguenther@suse.de>
22145
22146 * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
22147 * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
22148
22149 2010-06-17 Richard Guenther <rguenther@suse.de>
22150
22151 * tree-inline.c (declare_return_variable): Remove bogus code.
22152
22153 2010-06-17 Richard Guenther <rguenther@suse.de>
22154
22155 * gimplify.c (gimplify_bind_expr): Always promote complex
22156 and vector variables to registers if possible.
22157
22158 2010-06-17 Richard Guenther <rguenther@suse.de>
22159
22160 * expr.c (get_inner_reference): Use double_int for bit_offset
22161 calculation.
22162
22163 2010-06-16 DJ Delorie <dj@redhat.com>
22164
22165 * common.opt (-fstrict-volatile-bitfields): new.
22166 * doc/invoke.texi: Document it.
22167 * fold-const.c (optimize_bit_field_compare): For volatile
22168 bitfields, use the field's type to determine the mode, not the
22169 field's size.
22170 * expr.c (expand_assignment): Likewise.
22171 (get_inner_reference): Likewise.
22172 (expand_expr_real_1): Likewise.
22173 * expmed.c (store_fixed_bit_field): Likewise.
22174 (extract_bit_field_1): Likewise.
22175 (extract_fixed_bit_field): Likewise.
22176
22177 2010-06-16 Richard Guenther <rguenther@suse.de>
22178
22179 * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
22180
22181 2010-06-16 Douglas B Rupp <rupp@gnat.com>
22182
22183 * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
22184 (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
22185 * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
22186 * debug.c: Likewise.
22187 * sdbout.c: Likewise.
22188 * vmsdbgout.c: Likewise.
22189 * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
22190 * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
22191 * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
22192 (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
22193 * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
22194 * dwarf2out.c (dw_fde_struct): New fields
22195 dw_fde_vms_{end,begin}_prologue.
22196 (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
22197 (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
22198 (dwarf2out_vms_end_prologue): New function.
22199 (dwarf2out_vms_begin_epilogue): New function.
22200 (dw_val_struct): New value dw_val_class_vms_delta.
22201 (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
22202 begin_epilogue for VMS.
22203 (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
22204 new static functions.
22205 (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
22206 (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
22207 static functions.
22208 (print_die): New case dw_val_class_vms_delta.
22209 (attr_checksum): Likewise.
22210 (same_dw_val_p: Likewise.
22211 (size_of_die): Likewise.
22212 (value_format): Likewise.
22213 (output_die): Likewise.
22214 (gen_subprogram_die): Call add_AT_vms_delta on VMS.
22215 (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
22216 * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
22217 dwarf2out_cfi_begin_epilogue
22218 * final.c (final_scan_insn): Likewise. Call begin_epilogue.
22219
22220 2010-06-16 Nathan Froyd <froydnj@codesourcery.com>
22221
22222 * config/cris/cris-protos.h (cris_print_operand): Delete.
22223 (cris_print_operand_address): Delete.
22224 * config/cris/cris.h (PRINT_OPERAND): Delete.
22225 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22226 (PRINT_OPERAND_ADDRESS): Delete.
22227 * config/cris/cris.c (cris_print_operand_address): Make static.
22228 (cris_print_operand): Make static.
22229 (cris_print_operand_punct_valid_p): New function.
22230 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
22231 (TARGET_PRINT_OPERAND_ADDRESS): Define.
22232
22233 2010-06-16 Nathan Froyd <froydnj@codesourcery.com>
22234
22235 * config/arm/arm-protos.h (arm_print_operand): Delete.
22236 (arm_print_operand_address): Delete.
22237 * config/arm/arm.h (PRINT_OPERAND): Delete.
22238 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22239 (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
22240 (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
22241 * config/arm/arm.c (arm_print_operand_address): ...here. New function.
22242 (arm_print_operand): Make static.
22243 (arm_print_operand_punct_valid_p): New function.
22244 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
22245 (TARGET_PRINT_OPERAND_ADDRESS): Define.
22246
22247 2010-06-16 Nick Clifton <nickc@redhat.com>
22248
22249 * config/rx/constraints.md (NEGint4): New constraint.
22250 * config/rx/rx.md (attr cc): Add set_zsc.
22251 (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
22252 initialised.
22253 (cmpsf): Likewise.
22254 (call_internal): Clobber the cc0 register.
22255 (call_value_internal): Likewise.
22256 (cstoresi4): Likewise.
22257 (movsieq): Likewise.
22258 (movsine): Likewise.
22259 (addsi3): Add alternative to handle small negative constants.
22260 (sunsi3): Likewise.
22261 (addsi3): Do not set the O bit in the cc0 register.
22262 (adddi3): Likewise.
22263 (subsi3): Likewise.
22264 (subdi3): Likewise.
22265 (andsi3): Reorder alternatives to prefer shorter forms.
22266 (mulsi3): Likewise.
22267 (iorsi3): Likewise.
22268 (negsi2): Note that the cc0 flags are set.
22269 (rotlsi3): Note that only the Z and S bits are set in cc0.
22270 (lshrsi3): Likewise.
22271 (ashlsi3): Likewise.
22272 (subsf3): Use %Q for the MEM operand.
22273 (fix_truncsfsi2): Likewise.
22274 (floatsisf2): Likewise.
22275 (bitset): Remove early clobber from destination.
22276 (bitset_in_memory): Likewise.
22277 (lrintsf2): Clobber the cc0 register.
22278 * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
22279 (rx_print_operand): Handle %N.
22280
22281 2010-06-16 Jan Hubicka <jh@suse.cz>
22282
22283 * df-core.c (df_compact_blocks): Free problem_temps vector.
22284
22285 2010-06-16 Martin Jambor <mjambor@suse.cz>
22286
22287 PR tree-optimization/43905
22288 * tree-sra.c: Include tree-inline.h.
22289 (create_abstract_origin): Removed.
22290 (modify_function): Version the call graph node instead of creating
22291 abstract origins and dealing with same_body aliases.
22292 * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
22293 function is versionable.
22294 * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
22295
22296 2010-06-16 Maxim Kuvyrkov <maxim@codesourcery.com>
22297
22298 * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
22299 (CHOOSE_DYNAMIC_LINKER): Update.
22300
22301 2010-06-15 Uros Bizjak <ubizjak@gmail.com>
22302
22303 * config/i386/i386.c (*prefetch_sse_<mode>): Macroize insn from
22304 *prefetch_sse and *prefetch_sse_rex using P mode iterator.
22305 (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
22306 *prefetch_3dnow_rex.
22307
22308 2010-06-15 Anatoly Sokolov <aesok@post.ru>
22309
22310 * target.h (struct asm_out):Add declare_constant_name field.
22311 * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
22312 (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
22313 * output.h (default_asm_declare_constant_name): Declare.
22314 (assemble_label): Update prototype.
22315 * varasm.c (assemble_constant_contents): Use
22316 targetm.asm_out.declare_constant_name target hook.
22317 (assemble_label): Add 'file' argument.
22318 (default_asm_declare_constant_name): New function.
22319 * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
22320 * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
22321 (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
22322
22323 * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
22324 * config/darwin.c (darwin_asm_declare_constant_name): New function.
22325 (machopic_output_indirection): Update assemble_label argument list.
22326 * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
22327 (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
22328
22329 2010-06-15 Sebastian Pop <sebastian.pop@amd.com>
22330
22331 PR middle-end/44391
22332 * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
22333 size_one_node for pointer types. Do not call gmp_cst_to_tree.
22334
22335 2010-06-15 Richard Guenther <rguenther@suse.de>
22336
22337 * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
22338
22339 2010-06-15 Paul Brook <paul@codesourcery.com>
22340
22341 * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
22342 hard-float ABI.
22343
22344 2010-06-15 Alexandre Oliva <aoliva@redhat.com>
22345
22346 * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
22347 don't get a vector type for output.
22348
22349 2010-06-15 Jakub Jelinek <jakub@redhat.com>
22350
22351 PR fortran/44536
22352 * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
22353 * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
22354 (LANG_HOOKS_DECLS): Add it.
22355 * gimplify.c (omp_notice_variable): Call
22356 lang_hooks.decls.omp_report_decl.
22357
22358 2010-06-15 Martin Jambor <mjambor@suse.cz>
22359
22360 PR lto/44464
22361 * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
22362 on the newly dead SSA name.
22363
22364 2010-06-15 Alan Modra <amodra@gmail.com>
22365
22366 * doc/invoke.texi: Add mcmodel to powerpc options.
22367 * configure.ac: Add HAVE_LD_LARGE_TOC test.
22368 * configure: Regenerate.
22369 * config.in: Regenerate.
22370 * config/rs6000/linux64.opt (mcmodel): New.
22371 * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
22372 (TARGET_CMODEL, SET_CMODEL): Define.
22373 (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
22374 select CMODEL_MEDIUM default.
22375 * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
22376 (TARGET_CMODEL): Define default.
22377 * config/rs6000/rs6000.c (cmodel): New variable.
22378 (rs6000_explicit_options): Add cmodel field.
22379 (rs6000_handle_option): Handle -mcmodel.
22380 (create_TOC_reference): Add largetoc_reg param. Generate high,
22381 lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE. Update all callers.
22382 (rs6000_delegitimize_address): Recognise new toc reference rtl
22383 and minimal-toc rtl.
22384 (rs6000_legitimize_reload_address): Handle new toc references.
22385 (print_operand_address): Handle legitimate_constant_pool_address_p
22386 match before lo_sum.
22387 (rs6000_eliminate_indexed_memrefs): Tidy.
22388 (rs6000_emit_move): Tweak threshold for inlining constants.
22389 Keep rs6000_emit_allocate_stack large stack frame offsets
22390 loaded into r0 inline.
22391 (rs6000_generate_compare <cmptf_internal2>): One more clobber.
22392 (tocrel_base, tocrel_offset): New variables.
22393 (toc_relative_expr_p): Set them here.
22394 (print_operand_address): Skip over any offset on constant pool address.
22395 (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
22396 (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
22397 (offsettable_ok_by_alignment): New function.
22398 (rs6000_emit_move): Address suitably aligned local symbol_refs
22399 relative to the toc pointer for -mcmodel=medium.
22400 (legitimate_constant_pool_address_p): Make param const_rtx. Add
22401 strict param. Allow lo_sum version of addressing. Verify reg
22402 used for -mminimal-toc and -mcmodel != small. Update all callers.
22403 * config/rs6000/constraints.md: Update for above change.
22404 * config/rs6000/predicates.md: Likewise.
22405 * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
22406 code.
22407 (tls_gd): Split for -mcmodel=medium/large.
22408 (tls_gd_high, tls_gd_low): New.
22409 (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
22410 (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
22411 (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
22412 (largetoc_high, largetoc_low): New.
22413 (cmptf_internal2): Add clobber.
22414 * config/rs6000/rs6000-protos.h: Update.
22415
22416 2010-06-14 Changpeng Fang <changpeng.fang@amd.com>
22417
22418 * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New. Return
22419 true if no prefetch is going to be generated for a given group.
22420 (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
22421 estimate the prefetch_count.
22422 (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
22423 prefetch count by considering the unroll_factor and prefetch_mod
22424 for is_loop_prefetching_profitable.
22425
22426 2010-06-14 Andreas Schwab <schwab@linux-m68k.org>
22427
22428 * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
22429 anything if the argument is not a MEM.
22430
22431 2010-06-14 Alexandre Oliva <aoliva@redhat.com>
22432
22433 PR debug/43650
22434 PR debug/44181
22435 PR debug/44247
22436 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
22437 debug stmts.
22438 (canonicalize_loop_ivs): Likewise.
22439
22440 2010-06-14 Alexandre Oliva <aoliva@redhat.com>
22441
22442 PR debug/43656
22443 * haifa-sched.c (setup_insn_reg_pressure_info,
22444 update_register_pressure): Reject debug insns.
22445 (ready_sort): Don't setup reg pressure for debug insns.
22446 (schedule_insn): Don't update reg pressure for debug insns.
22447
22448 2010-06-14 Richard Guenther <rguenther@suse.de>
22449
22450 * lto-streamer.c (cached_bp): Remove.
22451 (bitpack_delete): Likewise.
22452 (bitpack_create): Likewise.
22453 (bp_get_next_word): Likewise.
22454 (bp_pack_value, bp_unpack_value): Move ...
22455 * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
22456 Re-implement.
22457 (struct bitpack_d): Likewise.
22458 (bitpack_create, lto_output_bitpack, lto_input_bitpack):
22459 New inline functions.
22460 * lto-streamer-out.c (lto_output_bitpack): Remove.
22461 (pack_ts_base_value_fields): Adjust. Avoid conditional bitpacking.
22462 (pack_value_fields): Adjust.
22463 (lto_write_tree): Likewise.
22464 (output_gimple_stmt): Likewise.
22465 (output_function): Likewise.
22466 * lto-streamer-in.c (input_gimple_stmt): Adjust.
22467 (input_function): Likewise.
22468 (unpack_ts_base_value_fields): Adjust. Avoid conditional bitpacking.
22469 (lto_input_bitpack): Remove.
22470 (lto_materialize_tree): Adjust.
22471 * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
22472 * lto-cgraph.c (lto_output_edge): Adjust.
22473 (lto_output_node): Likewise.
22474 (lto_output_varpool_node): Likewise.
22475 (lto_output_ref): Likewise.
22476 (input_node): Likewise.
22477 (input_varpool_node): Likewise.
22478 (input_ref): Likewise.
22479 (input_edge): Likewise.
22480 (output_node_opt_summary): Likewise.
22481 (input_node_opt_summary): Likewise.
22482 * ipa-pure-const.c (pure_const_write_summary): Likewise.
22483 (pure_const_read_summary): Likewise.
22484 * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
22485 (ipa_read_indirect_edge_info): Likewise.
22486 (ipa_write_node_info): Likewise.
22487 (ipa_read_node_info): Likewise.
22488
22489 2010-06-14 H.J. Lu <hongjiu.lu@intel.com>
22490
22491 PR target/44534
22492 * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
22493 (vec_extract_lo_v16hi): Likewise.
22494 (vec_extract_lo_v32qi): Likewise.
22495
22496 2010-06-14 Jakub Jelinek <jakub@redhat.com>
22497
22498 PR bootstrap/44426
22499 * tree.h (build_call_expr): Don't define as vararg macro, instead
22500 add a prototype.
22501 * builtins.c (build_call_nofold): Remove.
22502 (expand_builtin_int_roundingfn, expand_builtin_pow,
22503 expand_builtin_mempcpy_args, expand_builtin_stpcpy,
22504 expand_builtin_memset_args, expand_builtin_strcmp,
22505 expand_builtin_strncmp, expand_builtin_memory_chk): Use
22506 build_call_nofold_loc instead of build_call_nofold.
22507 (build_call_expr): New function.
22508
22509 PR tree-optimization/44508
22510 * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
22511 * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
22512 don't eliminate trivially dead stmts.
22513 * tree-vrp.c (vrp_finalize): Pass false as last argument
22514 to substitute_and_fold.
22515 * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
22516 to substitute_and_fold.
22517 * tree-ssa-ccp.c (ccp_finalize): Likewise.
22518
22519 PR bootstrap/44509
22520 * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
22521
22522 2010-06-14 Ira Rosen <irar@il.ibm.com>
22523
22524 PR tree-optimization/44507
22525 * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
22526 to build initial vector for BIT_AND_EXPR.
22527 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
22528
22529 2010-06-14 Jakub Jelinek <jakub@redhat.com>
22530
22531 * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
22532 adjust z10prop set_attr.
22533
22534 2010-06-13 Jan Hubicka <jh@suse.cz>
22535
22536 * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
22537 bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
22538 bitmap_ior_into, bitmap_xor, bitmap_xor_into,
22539 bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
22540 datastructure checks into checking asserts.
22541 * rtlanal.c (find_reg_note): Use gcc_checking_assert.
22542 * tree-ssa-sccvn.c (VN_INFO): Likewise.
22543 * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
22544 df_ref_create_structure): Likewise.
22545 * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
22546 pool_free): Use gcc_checking_assert.
22547 * alias.c (get_alias_set): Likewise.
22548 * var-tracking.c (variable_htab_free, shared_hash_copy,
22549 canonicalize_values_mark, variable_merge_over_cur): Likewise.
22550 * lto-streamer.c (bp_unpack_value): Likewise.
22551
22552 2010-06-13 Richard Guenther <rguenther@suse.de>
22553
22554 * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
22555 Do not stream but initialize TYPE_CANONICAL to NULL.
22556 (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
22557 * gimple.c (gimple_types_compatible_p): Disregard
22558 TYPE_STRUCTURAL_EQUALITY_P.
22559 (gimple_register_type): Use TYPE_CANONICAL as cache.
22560 * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
22561 before registering common types.
22562 * config/i386/i386.c (ix86_function_arg_boundary): Do not
22563 use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
22564 * tree.h (TYPE_CANONICAL): Clarify documentation.
22565
22566 2010-06-13 Anatoly Sokolov <aesok@post.ru>
22567
22568 * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
22569 LIBCALL_VALUE): Remove macros.
22570 * config/ia64/ia64-protos.h (ia64_function_value): Remove.
22571 * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
22572 TARGET_FUNCTION_VALUE_REGNO_P): Define.
22573 (ia64_libcall_value, ia64_function_value_regno_p): New functions.
22574 (ia64_function_value): Make static. Handle receiving the function
22575 type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
22576
22577 2010-06-12 Jan Hubicka <jh@suse.cz>
22578
22579 * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
22580 at correct place.
22581
22582 2010-06-12 Bernd Schmidt <bernds@codesourcery.com>
22583
22584 * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
22585
22586 2010-06-12 Jan Hubicka <jh@suse.cz>
22587
22588 * df-core.c (df_clear_bb_info): New function.
22589 (df_set_blocks): bb_info is always allocated.
22590 (df_get_bb_info): Use block_info_elt_size.
22591 (df_set_bb_info): Likewise.
22592 (df_compact_blocks): Update for new block_info.
22593 (grow_bb_info): New function.
22594 * df-problems.c (df_grow_bb_info): Move to df-core.c
22595 (df_rd_set_bb_info): Remove.
22596 (df_rd_free_bb_info): Do not free block pool.
22597 (df_rd_alloc): Do not create pool, use check for
22598 obstack presence instead of NULL pointer for new blocks.
22599 (df_rd_free): DO not free alloc pool; clear block_info.
22600 (problem_RD): Add size of block info structure.
22601 (df_lr_set_bb_info): Remove.
22602 (df_lr_free_bb_info): Do not free block pool.
22603 (df_lr_alloc): Do not create pool, use check for
22604 obstack presence instead of NULL pointer for new blocks.
22605 (df_lr_free): DO not free alloc pool; clear block_info.
22606 (problem_LR): Add size of block info structure.
22607 (df_live_set_bb_info): Remove.
22608 (df_live_free_bb_info): Do not free block pool.
22609 (df_live_alloc): Do not create pool, use check for
22610 obstack presence instead of NULL pointer for new blocks.
22611 (df_live_free): DO not free alloc pool; clear block_info.
22612 (problem_LIVE): Add size of block info structure.
22613 (problem_CHAIN): Add size of block info structure.
22614 (df_byte_lr_set_bb_info): Remove.
22615 (df_byte_lr_free_bb_info): Do not free block pool.
22616 (df_byte_lr_alloc): Do not create pool, use check for
22617 obstack presence instead of NULL pointer for new blocks.
22618 (df_byte_lr_free): DO not free alloc pool; clear block_info.
22619 (problem_BYTE_LR): Add size of block info structure.
22620 (problem_NOTE): Add size of block info structure.
22621 (df_byte_MD_set_bb_info): Remove.
22622 (df_byte_MD_free_bb_info): Do not free block pool.
22623 (df_byte_MD_alloc): Do not create pool, use check for
22624 obstack presence instead of NULL pointer for new blocks.
22625 (df_byte_MD_free): DO not free alloc pool; clear block_info.
22626 (problem_BD): Add size of block info structure.
22627 * df-scan.c (df_scan_free_internal): Free block pool.
22628 (df_scan_set_bb_info): Remove.
22629 (df_scan_free_bb_info): Check for artificial_defs instead
22630 of bb_info being non-NULL.
22631 (df_scan_alloc): DO not create df_scan_block pool.
22632 (problem_SCAN): Set size of block info.
22633 (df_bb_refs_record): Do not allocate bb_info.
22634 * df.h (df_problem): Add block_info_elt_size.
22635 (struct dataflow): Change block_info to void *.
22636 (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
22637 df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
22638 in-line structures.
22639
22640 2010-06-12 Jan Hubicka <jh@suse.cz>
22641
22642 PR tree-optimize/44485
22643 * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
22644 containing use of return value of noreturn function.
22645
22646 2010-06-12 Anatoly Sokolov <aesok@post.ru>
22647
22648 * targhooks.c (default_function_value): Don't use
22649 FUNCTION_OUTGOING_VALUE.
22650 * system.h (FUNCTION_OUTGOING_VALUE): Poison.
22651 * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
22652
22653 2010-06-12 Kazu Hirata <kazu@codesourcery.com>
22654
22655 * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
22656 Add crtfastmath.o to extra_parts.
22657 * config/mips/crtfastmath.c: New.
22658 * config/mips/linux.h (ENDFILE_SPEC): New.
22659
22660 2010-06-12 Sebastian Pop <sebastian.pop@amd.com>
22661
22662 * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
22663 old_type in parameter.
22664 (gcc_type_for_value): Update call to gcc_type_for_interval.
22665 (compute_type_for_level_1): Renamed compute_type_for_level.
22666 Update call to gcc_type_for_interval.
22667
22668 2010-06-11 Joseph Myers <joseph@codesourcery.com>
22669
22670 * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
22671 flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
22672
22673 2010-06-11 Joseph Myers <joseph@codesourcery.com>
22674
22675 * opts-common.c: Include options.h.
22676 (integral_argument): Move from opts.c.
22677 (decode_cmdline_option): New. Based on read_cmdline_option.
22678 * opts.c (integral_argument): Move to opts-common.c.
22679 (read_cmdline_option): Move most contents to
22680 decode_cmdline_option. Use %qs in diagnostics.
22681 * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
22682 CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
22683 decode_cmdline_option): New.
22684
22685 2010-06-11 Uros Bizjak <ubizjak@gmail.com>
22686
22687 PR target/44481
22688 * config/i386/i386.md (UNSPEC_PARITY): New unspec.
22689 (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
22690 (partiysi2_cmp): Ditto.
22691 (*partiyhi2_cmp): Ditto.
22692 (*parityqi2_cmp): Remove.
22693
22694 2010-06-11 Jan Hubicka <jh@suse.cz>
22695
22696 * bitmap.h (bmp_iter_next_bit): New.
22697 (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
22698
22699 2010-06-11 Sandra Loosemore <sandra@codesourcery.com>
22700 Eric Botcazou <ebotcazou@adacore.com>
22701
22702 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
22703 computed cost.
22704
22705 2010-06-11 Uros Bizjak <ubizjak@gmail.com>
22706
22707 * config/i386/i386.md (unspec): New define_c_enum.
22708 (unspecv): Ditto.
22709
22710 2010-06-10 Jakub Jelinek <jakub@redhat.com>
22711
22712 * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
22713
22714 2010-06-11 Sebastian Pop <sebastian.pop@amd.com>
22715
22716 PR middle-end/44483
22717 * tree-if-conv.c (bb_predicate_s): New struct.
22718 (bb_predicate_p): New.
22719 (bb_has_predicate): New.
22720 (bb_predicate): New.
22721 (set_bb_predicate): New.
22722 (bb_predicate_gimplified_stmts): New.
22723 (set_bb_predicate_gimplified_stmts): New.
22724 (add_bb_predicate_gimplified_stmts): New.
22725 (init_bb_predicate): New.
22726 (free_bb_predicate): New.
22727 (is_predicated): Use bb_predicate.
22728 (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
22729 (predicate_bbs): Same. Gimplify the condition of the basic blocks
22730 before processing their successors.
22731 (clean_predicate_lists): Removed.
22732 (find_phi_replacement_condition): Use bb_predicate.
22733 (process_phi_nodes): Renamed ifconvert_phi_nodes. Avoid useless
22734 computations.
22735 (insert_gimplified_predicates): New.
22736 (combine_blocks): Call insert_gimplified_predicates.
22737 (tree_if_conversion): Call free_bb_predicate instead of
22738 clean_predicate_lists.
22739
22740 2010-10-11 Paul Brook <paul@codesourcery.com>
22741
22742 * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
22743 * config/arm/arm.c (all_architectures): Change v7e-m default to
22744 cortexm4.
22745 * config/arm/arm-cores.def: Add cortex-m4.
22746 * config/arm/arm-tune.md: Regenerate.
22747
22748 2010-06-11 Jan Hubicka <jh@suse.cz>
22749
22750 * ipa-pure-const.c (special_builtlin_state): New function.
22751 (check_call): Use it instead of special casign BUILT_IN_RETURN.
22752 (propagate_pure_const): Use it.
22753
22754 2010-06-11 Jan Hubicka <jh@suse.cz>
22755
22756 * df-problems.c (df_live_scratch): Convert to bitmap_head.
22757 (df_live_alloc): Initialize df_live_scratch when initializing
22758 problem_data.
22759 (df_live_transfer_function): Update uses of df_live_scratch.
22760 (df_live_free): Free problem_data; clear df_live_scratch before
22761 releasing the obstack.
22762 (df_md_free): Free problem data.
22763
22764 2010-06-11 Jan Hubicka <jh@suse.cz>
22765
22766 * doc/invoke.texi (Wsuggest-attribute): Document.
22767 (Wmissing-noreturn): Remove.
22768 * ipa-pure-const.c (warn_function_noreturn): New function.
22769 * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
22770 warn_missing_noreturn.
22771 * common.opt (Wsuggest-attribute=noreturn): New.
22772 * tree-flow.h (warn_function_noreturn): Declare.
22773 * tree-cfg.c (execute_warn_function_noreturn): Use
22774 warn_function_noreturn.
22775 (gate_warn_function_noreturn): New.
22776 (pass_warn_function_noreturn): Update.
22777
22778 2010-06-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
22779
22780 * c-typeck.c (handle_warn_cast_qual): Add loc
22781 parameter. Improve warning message.
22782 (build_c_cast): Pass location to handle_warn_cast_qual.
22783
22784 2010-06-11 Uros Bizjak <ubizjak@gmail.com>
22785
22786 * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
22787 that operand 0 == operand 1. Use x86_maybe_negate_const_int to output
22788 insn mnemonic.
22789 (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
22790
22791 2010-06-10 Dodji Seketeli <dodji@redhat.com>
22792
22793 Fix bootstap on mips
22794 * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
22795 be naming typedefs.
22796
22797 2010-06-11 Kai Tietz <kai.tietz@onevision.com>
22798
22799 * system.h (helper_const_non_const_cast): New inline for
22800 gcc version <= 4.0.
22801 (CONST_CAST2): For gcc version <= 4.0 use
22802 new helper to do const/non-const casting.
22803
22804 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
22805
22806 * doc/md.texi: Document the "unspec" and "unspecv" enum names.
22807 * Makefile.in (OBJS-common): Include insn-enums.o.
22808 (insn-enums.o): New rule.
22809 (simple_generated_c): Add insn-enums.c.
22810 (build/genenums.o): New rule.
22811 (genprogmd): Add "enums".
22812 * genconstants.c (print_enum_type): Declare a C string array
22813 for each enum.
22814 * genenums.c: New file.
22815 * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
22816 for UNSPEC_VOLATILE. If defined, use the "unspec" enum for both
22817 UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
22818
22819 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
22820
22821 * doc/md.texi (define_enum_attr): Document.
22822 * rtl.def (DEFINE_ENUM_ATTR): New rtx.
22823 * read-md.h (lookup_enum_type): Declare.
22824 * read-md.c (lookup_enum_type): New function.
22825 * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
22826 * genattrtab.c (attr_desc): Add an enum_name field.
22827 (evaluate_eq_attr): Take the associated attribute as argument.
22828 Get the enum prefix from the enum_name field, if defined.
22829 Use ACONCAT rather than a fixed-length buffer. Update recursive calls.
22830 (simplify_test_exp): Pass attr to evaluate_eq_attr.
22831 (add_attr_value): New function, split out from...
22832 (gen_attr): ...here. Handle DEFINE_ENUM_ATTR.
22833 (write_test_expr): Pass attr to evaluate_eq_attr.
22834 (write_attr_get): Use the enum_name as the enum tag, if defined.
22835 (write_attr_valueq): Use the enum_name as a prefix, if defined.
22836 (find_attr): Initialize enum_name.
22837 (main): Handle DEFINE_ENUM_ATTR.
22838 * gensupport.c (process_rtx): Likewise.
22839 * config/mips/mips.h (mips_tune_attr): Delete.
22840 * config/mips/mips.md (cpu): Use define_attr_enum.
22841
22842 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
22843
22844 * doc/md.texi (define_c_enum, define_enum): Document.
22845 * read-md.h (md_constant): Add a parent_enum field.
22846 (enum_value, enum_type): New structures.
22847 (upcase_string, traverse_enum_types): Declare.
22848 * read-md.c (enum_types): New variable.
22849 (upcase_string, add_constant): New functions.
22850 (handle_constants): Don't create the hash table here.
22851 Use add_constant.
22852 (traverse_md_constants): Don't check for a null md_constants.
22853 (decimal_string, handle_enum, traverse_enum_types): New functions.
22854 (read_md_files): Initialize md_constants and md_enums.
22855 * genconstants.c (print_md_constant): Ignore info argument.
22856 Only print constants that belong to no enum.
22857 (print_enum_type): New function.
22858 (main): Don't pass stdout to print_md_constant. Call print_enum_type
22859 for each defined enum type.
22860 * config/mips/mips.md (processor): New define_enum.
22861 (unspec): New define_c_enum.
22862 (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
22863 (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
22864 (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
22865 (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
22866 (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
22867 (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
22868 (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
22869 (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
22870 (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
22871 (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
22872 (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
22873 (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
22874 (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
22875 (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
22876 (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
22877 (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
22878 (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
22879 (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
22880 (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
22881 (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
22882 (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
22883 (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
22884 (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
22885 (UNSPEC_RDDSP): Move to mips-dsp.md.
22886 (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
22887 (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
22888 (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
22889 (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
22890 (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
22891 (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
22892 (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
22893 (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
22894 (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
22895 (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
22896 (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
22897 (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
22898 (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
22899 Moved to mips-dspr2.md.
22900 (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
22901 (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
22902 (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
22903 (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
22904 (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
22905 (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
22906 (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
22907 (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
22908 (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
22909 (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
22910 (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
22911 UNSPEC_LOONGSON_PSADBH)
22912 (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
22913 (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
22914 (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
22915 (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
22916 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
22917 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
22918 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
22919 (cpu): Update comment.
22920 * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
22921 (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
22922 (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
22923 (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
22924 * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
22925 UNSPEC_LOONGSON_PCMPEQ)
22926 (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
22927 UNSPEC_LOONGSON_PINSR_0)
22928 (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
22929 (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
22930 (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
22931 (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
22932 (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
22933 UNSPEC_LOONGSON_PSADBH)
22934 (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
22935 (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
22936 (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
22937 * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
22938 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
22939 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
22940 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
22941 * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
22942 (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
22943 (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
22944 (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
22945 (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
22946 (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
22947 (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
22948 (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
22949 (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
22950 (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
22951 (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
22952 (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
22953 (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
22954 (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
22955 (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
22956 (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
22957 (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
22958 (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
22959 (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
22960 (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
22961 (UNSPEC_RDDSP): Moved from mips.md.
22962 * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
22963 (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
22964 (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
22965 (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
22966 (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
22967 (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
22968 (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
22969 (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
22970 (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
22971 (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
22972 (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
22973 (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
22974 (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
22975 (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
22976 * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
22977 (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
22978 (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
22979 (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
22980 (UNSPEC_SCC): Moved from mips.md.
22981 * config/mips/mips.c (mips_arch, mips_tune): Change enum from
22982 "processor_type" to "processor".
22983 (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
22984 * config/mips/mips.h (processor_type): Delete.
22985 (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
22986 "processor_type" to "processor".
22987
22988 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
22989
22990 * configure.ac (tm_include_list): Add insn-constants.h.
22991 * configure: Regenerate.
22992 * Makefile.in (GTM_H): Move insn-constants.h here from...
22993 (TM_H): ...here.
22994 * mkconfig.sh: Remove special handling for insn-constants.h.
22995
22996 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
22997
22998 * Makefile.in (BUILD_RTL): Move build/read-md.o to...
22999 (BUILD_MD): ...this new variable.
23000 (simple_generated_rtl_h, simple_generated_rtl_c): New variables
23001 that include the old contents of simple_generated_h and
23002 simple_generated_c.
23003 (simple_generated_h, simple_generated_c): Include them. Add
23004 insn-constants.h.
23005 (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
23006 and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
23007 Remove these dependencies from the main rule and include
23008 insn-conditions.md in the command line only if it appears
23009 in the dependency list.
23010 (insn-constants.h, s-constants): Delete.
23011 (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
23012 or gensupport.h.
23013 (build/genmddeps.o): Likewise.
23014 (genprogrtl): New variable that contains everything from genprogmd
23015 except mddeps and constants.
23016 (genprogmd): Redefine in terms of genprogrtl. Make these programs
23017 depend on $(BUILD_MD)
23018 (genprog): New variable. Make these programs depend on
23019 $(BUILD_ERRORS).
23020 * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
23021 (main): Use read_md_files instead of init_rtx_reader_args.
23022 * genconstants.c: As for genmddeps.c.
23023 * read-md.h (read_skip_construct): Declare.
23024 * read-md.c (read_skip_construct): New function.
23025 (handle_file): Allow a null handle_directive, skipping the
23026 construct if so.
23027 (parse_include): Update the comment accordingly.
23028
23029 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
23030
23031 * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
23032 * genmddeps.c: Include read-md.h.
23033 (main): Call init_rtx_reader_args instead of init_md_reader_args.
23034 * genattr.c (main): Likewise.
23035 * genattrtab.c (main): Likewise.
23036 * genautomata.c (main): Likewise.
23037 * gencodes.c (main): Likewise.
23038 * genconditions.c (main): Likewise.
23039 * genconfig.c (main): Likewise.
23040 * genconstants.c (main): Likewise.
23041 * genemit.c (main): Likewise.
23042 * genextract.c (main): Likewise.
23043 * genflags.c (main): Likewise.
23044 * genopinit.c (main): Likewise.
23045 * genoutput.c (main): Likewise.
23046 * genpeep.c (main): Likewise.
23047 * genrecog.c (main): Likewise.
23048 * genpreds.c (main): Likewise.
23049 * gensupport.h (in_fname): Move to read-md.h.
23050 (init_md_reader_args_cb): Rename to...
23051 (init_rtx_reader_args_cb): ...this and return a bool.
23052 (init_md_reader_args): Rename to...
23053 (init_rtx_reader_args): ...this and return a bool.
23054 (include_callback): Move to read-md.h.
23055 * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
23056 (file_name_list, first_dir_md_include): Move to read-md.c
23057 (first_bracket_include): Delete unused variable.
23058 (last_dir_md_include): Move to read-md.c.
23059 (process_include): Delete, moving code to read-md.c:handle_include.
23060 (process_rtx): Don't handle INCLUDE.
23061 (save_string): Delete.
23062 (rtx_handle_directive): New function.
23063 (init_md_reader_args_cb): Rename to...
23064 (init_rtx_reader_args_cb): ...this and return a boolean success value.
23065 Use read_md_args.
23066 (init_md_reader_args): Rename to...
23067 (init_rtx_reader_args): ...this and return a boolean success value.
23068 * rtl.def (INCLUDE): Delete.
23069 * rtl.h (read_rtx): Remove "int *" argument. Add "const char *"
23070 argument.
23071 * read-rtl.c (read_conditions): Don't gobble ')' here.
23072 (read_mapping): Likewise.
23073 (read_rtx): Remove LINENO argument. Add RTX_NAME argument.
23074 Handle top-level non-rtx constructs here rather than in read_rtx_1.
23075 Store the whole queue in *X. Remove call to init_md_reader.
23076 (read_rtx_1): Rename to...
23077 (read_rtx_code): ...this. Call read_nested_rtx to read subrtxes.
23078 Don't handle top-level non-rtx constructs here. Don't handle (nil)
23079 here.
23080 (read_nested_rtx): New function. Handle (nil) here rather than
23081 in read_rtx_code.
23082 (read_rtx_variadic): Call read_nested_rtx to read subrtxes. Don't
23083 gobble ')' here.
23084 * read-md.h (directive_handler_t): New type.
23085 (in_fname, include_callback): Moved from read-md.h.
23086 (read_constants, init_md_reader): Delete.
23087 (read_md_files): Declare.
23088 * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
23089 (last_dir_md_include_ptr, include_callback, max_include_len): Moved
23090 from gensupport.c.
23091 (read_constants): Rename to...
23092 (handle_constants): ...this. Don't gobble ')' here.
23093 (handle_include, handle_file, handle_toplevel_file)
23094 (parse_include): New functions, mostly taken from gensupport.c.
23095 (init_md_reader): Subsume into...
23096 (read_md_files): ...this new function.
23097
23098 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
23099
23100 * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
23101 (unread_char): Decrement read_md_lineno after putting back '\n'.
23102 * read-md.c (fatal_with_file_and_line): Push back any characters
23103 that we decide not to add to the context.
23104 (read_skip_spaces): Don't increment read_md_lineno here. Avoid using
23105 fatal_expected_char in cases where '/' ends a line (for example).
23106 (read_name): Don't increment read_md_lineno here.
23107 (read_escape): Likewise.
23108 (read_quoted_string): Likewise.
23109 (read_braced_string): Likewise.
23110
23111 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
23112
23113 * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
23114 (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
23115 * genconstants.c: Include read-md.h.
23116 * read-rtl.c (md_constants): Move to read-md.c.
23117 (md_name): Move to read-md.h.
23118 (initialize_iterators): Use leading_string_hash instead of def_hash
23119 and leading_string_eq_p instead of def_name_eq_p.
23120 (read_name): Move to read-md.c.
23121 (def_hash, def_name_eq_p): Delete.
23122 (read_constants, traverse_md_constants): Move to read-md.c.
23123 * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
23124 * read-md.h: Include hashtab.h.
23125 (md_name): Moved from read-rtl.c.
23126 (md_constant): Moved from read-md.h.
23127 (leading_string_hash, leading_string_eq_p, read_name)
23128 (read_constants, traverse_md_constants): Declare.
23129 * read-md.c (md_constants): Moved from read-rtl.c.
23130 (leading_string_hash, leading_string_eq_p): New functions.
23131 (read_name, read_constants, traverse_md_constants): Moved from
23132 read-rtl.c.
23133
23134 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
23135
23136 * read-rtl.c (md_name): New structure.
23137 (read_name): Take an md_name instead of a buffer pointer.
23138 Use the "string" field instead of strcpy when expanding constants.
23139 (read_constants): Remove the tmp_char argument. Update the calls
23140 to read_name, using two local name buffers instead of the tmp_char
23141 argument. Merge the constant-creation code.
23142 (read_conditions): Remove the tmp_char argument. Update the calls
23143 to read_name, using a local name buffer instead of the tmp_char
23144 argument.
23145 (read_mapping): Replace tmp_char variable with a local name buffer.
23146 Update the calls to read_name.
23147 (read_rtx_1): Likewise. Update the calls to read_constants and
23148 read_conditions.
23149
23150 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
23151
23152 * Makefile.in (build/read-md.o): Depend on errors.h.
23153 * read-md.h (error_with_line): Declare.
23154 * read-md.c: Include errors.h.
23155 (message_with_line_1): New function, extracted from...
23156 (message_with_line): ...here.
23157 (error_with_line): New function.
23158 * genattrtab.c: If a call to message_with_line is followed by
23159 "have_error = 1;", replace both statements with a call to
23160 error_with_line.
23161 * genoutput.c: Likewise.
23162 * genpreds.c: Likewise.
23163 * genrecog.c: If a call to message_with_line is followed by
23164 "error_count++;", replace both statements with a call to
23165 error_with_line.
23166 (errorcount): Delete.
23167 (main): Don't check it.
23168 * gensupport.c: If a call to message_with_line is followed by
23169 "errors = 1;", replace both statements with a call to error_with_line.
23170 (errors): Delete.
23171 (process_define_cond_exec): Check have_error instead of errors.
23172 (init_md_reader_args_cb): Likewise. Don't set errors.
23173
23174 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
23175
23176 * read-md.h (read_md_file): Declare.
23177 (read_char, unread_char): New functions.
23178 (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
23179 (read_quoted_string, read_string): Remove FILE * argument.
23180 * read-md.c (read_md_file): New variable.
23181 (read_md_filename, read_md_lineno): Update comments and remove
23182 unnecessary initialization.
23183 (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
23184 (read_escape, read_quoted_string, read_braced_string, read_string):
23185 Remove FILE * argument. Update calls accordingly, using read_char
23186 and unread_char instead of getc and ungetc.
23187 * rtl.h (read_rtx): Remove FILE * argument.
23188 * read-rtl.c (iterator_group): Remove FILE * argument from
23189 "find_builtin".
23190 (iterator_traverse_data): Remove "infile" field.
23191 (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
23192 (add_mapping, read_name, read_constants, read_conditions)
23193 (validate_const_int, find_iterator, read_mapping, check_code_iterator)
23194 (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
23195 Remove file arguments from all calls, using read_char and unread_char
23196 instead of getc and ungetc.
23197 * gensupport.c (process_include): Preserve read_md_file around
23198 the include. Set read_md_file to the handle of the included file.
23199 Update call to read_rtx.
23200 (init_md_reader_args_cb): Set read_md_file to the handle of the file
23201 and remove local FILE *. Update calls to read_rtx.
23202
23203 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
23204
23205 * read-md.h (read_rtx_lineno): Rename to...
23206 (read_md_lineno): ...this.
23207 (read_rtx_filename): Rename to...
23208 (read_md_filename): ...this.
23209 (copy_rtx_ptr_loc): Rename to...
23210 (copy_md_ptr_loc): ...this.
23211 (print_rtx_ptr_loc): Rename to...
23212 (print_md_ptr_loc): ...this.
23213 * read-md.c: Likewise. Update references after renaming.
23214 (string_obstack): Replace RTL with MD in comment.
23215 (set_rtx_ptr_loc): Rename to...
23216 (set_md_ptr_loc): ...this.
23217 (get_rtx_ptr_loc): Rename to...
23218 (get_md_ptr_loc): ...this.
23219 * genconditions.c: Update references after renaming.
23220 * genemit.c: Likewise.
23221 * genoutput.c: Likewise.
23222 * genpreds.c: Likewise.
23223 * gensupport.c: Likewise.
23224 * read-rtl.c: Likewise.
23225
23226 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
23227
23228 * Makefile.in (READ_MD_H): New variable.
23229 (BUILD_RTL): Add build/read-md.o.
23230 (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
23231 (build/gensupport.o, build/read-rtl.o, build/genattr.o)
23232 (build/genattrtab.o, build/genconditions.o build/genemit.o)
23233 (build/genextract.o, build/genflags.o, build/genoutput.o)
23234 (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
23235 (build/read-md.o): New rule.
23236 * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
23237 (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
23238 * coretypes.h: ...here.
23239 * lto-wrapper.c: Include coretypes.h instead of defaults.h.
23240 * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
23241 * genattr.c: Include read-md.h.
23242 * genattrtab.c: Likewise.
23243 * genconditions.c: Likewise.
23244 * genemit.c: Likewise.
23245 * genextract.c: Likewise.
23246 * genflags.c: Likewise.
23247 * genoutput.c: Likewise.
23248 * genpreds.c: Likewise.
23249 * genrecog.c: Likewise.
23250 * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
23251 (join_c_conditions, print_c_condition, read_rtx_filename)
23252 (read_rtx_lineno): Move to read-md.h.
23253 * read-rtl.c: Include read-md.h.
23254 (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
23255 (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
23256 (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
23257 (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
23258 (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
23259 (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
23260 (read_braced_string, read_string): Move to read-md.c.
23261 (read_rtx): Move some initialization to init_md_reader and call
23262 init_md_reader here.
23263 * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
23264 Move to read-md.h.
23265 * gensupport.c: Include read-md.h.
23266 (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
23267 * read-md.h, read-md.c: New files.
23268
23269 2010-06-10 Anatoly Sokolov <aesok@post.ru>
23270
23271 * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
23272 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
23273 * config/moxie/moxie-protos.h (moxie_function_value): Remove.
23274 * config/moxie/moxie.c (moxie_function_value): Make static.
23275 (moxie_libcall_value, moxie_function_value_regno_p): New functions.
23276 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
23277
23278 2010-06-10 Martin Jambor <mjambor@suse.cz>
23279
23280 * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
23281 * dbgcnt.def (tree_sra): New counter.
23282 * tree-sra.c: Include dbgcnt.h.
23283 (gate_intra_sra): Check tree_sra debug counter.
23284
23285 2010-06-10 Martin Jambor <mjambor@suse.cz>
23286
23287 PR tree-optimization/44258
23288 * tree-sra.c (build_access_subtree): Return false iff there is a
23289 partial overlap.
23290 (build_access_trees): Likewise.
23291 (analyze_all_variable_accesses): Disqualify candidates if
23292 build_access_trees returns true for them.
23293
23294 2010-06-10 Alexandre Oliva <aoliva@redhat.com>
23295
23296 PR debug/41371
23297 * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
23298 tail-recurse into canonical node. Fast-forward over
23299 non-canonical VALUEs.
23300
23301 2010-06-10 H.J. Lu <hongjiu.lu@intel.com>
23302
23303 PR boostrap/44470
23304 * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
23305 (*addsi_1_zext) <TYPE_LEA>: Likewise.
23306 (add lea splitter): Likewise.
23307 (add_zext lea splitter): Likewise.
23308
23309 2010-06-10 Joseph Myers <joseph@codesourcery.com>
23310
23311 * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
23312
23313 2010-06-10 Jan Hubicka <jh@suse.cz>
23314
23315 * df-problems.c (df_live_problem_data): Add live_bitmaps.
23316 (df_live_alloc): Initialize problem data and live_osbtacks.
23317 (df_live_finalize): Remove obstack, problem data; do not
23318 clear all bitmaps.
23319 (df_live_top_dump, df_live_bottom_dump): Do not dump old
23320 data when not allocated.
23321 (df_live_verify_solution_start): Do not allocate problem data.
23322 (df_live_verify_solution_end): Check if out is allocated.
23323 (struct df_md_problem_data): New structure.
23324 (df_md_alloc): Allocate problem data.
23325 (df_md_free): Free problem data; do not clear bitmaps.
23326
23327 2010-06-10 Jan Beulich <jbeulich@novell.com>
23328
23329 PR bootstrap/37304
23330 * configure.ac: Replace $() with ${} when intending to expand
23331 variables rather than invoking commands.
23332 * configure: Re-generate.
23333
23334 2010-06-10 Jan Hubicka <jh@suse.cz>
23335
23336 PR rtl-optimization/44460
23337 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
23338 TYPE_NEEDS_CONSTRUCTING sanity check.
23339
23340 2010-06-10 Gerald Pfeifer <gerald@pfeifer.com>
23341
23342 * doc/include/fdl.texi: Move to GFDL version 1.3.
23343
23344 * doc/cpp.texi: Move to GFDL version 1.3.
23345 * doc/gcc.texi: Move to GFDL version 1.3. Fix copyright years.
23346 * doc/gccint.texi: Move to GFDL version 1.3.
23347 * doc/gcov.texi: Move to GFDL version 1.3. Update copyright years.
23348 * doc/install.texi: Move to GFDL version 1.3. Fix copyright years.
23349 * doc/invoke.texi: Move to GFDL version 1.3.
23350
23351 2010-06-09 Jan Hubicka <jh@suse.cz>
23352
23353 * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
23354 Break out from ...
23355 (propagate) ... here; swap the order.
23356
23357 2010-06-09 Jan Hubicka <jh@suse.cz>
23358
23359 * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
23360 bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
23361 bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
23362 bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
23363
23364 2010-06-09 Changpeng Fang <changpeng.fang@amd.com>
23365
23366 * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
23367 Do not the gather memory reference in the outer loop if the step
23368 is not a constant.
23369
23370 2010-06-09 Changpeng Fang <changpeng.fang@amd.com>
23371
23372 * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
23373 Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
23374 8 to 4. Minor change of the related comments.
23375
23376 2010-06-09 Sebastian Pop <sebastian.pop@amd.com>
23377
23378 * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
23379 the scev analysis when the variable is not used outside the loop
23380 in a close phi node: call compute_overall_effect_of_inner_loop.
23381
23382 2010-06-09 Sebastian Pop <sebastian.pop@amd.com>
23383
23384 * graphite-sese-to-poly.c (single_pred_cond): Renamed
23385 single_pred_cond_non_loop_exit. Return NULL for loop exit edges.
23386 (build_sese_conditions_before): Renamed call to single_pred_cond.
23387 (build_sese_conditions_after): Same.
23388
23389 2010-06-09 Sebastian Pop <sebastian.pop@amd.com>
23390
23391 * graphite-poly.h: Fix comments and indentation.
23392 * graphite-sese-to-poly.c: Same.
23393 (build_sese_conditions_before): Compute stmt and gbb only when needed.
23394 * tree-chrec.c: Fix comments and indentation.
23395 (tree-ssa-loop-niter.c): Same.
23396
23397 2010-06-09 Eric Botcazou <ebotcazou@adacore.com>
23398
23399 PR rtl-optimization/42461
23400 * dce.c (deletable_insn_p): Return true for const or pure calls again.
23401 * except.c (insn_could_throw_p): Return false if !flag_exceptions.
23402
23403 2010-06-09 Jan Hubicka <jh@suse.cz>
23404
23405 * bitmap.c (bitmap_and): Walk array forward.
23406 (bitmap_and_compl_into): Likewise.
23407 (bitmap_xor): Likewise.
23408 (bitmap_xor_into): Likewise.
23409 (bitmap_equal_p): Likewise.
23410 (bitmap_intersect_p): Likewise.
23411 (bitmap_intersect_compl_p): Likewise.
23412 (bitmap_ior_and_into): Likewise.
23413 (bitmap_elt_copy): Likewise.
23414 (bitmap_and_compl): Likewise.
23415 (bitmap_elt_ior): Likewise.
23416
23417 2010-06-09 Dave Korn <dave.korn.cygwin@gmail.com>
23418
23419 * opts-common.c (prune_options): Ensure replacement argv array
23420 is correctly terminated by a NULL entry.
23421
23422 2010-06-09 Jan Hubicka <jh@suse.cz>
23423
23424 * cgraph.h (varpool_first_static_initializer,
23425 varpool_next_static_initializer): Make checking only when
23426 checking enabled.
23427 * tree-vectorizer.h (vinfo_for_stmt): Remove check.
23428 (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
23429 gcc_assert to gcc_checking_assert.
23430 * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
23431 phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
23432 op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
23433 op_iter_init_phiuse, op_iter_init_phidef,
23434 array_ref_contains_indirect_ref, ref_contains_array_ref): Use
23435 gcc_checking_assert.
23436 * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
23437 * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
23438 partition_is_global, live_on_entry, live_on_exit,
23439 live_merge_and_clear): Likewise.
23440 * system.h (gcc_checking_assert): New macro.
23441 * gimple.h (set_bb_seq): Use gcc_checking_assert.
23442
23443 2010-06-09 Jason Merrill <jason@redhat.com>
23444
23445 * Makefile.in (TAGS): Collect tags info from c-family.
23446
23447 2010-06-09 Jan Hubicka <jh@suse.cz>
23448
23449 * gimple.h (gcc_gimple_checking_assert): New macro.
23450 (gimple_set_def_ops, gimple_set_use_ops,
23451 gimple_set_vuse, gimple_set_vdef,
23452 gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
23453 gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
23454 gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
23455 gimple_asm_output_op, gimple_asm_output_op_ptr,
23456 gimple_asm_set_output_op, gimple_asm_clobber_op,
23457 gimple_asm_set_clobber_op, gimple_asm_label_op,
23458 gimple_asm_set_label_op, gimple_try_set_kind,
23459 gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
23460 gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
23461 gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
23462 gimple_omp_for_index_ptr, gimple_omp_for_set_index,
23463 gimple_omp_for_initial, gimple_omp_for_initial_ptr,
23464 gimple_omp_for_set_initial, gimple_omp_for_final,
23465 gimple_omp_for_final_ptr, gimple_omp_for_set_final,
23466 gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
23467 gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
23468 conditional with ENABLE_GIMPLE_CHECKING.
23469 (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
23470
23471 2010-06-09 Sandra Loosemore <sandra@codesourcery.com>
23472
23473 * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
23474 (get_computation_cost_at): Use it.
23475 (determine_use_iv_cost_condition): Likewise.
23476 (determine_iv_cost): Likewise.
23477
23478 2010-06-09 Richard Guenther <rguenther@suse.de>
23479
23480 * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
23481 replace constants.
23482
23483 2010-06-09 Kai Tietz <kai.tietz@onevision.com>
23484
23485 * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
23486
23487 2010-06-09 Martin Jambor <mjambor@suse.cz>
23488
23489 PR tree-optimization/44423
23490 * tree-sra.c (dump_access): Dump also grp_assignment_read.
23491 (analyze_access_subtree): Pass negative allow_replacements to children
23492 if the current type is scalar.
23493
23494 2010-06-09 Joern Rennecke <joern.rennecke@embecosm.com>
23495
23496 PR testsuite/42843
23497 * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
23498 * doc/plugins.texi (Plugin license check): Update information
23499 on type of plugin_is_GPL_compatible.
23500 * Makefile.in (PLUGINCC): Define as $(COMPILER).
23501 (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
23502
23503 2010-06-09 Bernd Schmidt <bernds@codesourcery.com>
23504
23505 * config/arm/arm.c (thumb2_reorg): New function.
23506 (arm_reorg): Call it.
23507 * config/arm/thumb2.md (define_peephole2 for flag clobbering
23508 arithmetic operations): Delete.
23509
23510 2010-06-09 Edmar Wienskoski <edmar@freescale.com>
23511
23512 PR target/44067
23513 * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
23514 e500v2 target.
23515
23516 2010-06-09 Joern Rennecke <joern.rennecke@embecosm.com>
23517
23518 PR plugins/44459
23519 * gcc-plugin.h: Encapsulate all declarations in extern "C".
23520
23521 2010-06-08 Jan Hubicka <jh@suse.cz>
23522
23523 * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
23524 ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
23525
23526 2010-06-08 Sandra Loosemore <sandra@codesourcery.com>
23527
23528 PR tree-optimization/39874
23529 PR middle-end/28685
23530 * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
23531 Declare.
23532 * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
23533 same_bool_result_p): New.
23534 (and_var_with_comparison, and_var_with_comparison_1,
23535 and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
23536 (or_var_with_comparison, or_var_with_comparison_1,
23537 or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
23538 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
23539 maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
23540 of combine_comparisons.
23541 * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
23542
23543 2010-06-08 Anatoly Sokolov <aesok@post.ru>
23544
23545 * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
23546 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
23547 * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
23548 pdp11_function_value_regno_p): New functions.
23549 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
23550 TARGET_FUNCTION_VALUE_REGNO_P): Define.
23551
23552 2010-06-08 Kazu Hirata <kazu@codesourcery.com>
23553
23554 * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
23555 Thumb-2 in the MINUS case.
23556
23557 2010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
23558
23559 * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
23560
23561 * doc/gty.texi (GTY Options): Document typed GC allocation and
23562 variable_size GTY option.
23563
23564 * ggc-internal.h: New.
23565
23566 * ggc.h: Update copyright year.
23567 (digit_string): Move to stringpool.c.
23568 (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
23569 (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
23570 (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
23571 (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
23572 (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
23573 (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
23574 (ggc_force_collect, ggc_get_size, ggc_statistics)
23575 (ggc_print_common_statistics): Move to ggc-internal.h.
23576 (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
23577 (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
23578 (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
23579 (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
23580 (ggc_min_heapsize_heuristic, ggc_alloc_zone)
23581 (ggc_alloc_zone_pass_stat): Remove.
23582 (ggc_internal_alloc_stat, ggc_internal_alloc)
23583 (ggc_internal_cleared_alloc_stat): New.
23584 (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
23585 (ggc_internal_vec_alloc_stat)
23586 (ggc_internal_cleared_vec_alloc_stat)
23587 (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
23588 (ggc_alloc_atomic_stat, ggc_alloc_atomic)
23589 (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
23590 (ggc_cleared_alloc_ptr_array_two_args): New.
23591 (htab_create_ggc, splay_tree_new_ggc): Redefine.
23592 (ggc_splay_alloc): Change the type of the first argument to
23593 enum gt_types_enum.
23594 (ggc_alloc_string): Make macro.
23595 (ggc_alloc_string_stat): New.
23596 (ggc_strdup): Redefine.
23597 (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
23598 (ggc_alloc_rtvec_sized): New.
23599 (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
23600 (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
23601 (ggc_internal_cleared_alloc_zone_stat)
23602 (ggc_internal_zone_alloc_stat)
23603 (ggc_internal_zone_cleared_alloc_stat)
23604 (ggc_internal_zone_vec_alloc_stat)
23605 (ggc_alloc_zone_rtx_def_stat)
23606 (ggc_alloc_zone_tree_node_stat)
23607 (ggc_alloc_zone_cleared_tree_node_stat)
23608 (ggc_alloc_cleared_gimple_statement_d_stat): New.
23609
23610 * ggc-common.c: Include ggc-internal.h.
23611 (ggc_internal_cleared_alloc_stat): Rename from
23612 ggc_alloc_cleared_stat.
23613 (ggc_realloc_stat): Use ggc_internal_alloc_stat.
23614 (ggc_calloc): Remove.
23615 (ggc_cleared_alloc_htab_ignore_args): New.
23616 (ggc_cleared_alloc_ptr_array_two_args): New.
23617 (ggc_splay_alloc): Add obj_type parameter.
23618 (init_ggc_heuristics): Formatting fixes.
23619
23620 * ggc-none.c: Update copyright year.
23621 (ggc_alloc_stat): Rename to ggc_alloc_stat.
23622 (ggc_alloc_cleared_stat): Rename to
23623 ggc_internal_cleared_alloc_stat.
23624 (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
23625
23626 * ggc-page.c: Update copyright year. Include ggc-internal.h.
23627 Remove references to ggc_alloc in comments.
23628 (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
23629 (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
23630 (new_ggc_zone, destroy_ggc_zone): Remove.
23631 (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
23632
23633 * ggc-zone.c: Include ggc-internal.h. Remove references to
23634 ggc_alloc in comments.
23635 (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
23636 (ggc_internal_alloc_zone_pass_stat): New.
23637 (ggc_internal_cleared_alloc_zone_stat): New.
23638 (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
23639 (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
23640 (new_ggc_zone, destroy_ggc_zone): Remove.
23641
23642 * stringpool.c: Update copyright year. Include ggc-internal.h
23643 (digit_vector): Make static.
23644 (digit_string): Moved from ggc.h.
23645 (stringpool_ggc_alloc): Use ggc_alloc_atomic.
23646 (ggc_alloc_string): Rename to ggc_alloc_string_stat.
23647
23648 * Makefile.in (GGC_INTERNAL_H): New.
23649 (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
23650 $(GGC_INTERNAL_H) to dependencies.
23651
23652 * gentype.c: Update copyright year.
23653 (walk_type): Accept variable_size GTY option.
23654 (USED_BY_TYPED_GC_P): New macro.
23655 (write_enum_defn): Use USED_BY_TYPED_GC_P. Do not output
23656 whitespace at the end of strings.
23657 (get_type_specifier, variable_size_p): New functions.
23658 (alloc_quantity, alloc_zone): New enums.
23659 (write_typed_alloc_def): New function.
23660 (write_typed_struct_alloc_def): Likewise.
23661 (write_typed_typed_typedef_alloc_def): Likewise.
23662 (write_typed_alloc_defns): Likewise.
23663 (output_typename, write_splay_tree_allocator_def): Likewise.
23664 (write_splay_tree_allocators): Likewise.
23665 (main): Call write_typed_alloc_defns and
23666 write_splay_tree_allocators.
23667
23668 * lto-streamer.h (lto_file_decl_data_ptr): New.
23669
23670 * passes.c (order): Define using cgraph_node_ptr.
23671
23672 * strinpool.c (struct string_pool_data): Declare nested_ptr using
23673 ht_identifier_ptr.
23674
23675 * gimple.h (union gimple_statement_d): Likewise.
23676
23677 * rtl.h (struct rtx_def): Likewise.
23678 (struct rtvec_def): Likewise.
23679
23680 * tree.h (union tree_node): Likewise.
23681
23682 * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
23683
23684 * cfgloop.c (record_loop_exits): Use htab_create_ggc.
23685
23686 * tree-scalar-evolution.c (scev_initialize): Likewise.
23687
23688 * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
23689
23690 * dwarf2asm.c (dw2_force_const_mem): Likewise.
23691
23692 * omp-low.c (lower_omp_critical): Likewise.
23693
23694 * bitmap.h (struct bitmap_head_def): Update comment to not
23695 reference ggc_alloc.
23696
23697 * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
23698
23699 * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
23700
23701 * ipa-prop.c (duplicate_ggc_array): Rename to
23702 duplicate_ipa_jump_func_array. Use typed GC allocation.
23703 (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
23704
23705 * gimple.c (gimple_alloc_stat): Use
23706 ggc_alloc_cleared_gimple_statement_d_stat.
23707
23708 * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
23709
23710 * tree.c (make_node_stat): Use
23711 ggc_alloc_zone_cleared_tree_node_stat.
23712 (make_tree_vec_stat): Likewise.
23713 (build_vl_exp_stat): Likewise.
23714 (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
23715 (make_tree_binfo_stat): Likewise.
23716 (tree_cons_stat): Likewise.
23717
23718 * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
23719 (shallow_copy_rtx_stat): Likewise.
23720 (make_node_stat): Likewise.
23721
23722 * lto-symtab.c: Fix comment.
23723
23724 * tree-cfg.c (create_bb): Update comment to not reference
23725 ggc_alloc_cleared.
23726 * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
23727
23728 * varpool.c (varpool_node): Use typed GC allocation.
23729 (varpool_extra_name_alias): Likewise.
23730
23731 * varasm.c (emutls_decl): Likewise.
23732 (get_unnamed_section): Likewise.
23733 (get_noswitch_section): Likewise.
23734 (get_section): Likewise.
23735 (get_block_for_section): Likewise.
23736 (build_constant_desc): Likewise.
23737 (create_constant_pool): Likewise.
23738 (force_const_mem): Likewise.
23739
23740 * tree.c (build_vl_exp_stat): Likewise.
23741 (build_real): Likewise.
23742 (build_string): Likewise.
23743 (decl_debug_expr_insert): Likewise.
23744 (decl_value_expr_insert): Likewise.
23745 (type_hash_add): Likewise.
23746 (build_omp_clause): Likewise.
23747
23748 * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
23749
23750 * tree-ssa.c (init_tree_ssa): Likewise.
23751
23752 * tree-ssa-structalias.c (heapvar_insert): Likewise.
23753
23754 * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
23755
23756 * tree-ssa-loop-niter.c (record_estimate): Likewise.
23757
23758 * tree-ssa-alias.c (get_ptr_info): Likewise.
23759
23760 * tree-scalar-evolution.c (new_scev_info_str): Likewise.
23761
23762 * tree-phinodes.c (allocate_phi_node): Likewise.
23763
23764 * tree-iterator.c (tsi_link_before): Likewise.
23765 (tsi_link_after): Likewise.
23766
23767 * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
23768
23769 * tree-dfa.c (create_var_ann): Likewise.
23770
23771 * tree-cfg.c (create_bb): Likewise.
23772
23773 * toplev.c (alloc_for_identifier_to_locale): Likewise.
23774 (general_init): Likewise.
23775
23776 * stringpool.c (stringpool_ggc_alloc): Likewise.
23777 (gt_pch_save_stringpool): Likewise.
23778
23779 * sese.c (if_region_set_false_region): Likewise.
23780
23781 * passes.c (do_per_function_toporder): Likewise.
23782
23783 * optabs.c (set_optab_libfunc): Likewise.
23784 (set_conv_libfunc): Likewise.
23785
23786 * lto-symtab.c (lto_symtab_register_decl): Likewise.
23787
23788 * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
23789 (input_eh_region): Likewise.
23790 (input_eh_lp): Likewise.
23791 (make_new_block): Likewise.
23792 (unpack_ts_real_cst_value_fields): Likewise.
23793
23794 * lto-section-in.c (lto_new_in_decl_state): Likewise.
23795
23796 * lto-cgraph.c (input_node_opt_summary): Likewise.
23797
23798 * loop-init.c (loop_optimizer_init): Likewise.
23799
23800 * lambda.h (lambda_vector_new): Likewise.
23801
23802 * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
23803
23804 * ira.c (update_equiv_regs): Likewise.
23805
23806 * ipa.c (cgraph_node_set_new): Likewise.
23807 (cgraph_node_set_add): Likewise.
23808 (varpool_node_set_new): Likewise.
23809 (varpool_node_set_add): Likewise.
23810
23811 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
23812 (duplicate_ipa_jump_func_array): Likewise.
23813 (ipa_read_node_info): Likewise.
23814
23815 * ipa-cp.c (ipcp_create_replace_map): Likewise.
23816
23817 * integrate.c (get_hard_reg_initial_val): Likewise.
23818
23819 * gimple.c (gimple_alloc_stat): Likewise.
23820 (gimple_build_omp_for): Likewise.
23821 (gimple_seq_alloc): Likewise.
23822 (gimple_copy): Likewise.
23823
23824 * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
23825 (gsi_insert_after_without_update): Likewise.
23826
23827 * function.c (add_frame_space): Likewise.
23828 (insert_temp_slot_address): Likewise.
23829 (assign_stack_temp_for_type): Likewise.
23830 (allocate_struct_function): Likewise.
23831 (types_used_by_var_decl_insert): Likewise.
23832
23833 * except.c (init_eh_for_function): Likewise.
23834 (gen_eh_region): Likewise.
23835 (gen_eh_region_catch): Likewise.
23836 (gen_eh_landing_pad): Likewise.
23837 (add_call_site): Likewise.
23838
23839 * emit-rtl.c (get_mem_attrs): Likewise.
23840 (get_reg_attrs): Likewise.
23841 (start_sequence): Likewise.
23842 (init_emit): Likewise.
23843
23844 * dwarf2out.c (new_cfi): Likewise.
23845 (queue_reg_save): Likewise.
23846 (dwarf2out_frame_init): Likewise.
23847 (new_loc_descr): Likewise.
23848 (find_AT_string): Likewise.
23849 (new_die): Likewise.
23850 (add_var_loc_to_decl): Likewise.
23851 (clone_die): Likewise.
23852 (clone_as_declaration): Likewise.
23853 (break_out_comdat_types): Likewise.
23854 (new_loc_list): Likewise.
23855 (loc_descriptor): Likewise.
23856 (add_loc_descr_to_each): Likewise.
23857 (add_const_value_attribute): Likewise.
23858 (tree_add_const_value_attribute): Likewise.
23859 (add_comp_dir_attribute): Likewise.
23860 (add_name_and_src_coords_attributes): Likewise.
23861 (lookup_filename): Likewise.
23862 (store_vcall_insn): Likewise.
23863 (dwarf2out_init): Likewise.
23864
23865 * dbxout.c (dbxout_init): Likewise.
23866
23867 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
23868
23869 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
23870
23871 * config/score/score7.c (score7_output_external): Likewise.
23872
23873 * config/score/score3.c (score3_output_external): Likewise.
23874
23875 * config/s390/s390.c (s390_init_machine_status): Likewise.
23876
23877 * config/rs6000/rs6000.c (builtin_function_type): Likewise.
23878 (rs6000_init_machine_status): Likewise.
23879 (output_toc): Likewise.
23880
23881 * config/pa/pa.c (pa_init_machine_status): Likewise.
23882 (get_deferred_plabel): Likewise.
23883
23884 * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
23885
23886 * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
23887
23888 * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
23889
23890 * config/mep/mep.c (mep_init_machine_status): Likewise.
23891 (mep_note_pragma_flag): Likewise.
23892
23893 * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
23894
23895 * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
23896
23897 * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
23898
23899 * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
23900 (i386_pe_maybe_record_exported_symbol): Likewise.
23901
23902 * config/i386/i386.c (get_dllimport_decl): Likewise.
23903 (ix86_init_machine_status): Likewise.
23904 (assign_386_stack_local): Likewise.
23905
23906 * config/frv/frv.c (frv_init_machine_status): Likewise.
23907
23908 * config/darwin.c (machopic_indirection_name): Likewise.
23909
23910 * config/cris/cris.c (cris_init_machine_status): Likewise.
23911
23912 * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
23913
23914 * config/avr/avr.c (avr_init_machine_status): Likewise.
23915
23916 * config/arm/arm.c (arm_init_machine_status): Likewise.
23917
23918 * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
23919 (alpha_need_linkage): Likewise.
23920 (alpha_use_linkage): Likewise.
23921
23922 * cgraph.c (cgraph_allocate_node): Likewise.
23923 (cgraph_create_edge_1): Likewise.
23924 (cgraph_create_indirect_edge): Likewise.
23925 (cgraph_add_asm_node): Likewise.
23926
23927 * cfgrtl.c (init_rtl_bb_info): Likewise.
23928
23929 * cfgloop.c (alloc_loop): Likewise.
23930 (rescan_loop_exit): Likewise.
23931
23932 * cfg.c (init_flow): Likewise.
23933 (alloc_block): Likewise.
23934 (unchecked_make_edge): Likewise.
23935
23936 * c-parser.c (c_parse_init): Likewise.
23937 (c_parse_file): Likewise.
23938
23939 * c-decl.c (bind): Likewise.
23940 (record_inline_static): Likewise.
23941 (push_scope): Likewise.
23942 (make_label): Likewise.
23943 (lookup_label_for_goto): Likewise.
23944 (finish_struct): Likewise.
23945 (finish_enum): Likewise.
23946 (c_push_function_context): Likewise.
23947
23948 * bitmap.c (bitmap_element_allocate): Likewise.
23949 (bitmap_gc_alloc_stat): Likewise.
23950
23951 * alias.c (record_alias_subset): Likewise.
23952 (init_alias_analysis): Likewise.
23953
23954 2010-06-08 Shujing Zhao <pearly.zhao@oracle.com>
23955
23956 * fold-const.c (fold_comparison): Remove redundant parenthesis.
23957 * tree-inline.c (expand_call_inline): Pass translated return value of
23958 cgraph_inline_failed_string to diagnostic function.
23959
23960 2010-06-08 Andrew Pinski <pinskia@gmail.com>
23961 Shujing Zhao <pearly.zhao@oracle.com>
23962
23963 PR c/37724
23964 * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
23965 implicit bad conversions is initialization.
23966 (error_init): Use gmsgid instead of msgid for argument name and change
23967 the call for error.
23968 (pedwarn_init): Use gmsgid instead of msgid for argument name and
23969 change the call for pedwarn.
23970 (warning_init): Use gmsgid instead of msgid for argument name and
23971 change the call for warning.
23972
23973 2010-06-07 Nathan Froyd <froydnj@codesourcery.com>
23974
23975 * config/mips/mips-protos.h (mips_print_operand): Delete.
23976 (mips_print_operand_address): Delete.
23977 * config/mips/mips.h (mips_print_operand_punct): Delete.
23978 (PRINT_OPERAND): Delete.
23979 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23980 (PRINT_OPERAND_ADDRESS): Delete.
23981 * config/mips/mips.c (mips_print_operand_punct): Make static.
23982 (mips_print_operand_address): Make static.
23983 (mips_print_operand): Make static. Call
23984 mips_print_operand_punct_valid_p.
23985 (mips_print_operand_punct_valid_p): New function.
23986 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23987 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23988
23989 2010-06-07 Jan Hubicka <jh@suse.cz>
23990
23991 PR middle-end/44454
23992 (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
23993 are allocated.
23994
23995 2010-06-07 Kaz Kojima <kkojima@gcc.gnu.org>
23996
23997 * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
23998 name of RECORD.
23999
24000 2010-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24001
24002 * doc/sourcebuild.texi (Effective-Target Keywords, Other
24003 attributes): Document gas.
24004
24005 2010-06-07 Uros Bizjak <ubizjak@gmail.com>
24006
24007 * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
24008 <TYPE_LEA>: Split instruction.
24009 <default>: Remove alternative 2 handling.
24010 (*addsi_1_zext) <TYPE_LEA>: Split instruction.
24011 (add lea splitter): Generate SImode lea for mode sizes <= SImode.
24012 (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
24013
24014 (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
24015 (ashift_zext lea splitter): Use DImode for multiplication.
24016
24017 * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
24018 to generate addition.
24019
24020 2010-06-07 Joseph Myers <joseph@codesourcery.com>
24021
24022 * common.opt (fira-verbose): Use Var.
24023 (fpcc-struct-return): Use Init instead of VarExists.
24024 * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
24025 toplev.c.
24026 * flags.h (flag_signed_char, flag_short_enums,
24027 flag_pcc_struct_return, flag_ira_verbose,
24028 flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
24029 * toplev.c (flag_detailed_statistics, flag_signed_char,
24030 flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
24031 (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
24032 * toplev.h (flag_crossjumping, flag_if_conversion,
24033 flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
24034 flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
24035 flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
24036 flag_cprop_registers, time_report, flag_ira_loop_pressure,
24037 flag_ira_coalesce, flag_ira_move_spills,
24038 flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
24039
24040 2010-06-07 Jan Hubicka <jh@suse.cz>
24041
24042 * df-core.c (df_analyze_problem): Do verification after allocation.
24043
24044 * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
24045 (df_lr_alloc): Initialize problem data; move bitmaps to
24046 lr_bitmaps obstack.
24047 (df_lr_finalize): Free problem data; do not bother to free bitmaps.
24048 (df_lr_verify_solution_start): Do not initialize problem data;
24049 allocate bitmaps in lr_bitmaps.
24050 (df_lr_verify_solution_end): Do not free problem data.
24051
24052 2010-06-07 Jan Hubicka <jh@suse.cz>
24053
24054 * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
24055 if caller is noreturn.
24056 * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
24057 * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
24058 * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
24059 * ipa-pure-const.c (check_decl): Add IPA parameter.
24060 (state_from_flags): New function.
24061 (better_state, worse_state): New functions.
24062 (check_call): When in IPA mode, do not care about callees.
24063 (check_load, check_store): Update.
24064 (check_ipa_load, check_ipa_store): New.
24065 (check_stmt): When in IPA mode, use IPA checkers.
24066 (analyze_function): Use state_from_flags.
24067 (propagate): Check indirect edges and references.
24068
24069 2010-06-07 Kazu Hirata <kazu@codesourcery.com>
24070
24071 PR rtl-optimization/44404
24072 * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
24073 of count_occurrences to see if it's safe to modify mem_insn.
24074
24075 2010-06-07 Richard Guenther <rguenther@suse.de>
24076
24077 * gimplify.c (gimplify_cleanup_point_expr): For empty body
24078 and EH-only cleanup drop the cleanup instead of inserting it
24079 unconditionally.
24080
24081 2010-06-07 Ira Rosen <irar@il.ibm.com>
24082
24083 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
24084 documentation.
24085 * targhooks.c (default_builtin_vectorization_cost): New function.
24086 * targhooks.h (default_builtin_vectorization_cost): Declare.
24087 * target.h (enum vect_cost_for_stmt): Define.
24088 (builtin_vectorization_cost): Change argument and comment.
24089 * tree-vectorizer.h: Remove cost model macros.
24090 * tree-vect-loop.c: Include target.h.
24091 (vect_get_cost): New function.
24092 (vect_estimate_min_profitable_iters): Replace cost model macros with
24093 calls to vect_get_cost.
24094 (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
24095 * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
24096 default implementation.
24097 * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
24098 calls to target hook builtin_vectorization_cost.
24099 (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
24100 Likewise.
24101 * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
24102 * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
24103 implementation to return costs.
24104 * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
24105 * config/spu/spu.h: Remove vectorizer cost model macros.
24106 * config/i386/i386.h: Likewise.
24107 * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
24108 a call to target hook builtin_vectorization_cost.
24109
24110 2010-06-06 Sriraman Tallam <tmsriram@google.com>
24111
24112 PR target/44319
24113 * config/i386/i386.c (override_options): Turn zee pass on for level 2
24114 and above and defer till target is known.
24115 (optimization_options): Turn on zee pass if TARGET_64BIT is set and
24116 turn off otherwise.
24117
24118 2010-05-25 Jan Hubicka <jh@suse.cz>
24119
24120 * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
24121 (df_compact_blocks): Likewise.
24122 * df.h (struct df): Turn hardware_regs_used,
24123 regular_block_artificial_uses, eh_block_artificial_uses,
24124 insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
24125 bitmap_head.
24126 * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
24127 df_byte_lr_alloc, df_simulate_fixup_sets): Update.
24128 * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
24129 df_scan_blocks, df_insn_delete, df_insn_rescan,
24130 df_insn_rescan_debug_internal, df_insn_rescan_all,
24131 df_process_deferred_rescans, df_process_deferred_rescans,
24132 df_notes_rescan, df_get_call_refs, df_get_call_refs,
24133 regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
24134 df_record_entry_block_defs, df_record_exit_block_uses,
24135 df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
24136 df_scan_verify): Update.
24137
24138 2010-05-25 Dodji Seketeli <dodji@redhat.com>
24139
24140 PR c++/44188
24141 * c-common.c (is_typedef_decl): Move this definition ...
24142 * tree.c (is_typedef_decl): ... here.
24143 (typdef_variant_p): Move definition here from cp/tree.c.
24144 * c-common.h (is_typedef_decl): Move this declaration ...
24145 * tree.h (is_typedef_decl): ... here.
24146 (typedef_variant_p): Move declaration here from cp/cp-tree.h
24147 * dwarf2out.c (is_naming_typedef_decl): New function.
24148 (gen_tagged_type_die): Split out of ...
24149 (gen_type_die_with_usage): ... this function. When an anonymous
24150 tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
24151 is emitted for the typedef.
24152 (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
24153 anonymous tagged types.
24154
24155 2010-06-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
24156
24157 PR c/20000
24158 * c-decl.c (grokdeclarator): Delete warning.
24159
24160 2010-06-06 Eric Botcazou <ebotcazou@adacore.com>
24161
24162 * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
24163 newly built CALL_EXPR.
24164 * tree-profile.c (tree_profiling): Don't profile functions produced
24165 for built-in stuff.
24166
24167 2010-06-06 Segher Boessenkool <segher@kernel.crashing.org>
24168
24169 PR bootstrap/44427
24170 PR bootstrap/44428
24171 * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
24172 endianness-independent.
24173
24174 2010-06-05 Steven Bosscher <steven@gcc.gnu.org>
24175
24176 * c-common.c: Move to c-family/.
24177 * c-common.def: Likewise.
24178 * c-common.h: Likewise.
24179 * c-cppbuiltin.c: Likewise.
24180 * c-dump.c: Likewise.
24181 * c-format.c: Likewise.
24182 * c-format.h : Likewise.
24183 * c-gimplify.c: Likewise.
24184 * c-lex.c: Likewise.
24185 * c-omp.c: Likewise.
24186 * c.opt: Likewise.
24187 * c-opts.c: Likewise.
24188 * c-pch.c: Likewise.
24189 * c-ppoutput.c: Likewise.
24190 * c-pragma.c: Likewise.
24191 * c-pragma.h: Likewise.
24192 * c-pretty-print.c: Likewise.
24193 * c-pretty-print.h: Likewise.
24194 * c-semantics.c: Likewise.
24195 * stub-objc.c: Likewise.
24196
24197 * gengtype.c (get_file_langdir): Special-case files in c-family/.
24198 (get_output_file_with_visibility): Fix name for c-common.h.
24199 * c-config-lang.in: Update paths in gtfiles for files in c-family/.
24200
24201 * c-tree.h: Update include path for moved files.
24202 * c-lang.c: Likewise.
24203 * c-lang.h: Likewise.
24204 * c-parser.c: Likewise.
24205 * c-convert.c: Likewise.
24206 * c-decl.c: Likewise.
24207 * c-objc-common.c: Likewise.
24208 * configure.ac: Make sure c-family/ exists in the build directory.
24209 * configure: Regenerate.
24210 * Makefile.in: Update paths for moved files. Regroup files per
24211 location and update dependencies. Move generated_files down after
24212 ALL_GTFILES_H.
24213
24214 * config/spu/spu-c.c: Update paths for moved files.
24215 * config/mep/mep-pragma.c: Likewise.
24216 * config/darwin-c.c: Likewise.
24217 * config/i386/msformat-c.c: Likewise.
24218 * config/i386/i386-c.c: Likewise.
24219 * config/avr/avr-c.c: Likewise.
24220 * config/sol2-c.c: Likewise.
24221 * config/ia64/ia64-c.c: Likewise.
24222 * config/rs6000/rs6000-c.c: Likewise.
24223 * config/arm/arm.c: Likewise.
24224 * config/arm/arm-c.c: Likewise.
24225 * config/h8300/h8300.c: Likewise.
24226 * config/v850/v850-c.c: Likewise.
24227
24228 * config/t-darwin: Fix dependencies for moved files.
24229 * config/t-sol2: Fix dependencies for moved files.
24230 * config/mep/t-mep: Fix dependencies for moved files.
24231 * config/ia64/t-ia64: Fix dependencies for moved files.
24232 * config/rs6000/t-rs6000: Fix dependencies for moved files.
24233 * config/v850/t-v850: Fix dependencies for moved files.
24234 * config/v850/t-v850e: Fix dependencies for moved files.
24235
24236 * config/m32c/m32c-pragma.c
24237
24238 * po/exgettext: Look in c-family/ also.
24239
24240 2010-06-05 Eric Botcazou <ebotcazou@adacore.com>
24241
24242 * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
24243 (mark_control_dependent_edges_necessary): Call it instead of marking
24244 the last statement manually.
24245 (propagate_necessity): Likewise.
24246
24247 2010-06-05 Jan Hubicka <jh@suse.cz>
24248
24249 * basic-block.h (compute_dominance_frontiers): Updated.
24250 (compute_idf): Likewise.
24251
24252 * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
24253 for dominance frontiers.
24254 (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
24255 (insert_updated_phi_nodes_for): Likewise.
24256 (update_ssa): Likewise.
24257 * cfganal.c (compute_dominance_frontiers_1): Likewise.
24258 (compute_dominance_frontiers): Likewise.
24259 (compute_idf): Likewise.
24260 * df-problems.c (df_md_local_compute): Likewise.
24261
24262 2010-06-05 Anatoly Sokolov <aesok@post.ru>
24263
24264 * target.h (struct gcc_target): Add memory_move_cost field.
24265 * target-def.h (TARGET_MEMORY_MOVE_COST): New.
24266 (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
24267 * targhooks.c (default_memory_move_cost): New function.
24268 * targhooks.h (default_memory_move_cost): Declare function.
24269 * reload.h (memory_move_cost): Declare.
24270 (memory_move_secondary_cost): Change type of 'in' argument to bool.
24271 * reginfo.c (memory_move_cost): New function.
24272 (memory_move_secondary_cost): Change type of 'in' argument to bool.
24273 * ira.h (ira_memory_move_cost): Update comment.
24274 * ira.c (ira_memory_move_cost): Update comment.
24275 (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
24276 with memory_move_cost.
24277 * postreload.c (reload_cse_simplify_set): (Ditto.).
24278 * reload1.c (choose_reload_regs): (Ditto.).
24279 * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
24280 (MEMORY_MOVE_COST): Revise documentation.
24281
24282 * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
24283 * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
24284 * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
24285 type of 'in' argument to bool.
24286 (TARGET_MEMORY_MOVE_COST): Define.
24287
24288 2010-06-05 Jan Hubicka <jh@suse.cz>
24289
24290 * ipa-pure-const.c (propagate): Fix typo in handling of functions
24291 that cannot return. Be more careful when merging the results with
24292 previously known ones.
24293
24294 2010-06-05 Matthias Klose <doko@ubuntu.com>
24295
24296 * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
24297 function to add the -iplugindir option.
24298 (find_plugindir_spec_function): Add new declaration and function.
24299 (static_spec_func): Use it for "find-plugindir".
24300
24301 2010-06-05 Jakub Jelinek <jakub@redhat.com>
24302
24303 PR c++/44361
24304 * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
24305 * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
24306 statement expression.
24307
24308 2010-06-05 Jan Hubicka <jh@suse.cz>
24309
24310 * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
24311 (df_rd_problem_data): Convert sparse_invalidated_by_call,
24312 dense_invalidated_by_call to bitmap head.
24313 (df_rd_alloc, df_rd_bb_local_compute_process_def,
24314 df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
24315 df_rd_start_dump, df_lr_verify_transfer_functions,
24316 df_live_verify_transfer_functions, df_chain_create_bb,
24317 df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
24318 df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
24319 df_simulate_one_insn_forwards, df_md_alloc,
24320 df_md_bb_local_compute_process_def,
24321 df_md_bb_local_compute_process_def, df_md_local_compute,
24322 df_md_transfer_function df_md_free): Update.
24323
24324 2010-06-05 Joseph Myers <joseph@codesourcery.com>
24325
24326 PR c/44322
24327 * c-typeck.c (build_unary_op): Merge qualifiers into pointer
24328 target type for ADDR_EXPR; require no changes to qualifiers except
24329 for function types.
24330 * c-tree.h (c_build_type_variant): Remove.
24331
24332 2010-06-05 Segher Boessenkool <segher@kernel.crashing.org>
24333
24334 * genautomata.c (get_excl_set): Do work per element, not per char.
24335 (check_presence_pattern_sets): Similar.
24336 (check_absence_pattern_sets): Similar.
24337
24338 2010-06-05 Segher Boessenkool <segher@kernel.crashing.org>
24339
24340 * genautomata.c (curr_state_pass_num): Delete.
24341 (min_issue_delay_pass_states): Delete.
24342 (min_issue_delay): Delete.
24343 (initiate_min_issue_delay_pass_states): Delete.
24344 (output_min_issue_delay_table): Compute min_issue_delay_vect
24345 using a breadth-first search variant.
24346 (output_tables): Don't call initiate_min_issue_delay_pass_states.
24347
24348 2010-06-04 H.J. Lu <hongjiu.lu@intel.com>
24349
24350 PR boostrap/44421
24351 * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
24352 (df_byte_lr_bb_local_compute): Likewise.
24353
24354 2010-06-03 Jason Merrill <jason@redhat.com>
24355
24356 Implement noexcept operator (5.3.7)
24357 * c-common.c (c_common_reswords): Add noexcept.
24358 * c-common.h (enum rid): Add RID_NOEXCEPT.
24359
24360 2010-06-04 Joseph Myers <joseph@codesourcery.com>
24361
24362 * config/darwin-driver.c (darwin_default_min_version): Use
24363 GCC-specific formats in diagnostics.
24364 * cppspec.c (lang_specific_driver): Use GCC-specific formats in
24365 diagnostics.
24366 * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
24367 execute, process_command, end_going_arg, do_self_spec, do_spec_1,
24368 eval_spec_function, handle_braces, process_brace_body, main,
24369 perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
24370 getenv_spec_function, compare_version_strings,
24371 version_compare_spec_function): Use GCC-specific formats in
24372 diagnostics.
24373
24374 2010-06-04 Uros Bizjak <ubizjak@gmail.com>
24375
24376 * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
24377 that operand 0 and operand 1 are equal.
24378 (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
24379 (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
24380 and operand 1 are equal.
24381 <default>: Ditto. Remove ??? comment.
24382 (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
24383 and operand 1 are equal.
24384 <default>: Ditto. Remove ??? comment.
24385 (*adddi_4) <default>: Remove assert that operand 0 and operand 1
24386 are equal.
24387 (*add<mode>_4) <default>: Ditto.
24388 (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
24389
24390 2010-06-04 Nathan Froyd <froydnj@codesourcery.com>
24391
24392 * config/i386/i386-protos.h (ix86_print_operand): Declare.
24393 * config/i386/i386.c (ix86_print_operand): Make non-static.
24394 * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
24395 * output.h (output_operand): Declare.
24396 * final.c (output_operand): Make non-static.
24397
24398 2010-06-04 Alexandre Oliva <aoliva@redhat.com>
24399
24400 PR rtl-optimization/44013
24401 * sched-deps.c (add_dependence_list_and_free): Don't free lists
24402 when processing debug insns.
24403
24404 PR debug/41371
24405 * var-tracking.c (find_loc_in_1pdv): Mark initial value before
24406 recursing. Check that recursion is bounded. Rename inner var
24407 to avoid hiding incoming argument.
24408
24409 2010-06-04 Uros Bizjak <ubizjak@gmail.com>
24410
24411 * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
24412 operands[2] == 255.
24413 (*addqi_3): Ditto.
24414 (*addqi_4): Ditto.
24415 (*addqi_5): Ditto.
24416 (*addqi_ext_1_rex64): Ditto.
24417 (*addqi_ext_1): Ditto.
24418
24419 (*addqi_4): Check for incdec_operand in QImode.
24420
24421 (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
24422 using SWI mode iterator.
24423 (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
24424 (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
24425 mode iterator.
24426 (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
24427 using SWI mode iterator.
24428
24429 2010-06-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
24430
24431 PR c/25880
24432 * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
24433 * c-format.c (gcc_diag_flag_specs): Add hash.
24434 (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
24435 (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
24436 * c-pretty-print.c (pp_c_cv_qualifier): Rename as
24437 pp_c_cv_qualifiers. Handle qualifiers spelling here.
24438 (pp_c_type_qualifier_list): Call the function above.
24439 * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
24440 * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
24441 (WARN_FOR_QUALIFIERS): New macro.
24442 (convert_for_assignment): Use it.
24443
24444 2010-06-04 Kai Tietz <kai.tietz@onevision.com>
24445
24446 * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
24447
24448 2010-06-04 Jan Hubicka <jh@suse.cz>
24449
24450 * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
24451 df_byte_lr_bb_info): Embedd bitmap_head into the structure.
24452 (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
24453 DF_BYTE_LR_OUT): Update for embedded bitmaps.
24454 * fwprop.c (single_def_use_enter_block): Likewise.
24455 * ddg.c (create_ddg_dep_from_intra_loop_link,
24456 add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
24457 * loop-iv.c (latch_dominating_def): Likewise.
24458 * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
24459 df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
24460 df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
24461 df_rd_transfer_function, df_rd_top_dump,
24462 df_rd_bottom_dump): Update.
24463 (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
24464 df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
24465 df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
24466 df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
24467 df_lr_verify_solution_start, df_lr_verify_solution_end,
24468 df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
24469 df_live_free_bb_info, df_live_alloc, df_live_reset,
24470 df_live_bb_local_compute, df_live_init, df_live_transfer_function,
24471 df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
24472 df_live_verify_solution_start, df_live_verify_solution_end,
24473 df_live_verify_transfer_functions, df_chain_create_bb,
24474 df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
24475 df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
24476 df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
24477 df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
24478 df_byte_lr_confluence_0, df_byte_lr_confluence_n,
24479 df_byte_lr_transfer_function, df_byte_lr_top_dump,
24480 df_byte_lr_bottom_dump, df_create_unused_note,
24481 df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
24482 df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
24483 df_md_transfer_function, df_md_init, df_md_confluence_0,
24484 df_md_confluence_n,
24485 df_md_top_dump, df_md_bottom_dump): Update.
24486 (struct df_lr_problem_data): Embedd bitmap headers.
24487
24488 2010-06-04 Jan Hubicka <jh@suse.cz>
24489
24490 * dce.c (dce_process_block): Do not re-scan already marked
24491 instructions.
24492
24493 2010-06-04 Bernd Schmidt <bernds@codesourcery.com>
24494
24495 PR rtl-optimization/39871
24496 PR rtl-optimization/40615
24497 PR rtl-optimization/42500
24498 PR rtl-optimization/42502
24499 * ira.c (init_reg_equiv_memory_loc: New function.
24500 (ira): Call it twice.
24501 * reload.h (calculate_elim_costs_all_insns): Declare.
24502 * ira-costs.c: Include "reload.h".
24503 (regno_equiv_gains): New static variable.
24504 (init_costs): Allocate it.
24505 (finish_costs): Free it.
24506 (ira_costs): Call calculate_elim_costs_all_insns.
24507 (find_costs_and_classes): Take estimated elimination costs
24508 into account.
24509 (ira_adjust_equiv_reg_cost): New function.
24510 * ira.h (ira_adjust_equiv_reg_cost): Declare it.
24511 * reload1.c (init_eliminable_invariants, free_reg_equiv,
24512 elimination_costs_in_insn, note_reg_elim_costly): New static functions.
24513 (elim_bb): New static variable.
24514 (reload): Move code out of here into init_eliminable_invariants and
24515 free_reg_equiv. Call them.
24516 (calculate_elim_costs_all_insns): New function.
24517 (eliminate_regs_1): Declare. Add extra arg FOR_COSTS;
24518 all callers changed. If FOR_COSTS is true, don't call alter_reg,
24519 but call note_reg_elim_costly if we turned a valid memory address
24520 into an invalid one.
24521 * Makefile.in (ira-costs.o): Depend on reload.h.
24522
24523 2010-06-04 Julian Brown <julian@codesourcery.com>
24524
24525 * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
24526 for pool ranges.
24527
24528 2010-06-04 Richard Guenther <rguenther@suse.de>
24529
24530 PR lto/41584
24531 * cgraph.h (struct varpool_node): Add lto_file_data field.
24532 * lto-cgraph.c (input_varpool_node): Initialize it.
24533
24534 2010-06-04 Uros Bizjak <ubizjak@gmail.com>
24535
24536 * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
24537 * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
24538 predicate in "type" attribute calculation.
24539 (*addsi_1_zext): Ditto.
24540 (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
24541 (*addsi_2_zext): Ditto.
24542 (*add<mode>_3): Ditto.
24543 (*addsi_3_zext): Ditto.
24544 (*add<mode>_5): Ditto.
24545
24546 2010-06-03 Jan Hubicka <jh@suse.cz>
24547
24548 * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
24549 of bitmap_bit_p.
24550 * cfganal.c (compute_dominance_frontiers_1): Likewise.
24551
24552 2010-06-03 Jan Hubicka <jh@suse.cz>
24553
24554 * df-problems.c (df_create_unused_note, df_note_bb_compute):
24555 micro-optimize the checks when to add new note.
24556
24557 2010-06-03 Nathan Froyd <froydnj@codesourcery.com>
24558
24559 * final.c (output_asm_insn): Call
24560 targetm.asm_out.print_operand_punct_valid_p. Update comments.
24561 (output_operand): Call targetm.asm_out.print_operand. Update comments.
24562 (output_address): Call targetm.asm_out.print_operand_address.
24563 Update comments.
24564 * target.h (struct gcc_target): Add print_operand,
24565 print_operand_address, and print_operand_punct_valid_p fields.
24566 * targhooks.h (default_print_operand): Declare.
24567 (default_print_operand_address): Declare.
24568 (default_print_operand_punct_valid_p): Declare.
24569 * targhooks.c (default_print_operand): Define.
24570 (default_print_operand_address): Define.
24571 (default_print_operand_punct_valid_p): Define.
24572 * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
24573 (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
24574 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
24575 (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
24576 TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
24577 * vmsdbgout.c (addr_const_to_string): Update comment.
24578 * config/i386/i386.c (print_operand): Rename to...
24579 (ix86_print_operand): ...this. Make static.
24580 (print_operand_address): Rename to...
24581 (ix86_print_operand_address): ...this. Make static. Call
24582 ix86_print_operand instead of PRINT_OPERAND.
24583 (ix86_print_operand_punct_valid_p): New function.
24584 (TARGET_PRINT_OPERAND): Define.
24585 (TARGET_PRINT_OPERAND_ADDRESS): Define.
24586 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
24587 * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
24588 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24589 (PRINT_OPERAND): Delete.
24590 (PRINT_OPERAND_ADDRESS): Delete.
24591 * config/i386/i386-protos.h (print_operand): Delete prototype.
24592 (print_operand_address): Delete prototype.
24593
24594 2010-06-03 Richard Guenther <rguenther@suse.de>
24595
24596 PR tree-optimization/44403
24597 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
24598 Preserve pointer qualifiers.
24599 (vect_create_data_ref_ptr): Likewise.
24600
24601 2010-06-03 H.J. Lu <hongjiu.lu@intel.com>
24602
24603 PR c++/44294
24604 * defaults.h (MAX_FIXED_MODE_SIZE): New.
24605
24606 * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
24607
24608 2010-06-03 Jakub Jelinek <jakub@redhat.com>
24609
24610 PR debug/44375
24611 * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
24612 return false if merging the bbs would lead to goto_locus
24613 location being lost from the IL.
24614
24615 2010-06-03 Jan Hubicka <jh@suse.cz>
24616 Jakub Jelinek <jakub@redhat.com>
24617
24618 * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
24619 set->regs[i] is NULL or has just one entry.
24620
24621 2010-06-03 Jan Hubicka <jh@suse.cz>
24622
24623 * lto-cgraph.c (lto_varpool_encoder_size): Remove.
24624 * lto-streamer.h (lto_varpool_encoder_size): New inline function.
24625
24626 2010-06-03 Paul Brook <paul@codesourcery.com>
24627
24628 * config/arm/arm.c (FL_TUNE): Define.
24629 (arm_default_cpu, arm_cpu_select): Remove.
24630 (all_cores): Populate core field.
24631 (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
24632 (arm_find_cpu): New function.
24633 (arm_handle_option): Lookup cpu/architecture names.
24634 (arm_override_options): Cleanup mcpu/march/mtune handling.
24635 (arm_file_start): Ditto.
24636
24637 2010-06-03 Alan Modra <amodra@gmail.com>
24638
24639 PR target/44169
24640 * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
24641 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
24642 rtx to gen_load_toc_v4_PIC_1b. Tidy.
24643 (rs6000_emit_load_toc_table): Likewise.
24644
24645 2010-06-02 Jan Hubicka <jh@suse.cz>
24646
24647 * passes.c (init_optimization_passes): Put ipa reference
24648 after ipa pure-const.
24649
24650 2010-06-02 Jan Hubicka <jh@suse.cz>
24651
24652 * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
24653 calls_read_all and calls_write_all.
24654 (get_reference_optimization_summary): Fix formatting.
24655 (is_proper_for_analysis): Check that decl is not readonly.
24656 (propagate_bits): Check CONST/PURE/noreturn flags.
24657 (ipa_init): Move all_module_statics to optimization_summary_obstack.
24658 (analyze_function): Ignore indirect edges.
24659 (copy_global_bitmap): For all module statics, do nothing.
24660 (generate_summary): Do not print calls_read_all/calls_write_all.
24661 (read_write_all_from_decl): Take node as argument; check
24662 cgraph_node_cannot_return.
24663 (propagate): Reorganize read_all/write_all computation;
24664 check indirect edges; check ecf flags; use all_module_statics
24665 in the results; do not free all_module_statics.
24666 (stream_out_bitmap): Handle all_module_statics.
24667 (ipa_reference_write_optimization_summary): Likewise; use
24668 varpool/cgraph encoders to get boundaries.
24669 (ipa_reference_read_optimization_summary): Read in all_module_statics;
24670 use it when possible.
24671
24672 2010-06-02 Michael Meissner <meissner@linux.vnet.ibm.com>
24673
24674 PR target/44218
24675 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
24676 -mswdiv option. Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
24677
24678 * doc/extend.texi (powerpc builtins): Document vec_recip,
24679 vec_rsqrt, vec_rsqrte altivec/vsx builtins.
24680
24681 * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
24682 (rs6000_emit_swrsqrt): Ditto.
24683 (rs6000_emit_swdivsf): Delete.
24684 (rs6000_emit_swdivdf): Ditto.
24685 (rs6000_emit_swrsqrtsf): Ditto.
24686
24687 * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
24688 describe the reciprocal estimate support for each type.
24689 (recip_options): Map -mrecip=<opt> into option bits.
24690 (gen_2arg_fn_t): New typedef for binary rtx gen function.
24691 (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
24692 reciprocal estimate instructions.
24693 (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
24694 debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
24695 Set up rs6000_recip_bits based on the -mrecip* options. Print the
24696 cost information if -mdebug=cost or -mdebug=reg.
24697 (rs6000_override_options): Set -mrecip-precision for power6, and
24698 power7 machines. If -mvsx or -mdfp, enable various options that
24699 came in previous instruction set ISAs, unless the option was
24700 explicitly disabled by the command line option. Parse
24701 -mrecip=<opt> options.
24702 (rs6000_builtin_vectorized_function): Add support for vectorizing
24703 the reciprocal estimate builtins and expansions.
24704 (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
24705 (bdesc_2arg): Add reciprocal estimate builtins.
24706 (bdesc_1arg): Add reciprocal square root estimate builtins.
24707 (rs6000_expand_builtin): Rewrite to use a switch statement,
24708 instead of multiple if/then/elses. Add reciprocal estimate builtins.
24709 (rs6000_init_builtins): Create declarations for reciprocal
24710 estimate builtins.
24711 (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
24712 sized, prefer traditional floating point registers, if integer
24713 vector types, prefer altivec registers. Don't actually look at
24714 the memory address any more.
24715 (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
24716 builtins.
24717 (rs6000_load_constant_and_splat): New helper function to load up
24718 the constant for reciprocal estimate instructions.
24719 (rs6000_emit_madd): New helper function for generating
24720 multiply/add type instructions, based on the current switches.
24721 (rs6000_emit_msub): Ditto.
24722 (rs6000_emit_mnsub): Ditto.
24723 (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
24724 replace a divide with a reciprocal estimate and fixup, adding
24725 support for machines with high precision and vectors.
24726 (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
24727 low precision machines.
24728 (rs6000_emit_swdiv): New common function to be called to replace a
24729 division with reciprocal estimate and fixup.
24730 (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf. Add support
24731 for double and vector types. Add support for high precision machines.
24732
24733 * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
24734 the reciprocal estimate instructions can be generated.
24735 (TARGET_FRE): Ditto.
24736 (TARGET_FRSQRTES): Ditto.
24737 (TARGET_FRSQRTE): Ditto.
24738 (RS6000_RECIP_*): New macros for reciprocal estimate support.
24739
24740 * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
24741 square root estimate on vectors.
24742 (re<mode>2): New insn for reciprocal division estimate on vectors.
24743
24744 * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
24745 New builtin.
24746 (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
24747 (ALTIVEC_BUITLIN_VEC_RE): Ditto.
24748 (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
24749 (VSX_BUILTIN_RSQRT_V4SF): Ditto.
24750 (VSX_BUITLIN_RSQRT_V2DF): Ditto.
24751 (RS6000_BUILTIN_RSQRT): Ditto.
24752 (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
24753 floating point builtin.
24754
24755 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
24756 macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
24757 __RECIP_PRECISION__ based on the command line switches.
24758 (altivec_overloaded_builtins): Add reciprocal estimate builtins.
24759
24760 * config/rs6000/rs6000.opt (-mrecip): Document add support for
24761 replacing division instructions with reciprocal estimate and fixup.
24762 (-mrecip=<opt>): New option.
24763 (-mrecip-precision): Ditto.
24764
24765 * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
24766 (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
24767 (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
24768 precision scalar.
24769
24770 * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
24771 (UNSPEC_VREFP): Ditto.
24772 (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
24773 conterparts with regard to support of -mno-fused-madd and -ffast-math.
24774 (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
24775 reciprocal estimate instructions to be generated.
24776 (altivec_vrefp): Ditto.
24777
24778 * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
24779 estimate support.
24780 (rreg): New mode attribute for reciprocal estimate support.
24781 (recip<mode>3): New insn for division using reciprocal estimate
24782 and fixup builtins.
24783 (divide define_split): New define_split to convert floating point
24784 division to use reciprocal estimate if the user used the
24785 appropriate options and the split is run when we can add new
24786 pseudo registers for the fixup.
24787 (rsqrt<mode>2): New insn for reciprocal square root support.
24788 (recipsf3): Move into recip<mode>3.
24789 (recipdf3): Ditto.
24790 (fres): Use TARGET_FRES.
24791 (rsqrtsf2): Move into rsqrt<mode>2.
24792 (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
24793 (copysignsf3): Add support for VSX.
24794 (fred): Use TARGET_FRE.
24795 (fred_fpr): Ditto.
24796 (rsqrtdf_internal1): New function for frsqrte instruciton.
24797
24798 * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
24799 (vec_rsqrt): Ditto.
24800
24801 2010-06-03 Richard Guenther <rguenther@suse.de>
24802
24803 PR middle-end/44291
24804 * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
24805 (set_user_assembler_libfunc): Likewise.
24806
24807 2010-06-02 Steven Bosscher <steven@gcc.gnu.org>
24808
24809 * mkconfig.sh: Include insn-flags.h and insn-constants.h before
24810 defaults.h.
24811 * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
24812 to defaults.h
24813 * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
24814 DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
24815 FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
24816 STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
24817 STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
24818 STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
24819 STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
24820 STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
24821 * defaults.h: Updated for above mentioned changes.
24822
24823 2010-06-02 Kai Tietz <kai.tietz@onevision.com>
24824
24825 * c-common.c: Remove header include of tm_p.h.
24826 * Makefile.in (c-common.o): Remove TM_P_H dependency.
24827
24828 2010-06-02 Jakub Jelinek <jakub@redhat.com>
24829
24830 * tree.h (struct tree_decl_map): New type.
24831 (tree_decl_map_eq, tree_decl_map_marked_p): Define.
24832 (tree_decl_map_hash): New prototype.
24833 (debug_expr_for_decl, value_expr_for_decl): Change into
24834 tree_decl_map hashtab from tree_map.
24835 (init_ttree): Adjust initialization.
24836 (tree_decl_map_hash): New function.
24837 (decl_debug_expr_lookup, decl_debug_expr_insert,
24838 decl_value_expr_lookup, decl_value_expr_insert): Adjust.
24839
24840 2010-06-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24841
24842 * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
24843 linker emulations.
24844 * configure: Regenerate.
24845 * config.in: Regenerate.
24846
24847 * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
24848 (X86_64_EMULATION): Define.
24849 (TARGET_LD_EMULATION): Use them.
24850
24851 * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
24852 (SPARC64_EMULATION): Define.
24853 (LINK_ARCH_SPEC): Use them.
24854
24855 2010-06-02 Sebastian Pop <sebastian.pop@amd.com>
24856
24857 * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
24858 smallest_mode_for_size for computing the precision types of new
24859 graphite IVs. Do not call lang_hooks.types.type_for_size.
24860
24861 2010-06-02 Sebastian Pop <sebastian.pop@amd.com>
24862
24863 * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
24864 information.
24865 (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
24866
24867 2010-06-02 Sebastian Pop <sebastian.pop@amd.com>
24868
24869 PR middle-end/44363
24870 * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
24871 return false instead.
24872
24873 2010-06-02 Jan Hubicka <jh@suse.cz>
24874
24875 PR middle-end/44295
24876 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
24877 create new cgraph node to check callee.
24878
24879 2010-06-02 Richard Guenther <rguenther@suse.de>
24880
24881 * lto-streamer-in.c (input_gimple_stmt): Fix typo.
24882
24883 2010-06-02 Richard Guenther <rguenther@suse.de>
24884
24885 * lto-wrapper.c (lto_wrapper_exit): Rename to ...
24886 (lto_wrapper_cleanup): ... this. Do not exit.
24887 (fatal): Adjust. Exit here.
24888 (fatal_perror): Likewise.
24889 (fatal_signal): New function.
24890 (main): Set up signal handlers to cleanup temporary files.
24891 * Makefile.in (lto-wrapper.o): Adjust dependencies.
24892
24893 2010-06-02 Richard Guenther <rguenther@suse.de>
24894
24895 PR tree-optimization/44377
24896 * tree-ssa-structalias.c (find_func_aliases): Fix typo.
24897
24898 2010-06-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
24899
24900 * config/s390/2097.md (z10_fhex): Remove insn reservation.
24901 * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
24902 (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
24903 *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
24904 instruction.
24905 * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
24906
24907 2010-06-02 Jan Hubicka <jh@suse.cz>
24908
24909 * bitmap.c (bitmap_descriptor): Add search_iter.
24910 (bitmap_find_bit): Increment it.
24911 (print_statistics): Print it.
24912
24913 2010-06-02 Nathan Froyd <froydnj@codesourcery.com>
24914
24915 * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
24916 instead of gimple_build_call_vec. Delete unnecessary local variable.
24917
24918 2010-06-02 Steven Bosscher <steven@gcc.gnu.org>
24919
24920 * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
24921 change from yesterday.
24922
24923 2010-06-02 Steven Bosscher <steven@gcc.gnu.org>
24924
24925 * c-ada-spec.c: Clean up redundant includes.
24926
24927 2010-06-01 Steven Bosscher <steven@gcc.gnu.org>
24928
24929 * gimplify.c: Do not include except.h and optabs.h.
24930 (gimplify_body): Do not initialize RTL profiling.
24931 * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
24932 langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
24933 * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
24934 output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
24935 langhooks.h.
24936
24937 * tree-pretty-print.h: Include pretty-print.h.
24938 * gimple-pretty-print.h: Include pretty-print.h.
24939
24940 * tree-pretty-print.c: Do not include diagnostic.h.
24941 * tree-vrp.c: Likewise.
24942 * tree-tailcall.c: Likewise
24943 * tree-scalar-evolution.c: Likewise
24944 * tree-ssa-dse.c: Likewise
24945 * tree-chrec.c: Likewise
24946 * tree-ssa-sccvn.c: Likewise
24947 * tree-ssa-copyrename.c: Likewise
24948 * tree-nomudflap.c: Likewise
24949 * tree-call-cdce.c: Likewise
24950 * tree-stdarg.c: Likewise
24951 * tree-ssa-math-opts.c: Likewise
24952 * tree-nrv.c: Likewise
24953 * tree-ssa-sink.c: Likewise
24954 * tree-browser.c: Likewise
24955 * tree-ssa-loop-ivcanon.c: Likewise
24956 * tree-ssa-loop.c: Likewise
24957 * tree-parloops.c: Likewise
24958 * tree-ssa-address.c: Likewise
24959 * tree-ssa-ifcombine.c: Likewise
24960 * tree-if-conv.c: Likewise
24961 * tree-data-ref.c: Likewise
24962 * tree-affine.c: Likewise
24963 * tree-ssa-phiopt.c: Likewise
24964 * tree-ssa-coalesce.c: Likewise
24965 * tree-ssa-pre.c: Likewise
24966 * tree-ssa-live.c: Likewise
24967 * tree-predcom.c: Likewise
24968 * tree-ssa-forwprop.c: Likewise
24969 * tree-ssa-dce.c: Likewise
24970 * tree-ssa-ter.c: Likewise
24971 * tree-ssa-loop-prefetch.c: Likewise
24972 * tree-optimize.c: Likewise
24973 * tree-ssa-phiprop.c: Likewise
24974 * tree-object-size.c: Likewise
24975 * tree-outof-ssa.c: Likewise
24976 * tree-ssa-structalias.c: Likewise
24977 * tree-switch-conversion.c: Likewise
24978 * tree-ssa-reassoc.c: Likewise
24979 * tree-ssa-operands.c: Likewise
24980 * tree-vectorizer.c: Likewise
24981 * tree-vect-data-refs.c: Likewise
24982 * tree-vect-generic.c: Likewise
24983 * tree-vect-stmts.c: Likewise
24984 * tree-vect-patterns.c: Likewise
24985 * tree-vect-slp.c: Likewise
24986 * tree-vect-loop.c: Likewise
24987 * tree-ssa-loop-ivopts.c: Likewise
24988 * tree-ssa-loop-im.c: Likewise
24989 * tree-ssa-loop-niter.c: Likewise
24990 * tree-ssa-loop-unswitch.c: Likewise
24991 * tree-ssa-loop-manip.c: Likewise
24992 * tree-ssa-loop-ch.c: Likewise
24993 * tree-dump.c: Likewise
24994 * tree-complex.c: Likewise
24995
24996 * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
24997 * tree-ssa-uninit.c: Likewise
24998 * tree-ssa-threadupdate.c: Likewise
24999 * tree-ssa-uncprop.c: Likewise
25000 * tree-ssa-ccp.c: Likewise
25001 * tree-ssa-dom.c: Likewise
25002 * tree-ssa-propagate.c: Likewise
25003 * tree-ssa-alias.c: Likewise
25004 * tree-dfa.c: Likewise
25005 * tree-cfgcleanup.c: Likewise
25006 * tree-sra.c: Likewise
25007 * tree-ssa-copy.c: Likewise
25008 * tree-ssa.c: Likewise
25009 * tree-profile.c: Likewise
25010 * tree-cfg.c: Likewise
25011 * tree-ssa-threadedge.c: Likewise
25012 * tree-vect-loop-manip.c: Likewise
25013
25014 * tree-inline.c: Do not include diagnostic.h and expr.h.
25015 Include rtl.h.
25016 (copy_decl_for_dup_finish): Do not use NULL_RTX.
25017
25018 * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
25019 * tree-loop-distribution.c: Likewise.
25020
25021 2010-06-01 Jan Hubicka <jh@suse.cz>
25022
25023 * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
25024
25025 2010-06-01 Jan Hubicka <jh@suse.cz>
25026
25027 * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
25028 remove return value.
25029 (split_bbs_on_noreturn_calls) .... here.
25030 * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
25031 * tree-flow.h (fixup_noreturn_call): New.
25032
25033 2010-06-01 Jan Hubicka <jh@suse.cz>
25034
25035 * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
25036
25037 2010-06-01 Nathan Froyd <froydnj@codesourcery.com>
25038
25039 * tree.h (build_nt_call_list): Delete.
25040 * tree.c (build_nt_call_list): Delete.
25041
25042 2010-06-01 Jan Hubicka <jh@suse.cz>
25043
25044 * fwprop.c: Make emit-rtl.h include last.
25045 * rtlanal.c: Include emit-rtl.h.
25046 * genautomata.c: Output emit-rtl include into insn-automata.c
25047 * df-scan.c: Include emit-rtl.h.
25048 * haifa-sched.c: Indlude emit-rtl.h.
25049 * mode-switching.c: Indlude emit-rtl.h.
25050 * graph.c: Indlude emit-rtl.h.
25051 * sel-sched.c: Include emit-rtl.h.
25052 * sel-sched-ir.c: Include emit-rtl.h.
25053 * ira-build.c: Include emit-rtl.h.
25054 * emit-rtl.c (first_insn, last_insn): Remove defines.
25055 (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
25056 Move to emit-rtl.h.
25057 (set_new_first_and_last_insn, get_last_insn_anywhere,
25058 get_first_nonnote_insn, get_last_nonnote_insn, try_split,
25059 make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
25060 delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
25061 emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
25062 push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
25063 Use accessor functions.
25064 * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
25065 gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
25066 set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
25067 mem_expr_equal_p): Move here from rtl.h.
25068 (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
25069 Move here from emit-rtl.c; make inline.
25070 * cfglayout.h: Include emit-rtl.h.
25071 * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
25072 gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
25073 set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
25074 mem_expr_equal_p, get_insns, set_first-insn,
25075 get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
25076 * reg-stack.c: Include emit-rtl.h.
25077 * dce.c: Likewise.
25078
25079 2010-06-01 Jan Hubicka <jh@suse.cz>
25080
25081 * cgraph.h (tree_function_versioning): Update prototype.
25082 (cgraph_function_versioning): Update prototype.
25083 * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
25084 bitmap.
25085 (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
25086 (cgraph_materialize_clone, save_inline_function_body): Update use of
25087 tree_function_versioning.
25088 * tree-inline.c (copy_bb): Look for previous copied block to link
25089 after; fix debug output.
25090 (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
25091 (copy_body): Likewise.
25092 (expand_call_inline): Update use of copy_body.
25093 (tree_function_versioning): Update use of copy body; accept
25094 blocks_to_copy and new_entry.
25095
25096 2010-06-01 Jan Hubicka <jh@suse.cz>
25097
25098 * gegenrtl.c: Remove unnecesary prototypes.
25099 (gendecl): Remove.
25100 (gendef): Produce static inline.
25101 (gencode): Remove.
25102 (main): Do not decode parameters; generate header only.
25103 * Makefile.in (genrtl.c): Remove.
25104
25105 2010-06-01 Jan Hubicka <jh@suse.cz>
25106
25107 * tree-switch-conversion.c (build_one_array): Make it readonly.
25108
25109 2010-06-01 Richard Guenther <rguenther@suse.de>
25110
25111 * optabs.c (init_optabs): Guard all accesses to reinit.
25112 * ipa-pure-const.c (propagate): Fix another typo.
25113 * opts.c (common_handle_option): Split assignment to bool.
25114 * c-opts.c (c_common_handle_option): Likewise.
25115
25116 2010-06-01 Arnaud Charlet <charlet@adacore.com>
25117 Matthew Gingell <gingell@adacore.com>
25118
25119 * doc/invoke.texi: Mention -fdump-ada-spec.
25120 * tree-dump.c (dump_files): Add ada-spec.
25121 (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
25122 * tree-pass.h (tree_dump_index): Add TDI_ada.
25123 * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
25124 (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
25125 (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
25126 * c-decl.c: Include c-ada-spec.h.
25127 (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
25128 functions.
25129 (c_write_global_declarations): Add handling of -fdump-ada-spec.
25130 * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
25131 * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
25132 * c-ada-spec.h, c-ada-spec.c: New files.
25133
25134 2010-06-01 Richard Guenther <rguenther@suse.de>
25135
25136 PR lto/43853
25137 * ipa-pure-const.c (get_function_state): Hand back varying state
25138 if we do not have one.
25139 (has_function_state): New function.
25140 (duplicate_node_data): Adjust.
25141 (remove_node_data): Likewise.
25142 (pure_const_write_summary): Likewise.
25143 (propagate): Likewise. Fix typo.
25144
25145 2010-06-01 Jan Hubicka <jh@suse.cz>
25146
25147 * tree-cfg.c (verify_stmt): Do not skip could_throw test.
25148 * passes.c (execute_function_todo): Do not make implicit verify_ssa.
25149 (execute_all_ipa_transforms): Do not play with the states.
25150
25151 2010-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
25152
25153 * config/arm/t-linux-androideabi: New.
25154 * config.gcc (arm*-*-linux-androideabi): Include multilib config.
25155
25156 2010-06-01 Jan Hubicka <jh@suse.cz>
25157
25158 * tree-inline.c (estimate_num_insns): For stdarg functions look
25159 into call statement to count cost of argument passing.
25160
25161 2010-06-01 Kai Tietz <kai.tietz@onevision.com>
25162
25163 * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
25164 argument for fprintf.
25165 (ix86_output_addr_diff_elt): Likewise.
25166 (x86_function_profiler): Likewise.
25167 * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
25168 (LPREFIX): Likewise.
25169 (ASM_GENERATE_INTERNAL_LABEL): Likewise.
25170
25171 2010-05-31 Jakub Jelinek <jakub@redhat.com>
25172
25173 PR target/44338
25174 * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
25175 fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
25176 fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
25177 fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
25178 fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
25179 fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
25180 fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
25181 Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
25182 TARGET_FUSED_MADD.
25183
25184 2010-05-31 Jan Hubicka <jh@suse.cz>
25185
25186 * tree.h (tree_range_check_failed): Declare noreturn.
25187
25188 2010-05-31 Jan Hubicka <jh@suse.cz>
25189
25190 * gimple.c (gimple_call_builtin_p): New function.
25191 * gimple.h (gimple_call_builtin_p): Declare.
25192 * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
25193 to exit.
25194 (execute_warn_function_return): BUILT_IN_RETURN is return.
25195 (split_critical_edges): Return edges are not critical.
25196 (is_ctrl_altering_stmt): Builtin_in_return is altering.
25197 (gimple_verify_flow_info): Handle built_in_return.
25198 (execute_warn_function_return): Handle built_in_return.
25199 * ipa-pure-const.c (check_call): Ignore builtin_return.
25200
25201 2010-05-31 Jakub Jelinek <jakub@redhat.com>
25202
25203 PR middle-end/44337
25204 * expr.c (expand_assignment): Don't store anything for out-of-bounds
25205 array accesses with non-MEM.
25206
25207 PR tree-optimization/44182
25208 * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
25209 newly needs to end a bb is followed by debug stmts, instead return
25210 true from the function at the end.
25211 (maybe_move_debug_stmts_to_successors): New function.
25212 (copy_cfg_body): Call it if copy_edges_for_bb returned true.
25213
25214 2010-05-31 Kai Tietz <kai.tietz@onevision.com>
25215
25216 PR target/44161
25217 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
25218
25219 2010-05-31 Eric Botcazou <ebotcazou@adacore.com>
25220
25221 * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
25222 for nested functions in non-optimized compilation.
25223
25224 2010-05-31 Richard Guenther <rguenther@suse.de>
25225
25226 * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
25227
25228 2010-05-30 Jan Hubicka <jh@suse.cz>
25229
25230 * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
25231
25232 2010-05-30 Richard Guenther <rguenther@suse.de>
25233
25234 PR lto/42975
25235 * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
25236 (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
25237 no longer needed.
25238
25239 2010-05-30 Iain Sandoe <iains@gcc.gnu.org>
25240
25241 * config/darwin.c (output_objc_section_asm_op): Add comment.
25242 (name_needs_quotes): Add '_' to list of valid comment chars.
25243 (machopic_output_function_base_name): Remove unneeded quotes.
25244 (darwin_encode_section_info): Adjust asm whitespace.
25245 * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
25246 (ASM_OUTPUT_LOCAL): Ditto.
25247 * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
25248 * config/darwin.h (GLOBAL_ASM_OP): Ditto.
25249 * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
25250
25251 2010-05-30 Eric Botcazou <ebotcazou@adacore.com>
25252
25253 * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
25254 RS6000_OUTPUT_BASENAME unconditionally.
25255 (rs6000_output_function_epilogue): Likewise.
25256
25257 2010-05-30 Jan Hubicka <jh@suse.cz>
25258
25259 * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
25260 nodes.
25261
25262 2010-05-30 Richard Guenther <rguenther@suse.de>
25263
25264 * tree-cfg.c (verify_gimple_assign_single): Implement
25265 verification for COND_EXPR rhs.
25266
25267 2010-05-30 Jan Hubicka <jh@suse.cz>
25268
25269 * cgraph.h (cgraph_dump_file): Declare.
25270 * cgraphunit.c (cgraph_dump_file): Export.
25271 * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
25272
25273 2010-05-30 Jan Hubicka <jh@suse.cz>
25274
25275 * dwarf2out.c (reference_to_unused,
25276 premark_types_used_by_global_vars_helper): Avoid creation of new
25277 varpool nodes.
25278
25279 2010-05-30 Jan Hubicka <jh@suse.cz>
25280
25281 * cgraph.h (cgraph_node_cannot_return,
25282 cgraph_edge_cannot_lead_to_return): New functions.
25283 * cgraph.c (cgraph_node_cannot_return,
25284 cgraph_edge_cannot_lead_to_return): Use them.
25285 * ipa-pure-const.c (pure_const_names): New static var.
25286 (check_call): Handle calls not leading to return.
25287 (pure_const_read_summary): Dump info read.
25288 (propagate): Dump info about propagation process; ignore side effects
25289 of functions not leading to exit; fix handling of pure functions.
25290
25291 2010-05-30 Jan Hubicka <jh@suse.cz>
25292
25293 * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
25294 for tail call epilogues.
25295
25296 2010-05-30 Jan Hubicka <jh@suse.cz>
25297
25298 * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
25299 ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
25300 dump files.
25301
25302 2010-05-29 Jan Hubicka <jh@suse.cz>
25303
25304 * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
25305 node; remove references in node we no longer keep in cgrpah but need
25306 body of.
25307
25308 2010-05-29 Jan Hubicka <jh@suse.cz>
25309
25310 * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
25311
25312 2010-05-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25313
25314 PR target/44165
25315 * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
25316
25317 2010-05-29 Jan Hubicka <jh@suse.cz>
25318
25319 * tree-vrp.c (debug_value_range, debug_all_value_ranges,
25320 debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
25321 * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
25322 debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
25323 debug_names_replaced_by, debug_update_ssa): Likewise.
25324 * sbitmap.c (debug_sbitmap): Likewise.
25325 * genrecog.c (debug_decision, debug_decision_list): Likewise.
25326 * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
25327 debug_tree_chain): Likewise.
25328 * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
25329 * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
25330 * optabs.c (debug_optab_libfuncs): Likewise.
25331 (verify_loop_closed_ssa): Likewise.
25332 * value-prof.c (verify_histograms): Likewise.
25333 * reload.c (debug_reload_to_stream, debug_reload): Likewise.
25334 * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
25335 * cfghooks.c (verify_flow_info): Likewise.
25336 * fold-const.c (debug_fold_checksum): Likewise.
25337 * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
25338 * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
25339 Likewise.
25340 * omega.c (debug_omega_problem): Likewise.
25341 * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
25342 * tree-ssa-ccp.c (debug_lattice_value): Likewise.
25343 * dominance.c (verify_dominators, debug_dominance_info,
25344 debug_dominance_tree): Likewise.
25345 * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
25346 * df_regno_debug, df_ref_debug,
25347 debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
25348 debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
25349 * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
25350 * sel-sched.c (debug_state): Likewise.
25351 * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
25352 Likewise.
25353 * cfganal.c (print_edge_list, verify_edge_list): Likewise.
25354 * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
25355 * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
25356 * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
25357 Likewise.
25358 * c-pretty-print.c (debug_c_tree): Likewise.
25359 * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
25360 debug_av_set, debug_lv_set, debug_ilist, debug_blist,
25361 debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
25362 * ebitmap.c (debug_ebitmap): Likewise.
25363 * function.c (debug_find_var_in_block_tree): Likewise.
25364 * print-rtl.c (debug_rtx): Likewise.
25365 (debug_rtx_count): Likewise.
25366 (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
25367 * stor-layout.c (debug_rli): Likewise.
25368 * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
25369 * tree-data-ref.c (debug_data_references,
25370 debug_data_dependence_relations, debug_data_reference,
25371 debug_data_dependence_relation, debug_rdg_vertex,
25372 debug_rdg_component, debug_rdg): Likewise.
25373 * tree-affine.c (debug_aff): Likewise.
25374 * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
25375 Likewise.
25376 * except.c (debug_eh_tree, verify_eh_tree): Likewise.
25377 * emit-rtl.c (verify_rtl_sharing): Likewise.
25378 * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
25379 debug_value_expressions): Likewise.
25380 * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
25381 * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
25382 * print-tree.c (debug_tree, debug_vec_tree): Likewise.
25383 * cfglayout.c (verify_insn_chain): Likewise.
25384 * graphite-clast-to-gimple.c (debug_clast_name_indexes,
25385 debug_clast_stmt, debug_generated_program): Likewise.
25386 * ggc-page.c (debug_print_page_list): Likewise.
25387 * tree-ssa-ter.c (debug_ter): Likewise.
25388 * graphite-dependences.c (debug_pddr): Likewise.
25389 * sched-deps.c (debug_ds): Likewise.
25390 * tree-ssa.c (verify_ssa): Likewise.
25391 * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
25392 debug_scattering_functions, debug_iteration_domains, debug_pdr,
25393 debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
25394 debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
25395 * tree-inline.c (debug_find_tree): Likewise.
25396 * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
25397 debug_ppl_powerset_matrix): Likewise.
25398 * var-tracking.c (debug_dv): Likewise.
25399 * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
25400 * cfgloop.c (verify_loop_structure): Likewise.
25401 * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
25402 * c-common.c (verify_sequence_points): Likewise.
25403 * sched-rgn.c (debug_regions, debug_region, debug_candidate,
25404 debug_candidates, debug_rgn_dependencies): Likewise.
25405 * tree-ssa-structalias.c (debug_constraint, debug_constraints,
25406 * debug_constraint_graph, debug_solution_for_var,
25407 debug_sa_points_to_info): Likewise.
25408 * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
25409 Likewie.
25410 * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
25411 debug_loops, debug_loop, debug_loop_num): Likewise.
25412 * passes.c (debug_pass): Likewise.
25413 (dump_properties): Likewise; add cfglayout property.
25414 (debug_properties): Likewise.
25415 * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
25416 * varpool.c (debug_varpool): Likewise.
25417 * regcprop.c (debug_value_data): Likewise.
25418 * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
25419 debug_immediate_uses_for): Likewise.
25420
25421 2010-05-29 H.J. Lu <hongjiu.lu@intel.com>
25422
25423 PR bootstrap/44315
25424 * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
25425 Filter out insn-flags.h.
25426
25427 2010-05-29 Jan Hubicka <jh@suse.cz>
25428
25429 * cgraph.h (struct varpool_node_set_def,
25430 struct cgraph_node_set_def): Remove unused AUX pointer.
25431 (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
25432 VEC_empty macro.
25433
25434 2010-05-29 Jan Hubicka <jh@suse.cz>
25435
25436 PR middle-end/44324
25437 * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
25438
25439 2010-05-29 Richard Guenther <rguenther@suse.de>
25440
25441 * lto-streamer.c (cached_bp): New global variable.
25442 (bitpack_create): Return the cached bitpack, if available.
25443 (bitpack_delete): Clear and cache the bitpack, if appropriate.
25444 (bp_pack_value): Remove redundant asserts.
25445
25446 2010-05-29 Sebastian Pop <sebastian.pop@amd.com>
25447
25448 PR middle-end/44306
25449 * tree-if-conv.c (is_true_predicate): New.
25450 (is_predicated): Use is_true_predicate.
25451 (add_to_predicate_list): Same. Do not use unshare_expr.
25452 (add_to_dst_predicate_list): Same.
25453
25454 2010-05-29 Sebastian Pop <sebastian.pop@amd.com>
25455
25456 * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
25457 field on edges.
25458 (predicate_bbs): Same.
25459 (clean_predicate_lists): Same.
25460 (find_phi_replacement_condition): Do not AND the predicate from
25461 edge->aux.
25462
25463 2010-05-29 H.J. Lu <hongjiu.lu@intel.com>
25464
25465 PR bootstrap/44315
25466 * Makefile.in (build/gencondmd.o): Add a missing `\'.
25467
25468 2010-05-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25469
25470 PR target/44261
25471 config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
25472 (negdf2): Adjust expander pattern and use negdf2_slow.
25473 (negsf2): Likewise.
25474
25475 2010-05-29 Nathan Froyd <froydnj@codesourcery.com>
25476
25477 * basic-block.h (struct control_flow_graph): Move last_label_uid field
25478 up.
25479 * df.h (struct df_base_ref): Move regno field up.
25480 * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
25481 * expr.h (struct separate_ops): Move location field up.
25482 * optabs.h (struct optab_d): Move libcall_basename field down.
25483 * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
25484 * config/i386/i386.h (struct machine_function): Convert call_abi field
25485 into a bitfield. Move cfa field to the end of the structure.
25486
25487 2010-05-29 Jan Hubicka <jh@suse.cz>
25488
25489 * varpool.c (varpool_get_node): Fix lookup.
25490
25491 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
25492
25493 * config/spu/spu-protos.h: Do not include rtl.h. Protect
25494 RTL specific prototypes with #ifdef RTX_CODE.
25495 * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
25496 * config/spu/t-spu-elf: Fix dependencies.
25497
25498 * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
25499
25500 2010-05-29 Mike Stump <mikestump@comcast.net>
25501
25502 PR bootstrap/44315
25503 * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
25504 TM_H when building to avoid dependency loops.
25505
25506 2010-05-29 Jan Hubicka <jh@suse.cz>
25507
25508 * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
25509 refs and body; not the whole node for masters of materialized clones.
25510
25511 2010-05-29 Mike Stump <mikestump@comcast.net>
25512
25513 * config/rs6000/rs6000-c.c: Remove c-tree.h include.
25514
25515 2010-05-29 Jan Hubicka <jh@suse.cz>
25516
25517 * cgraph.c (clone_function_name): Take SUFFIX argument; export.
25518 (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
25519 use of clone_function_name.
25520 * cgraph.h (cgraph_create_virtual_clone,
25521 cgraph_function_versioning): update prototypes.
25522 (clone_function_name): Declare.
25523 * ipa-cp.c (ipcp_insert_stage): Update call of
25524 cgraph_create_virtual_clone.
25525 * omp-low.c (create_omp_child_function_name): Use
25526 cgraph_create_virtual_clone.
25527 * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
25528 (cgraph_function_versioning): Take SUFFIX argument; produce new name
25529 and make decl local.
25530
25531 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
25532
25533 * vec.h: Include statistics.h
25534 * Makefile.in: Introduce VEC_H. Replace all vec.h dependencies
25535 with VEC_H.
25536
25537 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
25538
25539 * c-lex.c: Do not include c-tree.h.
25540 * c-pretty-print.c: Likewise.
25541 * c-opts.c: Likewise.
25542 * c-gimplify.c: Likewise.
25543 * c-common.c: Likewise.
25544 * c-dump.c: Likewise. Include c-common.h.
25545
25546 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
25547
25548 * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
25549 before including diagnostic-core.h.
25550 (c_cpp_error): New prototype moved from c-tree.h.
25551 Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
25552 * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
25553 (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
25554 (c_cpp_error): Prototype moved to c-common.h.
25555 * Makefile.in: Update dependency for C_COMMON_H.
25556
25557 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
25558
25559 * c-common.h: Add FIXME for awkward split of c_register_addr_space.
25560 * c-common.c (c_register_addr_space): Remove here.
25561 * c-decl.c (c_register_addr_space): Re-add here.
25562
25563 2010-05-28 Mike Stump <mikestump@comcast.net>
25564
25565 * config/darwin-c.c: Remove c-tree.h include.
25566
25567 2010-05-28 Joseph Myers <joseph@codesourcery.com>
25568
25569 * gcc.c: Include diagnostic.h.
25570 (error_count): Remove. All users changed to use errorcount.
25571 (programname): Remove. All users changed to use progname.
25572 (fancy_abort, internal_error, fatal_error, error, warning, inform,
25573 fnotice): Remove.
25574 (execute): Don't include "Internal error" and bug reporting
25575 information in argument of internal_error call.
25576 (process_command): Don't increment error_count after calling
25577 perror_with_name.
25578 (input_filename): Rename to gcc_input_filename. All users
25579 changed.
25580 (main): Call diagnostic_initialize. Register delete_temp_files
25581 with atexit. Use seen_error to test for errors.
25582 * gcc.h: Include diagnostic-core.h.
25583 (fatal_error, error, warning): Remove.
25584 * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
25585 (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
25586 (gcc.o): Update dependencies.
25587
25588 2010-05-28 Jeff Law <law@redhat.com>
25589
25590 * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
25591 functions.
25592 * ira.h (ira_bad_reload_regno): Declare
25593 * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
25594
25595 * ira-color.c (update_curr_costs): Free updated hard reg costs.
25596 (ira_reassign_conflict_allocnos): Remove bogus asserts.
25597 (allocno_reload_assign): Likewise.
25598
25599 2010-05-28 Nathan Froyd <froydnj@codesourcery.com>
25600
25601 * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
25602 build1_stat.
25603
25604 2010-05-28 Richard Guenther <rguenther@suse.de>
25605
25606 PR lto/44312
25607 * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
25608 Stream fixed-point constants mode.
25609 (unpack_ts_type_value_fields): Fix width of TYPE_MODE
25610 and TYPE_PRECISION.
25611 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
25612 Stream fixed-point constants mode.
25613 (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
25614 and TYPE_PRECISION.
25615
25616 2010-05-28 Sebastian Pop <sebastian.pop@amd.com>
25617
25618 * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
25619 only place it was called from.
25620 (number_of_latch_executions): Do not return chrec_dont_know when the
25621 may_be_zero is a runtime condition: instead, return a COND_EXPR
25622 including the may_be_zero condition.
25623 * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
25624 of nb_iterations.
25625 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
25626 COND_EXPRs.
25627
25628 2010-05-28 Sebastian Pop <sebastian.pop@amd.com>
25629
25630 * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
25631 generate COND_EXPRs for degenerate_phi_result.
25632
25633 2010-05-28 Sebastian Pop <sebastian.pop@amd.com>
25634
25635 PR middle-end/44293
25636 * tree-if-conv.c (if_convertible_loop_p): Check the
25637 if-convertibility of phi nodes in non predicated BBs.
25638
25639 2010-05-28 Joseph Myers <joseph@codesourcery.com>
25640
25641 * gcc.c (error, warning, inform): Remove duplicate ": " in output.
25642
25643 2010-05-28 Joseph Myers <joseph@codesourcery.com>
25644
25645 PR driver/15303
25646 * gcc.c (inform, warning, inform): New functions.
25647 (fatal_ice): Rename to internal_error; change cmsgid parameter to
25648 gmsgid. All callers changed.
25649 (notice): Rename to fnotice; add parameter fp. All callers changed.
25650 (fatal_error): Rename to fatal_signal. All users changed.
25651 (fatal): Rename to fatal_error; change cmsgid parameter to
25652 gmsgid. All callers changed.
25653 (process_command): Use warning instead of error for warnings.
25654 (end_going_arg): Don't use _() around argument of error.
25655 (do_spec_1): Use inform for message from %n specs. Use warning
25656 instead of error for warnings.
25657 (main): Use inform for comparison messages. Use warning for
25658 message about unused linker input.
25659 (error): Increment error_count. Print "error: ".
25660 * gcc.h (fatal): Change to fatal_error.
25661 (warning): Declare.
25662 * config/darwin-driver.c (darwin_default_min_version): Use warning
25663 instead of fprintf for warnings.
25664 * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
25665
25666 2010-05-28 Julian Brown <julian@codesourcery.com>
25667
25668 * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
25669 (*thumb2_addsi3_compare0_scratch): New.
25670 * config/arm/constraints.md (Pv): New.
25671 * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
25672 for ARM mode only.
25673 (*addsi3_compare0_scratch): Likewise.
25674
25675 2010-05-28 Jan Hubicka <jh@suse.cz>
25676
25677 * ipa-reference.c (add_static_var): Remove redundant all_module_statics
25678 check.
25679 (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
25680 only on local statics.
25681
25682 2010-05-28 Iain Sandoe <iains@gcc.gnu.org>
25683
25684 * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
25685
25686 2010-05-28 Maxim Kuvyrkov <maxim@codesourcery.com>
25687
25688 PR bootstrap/44314
25689 * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
25690 (OPTION_GLIBC): Define.
25691
25692 2010-05-28 Jakub Jelinek <jakub@redhat.com>
25693
25694 PR debug/41048
25695 * dwarf2out.c (double_int_type_size_in_bits): New function.
25696 (round_up_to_align): Change first argument and return value to
25697 double_int.
25698 (field_byte_offset): Work internally on double_ints.
25699
25700 PR target/43636
25701 * builtins.c (expand_movstr): Use a temporary pseudo instead
25702 of target even when target is not NULL and not const0_rtx, but
25703 fails movstr predicate.
25704 * config/m32c/blkmov.md (movstr): Add predicate to first operand.
25705
25706 2010-05-28 Joseph Myers <joseph@codesourcery.com>
25707
25708 * final.c (rest_of_clean_state): Use %m in errors instead of
25709 strerror (errno).
25710 * gengtype.c (read_input_list, close_output_files): Use xstrerror
25711 instead of strerror.
25712 * toplev.c (process_options): Use %m in errors instead of strerror
25713 (errno).
25714 * tree-dump.c (dump_begin): Use %m in errors instead of strerror
25715 (errno).
25716
25717 2010-05-28 Uros Bizjak <ubizjak@gmail.com>
25718
25719 * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
25720 (ix86_canonical_va_list_type): Make static. Add declaration.
25721 (ix86_enum_va_list): Make static. Reindent.
25722 * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
25723 (ix86_canonical_va_list_type): Ditto.
25724 (ix86_enum_va_list): Ditto.
25725
25726 2010-05-28 Richard Guenther <rguenther@suse.de>
25727
25728 * lto-wrapper.c (run_gcc): With -save-temps generate a
25729 user-visible ltrans filename. Fixup ltrans unit numbering.
25730
25731 2010-05-28 Kai Tietz <kai.tietz@onevision.com>
25732
25733 * c-common.c (c_common_nodes_and_builtins): Replace use
25734 of TARGET_ENUM_VA_LIST by target hook enum_va_list.
25735 * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
25736 to ix86_enum_va_list.
25737 * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
25738 * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
25739 (TARGET_ENUM_VA_LIST_P): Add hook description.
25740 * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
25741 * target.h (gcc_target): Add enum_va_list hook.
25742
25743 PR bootstrap/44299
25744 * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
25745 * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
25746 * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
25747
25748 2010-05-28 Alan Modra <amodra@gmail.com>
25749
25750 PR target/44266
25751 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
25752 emit_library_call machinery to set up __tls_get_addr calls.
25753
25754 2010-05-28 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
25755
25756 * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
25757
25758 2010-05-28 Dodji Seketeli <dodji@redhat.com>
25759
25760 Revert fix for PR c++/44188
25761 * c-common.c (is_typedef_decl): Revert the moving of this
25762 definition ...
25763 * tree.c (is_typedef_decl): ... here.
25764 (typdef_variant_p): Revert the moving of this definition
25765 here from cp/tree.c.
25766 * c-common.h (is_typedef_decl): Revert the moving of this
25767 declaration ...
25768 * tree.h (is_typedef_decl): ... here.
25769 (typedef_variant_p): Revert the moving of this declaration here
25770 from cp/cp-tree.h
25771 * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
25772 (gen_tagged_type_die): Revert the splitting out of ...
25773 (gen_type_die_with_usage): ... this function. Revert the anonymous
25774 tagged type handling.
25775 (gen_typedef_die): Revert emitting DW_TAG_typedef for
25776 typedefs naming anonymous tagged types.
25777
25778 2010-05-28 Segher Boessenkool <segher@kernel.crashing.org>
25779
25780 * config/rs6000/rs6000-modes.def (PSImode): Delete.
25781
25782 2010-05-28 Segher Boessenkool <segher@kernel.crashing.org>
25783
25784 * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
25785 * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
25786 throughout.
25787 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
25788 "xer" to "ca".
25789 Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
25790 XER_REGS to CA_REGS throughout.
25791 * config/rs6000/rs6000.h: Same.
25792 (ADDITIONAL_REGISTER_NAMES): Add "xer".
25793 * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO. Document
25794 that mode_iterator "P" is the size for arithmetic carries as well.
25795 * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
25796
25797 2010-05-28 Jakub Jelinek <jakub@redhat.com>
25798
25799 PR bootstrap/44255
25800 * combine.c (struct rtx_subst_pair): Define unconditionally.
25801 (propagate_for_debug_subst): Likewise. If not AUTO_INC_DEC,
25802 copy_rtx pair->to instead of cleanup_auto_inc_dec it.
25803 Call make_compound_operation on pair->to.
25804 (propagate_for_debug): Don't call make_compound_operation here.
25805 Always use simplify_replace_fn_rtx.
25806
25807 2010-05-27 Sterling Augustine <sterling@tensilica.com>
25808
25809 * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
25810 * config/xtensa/xtensa.c (override_options): Check
25811 TARGET_FORCE_NO_PIC and set flag_pic.
25812 * config/xtensa/xtensa.opt: Document -mforce-no-pic
25813
25814 2010-05-27 Kai Tietz <kai.tietz@onevision.com>
25815
25816 PR bootstrap/44299
25817 * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
25818 * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
25819
25820 2010-05-27 Joseph Myers <joseph@codesourcery.com>
25821
25822 * diagnostic-core.h: New. Contents moved from diagnostic.h and
25823 toplev.h.
25824 * diagnostic.c: Don't include toplev.h.
25825 (progname): Define. Moved from toplev.c.
25826 (seen_error): New function.
25827 * diagnostic.h: Include diagnostic-core.h.
25828 (diagnostic_t, emit_diagnostic): Don't declare here.
25829 * toplev.c (progname): Move to toplev.c.
25830 (emit_debug_global_declarations, compile_file, finalize,
25831 do_compile, toplev_main): Use seen_error.
25832 * toplev.h: Include diagnostic-core.h.
25833 (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
25834 internal_error, warning, warning_at, error, error_n, error_at,
25835 fatal_error, pedwarn, permerror, sorry, inform, inform_n,
25836 verbatim, fnotice, progname): Move to diagnostic-core.h.
25837 * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
25838 (expand_builtin_expect): Use seen_error.
25839 * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
25840 (c_make_fname_decl, c_write_global_declarations): Use seen_error.
25841 * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
25842 * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
25843 * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
25844 * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
25845 errorcount for errors.
25846 * c-opts.c (c_common_finish): Use seen_error.
25847 * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
25848 * cgraphunit.c (verify_cgraph_node, verify_cgraph,
25849 cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
25850 * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
25851 (get_coverage_counts): Use seen_error.
25852 * dwarf2out.c (dwarf2out_finish): Use seen_error.
25853 * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
25854 gimplify_body): Use seen_error.
25855 * ipa-inline.c (cgraph_early_inlining): Use seen_error.
25856 * ipa-pure-const.c (gate_pure_const): Use seen_error.
25857 * ipa-reference.c (gate_reference): Use seen_error.
25858 * jump.c: Include diagnostic-core.h instead of diagnostic.h.
25859 * lambda-code.c: Include diagnostic-core.h instead of
25860 diagnostic.h.
25861 * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
25862 * lto-compress.c: Include diagnostic-core.h instead of
25863 diagnostic.h.
25864 * lto-section-in.c: Include diagnostic-core.h instead of
25865 diagnostic.h.
25866 * lto-streamer-out.c: Include diagnostic-core.h instead of
25867 diagnostic.h.
25868 * lto-streamer.c: Include diagnostic-core.h instead of
25869 diagnostic.h.
25870 (gate_lto_out): Use seen_error.
25871 * matrix-reorg.c: Include diagnostic-core.h instead of
25872 diagnostic.h.
25873 * omega.c: Include diagnostic-core.h instead of diagnostic.h.
25874 * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
25875 (gate_expand_omp, lower_omp_1): Use seen_error.
25876 * passes.c: Include diagnostic-core.h instead of diagnostic.h.
25877 (rest_of_decl_compilation, rest_of_type_compilation,
25878 gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
25879 * tree-cfg.c (label_to_block_fn): Use seen_error.
25880 * tree-inline.c (optimize_inline_calls): Use seen_error.
25881 * tree-mudflap.c (mudflap_finish_file): Use
25882 seen_error.
25883 * tree-optimize.c (gate_all_optimizations,
25884 gate_all_early_local_passes, gate_all_early_optimizations): Use
25885 seen_error.
25886 * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
25887 * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
25888 (varpool_remove_unreferenced_decls,
25889 varpool_assemble_pending_decls): Use seen_error.
25890 * Makefile.in (DIAGNOSTIC_CORE_H): Define.
25891 (TOPLEV_H, DIAGNOSTIC_H): Update.
25892 (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
25893 lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
25894 c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
25895 builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
25896 coverage.o, lambda-code.o): Update dependencies.
25897
25898 2010-05-25 Dodji Seketeli <dodji@redhat.com>
25899
25900 PR c++/44188
25901 * c-common.c (is_typedef_decl): Move this definition ...
25902 * tree.c (is_typedef_decl): ... here.
25903 (typdef_variant_p): Move definition here from cp/tree.c.
25904 * c-common.h (is_typedef_decl): Move this declaration ...
25905 * tree.h (is_typedef_decl): ... here.
25906 (typedef_variant_p): Move declaration here from cp/cp-tree.h
25907 * dwarf2out.c (is_naming_typedef_decl): New function.
25908 (gen_tagged_type_die): Split out of ...
25909 (gen_type_die_with_usage): ... this function. When an anonymous
25910 tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
25911 is emitted for the typedef.
25912 (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
25913 anonymous tagged types.
25914
25915 2010-05-27 Jason Merrill <jason@redhat.com>
25916
25917 * print-tree.c (debug_vec_tree): New fn.
25918 (print_vec_tree): New fn.
25919 * tree.h: Declare them.
25920 * gdbinit.in (pvt): New command.
25921
25922 * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
25923
25924 * gdbinit.in (pdd): New command.
25925
25926 2010-05-27 Jan Hubicka <jh@suse.cz>
25927
25928 * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
25929 (update_caller_keys): Return early if there are no callers;
25930 only update fibheap when decresing the key.
25931 (update_callee_keys): Avoid recursion.
25932 (decide_inlining_of_small_functions): When badness does not match;
25933 re-insert into fibheap.
25934
25935 2010-05-27 Steven Bosscher <steven@gcc.gnu.org>
25936
25937 * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
25938 (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
25939 (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
25940 (ALL_HOST_OBJS): Now a union of the above two.
25941 <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
25942 all files in ALL_HOST_FRONTEND_OBJS.
25943 * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
25944
25945 * c-common.c: Pretend to be a backend file by undefining
25946 IN_GCC_FRONTEND (still need rtl.h here).
25947
25948 2010-05-27 Jan Hubicka <jh@suse.cz>
25949
25950 * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
25951 * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
25952
25953 2010-05-27 Jan Hubicka <jh@suse.cz>
25954
25955 * sched-ebb.c: Rename struct deps to struct deps_desc.
25956 * ddg.c: Likewise.
25957 * sel-sched-ir.c: Likewise.
25958 * sched-deps.c: Likewise.
25959 * sched-int.h: Likewise.
25960 * sched-rgn.c: Likewise.
25961
25962 2010-05-27 Jon Beniston <jon@beniston.com>
25963
25964 PR 43726
25965 * config/lm32/lm32.h: Remove definition of
25966 GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
25967
25968 2010-05-27 Eric Botcazou <ebotcazou@adacore.com>
25969
25970 PR lto/44230
25971 * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
25972
25973 2010-05-27 Richard Guenther <rguenther@suse.de>
25974
25975 PR tree-optimization/44284
25976 * tree-vect-stmts.c (vectorizable_assignment): Handle
25977 sign-changing conversions as simple copy.
25978
25979 2010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
25980
25981 * gthr-posix.h (pthread_cancel): Don't declare if compiling against
25982 Bionic C library.
25983 (__gthread_active_p): Check for pthread_create if compiling against
25984 Bionic C library.
25985
25986 2010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
25987
25988 Support compilation for Android platform. Reimplement -mandroid.
25989
25990 * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
25991 (*android*): Set ANDROID_DEFAULT.
25992 (arm*-*-linux*): Include linux-android.h.
25993 (arm*-*-eabi*): Don't include previous -mandroid implementation.
25994 * config/arm/eabi.h: Remove, move Android-specific parts ...
25995 * config/linux-android.h: ... here. New file.
25996 * config/arm/eabi.opt: Rename to ...
25997 * config/linux-android.opt: ... this.
25998 (mandroid): Allow -mno-android option. Initialize based on
25999 ANDROID_DEFAULT.
26000 * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
26001 Move logic to corresponding LINUX_TARGET_* macros.
26002 (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
26003 * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
26004 (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
26005 Android definitions.
26006 (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
26007 * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
26008 Document.
26009
26010 2010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
26011
26012 Add support for Bionic C library
26013
26014 * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
26015 macro.
26016 (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
26017 (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
26018
26019 * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
26020 (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
26021 (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
26022 to support multiple C libraries. Handle Bionic.
26023 (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
26024 (BIONIC_DYNAMIC_LINKER64): Define.
26025 (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
26026 Update.
26027 (TARGET_HAS_SINCOS): Enable for Bionic.
26028
26029 * config/linux.opt: Rewrite to handle more than 2 C libraries. Make
26030 the last option specified on command line take effect.
26031 (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
26032 (mbionic): New.
26033 (mglibc, muclibc): Update.
26034
26035 * config/alpha/linux-elf.h, config/rs6000/linux64.h,
26036 * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
26037 DEFAULT_LIBC.
26038
26039 * doc/invoke.texi (-mglibc, -muclibc): Update.
26040 (-mbionic): Document.
26041
26042 2010-05-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
26043
26044 * c-common.h (c_register_addr_space): Add prototype.
26045 (ADDR_SPACE_KEYWORD): Remove.
26046 * c-common.c (c_register_addr_space): New function.
26047 (c_addr_space_name): Reimplement.
26048 (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
26049
26050 * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
26051 (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
26052
26053 * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
26054 Remove TARGET_ADDR_SPACE_KEYWORDS.
26055
26056 2010-05-27 Joseph Myers <joseph@codesourcery.com>
26057
26058 * input.c: New file.
26059 * input.h (main_input_filename): Move declaration to toplev.h.
26060 * toplev.c (input_location, line_table): Move to input.c
26061 * toplev.h (main_input_filename): Move declaration from input.h.
26062 * tree.c (expand_location): Move to input.c.
26063 * Makefile.in (OBJS-common): Add input.o.
26064 (input.o): Add dependencies.
26065
26066 2010-05-27 Richard Guenther <rguenther@suse.de>
26067
26068 * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
26069 for non-existant files.
26070 (fork_execute): Mark args_name file as deleted.
26071
26072 2010-05-27 Kai Tietz <kai.tietz@onevision.com>
26073
26074 PR bootstrp/44287
26075 * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
26076 (narrow_signed_type): Likewise.
26077
26078 2010-05-26 Jan Hubicka <jh@suse.cz>
26079
26080 * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
26081 edge only when checking is enabled; check using former_clone_of;
26082 check inline clones too.
26083 (cgraph_materialize_clone): Record former_clone_of pointer.
26084 (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
26085 combining redirections; dump args_to_skip bitmap
26086 (cgraph_materialize_all_clones): Do no redirection here.
26087 * ipa-inline.c (inline_transform): Do redirection here.
26088 * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
26089 cheking only).
26090
26091 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
26092
26093 * config/avr/avr-c.c: Do not include regs.h.
26094 Include cpplib.h for cpp_define and tree.h for c-common.h.
26095 * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
26096 * config/avr/t-avr: Fix dependencies for avr-c.o.
26097
26098 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
26099
26100 * explow.c (set_stack_check_libfunc): Adjust to accept name as a
26101 string instead of SYMBOL_REF rtx.
26102 * rtl.h (set_stack_check_libfunc): Move prototype from here...
26103 * libfuncs.h: ...to here. Adjust for explow.c change.
26104
26105 2010-05-26 Joseph Myers <joseph@codesourcery.com>
26106
26107 * pretty-print.c: Don't include ggc.h.
26108 (identifier_to_locale_alloc, identifier_to_locale_free): Define.
26109 (identifier_to_locale): Use them for allocation.
26110 * pretty-print.h (identifier_to_locale_alloc,
26111 identifier_to_locale_free): Declare.
26112 * toplev.c (alloc_for_identifier_to_locale): New.
26113 (general_init): Set identifier_to_locale_alloc and
26114 identifier_to_locale_free.
26115 * Makefile.in (pretty-print.o): Update dependencies.
26116
26117 2010-05-26 Eric Botcazou <ebotcazou@adacore.com>
26118
26119 * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
26120 pointer types if they have different alignment or mode.
26121
26122 2010-05-26 Anatoly Sokolov <aesok@post.ru>
26123
26124 * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
26125 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
26126 * config/sparc/sparc-protos.h (function_value): Remove declaration.
26127 * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
26128 sparc_function_value_regno_p): New functions.
26129 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
26130 TARGET_FUNCTION_VALUE_REGNO_P): Define.
26131 (function_value): Rename to...
26132 (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
26133 argument to 'outgoing'.
26134 (function_arg_record_value, function_arg_union_value,
26135 function_arg_vector_value): Update comment.
26136
26137 2010-05-26 Eric Botcazou <ebotcazou@adacore.com>
26138
26139 * dwarf2out.c (struct dw_fde_struct): Reorder flags.
26140 (fde_needed_for_eh_p): New predicate.
26141 (output_call_frame_info): Use it throughout to decide whether FDEs
26142 are needed for EH purpose.
26143 (dwarf2out_begin_prologue): Reorder assignments.
26144
26145 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
26146
26147 * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
26148 special case loop->header.
26149 (is_predicated): New.
26150 (if_convertible_loop_p): Call it.
26151
26152 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
26153
26154 * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
26155 iterator in parameter. Do not generate code during the analysis.
26156 (tree_if_convert_cond_stmt): Removed.
26157 (tree_if_convert_stmt): Removed.
26158 (predicate_bbs): New.
26159 (if_convertible_loop_p): Call predicate_bbs.
26160 (tree_if_conversion): Simplify the top-level logic as predicate_bbs
26161 now contains all the analysis part.
26162
26163 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
26164
26165 * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
26166 statements in the analysis part.
26167 (tree_if_convert_stmt): Update comment.
26168 (remove_conditions_and_labels): New.
26169 (combine_blocks): Call remove_conditions_and_labels.
26170 (tree_if_conversion): Update comment.
26171
26172 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
26173
26174 * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
26175 than 2 predecessors or more than 2 successors.
26176
26177 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
26178
26179 * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
26180 of loops in which the data dependence analysis fails.
26181
26182 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
26183
26184 * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
26185 CDI_POST_DOMINATORS.
26186 (tree_if_conversion): Same.
26187
26188 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
26189
26190 * tree-if-conv.c (tree_if_conversion): Do not return a bool.
26191
26192 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
26193
26194 * tree-if-conv.c: Update copyright years. Fix comments.
26195 Fix indentation.
26196
26197 2010-05-26 Kai Tietz <kai.tietz@onevision.com>
26198
26199 * builtin-types.def (BT_INT128): New primitive type.
26200 (BT_UINT128): Likewise.
26201 * c-common.c (c_common_r): Add __int128 keyword.
26202 (c_common_type_for_size): Handle __int128.
26203 (c_common_type_for_mode): Likewise.
26204 (c_common_signed_or_unsigned_type): Likewise.
26205 (c_common_nodes_and_builtins): Add builtin type
26206 if target supports 128-bit integer scalar.
26207 * c-common.h (enum rid): Add RID_INT128.
26208 * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
26209 if target supports 128-bit integer scalar.
26210 * c-decl.c (declspecs_add_type): Handle new keyword __int128.
26211 (finish_declspecs): Likewise.
26212 * c-parser.c (c_token_starts_typename): Handle RID_INT128.
26213 (c_token_starts_declspecs): Likewise.
26214 (c_parser_declspecs): Likewise.
26215 (c_parser_attributes): Likewise.
26216 (c_parser_objc_selector): Likewise.
26217 * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
26218 * c-tree.h (enum c_typespec_keyword): Add cts_int128.
26219 * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
26220 * tree.c (make_or_reuse_type): Likewise.
26221 (make_unsigned_type): Likewise.
26222 (build_common_tree_nodes_2): Likewise.
26223 * tree.h (enum integer_type_kind): Add itk_int128 and
26224 itk_unsigned_int128.
26225 (int128_integer_type_node): New define.
26226 (int128_unsigned_type_node): New define.
26227 * doc/extend.texi: Add documentation about __int128 type.
26228
26229 2010-05-26 Richard Guenther <rguenther@suse.de>
26230
26231 * tree-ssa-sccvn.c (copy_nary): Adjust.
26232 (copy_phis): Rename to ...
26233 (copy_phi): ... this. Adjust.
26234 (copy_references): Rename to ...
26235 (copy_reference): ... this. Adjust.
26236 (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
26237 result into the valid table.
26238
26239 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
26240
26241 * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
26242 insn-config.h, insn-codes.h, recog.h, and optabs.h.
26243
26244 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
26245
26246 * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
26247
26248 2010-05-26 Richard Guenther <rguenther@suse.de>
26249
26250 * opts.c (common_handle_option): Handle OPT_Ofast.
26251
26252 2010-05-26 Joseph Myers <joseph@codesourcery.com>
26253
26254 * diagnostic.c: Don't include opts.h.
26255 (permissive_error_option): Define.
26256 (diagnostic_initialize): Take n_opts parameter. Allocate memory
26257 for classify_diagnostic. Don't use memset for
26258 classify_diagnostic. Initialize new and recently added fields.
26259 (diagnostic_classify_diagnostic): Use context->n_opts instead of
26260 N_OPTS.
26261 (diagnostic_report_diagnostic): Pass context parameter to
26262 diagnostic_report_warnings_p. Use option_enabled and option_name
26263 hooks from context.
26264 (emit_diagnostic): Use permissive_error_option.
26265 (permerror): Likewise.
26266 * diagnostic.h: Don't include options.h.
26267 (struct diagnostic_context): Add n_opts, opt_permissive,
26268 inhibit_warnings, warn_system_headers, option_enabled and
26269 option_name fields. Change classify_diagnostic to a pointer.
26270 * opts-diagnostic.h: New file.
26271 * opts.c: Include opts-diagnostic.h.
26272 (common_handle_option): Set global_dc fields for -Wfatal-errors,
26273 -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
26274 (option_name): New function.
26275 * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
26276 (c_common_handle_option): Set global_dc->permissive for
26277 -fpermissive.
26278 * c-common.c (c_cpp_error): Save and restore
26279 global_dc->warn_system_headers, not variable warn_system_headers.
26280 * toplev.c: Include opts-diagnostic.h.
26281 (general_init): Update call to diagnostic_initialize. Set
26282 global_dc->show_column, global_dc->option_enabled and
26283 global_dc->option_name.
26284 (process_options): Don't set global_dc fields here.
26285 * Makefile.in (DIAGNOSTIC_H): Remove options.h.
26286 (diagnostic.o, opts.o, toplev.o): Update dependencies.
26287
26288 2010-04-30 Hariharan Sandanagobalane <hariharan@picochip.com>
26289
26290 * config/picochip/picochip.md (movsi): Split a movsi from a
26291 const after reload.
26292
26293 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
26294
26295 * ggc-zone.c: Update copyright year.
26296 (poison_region): Mark memory for Valgrind as undefined before
26297 memset () call and inaccessible afterwards.
26298 (ggc_pch_total_size): Change type of i to int.
26299
26300 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
26301
26302 * ggc-common.c (ggc_free_overhead): Allow empty slot.
26303
26304 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
26305
26306 * ggc-common.c: Update copyright year.
26307 (ggc_rlimit_bound): Remove prototype. Compile only if
26308 !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
26309 (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
26310 && !ENABLE_GC_ALWAYS_COLLECT. Make static.
26311 (ggc_min_heapsize_heuristic): Likewise.
26312
26313 2010-05-26 Richard Guenther <rguenther@suse.de>
26314
26315 PR rtl-optimization/44164
26316 * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
26317 no-common access-path disambiguation.
26318 (indirect_ref_may_alias_decl_p): Adjust.
26319 (indirect_refs_may_alias_p): Likewise.
26320 (refs_may_alias_p_1): Likewise.
26321
26322 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
26323
26324 * c-typeck.c: Do not include expr.h.
26325
26326 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
26327
26328 * rtl.h (decl_default_tls_model): Move prototype from here...
26329 * output.h: ...to here.
26330 * c-decl.c: Do not include rtl.h.
26331 * c-pragma.c: Likewise.
26332 * c-parser.c: Likewise.
26333 * c-gimplify.c: Likewise. And also not hard-reg-set.
26334 * c-common.c: Do not include rtl.h. Include tm_p.h and add a
26335 FIXME note for it. Add a FIXME note for expr.h.
26336 * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
26337 ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
26338 defined.
26339
26340 2010-05-26 Jakub Jelinek <jakub@redhat.com>
26341
26342 PR target/44199
26343 * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
26344 or total_size is larger than red zone size for non-V4 ABI, emit a
26345 stack_tie resp. frame_tie insn before stack pointer restore.
26346 * config/rs6000/rs6000.md (frame_tie): New insn.
26347
26348 2010-05-25 Eric Botcazou <ebotcazou@adacore.com>
26349
26350 * function.h (struct function): Add can_throw_non_call_exceptions bit.
26351 * lto-streamer-in.c (input_function): Stream it in.
26352 * lto-streamer-out.c (output_function): Stream it out.
26353 * function.c (allocate_struct_function): Set it.
26354 (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
26355 for flag_non_call_exceptions.
26356 * cfgbuild.c (control_flow_insn_p): Likewise.
26357 (make_edges): Likewise.
26358 * cfgexpand.c (expand_stack_alignment): Likewise.
26359 * combine.c (distribute_notes): Likewise.
26360 * cse.c (cse_extended_basic_block): Likewise.
26361 * except.c (insn_could_throw_p): Likewise.
26362 * gcse.c (simple_mem): Likewise.
26363 * ipa-pure-const.c (check_call): Likewise.
26364 (check_stmt ): Likewise.
26365 * lower-subreg.c (lower-subreg.c): Likewise.
26366 * optabs.c (emit_libcall_block): Likewise.
26367 (prepare_cmp_insn): Likewise.
26368 * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
26369 * postreload.c (rest_of_handle_postreload): Likewise.
26370 * reload1.c (reload_as_needed): Likewise.
26371 (emit_input_reload_insns): Likewise.
26372 (emit_output_reload_insns): Likewise.
26373 (fixup_abnormal_edges): Likewise.
26374 * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
26375 * store-motion.c (find_moveable_store): Likewise.
26376 * tree-eh.c (stmt_could_throw_p): Likewise.
26377 (tree_could_throw_p): Likewise.
26378 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
26379 * config/arm/arm.c (arm_expand_prologue): Likewise.
26380 (thumb1_expand_prologue): Likewise.
26381 * config/rx/rx.md (cbranchsf4): Likewise.
26382 (cmpsf): Likewise.
26383 * config/s390/s390.c (s390_emit_prologue): Likewise.
26384 * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
26385 (inline_forbidden_into_p): New predicate.
26386 (expand_call_inline): Use it to forbid inlining.
26387 (tree_can_inline_p): Likewise.
26388
26389 2010-05-25 Steven Bosscher <steven@gcc.gnu.org>
26390
26391 * config/i386/i386-c.c: Do not include rtl.h.
26392 * config/i386/t-i386: Update dependencies.
26393
26394 2010-05-25 Steven Bosscher <steven@gcc.gnu.org>
26395
26396 * attribs.c: Do not include rtl.h.
26397 * Makefile.in: Update dependencies.
26398
26399 2010-05-25 Anatoly Sokolov <aesok@post.ru>
26400
26401 * double-int.h (double_int_and): New.
26402 * combine.c (try_combine): Clean up, use double_int_* and
26403 immed_double_int_const functions.
26404
26405 2010-05-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26406
26407 * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
26408 stderr to /dev/null instead of grep -q.
26409 * configure: Regenerate.
26410
26411 2010-05-25 Steven Bosscher <steven@gcc.gnu.org>
26412
26413 * Makefile.in (EXCEPT_H): Fix typo.
26414
26415 2010-05-25 Vladimir Makarov <vmakarov@redhat.com>
26416
26417 * ira-build.c (update_conflict_hard_reg_costs): New.
26418 (ira_build): Call update_conflict_hard_reg_costs.
26419
26420 2010-05-25 Jakub Jelinek <jakub@redhat.com>
26421
26422 PR debug/41371
26423 * var-tracking.c (find_loc_in_1pdv): Guard asserts with
26424 ENABLE_CHECKING.
26425 (intersect_loc_chains): Walk the s2var's loc_chain together
26426 with s1node chain as long as the locations are equal, don't
26427 call find_loc_in_1pdv in that case.
26428
26429 PR debug/42801
26430 * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
26431 (copy_bind_expr): ... instead of here.
26432 (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
26433 if the block hasn't been remapped.
26434 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
26435 emitting concrete instance of abstract VLA, add DW_AT_type attribute.
26436
26437 2010-05-25 Richard Guenther <rguenther@suse.de>
26438
26439 PR middle-end/44069
26440 * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
26441 out-of-bounds array accesses.
26442
26443 2010-05-25 Richard Guenther <rguenther@suse.de>
26444
26445 * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
26446 (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
26447 (run_gcc): Re-organize to make cleanup easier.
26448
26449 2010-05-25 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26450
26451 * config/s390/s390.c (optimization_options): Fix and move the
26452 flag_prefetch_loop_arrays override ...
26453 (override_options): ... here.
26454
26455 2010-05-25 Joseph Myers <joseph@codesourcery.com>
26456
26457 * diagnostic.c: Don't include plugin.h.
26458 (diagnostic_report_diagnostic): Don't handle plugins specially
26459 here. Pass context to internal_error callback.
26460 * diagnostic.h (struct diagnostic_context): Add context parameter
26461 to internal_error callback.
26462 * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
26463 * plugin.h (struct diagnostic_context): Declare.
26464 (warn_if_plugins, plugins_internal_error_function): Declare.
26465 * toplev.c (general_init): Set global_dc->internal_error.
26466 * Makefile.in (diagnostic.o): Update dependencies.
26467
26468 2010-05-25 Iain Sandoe <iains@gcc.gnu.org>
26469
26470 * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
26471 * config/rs6000/t-darwin64: New.
26472 * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
26473 build crt2.
26474
26475 2010-05-25 Christian Borntraeger <borntraeger@de.ibm.com>
26476
26477 PR 44203
26478 * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
26479 match the original (and intended) behaviour before r159557. This
26480 changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
26481 in two ways.
26482
26483 2010-05-25 Richard Guenther <rguenther@suse.de>
26484
26485 * doc/invoke.texi: Document -Ofast.
26486 * target.h (struct gcc_target): Add handle_ofast.
26487 * target-def.h (TARGET_HANDLE_OFAST): Add.
26488 (TARGET_INITIALIZER): Adjust.
26489 * opts.c (decode_options): Handle -Ofast. Enable -ffast-math with it.
26490 * common.opt (Ofast): Add.
26491
26492 2010-05-25 Paolo Bonzini <bonzini@gnu.org>
26493
26494 * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
26495 * doc/md.texi (cstoreXX4): Update for cond-optab changes.
26496
26497 2010-05-25 Paolo Bonzini <bonzini@gnu.org>
26498
26499 PR target/43610
26500 * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
26501 even if !FLOAT_LIB_COMPARE_RETURNS_BOOL. Always compute true_rtx and
26502 false_rtx. Use false_rtx to compute the correct *ptest for reversed
26503 comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
26504
26505 2010-05-25 Jakub Jelinek <jakub@redhat.com>
26506
26507 * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
26508 DW_OP_minus with negated offset instead of DW_OP_plus.
26509 (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
26510
26511 2010-05-25 Wei Guozhi <carrot@google.com>
26512
26513 * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
26514 tst instruction and a new alternative.
26515 * config/arm/constraints.md (Pu): New constraint.
26516
26517 2010-05-24 Sebastian Pop <sebastian.pop@amd.com>
26518
26519 * function.c (assign_stack_local_1): Initialize variable
26520 to avoid warning when bootstrapping at -O3.
26521
26522 2010-05-24 Steven Bosscher <steven@gcc.gnu.org>
26523
26524 * configure.ac (all_lang_makefiles): Remove everything related to it.
26525 * configure: Regenerate.
26526 * Makefile.in: Fix reference to ada Make-lang.in.
26527 Remove support for LANG_MAKEFILES.
26528
26529 2010-05-24 Daniel Jacobowitz <dan@codesourcery.com>
26530 Sandra Loosemore <sandra@codesourcery.com>
26531
26532 * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
26533 * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
26534 description. Add arm_neon_fp16_ok.
26535 (Add Options): Add arm_neon and arm_neon_fp16.
26536
26537 2010-05-24 Joseph Myers <joseph@codesourcery.com>
26538
26539 * diagnostic.c: Don't include flags.h.
26540 (pedantic_warning_kind, permissive_error_kind): Take diagnostic
26541 context parameters. Check flags in the context passed as a parameter.
26542 (diagnostic_build_prefix): Add context parameter. Check
26543 show_column flag in context.
26544 (diagnostic_action_after_output): Check fatal_errors flag in context.
26545 (diagnostic_report_current_module): Check show_column flag in context.
26546 (default_diagnostic_starter): Update call to
26547 diagnostic_build_prefix.
26548 (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
26549 (emit_diagnostic): Pass context to permissive_error_kind.
26550 (permerror): Pass context to permissive_error_kind.
26551 * diagnostic.h (struct diagnostic_context): Add show_column,
26552 pedantic_errors, permissive and fatal_errors fields.
26553 (diagnostic_build_prefix): Update prototype.
26554 * langhooks.c
26555 * toplev.c (process_options): Set flags in global_dc from
26556 flag_show_column, flag_pedantic_errors, flag_permissive,
26557 flag_fatal_errors.
26558 * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
26559 to diagnostic_build_prefix.
26560 * Makefile.in (diagnostic.o): Update dependencies.
26561
26562 2010-05-24 H.J. Lu <hongjiu.lu@intel.com>
26563
26564 * config/i386/ia32intrin.h (__crc32q): Define only if
26565 __SSE4_2__ is defined.
26566
26567 2010-05-24 Iain Sandoe <iains@gcc.gnu.org>
26568
26569 PR target/44132
26570 PR middle-end/43602
26571 * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
26572 DECL_VISIBILITY_SPECIFIED.
26573 (emutls_decl): Set DECL_PRESERVE_P and copy
26574 DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
26575 (emutls_finalize_control_var): New callback.
26576 (emutls_finish): Finalize emutls control variables.
26577 * toplev.c (compile_file): Move the call to emutls_finish ()
26578 before varpool_assemble_pending_decls ().
26579
26580 2010-05-24 Daniel Gutson <dgutson@codesourcery.com>
26581
26582 * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
26583 added to the preprocessor condition.
26584
26585 2010-05-24 Paul Brook <paul@codesourcery.com>
26586
26587 * gengtype-lex.l: Add HARD_REG_SET.
26588 * expr.c (expand_expr_real_1): Record writes to hard registers.
26589 * function.c (rtl_data): Add asm_clobbers.
26590 * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
26591 (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
26592 Use crtl->asm_clobbers.
26593
26594 2010-05-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
26595
26596 * doc/makefile.texi (Makefile): Mention stages 'profile'
26597 and 'feedback' for profiledbootstrap.
26598
26599 2010-05-23 H.J. Lu <hongjiu.lu@intel.com>
26600
26601 PR target/44245
26602 * config/i386/i386.c (def_builtin): Properly check
26603 OPTION_MASK_ISA_64BIT.
26604
26605 2010-05-23 Joseph Myers <joseph@codesourcery.com>
26606
26607 * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
26608 typedefs with different but compatible types. Allow duplicate
26609 typedefs with the same type except for pedantic non-C1X, but give
26610 warning for variably modified types.
26611 * c-typeck.c (tagged_types_tu_compatible_p,
26612 function_types_compatible_p, type_lists_compatible_p,
26613 comptypes_internal): Add parameter different_types_p; set
26614 *different_types_p for different but compatible types. All
26615 callers changed.
26616 (comptypes_check_different_types): New.
26617 * c-tree.h (comptypes_check_different_types): Declare.
26618
26619 2010-05-23 Steven Bosscher <steven@gcc.gnu.org>
26620
26621 * regs.h: Do not include obstack.h, basic-block.h. Include machmode.h.
26622 * jump.c: Include basic-block.h.
26623 * profile.c: Likewise.
26624 * tree-profile.c: Likewise.
26625 * coverage.c: Likewise.
26626 * basic-block.h (optimize_function_for_size_p): Move to function.h.
26627 (optimize_function_for_speed_p): Likewise.
26628 * function.h (optimize_function_for_size_p,
26629 optimize_function_for_speed_p): Moved here from basic-block.h.
26630 * Makefile.in: Update dependencies.
26631
26632 2010-05-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
26633
26634 * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
26635 before calling make; allow override through $MAKE.
26636 * doc/invoke.texi (Optimize Options): Document override.
26637
26638 2010-05-23 Anatoly Sokolov <aesok@post.ru>
26639
26640 * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
26641 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
26642 (rs6000_mode_dependent_address_ptr): Make static.
26643 * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
26644 * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
26645 Remove.
26646
26647 2010-05-23 Maarten Lankhorst <mlankhorst@codeweavers.com>
26648
26649 PR target/43869
26650 * config/i386/i386.c: Make sure that the correct regparm is passed.
26651
26652 2010-05-23 Steven Bosscher <steven@gcc.gnu.org>
26653
26654 * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
26655 * sbitmap.c: ...to here to internalize sbitmap element access.
26656 Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
26657 Explain why basic-block.h is included.
26658 * function.h: Include tm.h for CUMULATIVE_ARGS.
26659 * Makefile.in: Update dependencies.
26660
26661 2010-05-22 Steven Bosscher <steven@gcc.gnu.org>
26662
26663 * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
26664 New core types.
26665 * sbitmap.h (struct sbitmap_def): Do not typedef here.
26666 * sbitmap.c: Include sbitmap.h.
26667 * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
26668 hard-reg-set.h. Split everything related to regsets out from here...
26669 * regset.h: ...to here. New file.
26670 * df.h: Include regset.h and sbitmap.h.
26671 * tree-flow.h: Likewise.
26672 * cfgloop.h: Likewise.
26673 * except.h: Do not include sbitmap.h. Include hashtab.h.
26674 * cgraph.h: Include vec.h and function.h.
26675 * reload.h (struct insn_chain): Change types of live_throughout
26676 and dead_or_set from regset_head to bitmap_head.
26677 (compute_use_by_pseudos): Be defined also if regset.h is not included.
26678 * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
26679 spilled_regs from regset_head to bitmap_head to avoid dependency
26680 in regset.h.
26681 * sel-sched-ir.h: Include regset.h.
26682 * reload.c: Include df.h before reload.h.
26683 * caller-save.c: Likewise.
26684 * reload1.c: Likewise.
26685 * ira.c: Likewise.
26686 (mark_elimination): Update type of r to bitmap, consistent with
26687 DF_LR_IN.
26688 * dominance.c: Include bitmap.h.
26689 * modulo-sched.c: Include df.h.
26690 * cfganal.c: Include bitmap.h and sbitmap.h.
26691 * cfgbuild.c: Include sbitmap.h.
26692 * lcm.c: Include sbitmap.h.
26693 * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
26694 * domwalk.c: Include sbitmap.h, exclude ggc.h.
26695 * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
26696 * cselib.c: Include bitmap.h.
26697 * tree-optimize.c: Include regset.h.
26698 * stmt.c: Include bitmap.h.
26699 * Makefile.in: Update dependencies.
26700
26701 2010-05-22 Jan Hubicka <jh@suse.cz>
26702
26703 * cgraph.h (struct varpool_node): Add same_comdat_group.
26704 * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
26705 pointer.
26706 (output_varpool): Update call of lto_output_varpool_node.
26707 (input_varpool): Read same_comdat_group pointer.
26708 (input_varpool_1): Fixup same_comdat_group pointer.
26709 * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
26710 group is needed, all are.
26711 * varpool.c (varpool_remove_node): Remove node from same comdat group
26712 linklist too.
26713 (varpool_analyze_pending_decls): Walk same comdat groups.
26714
26715 2010-05-22 Steven Bosscher <steven@gcc.gnu.org>
26716
26717 * rtl.h (union rtunion_def): Remove rt_bit member.
26718 (XBITMAP, X0BITMAP, XCBITMAP): Remove.
26719 * print-rtl (print_rtx): Do not print the member.
26720 * gengtype.c (adjust_field_rtx_def): Do not handle it.
26721 * gengenrtl.c (type_from_format): Likewise.
26722 (accessor_from_format): Likewise.
26723
26724 2010-05-22 Joseph Myers <joseph@codesourcery.com>
26725
26726 * dbgcnt.c: Include toplev.h instead of errors.h.
26727 * ira-emit.c: Don't include errors.h.
26728 * ira.c: Include toplev.h instead of errors.h.
26729 * lto-compress.c: Include toplev.h instead of errors.h.
26730 * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
26731 ira.o, dbgcnt.o): Update dependencies.
26732
26733 2010-05-22 Richard Guenther <rguenther@suse.de>
26734
26735 * gimple.c (gimple_types_compatible_p): Check type qualifications
26736 before merging pointer to complete and pointer to incomplete type.
26737 * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
26738 we use our own resolution algorithm. The gold linker plugin
26739 doesn't do the job we want it to do here.
26740
26741 2010-05-22 Anatoly Sokolov <aesok@post.ru>
26742
26743 * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
26744 * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
26745 (sparc_mode_dependent_address_p): New function.
26746
26747 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
26748
26749 * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
26750
26751 * timevar.c: Do not include any core headers.
26752 (timevar_print): De-i18n-ize.
26753 (print_time): Likewise.
26754 * timevar.h (timevar_push, timevar_pop): Make inline functions.
26755
26756 2010-05-21 Joseph Myers <joseph@codesourcery.com>
26757
26758 * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
26759 langhooks-def.h.
26760 (diagnostic_initialize): Initialize x_data not last_function.
26761 (diagnostic_report_current_function): Move to tree-diagnostic.c.
26762 (default_diagnostic_starter): Call
26763 diagnostic_report_current_module not
26764 diagnostic_report_current_function.
26765 (diagnostic_report_diagnostic): Initialize x_data not
26766 abstract_origin.
26767 (verbatim): Likewise.
26768 * diagnostic.h (struct diagnostic_info): Change abstract_origin to
26769 x_data.
26770 (struct diagnostic_context): Change last_function to x_data.
26771 (diagnostic_auxiliary_data): Replace with
26772 diagnostic_context_auxiliary_data and
26773 diagnostic_info_auxiliary_data.
26774 (diagnostic_last_function_changed, diagnostic_set_last_function,
26775 diagnostic_report_current_function): Move to tree-diagnostic.h.
26776 (print_declaration, dump_generic_node, print_generic_stmt,
26777 print_generic_stmt_indented, print_generic_expr,
26778 print_generic_decl, debug_c_tree, dump_omp_clauses,
26779 print_call_name, debug_generic_expr, debug_generic_stmt,
26780 debug_tree_chain, default_tree_printer): Move to
26781 tree-pretty-print.h.
26782 (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
26783 print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
26784 gimple-pretty-print.h.
26785 * pretty-print.c: Don't include tree.h
26786 (pp_base_format): Don't handle %K here.
26787 (pp_base_tree_identifier): Move to tree-pretty-print.c.
26788 * pretty-print.h (text_info): Change abstract_origin to x_data.
26789 (pp_tree_identifier, pp_unsupported_tree,
26790 pp_base_tree_identifier): Move to tree-pretty-print.h.
26791 * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
26792 tree-pretty-print.h: New files.
26793 * tree-pretty-print.c: Include tree-pretty-print.h.
26794 (percent_K_format): New. Moved from pretty-print.c.
26795 (pp_base_tree_identifier): Move from pretty-print.c.
26796 * c-objc-common.c: Include tree-pretty-print.h.
26797 (c_tree_printer): Handle %K here.
26798 * langhooks.c: Include tree-diagnostic.h.
26799 (lhd_print_error_function): Use diagnostic_abstract_origin macro.
26800 * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
26801 (default_tree_printer): Handle %K using percent_K_format.
26802 (general_init): Use default_tree_diagnostic_starter.
26803 * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
26804 (free_lang_data): Use default_tree_diagnostic_starter.
26805 * c-pretty-print.c: Include tree-pretty-print.h.
26806 * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
26807 * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
26808 * dwarf2out.c: Include tree-pretty-print.h.
26809 * except.c: Include tree-pretty-print.h.
26810 * gimple-pretty-print.c: Include tree-pretty-print.h and
26811 gimple-pretty-print.h.
26812 * gimplify.c: Include tree-pretty-print.h.
26813 * graphite-poly.c: Include tree-pretty-print.h and
26814 gimple-pretty-print.h.
26815 * ipa-cp.c: Include tree-pretty-print.h.
26816 * ipa-inline.c: Include gimple-pretty-print.h.
26817 * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
26818 * ipa-pure-const.c: Include gimple-pretty-print.h.
26819 * ipa-struct-reorg.c: Include tree-pretty-print.h and
26820 gimple-pretty-print.h.
26821 * ipa-type-escape.c: Include tree-pretty-print.h.
26822 * print-rtl.c: Include tree-pretty-print.h.
26823 * print-tree.c: Include gimple-pretty-print.h.
26824 * sese.c: Include tree-pretty-print.h.
26825 * tree-affine.c: Include tree-pretty-print.h.
26826 * tree-browser.c: Include tree-pretty-print.h.
26827 * tree-call-cdce.c: Include gimple-pretty-print.h.
26828 * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
26829 * tree-chrec.c: Include tree-pretty-print.h.
26830 * tree-data-ref.c: Include tree-pretty-print.h and
26831 gimple-pretty-print.h.
26832 * tree-dfa.c: Include tree-pretty-print.h.
26833 * tree-if-conv.c: Include tree-pretty-print.h and
26834 gimple-pretty-print.h.
26835 * tree-inline.c: Include tree-pretty-print.h.
26836 * tree-into-ssa.c: Include tree-pretty-print.h and
26837 gimple-pretty-print.h.
26838 * tree-nrv.c: Include tree-pretty-print.h.
26839 * tree-object-size.c: Include tree-pretty-print.h and
26840 gimple-pretty-print.h.
26841 * tree-outof-ssa.c: Include tree-pretty-print.h and
26842 gimple-pretty-print.h.
26843 * tree-parloops.c: Include tree-pretty-print.h and
26844 gimple-pretty-print.h.
26845 * tree-predcom.c: Include tree-pretty-print.h and
26846 gimple-pretty-print.h.
26847 * tree-scalar-evolution.c: Include tree-pretty-print.h and
26848 gimple-pretty-print.h.
26849 * tree-sra.c: Include tree-pretty-print.h.
26850 * tree-ssa-address.c: Include tree-pretty-print.h.
26851 * tree-ssa-alias.c: Include tree-pretty-print.h.
26852 * tree-ssa-ccp.c: Include tree-pretty-print.h and
26853 gimple-pretty-print.h.
26854 * tree-ssa-coalesce.c: Include tree-pretty-print.h.
26855 * tree-ssa-copy.c: Include tree-pretty-print.h and
26856 gimple-pretty-print.h.
26857 * tree-ssa-copyrename.c: Include tree-pretty-print.h.
26858 * tree-ssa-dce.c: Include tree-pretty-print.h and
26859 gimple-pretty-print.h.
26860 * tree-ssa-dom.c: Include tree-pretty-print.h and
26861 gimple-pretty-print.h.
26862 * tree-ssa-dse.c: Include gimple-pretty-print.h.
26863 * tree-ssa-forwprop.c: Include tree-pretty-print.h.
26864 * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
26865 * tree-ssa-live.c: Include tree-pretty-print.h and
26866 gimple-pretty-print.h.
26867 * tree-ssa-loop-im.c: Include tree-pretty-print.h and
26868 gimple-pretty-print.h.
26869 * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
26870 gimple-pretty-print.h.
26871 * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
26872 gimple-pretty-print.h.
26873 * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
26874 gimple-pretty-print.h.
26875 * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
26876 * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
26877 * tree-ssa-operands.c: Include tree-pretty-print.h and
26878 gimple-pretty-print.h.
26879 * tree-ssa-phiprop.c: Include tree-pretty-print.h and
26880 gimple-pretty-print.h.
26881 * tree-ssa-pre.c: Include tree-pretty-print.h and
26882 gimple-pretty-print.h.
26883 * tree-ssa-propagate.c: Include gimple-pretty-print.h.
26884 * tree-ssa-reassoc.c: Include tree-pretty-print.h and
26885 gimple-pretty-print.h.
26886 * tree-ssa-sccvn.c: Include tree-pretty-print.h and
26887 gimple-pretty-print.h.
26888 * tree-ssa-sink.c: Include gimple-pretty-print.h.
26889 * tree-ssa-ter.c: Include tree-pretty-print.h and
26890 gimple-pretty-print.h.
26891 * tree-ssa-uninit.c: Include gimple-pretty-print.h.
26892 * tree-ssa.c: Include tree-pretty-print.h and
26893 gimple-pretty-print.h.
26894 * tree-stdarg.c: Include gimple-pretty-print.h.
26895 * tree-switch-conversion.c: Include gimple-pretty-print.h.
26896 * tree-tailcall.c: Include tree-pretty-print.h and
26897 gimple-pretty-print.h.
26898 * tree-vect-data-refs.c: Include tree-pretty-print.h and
26899 gimple-pretty-print.h.
26900 * tree-vect-loop-manip.c: Include tree-pretty-print.h and
26901 gimple-pretty-print.h.
26902 * tree-vect-loop.c: Include tree-pretty-print.h and
26903 gimple-pretty-print.h.
26904 * tree-vect-patterns.c: Include gimple-pretty-print.h.
26905 * tree-vect-slp.c: Include tree-pretty-print.h and
26906 gimple-pretty-print.h.
26907 * tree-vect-stmts.c: Include tree-pretty-print.h and
26908 gimple-pretty-print.h.
26909 * tree-vectorizer.c: Include tree-pretty-print.h.
26910 * tree-vrp.c: Include tree-pretty-print.h and
26911 gimple-pretty-print.h.
26912 * value-prof.c: Include tree-pretty-print.h and
26913 gimple-pretty-print.h.
26914 * var-tracking.c: Include tree-pretty-print.h.
26915 * Makefile.in (OBJS-common): Add tree-diagnostic.o.
26916 (tree-diagnostic.o): New dependencies.
26917 (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
26918 tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
26919 tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
26920 tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
26921 tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
26922 tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
26923 tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
26924 tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
26925 tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
26926 tree-ssa-address.o, tree-ssa-loop-niter.o,
26927 tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
26928 tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
26929 tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
26930 gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
26931 tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
26932 tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
26933 tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
26934 tree-parloops.o, tree-stdarg.o, tree-object-size.o,
26935 gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
26936 toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
26937 ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
26938 ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
26939 tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
26940 tree-switch-conversion.o, var-tracking.o, value-prof.o,
26941 cfgexpand.o, pretty-print.o): Update dependencies.
26942
26943 2010-05-22 Andreas Tobler <andreast@fgznet.ch>
26944
26945 * tree-ssa-structalias.c: Remove tm_p.h from include.
26946
26947 2010-05-21 Jeff Law <law@redhat.com>
26948
26949 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
26950
26951 2010-05-21 Jason Merrill <jason@redhat.com>
26952
26953 * tree-eh.c (cleanup_is_dead_in): New.
26954 (lower_try_finally): Don't generate a dead cleanup region.
26955 (lower_cleanup): Likewise.
26956
26957 2010-05-21 Jakub Jelinek <jakub@redhat.com>
26958
26959 PR debug/44223
26960 * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
26961 unchain each use from the cyclic next_regno_use chain first.
26962
26963 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
26964
26965 * real: Do not include gmp.h, mpfr.h, and mpc.h.
26966 (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
26967 (real_value_negate, real_value_abs): New prototypes.
26968 (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
26969 * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
26970 new include file for interface between MPFR and REAL_VALUE_TYPE.
26971 * real.c: Include realmpfr.h.
26972 (real_arithmetic2): Remove legacy function.
26973 (real_value_negate): New.
26974 (real_value_abs): New.
26975 (mfpr_from_real, real_from_mpfr): Move from here...
26976 * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
26977 * builtins.c: Include realmpfr.h.
26978 * fold-const.c: Include realmpfr.h.
26979 (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
26980 (fold_negate_const): Likewise.
26981 (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
26982 * toplev.c: Include realmpfr.h.
26983 * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
26984 and real_value_negate.
26985 * fixed-value.c (check_real_for_fixed_mode): Likewise.
26986 * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
26987 (vfp3_const_double_index): Likewise.
26988 (arm_print_operand): Likewise.
26989 * Makefile.in: Update dependencies.
26990
26991 2010-05-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26992
26993 * config/s390/s390.c (override_options): Increase the default
26994 of max-completely-peel-times.
26995
26996 2010-05-21 Julian Brown <julian@codesourcery.com>
26997 Mark Mitchell <mark@codesourcery.com>
26998
26999 * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
27000 sibling calls for Thumb-1.
27001 * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
27002 * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
27003 Thumb-2.
27004 (*call_insn, *call_value_insn): Don't use for Thumb-2.
27005 (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
27006 for Thumb-2.
27007 (return): New expander.
27008 (*arm_return): New name for ARM return insn.
27009 * config/arm/thumb2.md (*thumb2_return): New insn pattern.
27010
27011 2010-05-19 Joel Sherrill <joel.sherrill@oarcorp.com>
27012
27013 * config.gcc (sparc64-*-rtems*): New target.
27014
27015 2010-05-21 Nathan Froyd <froydnj@codesourcery.com>
27016
27017 * tree.c (build_function_decl_skip_args): Fix grammar.
27018 (build_function_type_list_1): Fix typos, adjust formatting.
27019
27020 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
27021
27022 * tree.h: Include real.h and fixed-value.h as basic datatypes.
27023 * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
27024 tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
27025 tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
27026 tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
27027 genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
27028 tree-pretty-print.c, tree-loop-distribution.c,
27029 tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
27030 tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
27031 tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
27032 tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
27033 tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
27034 tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
27035 tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
27036 tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
27037 tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
27038 tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
27039 genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
27040 tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
27041 gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
27042 tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
27043 tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
27044 store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
27045 tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
27046 tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
27047 tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
27048 tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
27049 fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
27050 tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
27051 config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
27052 config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
27053 config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
27054 config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
27055 config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
27056 config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
27057 config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
27058 config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
27059 config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
27060 config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
27061 config/score/score7.c, config/score/score.c, config/arm/arm.c,
27062 config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
27063 config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
27064 config/bfin/bfin.c: Clean up redundant includes.
27065 * Makefile.in: Update accordingly.
27066
27067 2010-05-21 Nathan Froyd <froydnj@codesourcery.com>
27068
27069 PR middle-end/44204
27070 * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
27071 statement has no arguments.
27072
27073 2010-05-21 Kai Tietz <kai.tietz@onevision.com>
27074
27075 PR/44139
27076 * varasm.c (emutls_decl): Merge attributes to new decl.
27077
27078 2010-05-21 Eric Botcazou <ebotcazou@adacore.com>
27079
27080 PR middle-end/44101
27081 * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
27082 around the uniquized constructor if its type requires a conversion.
27083
27084 2010-05-21 Jakub Jelinek <jakub@redhat.com>
27085
27086 PR debug/44205
27087 * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
27088 at -O0 goto_locus of any of the incoming edges differs from
27089 goto_locus of outgoing edge, or gimple_location of any of the
27090 labels differs.
27091
27092 2009-09-14 Vladimir Makarov <vmakarov@redhat.com>
27093
27094 * ira.c (ira_non_ordered_class_hard_regs): Define.
27095 (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
27096 * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
27097 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
27098 cost of unaligned hard regs when allocating multi-reg pseudos.
27099
27100 2010-05-20 Richard Sandiford <rdsandiford@googlemail.com>
27101
27102 * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
27103 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
27104 for TARGET_NO_FLOAT.
27105 * config/mips/mips.c (mips_file_start): Expand conditional expression
27106 into "if" statements. Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
27107 (mips_override_options): Move -mno-float override -msoft-float and
27108 -mhard-float.
27109 * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
27110 Condition(TARGET_SUPPORTS_NO_FLOAT).
27111 * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
27112 __mips_no_float here.
27113 (SUBTARGET_OVERRIDE_OPTIONS): Delete.
27114 (TARGET_SUPPORTS_NO_FLOAT): Define.
27115 * config/mips/sdemtk.opt: Delete.
27116
27117 2010-05-20 Segher Boessenkool <segher@kernel.crashing.org>
27118
27119 * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
27120
27121 2010-05-20 Uros Bizjak <ubizjak@gmail.com>
27122
27123 PR target/43733
27124 * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
27125 * configure: Regenerate.
27126 * config.in: Regenerate.
27127 * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
27128 instead of sahf only for 64bit targets.
27129
27130 2010-05-20 Jakub Jelinek <jakub@redhat.com>
27131
27132 PR debug/44178
27133 * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
27134 setup_ref_regs for DEBUG_INSNs.
27135
27136 2010-05-20 Jan Hubicka <jh@suse.cz>
27137
27138 PR middle-end/44197
27139 * varpool.c (varpool_remove_node): Handle in-varpool aliases.
27140
27141 2010-05-20 Kenneth Zadeck <zadeck@naturalbridge.com>
27142
27143 PR bootstrap/43870
27144 * df-scan.c (df_ref_compare): Stabilize sort.
27145
27146 2010-05-20 Jakub Jelinek <jakub@redhat.com>
27147
27148 * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
27149 argument. Don't use DW_OP_piece if offset is non-zero,
27150 put offset into second DW_OP_bit_piece argument.
27151 (dw_sra_loc_expr): Adjust callers. For memory expressions
27152 compute offset.
27153
27154 2010-05-20 Hans-Peter Nilsson <hp@axis.com>
27155
27156 PR target/44202
27157 * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
27158 settings for 16-bit-constant "addo" alternative.
27159
27160 2010-05-19 James E. Wilson <wilson@codesourcery.com>
27161
27162 * config/mips/mips-dsp.md (add<DSPV:mode>3,
27163 mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
27164
27165 PR target/43764
27166 * mips.c (mips_call_expr_from_insn): New arg second_call. Set it.
27167 (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
27168 Use it.
27169
27170 2010-05-19 Joseph Myers <joseph@codesourcery.com>
27171
27172 * diagnostic.c (FLOAT, FFS): Don't undefine.
27173 * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
27174 * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
27175 include ordering.
27176
27177 2010-05-19 Richard Sandiford <rdsandiford@googlemail.com>
27178
27179 * combine.c (propagate_for_debug): Call make_compound_operation
27180 on the source value.
27181 (try_combine): When implementing a split chosen by find_split_point,
27182 either copy i2src or set it to null. Assert that i2src is not null
27183 before substituting into CALL_INSN_FUNCTION_USAGE.
27184
27185 2010-05-19 Anatoly Sokolov <aesok@post.ru>
27186
27187 * double-int.h (double_int_ior): New function.
27188 * tree.h (build_int_cst_wide_type): Remove.
27189 * tree.c (build_int_cst_wide_type): Remove.
27190 * fold-const.c (native_interpret_int): Use double_int_to_tree instead
27191 of build_int_cst_wide_type.
27192 * stor-layout.c (set_sizetype): (Ditto.).
27193 * dojump.c (do_jump): Use build_int_cstu instead of
27194 build_int_cst_wide_type.
27195
27196 2010-05-19 Eric Botcazou <ebotcazou@adacore.com>
27197
27198 * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
27199 * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
27200 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
27201 * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
27202 TARGET_EXPR nodes, but only once, if instructed to do so. Do not
27203 propagate the 'data' argument to copy_tree_r.
27204 (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
27205 Propagate 'data' argument to walk_tree.
27206 (copy_if_shared): New function.
27207 (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
27208 (unmark_visited): New function.
27209 (unshare_body): Call copy_if_shared instead of doing it manually.
27210 (unvisit_body): Call unmark_visited instead of doing it manually.
27211
27212 2010-05-19 Nathan Froyd <froydnj@codesourcery.com>
27213
27214 * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
27215 (hook_tree_tree_int_treep_bool_null): ...this. Update signature.
27216 * hooks.c: Likewise.
27217 * target-def.h (TARGET_FOLD_BUILTIN): Define to
27218 hook_tree_tree_int_treep_bool_null.
27219 * target.h (struct gcc_target): Update signature of fold_builtin
27220 field.
27221 * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
27222 * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
27223 instead of the call expression.
27224 (fold_builtin_call_array): Pass n and argarray directly.
27225 (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
27226 consing a list.
27227 * config/alpha/alpha.c (alpha_fold_builtin): Update signature. Lift
27228 MAX_ARGS check out of the loop. Delete declaration of `arity', declare
27229 `i' and use it in place of `arity'.
27230 * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
27231 Dereference `args' directly.
27232 * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
27233
27234 2010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27235
27236 * doc/sourcebuild.texi (Effective-Target Keywords): Document
27237 3dnow, sse3, sse2.
27238 (Directives): Document optional dg-require-effective-target
27239 selector.
27240
27241 2010-05-19 Richard Guenther <rguenther@suse.de>
27242
27243 PR lto/44196
27244 * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
27245
27246 2010-05-19 Richard Guenther <rguenther@suse.de>
27247
27248 * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
27249 * common.opt (fwhopr=): New.
27250 * opts.c (common_handle_option): Handle OPT_fwhopr.
27251 * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
27252 * collect2.c (main): Match -fwhopr*.
27253 * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
27254 Execute ltrans stage in parallel when jobs is bigger than 1.
27255
27256 2010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27257
27258 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
27259 pentiumpro on Solaris 8/x86 with Sun as.
27260 * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
27261 hidden alias bug.
27262 (gcc_cv_as_ix86_quad): Check for .quad directive.
27263 * configure: Regenerate.
27264 * config.in: Regenerate.
27265 * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
27266
27267 2010-05-19 Martin Jambor <mjambor@suse.cz>
27268
27269 * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
27270 also for indirect edges. Actual printing moved...
27271 (ipa_print_node_jump_functions_for_edge): ...here.
27272 (ipa_compute_jump_functions): Renamed to
27273 ipa_compute_jump_functions_for_edge and made static.
27274 (ipa_compute_jump_functions): New function.
27275 (make_edge_direct_to_target): Check if the number of arguments on
27276 the newly direct edge is the same as the number of parametrs of
27277 the callee.
27278 * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
27279 ipa_compute_jump_functions. Call ipa_analyze_params_uses.
27280 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
27281 analysis functions unconditionally, call the new
27282 ipa_analyze_params_uses on the node instead of every edge.
27283
27284 2010-05-19 Christian Borntraeger <borntraeger@de.ibm.com>
27285
27286 * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
27287 to tree.
27288 (dump_mem_ref): Adopt debug code to handle a tree as step. This
27289 also checks for a constant int vs. non-constant but
27290 loop-invariant steps.
27291 (find_or_create_group): Change the sort algorithm to only consider
27292 steps that are constant ints.
27293 (idx_analyze_ref): Adopt code to handle a tree instead of a
27294 HOST_WIDE_INT for step.
27295 (gather_memory_references_ref): Handle tree instead of int and be
27296 prepared to see a NULL_TREE.
27297 (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
27298 prefetches if the step cannot be calculated at compile time.
27299 (issue_prefetch_ref): Issue prefetches for non-constant but
27300 loop-invariant steps.
27301
27302 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
27303
27304 Revert:
27305 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
27306
27307 * tree.h (build_call_list): Remove.
27308 * tree.c (build_call_list): Remove.
27309
27310 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
27311
27312 * tree.h (build_call_list): Remove.
27313 * tree.c (build_call_list): Remove.
27314
27315 2010-05-18 Jan Hubicka <jh@suse.cz>
27316
27317 * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
27318
27319 2010-05-18 Vladimir Makarov <vmakarov@redhat.com>
27320
27321 PR rtl-optimization/43332
27322 * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
27323
27324 2010-05-18 Anatoly Sokolov <aesok@post.ru>
27325
27326 * tree.h (build_int_cstu): Implement as static inline.
27327 * tree.c (build_int_cstu): Remove function.
27328 (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
27329 sign extended.
27330
27331 2010-05-18 Richard Guenther <rguenther@suse.de>
27332
27333 PR lto/44143
27334 * lto-wrapper.c (verbose): New variable. Initialize from -v.
27335 (debug): Initialize from -save-temps.
27336 (collect_execute): Print command-line when verbose.
27337 (run_gcc): Always use COLLECT_GCC_OPTIONS. Use fork_execute
27338 for ltrans invocation. Produce -dumpbase flag again.
27339 (process_args): Remove.
27340 (main): Simplify.
27341 * collect2.c (maybe_run_lto_and_relink): Only pass object
27342 files to lto-wrapper.
27343 * gcc.c (LINK_COMMAND_SPEC): Likewise.
27344
27345 2010-05-18 Jan Hubicka <jh@suse.cz>
27346
27347 * opts.c (decode_options): Do not disable whopr at ipa_cp.
27348 * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
27349
27350 2010-05-18 Steven Bosscher <steven@gcc.gnu.org>
27351
27352 PR lto/44184
27353 * lto-streamer-out.c (output_gimple_stmt): Output number of labels
27354 in a GIMPLE_ASM.
27355 * lto-streamer-in.c (input_gimple_stmt): Read number of labels
27356 in a GIMPLE_ASM.
27357
27358 2010-05-18 Jakub Jelinek <jakub@redhat.com>
27359
27360 PR debug/41371
27361 * var-tracking.c (find_loc_in_1pdv): Add a few checks from
27362 rtx_equal_p inline.
27363
27364 2010-05-18 Steven Bosscher <steven@gcc.gnu.org>
27365
27366 * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
27367 lto-macho as lto_binary_reader.
27368
27369 * darwin.c (darwin_asm_named_section): Do not add assembler comment
27370 after .section directive; just print it before the directive instead.
27371
27372 2010-05-17 Jan Hubicka <jh@suse.cz>
27373
27374 * cgraph.c (cgraph_create_virtual_clone): Only check
27375 versionable_function_p when not in wpa and checking is enabled.
27376 * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
27377 there are no more functions to materialize.
27378
27379 2010-05-17 Jan Hubicka <jh@suse.cz>
27380
27381 * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
27382 * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
27383 New functions.
27384 (output_cgraph): Call output_cgraph_opt_summary.
27385 (input_cgrpah): Call input_cgraph_opt_summary.
27386 (output_cgraph_opt_summary_p, output_node_opt_summary,
27387 input_node_opt_summary, input_cgraph_opt_section): New functions.
27388 * lto-section-in.c (lto_section_name): Add cgraphopt.
27389 * tree-inline.c (tree_function_versioning): Handle parm_num.
27390 * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
27391 * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
27392
27393 2010-05-17 Changpeng Fang <changpeng.fang@amd.com>
27394
27395 * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
27396 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
27397 the insn to prefetch ratio heuristic to loops with known trip count.
27398
27399 2010-05-17 Changpeng Fang <changpeng.fang@amd.com>
27400
27401 * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
27402 (schedule_prefetches): Do not generate a prefetch if the unroll factor
27403 is far from what is required by the prefetch.
27404
27405 2010-05-17 Jan Hubicka <jh@suse.cz>
27406
27407 * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
27408 (ipcp_estimate_growth): Likewise.
27409 (ipcp_const_param_count): Likewise.
27410 (ipcp_insert_stage): Likewise.
27411 * ipa-prop.c (visit_load_for_mod_analysis): New function.
27412 (visit_store_addr_for_mod_analysis): Set used flag.
27413 (ipa_detect_param_modifications): Set used flag for SSE params;
27414 update use of walk_stmt_load_store_addr_ops.
27415 (ipa_print_node_params): Print used flag.
27416 (ipa_write_node_info): Stream used flag.
27417 (ipa_read_node_info): Likewise.
27418 * ipa-prop.h (struct ipa_param_descriptor): Add used field.
27419 (ipa_is_param_used): New function.
27420 (lto_ipa_fixup_call_notes): Remove unused declaration.
27421
27422 2010-05-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27423
27424 PR target/44074
27425 * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
27426 * configure: Regenerate.
27427 * config.in: Regenerate.
27428 * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
27429 !HAVE_AS_IX86_REP_LOCK_PREFIX.
27430 Don't emit whitespace.
27431 * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
27432 (*rep_movsi): Likewise.
27433 (*rep_movsi_rex64): Likewise.
27434 (*rep_movqi): Likewise.
27435 (*rep_movqi_rex64): Likewise.
27436 (*rep_stosdi_rex64): Likewise.
27437 (*rep_stossi): Likewise.
27438 (*rep_stossi_rex64): Likewise.
27439 (*rep_stosqi): Likewise.
27440 (*rep_stosqi_rex64): Likewise.
27441 (*cmpstrnqi_nz_1): Use {%;} after repz.
27442 (*cmpstrnqi_nz_rex_1): Likewise.
27443 (*cmpstrnqi_1): Likewise.
27444 (*cmpstrnqi_rex_1): Likewise.
27445 (*strlenqi_1): Use {%;} after repnz.
27446 (*strlenqi_rex_1): Likewise.
27447 * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
27448 (*sync_compare_and_swap<mode>): Likewise.
27449 (sync_double_compare_and_swap<mode>): Likewise.
27450 (*sync_double_compare_and_swapdi_pic): Likewise.
27451 (sync_old_add<mode>): Likewise.
27452 (sync_add<mode>): Likewise.
27453 (sync_sub<mode>): Likewise.
27454 (sync_<code><mode>): Likewise.
27455
27456 2010-05-17 Martin Jambor <mjambor@suse.cz>
27457
27458 * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
27459 otr_token and polymorphic.
27460 * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
27461 (cgraph_clone_edge): Copy the above fields.
27462 * tree.c (get_binfo_at_offset): New function.
27463 * tree.h (get_binfo_at_offset): Declare.
27464 * ipa-prop.h (enum jump_func_type): Added known_type jump function
27465 type, reordered items, updated comments.
27466 (union jump_func_value): Added base_type field, reordered fields.
27467 (enum ipa_lattice_type): Moved down in the file.
27468 (struct ipa_param_descriptor): New field polymorphic.
27469 (ipa_is_param_polymorphic): New function.
27470 * ipa-prop.c: Include gimple.h and gimple-fold.h.
27471 (ipa_print_node_jump_functions): Print known type jump functions.
27472 (compute_complex_pass_through): Renamed to...
27473 (compute_complex_assign_jump_func): this.
27474 (compute_complex_ancestor_jump_func): New function.
27475 (compute_known_type_jump_func): Likewise.
27476 (compute_scalar_jump_functions): Create known type and complex ancestor
27477 jump functions.
27478 (ipa_note_param_call): New parameter polymorphic, set the corresponding
27479 flag in the call note accordingly.
27480 (ipa_analyze_call_uses): Renamed to...
27481 (ipa_analyze_indirect_call_uses): this. New parameter target, define
27482 variable var only in the block where it is used.
27483 (ipa_analyze_virtual_call_uses): New function.
27484 (ipa_analyze_call_uses): Likewise.
27485 (combine_known_type_and_ancestor_jfs): Likewise.
27486 (update_jump_functions_after_inlining): Implemented handling of a
27487 number of new jump function types combination.
27488 (print_edge_addition_message): Removed.
27489 (make_edge_direct_to_target): New function.
27490 (try_make_edge_direct_simple_call): Likewise.
27491 (try_make_edge_direct_virtual_call): Likewise.
27492 (update_call_notes_after_inlining): Renamed to...
27493 (update_indirect_edges_after_inlining): this. Moved edge creation for
27494 indirect calls to try_make_edge_direct_simple_call, also calls
27495 try_make_edge_direct_virtual_call for virtual calls.
27496 (ipa_print_node_params): Changed the header message.
27497 (ipa_write_jump_function): Stream also known type jump functions.
27498 (ipa_read_jump_function): Likewise.
27499 (ipa_write_indirect_edge_info): Stream new fields in
27500 cgraph_indirect_call_info.
27501 (ipa_read_indirect_edge_info): Likewise.
27502 * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
27503 GIMPLE_FOLD_H.
27504
27505 2010-05-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27506
27507 * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
27508
27509 2010-05-17 Nathan Froyd <froydnj@codesourcery.com>
27510
27511 * tree.h (CALL_EXPR_ARGS): Delete.
27512 (call_expr_arglist): Delete.
27513 * tree.c (call_expr_arglist): Delete.
27514 * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
27515 targetm.fold_builtin.
27516 * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
27517 Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
27518 * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
27519 arglist parameter. Use CALL_EXPR_ARG.
27520 (picochip_expand_builtin_3op): Likewise.
27521 (picochip_expand_builtin_2opvoid): Likewise.
27522 (picochip_expand_array_get): Likewise.
27523 (picochip_expand_array_put): Likewise.
27524 (picochip_expand_array_testport): Likewise.
27525 (picochip_expand_builtin): Don't call CALL_EXPR_ARGS. Pass exp
27526 rather than arglist.
27527 * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
27528 CALL_EXPR_ARGS.
27529 * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
27530 than TREE_VALUE and TREE_CHAIN.
27531 * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
27532 * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
27533 the arglist.
27534
27535 2010-05-17 Jakub Jelinek <jakub@redhat.com>
27536
27537 PR bootstrap/42347
27538 * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
27539 to have no fallthru edge.
27540
27541 PR middle-end/44102
27542 * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
27543 bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
27544 mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
27545 add BARRIER after previous bb if needed.
27546
27547 2010-05-17 Nathan Froyd <froydnj@codesourcery.com>
27548
27549 * tree.c (build_function_type_list_1): Remove bogus assert condition.
27550
27551 2010-05-17 Alan Modra <amodra@gmail.com>
27552
27553 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
27554 unnecessary prototype. Replace copy_r12 and copy_r11 flag params
27555 with copy_reg rtx param.
27556 (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
27557 Correct cases where code for ABI_V4 did not initialise the reg
27558 used to access frame. Also leave frame_reg_rtx as sp for large
27559 frames that save no regs.
27560
27561 2010-05-17 Martin Jambor <mjambor@suse.cz>
27562
27563 PR middle-end/44133
27564 * tree-sra.c (create_access_replacement): New parameter rename, mark
27565 the replaement for renaming only when it is true.
27566 (get_access_replacement): Pass true in the rename parameter of
27567 create_access_replacement.
27568 (get_unrenamed_access_replacement): New function.
27569 (replace_uses_with_default_def_ssa_name): New parameter racc, get the
27570 replacement declaration from it.
27571
27572 2010-05-17 Bernd Schmidt <bernds@codesourcery.com>
27573
27574 * function.c (try_fit_stack_local, add_frame_space): New static
27575 functions.
27576 (assign_stack_local_1): Use them. Look for opportunities to use
27577 space previously wasted on alignment.
27578 * function.h (struct frame_space): New.
27579 (struct rtl_data): Add FRAME_SPACE_LIST member.
27580 * reload1.c (something_was_spilled): New static variable.
27581 (alter_reg): Set it.
27582 (reload): Test it in addition to testing if the frame size changed.
27583
27584 2010-05-17 Christian Borntraeger <borntraeger@de.ibm.com>
27585
27586 * config/s390/s390.c: Define sane prefetch settings and activate
27587 flag_prefetch_loop_arrays on -O3.
27588 * config/s390/s390.h: Declare that read can use write prefetch.
27589
27590 2010-05-17 Jakub Jelinek <jakub@redhat.com>
27591
27592 * lto-streamer-out.c (lto_output): Fix --enable-checking=release
27593 build.
27594
27595 2010-05-16 Jan Hubicka <jh@suse.cz>
27596
27597 * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
27598 function body; do not check stdarg field of struct function.
27599
27600 2010-05-16 Jan Hubicka <jh@suse.cz>
27601
27602 * cgraph.c (dump_cgraph_node): Dump versionable flag.
27603 * cgraph.h (cgraph_local_info): Add versionable flag.
27604 * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
27605 (ipcp_versionable_function_p): Use it.
27606 * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
27607 versionable flag.
27608
27609 2010-05-16 Jan Hubicka <jh@suse.cz>
27610
27611 * cgraph.c (cgraph_clone_node): Take decl argument and insert
27612 clone into hash when it is different from orig.
27613 (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
27614 * cgraph.h (cgraph_clone_node): Update prototype.
27615 * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
27616 (lto_cgraph_encoder_delete): Delete body map.
27617 (lto_cgraph_encoder_size): Move to header.
27618 (lto_cgraph_encoder_encode_body_p,
27619 lto_set_cgraph_encoder_encode_body): New.
27620 (lto_output_node): Do not take written_decls argument; output clone_of
27621 pointer.
27622 (add_node_to): Add include_body_argument; call
27623 lto_set_cgraph_encoder_encode_body on master of the clone.
27624 (add_references): Update use of add_node_to.
27625 (compute_ltrans_boundary): Likewise.
27626 (output_cgraph): Do not create written_decls bitmap.
27627 (input_node): Take nodes argument; stream in clone_of correctly.
27628 (input_cgraph_1): Update use of input_node.
27629 * lto-streamer-out.c (lto_output): Use encoder info to decide
27630 what bodies to output.
27631 * ipa-inline.c (cgraph_clone_inlined_nodes,
27632 cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
27633 * lto-streamer.h (lto_cgraph_encoder_d): Add body.
27634 (lto_cgraph_encoder_size): Define here.
27635 (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
27636 Declare.
27637
27638 2010-05-16 Richard Guenther <rguenther@suse.de>
27639
27640 * doc/invoke.texi (-fipa-struct-reorg): Do not mention
27641 -fipa-type-escape.
27642 * ipa-type-escape.c (gate_type_escape_vars): Run when
27643 -fipa-struct-reorg runs.
27644 * opts.c (decode_options): Do not unset flag_ipa_type_escape.
27645 * common.opt (fipa-type-escape): Remove.
27646
27647 2010-05-16 Eric Botcazou <ebotcazou@adacore.com>
27648
27649 * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
27650 (decode_options): Likewise.
27651 * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
27652
27653 2010-05-16 Jan Hubicka <jh@suse.cz>
27654
27655 * ipa.c (function_and_variable_visibility): Also bring local all
27656 aliases.
27657
27658 2010-05-16 Richard Guenther <rguenther@suse.de>
27659
27660 * alias.c (nonoverlapping_memrefs_p): Remove use of
27661 IPA type-escape information.
27662
27663 2010-05-16 Joseph Myers <joseph@codesourcery.com>
27664
27665 * c-common.c (c_common_reswords): Add _Static_assert for C.
27666 * c-parser.c (c_token_starts_declaration,
27667 c_parser_next_token_starts_declaration,
27668 c_parser_static_assert_declaration_no_semi,
27669 c_parser_static_assert_declaration): New.
27670 (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
27671 Handle static assertions if static_assert_ok.
27672 (c_parser_external_declaration, c_parser_declaration_or_fndef,
27673 c_parser_compound_statement_nostart, c_parser_label,
27674 c_parser_for_statement, c_parser_objc_methodprotolist,
27675 c_parser_omp_for_loop): All callers of
27676 c_parser_declaration_or_fndef changed.
27677 (c_parser_struct_declaration): Handle static assertions.
27678 (c_parser_compound_statement_nostart): Use
27679 c_parser_next_token_starts_declaration and
27680 c_token_starts_declaration to detect start of declarations.
27681 (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
27682 Likewise.
27683
27684 2010-05-16 Anatoly Sokolov <aesok@post.ru>
27685
27686 * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
27687 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
27688 * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
27689 TARGET_FUNCTION_VALUE_REGNO_P): Define.
27690 (mmix_function_outgoing_value): Rename to...
27691 (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
27692 (mmix_function_value_regno_p): Make static.
27693 (mmix_libcall_value): New function.
27694 * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
27695 mmix_function_value_regno_p): Remove declaration.
27696
27697 2010-05-16 Eric Botcazou <ebotcazou@adacore.com>
27698
27699 * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
27700 BUILT_IN_ALLOCA if stack checking is enabled.
27701
27702 2010-05-16 Richard Guenther <rguenther@suse.de>
27703
27704 * var-tracking.c (vars_copy_1): Inline ...
27705 (vars_copy): ... here. Use FOR_EACH_HTAB_ELEMENT.
27706 (variable_union): Use FOR_EACH_HTAB_ELEMENT. Merge asserts.
27707 (variable_merge_over_cur): Adjust. Merge asserts.
27708 (variable_merge_over_src): Likewise.
27709 (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
27710 (variable_post_merge_new_vals): Merge asserts.
27711 (variable_post_merge_perm_vals): Likewise.
27712 (find_mem_expr_in_1pdv): Likewise.
27713 (dataflow_set_different_value): Remove.
27714 (onepart_variable_different_p): Merge asserts.
27715 (variable_different_p): Likewise.
27716 (dataflow_set_different_1): Inline ...
27717 (dataflow_set_different): ... here. Use FOR_EACH_HTAB_ELEMENT.
27718 (emit_notes_for_differences_1): Merge asserts.
27719
27720 2010-05-16 Richard Guenther <rguenther@suse.de>
27721
27722 * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
27723 * optabs.c (libfunc_decl_hash): Likewise.
27724 * varasm.c (emutls_decl): Likewise.
27725
27726 2010-05-16 Steven Bosscher <steven@gcc.gnu.org>
27727
27728 * c-decl.c: Don't include gimple.h.
27729 (merge_decls): Do not copy gimple_body.
27730
27731 2010-05-15 Jason Merrill <jason@redhat.com>
27732
27733 * c.opt: Add -fnothrow-opt.
27734
27735 2010-05-15 Jan Hubicka <jh@suse.cz>
27736
27737 * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
27738 analyzed.
27739 * passes.c (ipa_write_summaries): Write all analyzed nodes.
27740
27741 2010-05-15 Steven Bosscher <steven@gcc.gnu.org>
27742
27743 * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
27744 * Makefile.in: Add it.
27745 Fix all other Makefile dependencies for changes below.
27746 * tree.h: Include it instead of defining VEC primitives here.
27747 * gimple.h: Likewise.
27748 * rtl.h: Likewise.
27749 * tree-inline.h: Inlclude vecir.h instead of gimple.h.
27750 * except.h: Include vecir.h, break dependence on tree.h.
27751
27752 * gimplify.c (append_to_statement_list_1, append_to_statement_list):
27753 Move from here...
27754 * tree-iterator.c: ...to here.
27755 * tree-iterator.h: Fix file introduction comment. Add extern markers.
27756
27757 * c-lex.c: Include fixed-value.h instead of rtl.h. Do not include
27758 tm_p.h.
27759 * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
27760 * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
27761 integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
27762 tree-mudflap.h, and target.h.
27763 * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
27764 predict.h, tree-inline.h, gimple.h, and langhooks.h.
27765 * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
27766 Add FIXME for why gimple.h is still included (should be unnecessary
27767 since GCC 4.5 gimplification unit-at-a-time).
27768 * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
27769 * c-pragma.c: Add FIXME for why function.h needs to be included just
27770 for cfun, at front-end level.
27771 Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
27772 Do not include ggc.h, but include vecprim.h for VEC(char).
27773 * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
27774 Explain why target.h is included.
27775 * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
27776 Explain why gimple.h is included.
27777 * c-ppoutput.c: Do not include tm.h.
27778 * c-common.c: Do not include gimple.h. Explain why expr.h is included.
27779 * c-parses.c: Explain why rtl.h is included, and that this (and only
27780 this) is also why tm.h must be included.
27781 Do not include except.h.
27782 * c-lang.c: Do not include ggc.h.
27783
27784 2010-05-15 Uros Bizjak <ubizjak@gmail.com>
27785
27786 * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
27787
27788 2010-05-15 Joseph Myers <joseph@codesourcery.com>
27789
27790 * c-decl.c (grokfield): Allow typedefs for anonymous structs and
27791 unions by default if those structs and unions have no tags. Do
27792 not condition anonymous struct and unions handling on flag_iso.
27793 Allow anonymous structs and unions for C1X.
27794 (finish_struct): Do not diagnose lack of named fields when
27795 anonymous structs and unions present for C1X. Accept flexible
27796 array members in structure with anonymous structs or unions but no
27797 directly named fields.
27798 * doc/extend.texi (Unnamed Fields): Update.
27799
27800 2010-05-15 Eric Botcazou <ebotcazou@adacore.com>
27801
27802 * gimple.h (compare_field_offset): Rename into...
27803 (gimple_compare_field_offset): ...this.
27804 * gimple.c (compare_field_offset): Rename into...
27805 (gimple_compare_field_offset): ...this. Compare the full access if
27806 the offset is self-referential.
27807 (gimple_types_compatible_p): Adjust for above renaming.
27808 * lto-streamer-in.c (input_gimple_stmt): Likewise. Also compare the
27809 DECL_NONADDRESSABLE_P flag of fields before merging them.
27810
27811 2010-05-15 Nathan Froyd <froydnj@codesourcery.com>
27812
27813 * tree.h (ctor_to_list): Delete.
27814 * tree.c (ctor_to_list): Delete.
27815
27816 2010-05-15 Jan Hubicka <jh@suse.cz>
27817
27818 * ipa-reference.c: Include toplev.h
27819 (is_proper_for_analysis): Only add to all_module_statics
27820 if it is allocated.
27821 (write_node_summary_p, stream_out_bitmap,
27822 ipa_reference_write_optimization_summary,
27823 ipa_reference_read_optimization_summary): New.
27824 (struct ipa_opt_pass_d pass_ipa_reference): Add
27825 optimization summary streaming.
27826 * lto-cgraph.c (referenced_from_this_partition_p,
27827 reachable_from_this_partition_p): New functions.
27828 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
27829 call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
27830 * opts.c (decode_options): Enable ipa_reference.
27831 * Makefile.in (ipa-reference.o): Add toplev.h dependency.
27832 * lto-streamer.h (referenced_from_this_partition_p,
27833 reachable_from_this_partition_p): Declare.
27834
27835 2010-05-15 Richard Guenther <rguenther@suse.de>
27836
27837 PR tree-optimization/44038
27838 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
27839 taking the address of a V_C_E of a constant.
27840
27841 2010-05-14 Jan Hubicka <jh@suse.cz>
27842
27843 * tree.h (memory_identifier_string): Remove.
27844 * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
27845 (ipa_reference_global_vars_info_d): Remove statics_not_read and
27846 statics_not_written.
27847 (ipa_reference_optimization_summary_d): New structure.
27848 (ipa_reference_optimization_summary_t): New type and vector.
27849 (ipa_reference_vars_info_d): Embedd structures instead of using
27850 pointers.
27851 (reference_vars_to_consider): Remove out of GGC space.
27852 (module_statics_escape): Remove.
27853 (global_info_obstack): Rename to ...
27854 (optimization_summary_obstack): ... this one.
27855 (initialization_status_t): Remove.
27856 (memory_identifier_string): Remove.
27857 (get_reference_vars_info): Fix indenting.
27858 (set_reference_vars_info): Likewise.
27859 (get_reference_optimization_summary): New.
27860 (set_reference_optimization_summary): New.
27861 (get_global_reference_vars_info): Remove.
27862 (ipa_reference_get_read_global): Remove.
27863 (ipa_reference_get_written_global): Remove.
27864 (ipa_reference_get_not_read_global): Update.
27865 (ipa_reference_get_not_written_global): Update.
27866 (is_proper_for_analysis): Outlaw addressable.
27867 (propagate_bits): Update for new datastructures.
27868 (analyze_variable): Remove.
27869 (init_function_info): Update for new datastructures.
27870 (clean_function_local_data): Remove.
27871 (clean_function): Remove.
27872 (copy_global_bitmap): Use optimizations_summary_obstack.
27873 (duplicate_node_data): Duplicate optimization summary only.
27874 (remove_node_data): Remove optimization summary only.
27875 (generate_summary): Do not analyze variables; do not compute
27876 module_statics_escape; do not prune solutions by it.
27877 (read_write_all_from_decl): Fix typos in comments.
27878 (propagate): Doscover readonly and nonaddressable first;
27879 update for new datastructures; share global bitmaps.
27880 * ipa-reference.h (ipa_reference_get_read_global,
27881 ipa_reference_get_written_global): Remove.
27882 * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
27883 * Makefile.in: Remove ipa-refereference from GT files.
27884
27885 2010-05-14 Jakub Jelinek <jakub@redhat.com>
27886
27887 PR debug/44112
27888 * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
27889 for all SYMBOL_REF_DECLs.
27890
27891 2010-05-14 Jan Hubicka <jh@suse.cz>
27892
27893 * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
27894 (varpool_all_refs_explicit_p): New inline function.
27895 * ipa-reference.c: Update comment.
27896 (module_statics_written): Remove.
27897 (get_static_decl): Remove.
27898 (ipa_init): Do not initialize module_statics_written.
27899 (analyze_function): Likewise.
27900 (generate_summary): Likewise; do not compute module_statics_readonly
27901 and do not update variable flags.
27902 (propagate): Call ipa_discover_readonly_nonaddressable_vars.
27903 * ipa.c: Inlucde flags.h
27904 (cgraph_local_node_p): New.
27905 (cgraph_remove_unreachable_nodes): Return early when not optimizing;
27906 promote functions to local.
27907 (ipa_discover_readonly_nonaddressable_vars): New function.
27908 (function_and_variable_visibility): Use cgraph_local_node_p.
27909 * varpool.c (varpool_finalize_decl): Set force_output for
27910 DECL_PRESERVE_P vars.
27911
27912 2010-05-14 Jan Hubicka <jh@suse.cz>
27913
27914 * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
27915
27916 2010-05-14 Richard Guenther <rguenther@suse.de>
27917
27918 PR tree-optimization/44119
27919 * tree-ssa-pre.c (eliminate): Properly mark replacement of
27920 a PHI node necessary.
27921
27922 2010-05-14 Eric Botcazou <ebotcazou@adacore.com>
27923
27924 * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
27925
27926 2010-05-14 Jason Merrill <jason@redhat.com>
27927
27928 PR c++/44127
27929 * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
27930 (gimple_call_set_nothrow): New.
27931 * gimple.c (gimple_build_call_from_tree): Call it.
27932 (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
27933
27934 PR c++/44127
27935 * gimplify.c (gimplify_seq_add_stmt): No longer static.
27936 * gimple.h: Declare it.
27937 * gimple.c (gimple_build_eh_filter): No ops.
27938
27939 2010-05-14 Jan Hubicka <jh@suse.cz>
27940
27941 * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
27942 nodes already in queue.
27943 (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
27944 re-enqueueing node.
27945
27946 2010-05-14 Jakub Jelinek <jakub@redhat.com>
27947
27948 PR debug/44136
27949 * cfgexpand.c (expand_debug_expr): If non-memory op0
27950 has BLKmode, return NULL.
27951
27952 2010-05-14 Harsha Jagasia <harsha.jagasia@amd.com>
27953
27954 * config.gcc: Add support for --with-cpu option for bdver1.
27955 * config/i386/i386.h (TARGET_BDVER1): New macro.
27956 (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
27957 to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
27958 (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
27959 to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
27960 Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
27961 (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
27962 (processor_type): Add PROCESSOR_BDVER1.
27963 * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
27964 processor_type in config/i386/i386.h.
27965 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
27966 movaps <reg, reg> instead of movapd <reg, reg> when replacing
27967 movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
27968 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
27969 to emit packed xor instead of packed double/packed integer
27970 xor for SSE and AVX when moving a zero value.
27971 * config/i386/sse.md: Add check for
27972 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
27973 movapd/movdqa for SSE and AVX.
27974 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
27975 single logical operations i.e and, or and xor instead of packed double
27976 logical operations for SSE and AVX.
27977 * config/i386/i386-c.c (ix86_target_macros_internal):
27978 Add PROCESSOR_BDVER1.
27979 * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
27980 (has_fma4, has_xop): New.
27981 * config/i386/i386.c (bdver1_cost): New variable.
27982 (m_BDVER1): New macro.
27983 (m_AMD_MULTIPLE): Add m_BDVER1.
27984 (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
27985 x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
27986 x86_tune_use_simode_fiop, x86_tune_promote_qimode,
27987 x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
27988 x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
27989 x86_tune_sse_partial_reg_dependency,
27990 x86_tune_sse_unaligned_load_optimal,
27991 x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
27992 x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
27993 x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
27994 x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
27995 x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
27996 Enable/disable for bdver1.
27997 (processor_target_table): Add bdver1_cost.
27998 (cpu_names): Add bdver1.
27999 (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
28000 processor_alias_table.
28001 (ix86_expand_vector_move_misalign): Change.
28002 TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
28003 Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
28004 Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
28005 of movupd/movdqu for SSE and AVX.
28006 (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
28007 (ix86_tune_adjust_cost): Add code for bdver1.
28008 (standard_sse_constant_opcode): Add check for
28009 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
28010 of packed double xor for SSE and AVX.
28011
28012 2010-05-14 Pat Haugen <pthaugen@us.ibm.com>
28013
28014 * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
28015 result to unsigned.
28016
28017 2010-05-14 Tristan Gingold <gingold@adacore.com>
28018
28019 * toplev.c (default_debug_hooks): Remove this variable.
28020 (process_options): Remove assignments to default_debug_hooks.
28021
28022 2010-05-14 Martin Jambor <mjambor@suse.cz>
28023
28024 * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
28025 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
28026 * langhooks.h (struct lang_hooks_for_decls): Removed field
28027 fold_obj_type_ref.
28028 * tree.c (free_lang_data): Remove assignment to
28029 lang_hooks.fold_obj_type_ref.
28030 * tree.def (OBJ_TYPE_REF): Update comment.
28031
28032 2010-05-14 Richard Guenther <rguenther@suse.de>
28033
28034 PR tree-optimization/44124
28035 * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
28036
28037 2010-05-14 Alan Modra <amodra@gmail.com>
28038
28039 PR target/44075
28040 * config/rs6000/rs6000.c (struct machine_function): Reorder
28041 fields for better packing. Add lr_save_state.
28042 (rs6000_ra_ever_killed): Return lr_save_state if set.
28043 (rs6000_emit_eh_reg_restore): Set lr_save_state.
28044
28045 2010-05-13 Jan Hubicka <jh@suse.cz>
28046
28047 * varpool.c (decide_is_variable_needed): Drop code checking
28048 TREE_SYMBOL_REFERENCED.
28049
28050 2010-05-13 Jan Hubicka <jh@suse.cz>
28051
28052 * final.c (output_addr_const): Do not call mark_decl_referenced.
28053 * cgraphunit.c (process_function_and_variable_attributes): Use
28054 mark_needed_node dirrectly.
28055 (assemble_thunk): Do not call mark_decl_referenced.
28056
28057 2010-05-13 Anatoly Sokolov <aesok@post.ru>
28058
28059 * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
28060
28061 2010-05-13 Jeff Law <law@redhat.com>
28062
28063 * ira-conflicts.c (print_allocno_conflicts): New function broken out
28064 from...
28065 (print_conflicts): Call print_allocno_conflicts.
28066
28067 2010-05-13 Jakub Jelinek <jakub@redhat.com>
28068
28069 PR debug/44104
28070 * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
28071 if it is NULL.
28072
28073 2010-05-13 Kai Tietz <kai.tietz@onevision.com>
28074
28075 * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
28076 t-mingw-w64 or t-mingw-w32 for multilib configuration.
28077 * config/i386/t-mingw-w32: New.
28078 * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
28079
28080 2010-05-13 Martin Jambor <mjambor@suse.cz>
28081
28082 * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
28083 gimple-fold.c).
28084 * gimple-fold.c (get_base_binfo_for_type): New function.
28085 (gimple_get_relevant_ref_binfo): Likewise.
28086 (gimple_fold_obj_type_ref_known_binfo): Likewise.
28087 (gimple_fold_obj_type_ref): Likewise.
28088 (fold_gimple_call): Simplify condition for folding virtual calls
28089 and call gimple_fold_obj_type_ref.
28090 * gimple.h (gimple_get_relevant_ref_binfo): Declare.
28091 (gimple_fold_obj_type_ref_known_binfo): Likewise.
28092
28093 2010-05-13 Andreas Schwab <schwab@linux-m68k.org>
28094
28095 * config/rs6000/rs6000-protos.h
28096 (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
28097 * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
28098 (rs6000_debug_mode_dependent_address)
28099 (rs6000_mode_dependent_address_ptr): Likewise.
28100
28101 2010-05-13 Jakub Jelinek <jakub@redhat.com>
28102
28103 PR debug/43983
28104 * var-tracking.c (track_expr_p): Allow tracking of variables optimized
28105 by SRA.
28106 * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
28107 * tree-sra.c (create_access_replacement): Call unshare_expr before
28108 passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
28109 * dwarf2out.c: Include tree-flow.h.
28110 (struct var_loc_node): Rename var_loc_note field to loc, add comment.
28111 (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
28112 Handle DW_OP_bit_piece.
28113 (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
28114 construct_piece_list, adjust_piece_list): New functions.
28115 (add_var_loc_to_decl): Handle SRA optimized variables.
28116 Adjust for var_loc_note to loc field renaming.
28117 (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
28118 in VAR_LOCATION note.
28119 (new_loc_descr_op_bit_piece): New function.
28120 (dw_sra_loc_expr): New function.
28121 (dw_loc_list): Use it. Don't handle the last range after the
28122 loop, handle it inside of the loop. Adjust for var_loc_note
28123 to loc field renaming.
28124 (add_location_or_const_value_attribute): Only special case
28125 single entry loc lists if loc is NOTE_P. Adjust for
28126 var_loc_note to loc field renaming.
28127 (dwarf2out_var_location): Don't set newloc->var_loc_note
28128 and newloc->next here.
28129
28130 2010-05-12 Jan Hubicka <jh@suse.cz>
28131
28132 * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
28133 flag.
28134 * cgraph.h (cgraph_only_called_directly_p,
28135 cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
28136 (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
28137 * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
28138 (assemble
28139 * ipa.c (cgraph_remove_unreachable_nodes): Use
28140 cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
28141 flags.
28142 * tree-inline.c (copy_bb): Check address_taken flag.
28143 * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
28144 externally_visible flag.
28145
28146 2010-05-12 Jason Merrill <jason@redhat.com>
28147
28148 PR bootstrap/44048
28149 PR target/44099
28150 * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
28151 * sdbout.c (plain_type_1): Likewise.
28152 * dwarf2out.c (is_base_type): Likewise.
28153 (gen_type_die_with_usage): Likewise. Generate
28154 DW_TAG_unspecified_type for any LANG_TYPE.
28155
28156 2010-05-12 Jan Hubicka <jh@suse.cz>
28157
28158 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
28159 indrect edges too.
28160 * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
28161 (cgraph_clone_edge): Update.
28162 (cgraph_node_remove_callees): Remove indirect calls too.
28163 * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
28164 (cgraph_create_indirect_edge): Update prototype.
28165 * ipa-reference.c (has_proper_scope_for_analysis): Rename to
28166 is_proper_for_analysis.
28167 (add_new_function, visited_nodes, function_insertion_hook_holder,
28168 get_local_reference_vars_info, mark_address_taken, mark_address,
28169 mark_load, mark_store, check_asm_memory_clobber, check_call,
28170 scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
28171 (ipa_init): Do not initialize visited_nodes;
28172 function_insertion_hook_holder.
28173 (analyze_variable): Rewrite.
28174 (analyze_function): Rewrite.
28175 (copy_local_bitmap): Remove.
28176 (duplicate_node_dat): Do not duplicate local info.
28177 (generate_summary): Simplify to only walk cgraph.
28178 (write_node_summary_p, ipa_reference_write_summary,
28179 ipa_reference_read_summary): Remove.
28180 (propagate): Do not remove function insertion;
28181 generate summary.
28182 (pass_ipa_reference): NULLify summary handling fields.
28183 * lto-cgraph.c (lto_output_edge): Output ecf_flags.
28184 (input_edge): Input ecf_flags.
28185 * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
28186 (update_indirect_edges_after_inlining): Ignore edges with unknown
28187 param.
28188
28189 2010-05-12 Sriraman Tallam <tmsriram@google.com>
28190
28191 * implicit-zee.c: New file.
28192 * tree-pass.h (pass_implicit_zee): Declare.
28193 * passes.c (init_optimization_passes): Add zee pass.
28194 * common.opt (fzee): New flag.
28195 * timevar.def (TV_ZEE): Define.
28196 * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
28197 and beyond.
28198 * Makefile.in (implicit-zee.o): Add new build file.
28199
28200 2010-05-12 Kazu Hirata <kazu@codesourcery.com>
28201 Nathan Froyd <froydnj@codesourcery.com>
28202
28203 * c-common.c (sync_resolve_params): Remove write-only variable.
28204
28205 2010-05-12 Anatoly Sokolov <aesok@post.ru>
28206
28207 * target.h (struct gcc_target): Add mode_dependent_address_p field.
28208 * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
28209 (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
28210 * targhooks.c (default_mode_dependent_address_p): New function.
28211 * targhooks.h (default_mode_dependent_address_p): Declare function.
28212 * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
28213 (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
28214 * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
28215 target hook. Change return type to bool.
28216 * recog.h (mode_dependent_address_p): Change return type to bool.
28217
28218 2010-05-12 Kazu Hirata <kazu@codesourcery.com>
28219 Nathan Froyd <froydnj@codesourcery.com>
28220
28221 * tree-mudflap.c (build_function_type_0, build_function_type_1,
28222 build_function_type_2, build_function_type_3): Remove.
28223 (mudflap_init): Use build_function_type_list.
28224
28225 2010-05-12 Kazu Hirata <kazu@codesourcery.com>
28226 Nathan Froyd <froydnj@codesourcery.com>
28227
28228 * coverage.c (build_fn_info_value): Call build_constructor instead of
28229 build_constructor_from_list.
28230 (build_ctr_info_value): Likewise.
28231 (build_gcov_info): Likewise.
28232
28233 2010-05-12 Nathan Froyd <froydnj@codesourcery.com>
28234
28235 * tree.c (build_constructor): Compute TREE_CONSTANT for the
28236 resultant constructor.
28237 (build_constructor_single): Don't set TREE_CONSTANT.
28238 (build_constructor_from_list): Don't compute TREE_CONSTANT.
28239
28240 2010-05-12 Jan Hubicka <jh@suse.cz>
28241
28242 * cgraph.h (struct varpool_node): Add aux.
28243 * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
28244 * varpool.c (varpool_remove_node): Do not remove initializer.
28245 (varpool_reset_queue): Export.
28246 (varpool_finalize_decl): Volatile vars are forced to be output.
28247 * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
28248 replaced decl.
28249 * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
28250 process_references, varpool_can_remove_if_no_refs): New functions.
28251 (cgraph_remove_unreachable_nodes): Handle variables too.
28252
28253 2010-05-12 H.J. Lu <hongjiu.lu@intel.com>
28254
28255 PR target/44088
28256 * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
28257
28258 2010-05-12 Jakub Jelinek <jakub@redhat.com>
28259
28260 PR middle-end/44085
28261 * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
28262 change value of ORT_TASK.
28263 (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
28264 (omp_notice_threadprivate_variable): New function.
28265 (omp_notice_variable): Call it for threadprivate variables.
28266 If enclosing ctx is a task, print enclosing task rather than
28267 enclosing parallel. Handle ORT_UNTIED_TASK like ORT_TASK.
28268 (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
28269 if task has untied clause.
28270
28271 PR debug/42278
28272 * dwarf2out.c (base_type_die): Don't add name attribute here.
28273 (modified_type_die): Instead of sizetype use
28274 its underlying original type. If a DW_TAG_base_type doesn't
28275 have name added, add __unknown__.
28276 (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
28277 always call force_type_die instead.
28278
28279 2010-05-12 Maxim Kuvyrkov <maxim@codesourcery.com>
28280
28281 * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
28282 for __stack_chk_guard.
28283
28284 2010-05-11 Jakub Jelinek <jakub@redhat.com>
28285
28286 * c-opts.c (c_common_parse_file): If start_end_main_source_file,
28287 don't call start_source_file debug hook here...
28288 (finish_options): ... but here, after outputting predefined and
28289 command line defines and undefs.
28290
28291 PR middle-end/44071
28292 * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
28293 no fallthru edge.
28294 * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
28295 optimizing away empty bb with no successors, move over its
28296 footer chain to fallthru predecessor.
28297 * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
28298 (rtl_split_edge): For asm goto call patch_jump_insn even if
28299 splitting fallthru edge.
28300
28301 PR c++/44059
28302 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
28303 even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
28304 * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
28305 * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
28306 on DW.ref.* decls.
28307
28308 PR c++/44062
28309 * c-parser.c (c_parser_expression): Mark LHS of a comma
28310 expression as read if it is a decl, handled component or
28311 COMPOUND_EXPR with that on the RHS.
28312 * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
28313 if it is a decl or handled component.
28314
28315 2010-05-11 Jan Hubicka <jh@suse.cz>
28316
28317 * lto-symtab.c (lto_symtab_free): New function.
28318 * lto-streamer.h (lto_symtab_free): Declare.
28319
28320 2010-05-11 Jan Hubicka <jh@suse.cz>
28321
28322 * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
28323 that if function is needed it is reachable.
28324 (lto_output_node): See if it the function is reachable or referenced.
28325 (output_cgraph): Update call of lto_output_node.
28326 * lto-streamer.h (reachable_from_other_partition_p): Declare.
28327
28328 2010-05-11 Jan Hubicka <jh@suse.cz>
28329
28330 * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
28331 Mark as used.
28332
28333 2010-05-11 Jan Hubicka <jh@suse.cz>
28334
28335 PR tree-optimize/44063
28336 * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
28337 queue.
28338 (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
28339 limits.
28340 (estimate_function_body_sizes): Compute sizes even when disregarding.
28341
28342 2010-05-11 Kai Tietz <kai.tietz@onevision.com>
28343
28344 * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
28345
28346 2010-05-11 Jan Hubicka <jh@suse.cz>
28347
28348 * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
28349 into every boundary.
28350
28351 2010-05-11 Jan Hubicka <jh@suse.cz>
28352
28353 * matrix-reorg.c (matrix_reorg): Rebuild edges.
28354
28355 2010-05-11 Jan Hubicka <jh@suse.cz>
28356
28357 * lto-streamer.c (lto_streamer_cache_add_to_node_array,
28358 lto_streamer_cache_delete): Put nodes into heap.
28359 * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
28360 heap.
28361
28362 2010-05-11 Jan Hubicka <jh@suse.cz>
28363
28364 * cgraphbuild.c (cgraph_rebuild_references): New.
28365 * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
28366 out extern inlines.
28367 * cgraph.h (cgraph_rebuild_references): Declare.
28368 * tree-inline.c (tree_function_versioning): Use it.
28369 * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
28370
28371 2010-05-11 Jan Hubicka <jh@suse.cz>
28372
28373 * cgraph.c: Include ipa-utils.h
28374 (cgraph_create_virtual_clone): Update references.
28375 * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
28376
28377 2010-05-11 Christian Borntraeger <borntraeger@de.ibm.com>
28378
28379 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
28380 prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
28381 cache size.
28382
28383 2010-05-11 Christian Borntraeger <borntraeger@de.ibm.com>
28384
28385 * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
28386
28387 2010-05-11 Jakub Jelinek <jakub@redhat.com>
28388
28389 * gcc.c (execute): For -### don't quote arguments that
28390 contain just alphanumerics and _/-. characters.
28391 * doc/invoke.texi: Document that change for -###.
28392
28393 PR debug/44023
28394 * df-problems.c (struct dead_debug): Add to_rescan field.
28395 (dead_debug_init): Clear to_rescan field.
28396 (dead_debug_finish): Rescan all debug insns in to_rescan
28397 bitmap and free the bitmap.
28398 (dead_debug_insert_before): Instead of rescanning debug insns
28399 immediately queue their rescanning until dead_debug_finish.
28400 (df_note_bb_compute): After dead_debug_add do continue instead
28401 of break.
28402
28403 2010-05-10 Jakub Jelinek <jakub@redhat.com>
28404
28405 PR debug/44028
28406 * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
28407 clear also INSN_REG_USE_LIST.
28408
28409 2010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28410
28411 * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
28412
28413 2010-05-10 Jan Hubicka <jh@suse.cz>
28414
28415 * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
28416 commited change.
28417
28418 2010-05-10 Jan Hubicka <jh@suse.cz>
28419
28420 * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
28421 Allocate encoders.
28422 * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
28423 * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
28424 (lto_streamer_cache_create): Init alloc pool.
28425 (lto_streamer_cache_delete): Free alloc pool.
28426 * lto-streamer.h: Include alloc pool.
28427 (lto_streamer_cache_d): Use alloc pool.
28428 * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
28429
28430 2010-05-10 Jan Hubicka <jh@suse.cz>
28431
28432 * Makefile.in (cgraphbuild.o): Add dependency on except.h.
28433 * cgraphbuild.c: Include except.h
28434 (record_type_list, record_eh_tables): New function.
28435 (build_cgraph_edges, rebuild_cgraph_edges): Use it.
28436
28437 2010-05-10 Jan Hubicka <jh@suse.cz>
28438
28439 * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
28440 __frame_dummy_init_array_entry, force_to_data): Attribute as used
28441 rather than unused.
28442
28443 2010-05-10 Michael Matz <matz@suse.de>
28444
28445 * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
28446 (can_reassociate_p): Use FLOAT_TYPE_P.
28447 * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
28448 (vect_force_simple_reduction): ... this.
28449 * tree-parloops.c (gather_scalar_reductions): Use
28450 vect_force_simple_reduction.
28451 * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
28452 vect_is_simple_reduction, add modify argument, if true rewrite
28453 "a-b" into "a+(-b)".
28454 (vect_is_simple_reduction, vect_force_simple_reduction): New
28455 functions.
28456 (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
28457
28458 2010-05-10 H.J. Lu <hongjiu.lu@intel.com>
28459 Vladimir Makarov <vmakarov@redhat.com>
28460
28461 PR rtl-optimization/44012
28462 * ira-build.c (remove_unnecessary_allocnos): Nullify
28463 regno_allocno_map of the removed allocno.
28464
28465 2010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28466
28467 * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
28468 to /dev/null.
28469 * configure: Regenerate.
28470
28471 2010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28472
28473 * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
28474 unused.
28475 Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
28476 * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
28477 support in Sun ld.
28478 * configure: Regenerate.
28479
28480 2010-05-10 Richard Guenther <rguenther@suse.de>
28481
28482 * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
28483 marked if the entry identifier is marked.
28484
28485 2010-05-10 Richard Guenther <rguenther@suse.de>
28486
28487 * c-common.c (struct c_common_attributes): Add fnspec attribute.
28488 (handle_fnspec_attribute): New function.
28489 * gimple.h (gimple_call_return_flags): Declare.
28490 (gimple_call_arg_flags): Likewise.
28491 * gimple.c (gimple_call_arg_flags): New function.
28492 (gimple_call_return_flags): Likewise.
28493 * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
28494 New argument flags.
28495 (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
28496 return value flags.
28497 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
28498 * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
28499 main work to ...
28500 (make_heapvar_for): ... this new function.
28501 (handle_rhs_call): Handle fnspec attribute argument specifiers.
28502 (handle_lhs_call): Likewise.
28503 (find_func_aliases): Adjust.
28504
28505 2010-05-10 Richard Guenther <rguenther@suse.de>
28506
28507 PR tree-optimization/44050
28508 * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
28509
28510 2010-05-10 Wei Guozhi <carrot@google.com>
28511
28512 PR target/42879
28513 * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
28514
28515 2010-05-09 Joseph Myers <joseph@codesourcery.com>
28516
28517 PR c/10676
28518 * c-typeck.c (lookup_field): Take a type directly. Update
28519 recursive calls.
28520 (build_component_ref): Update call to lookup_field.
28521 (set_init_label): Use lookup_field to find initialized field.
28522 Handle returned list of fields like a sequence of designators.
28523
28524 2010-05-09 Richard Guenther <rguenther@suse.de>
28525
28526 PR middle-end/44024
28527 * fold-const.c (tree_single_nonzero_warnv_p): Properly
28528 handle &FUNCTION_DECL.
28529
28530 2010-05-09 Joseph Myers <joseph@codesourcery.com>
28531
28532 PR c/4784
28533 * c-decl.c (detect_field_duplicates_hash): New. Handle anonymous
28534 structures and unions recursively.
28535 (detect_field_duplicates): Move duplicate detection with a hash to
28536 detect_field_duplicates_hash. Always use a hash if anonymous
28537 structures or unions are present.
28538 * doc/extend.texi (Unnamed Fields): Document that duplicate fields
28539 give errors.
28540
28541 2010-05-09 H.J. Lu <hongjiu.lu@intel.com>
28542
28543 PR target/44046
28544 * config/i386/driver-i386.c (host_detect_local_cpu): Properly
28545 detect Atom, Core 2 and Core i7.
28546
28547 2010-05-09 Richard Guenther <rguenther@suse.de>
28548
28549 * gcc.c (store_arg): Handle temporary file deletion for
28550 joined arguments.
28551
28552 2010-05-09 Richard Guenther <rguenther@suse.de>
28553
28554 PR middle-end/44043
28555 * ipa-inline.c (estimate_function_body_sizes): Return after
28556 disregarding inline limits.
28557
28558 2010-05-09 Richard Guenther <rguenther@suse.de>
28559
28560 * gcc.c (store_arg): Revert last change.
28561
28562 2010-05-08 Sandra Loosemore <sandra@codesourcery.com>
28563
28564 PR middle-end/28685
28565 * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
28566 (optimize_ops_list): Call it.
28567
28568 2010-05-08 Richard Guenther <rguenther@suse.de>
28569
28570 PR tree-optimization/44030
28571 * tree-ssa-pre.c (eliminate): Copy NECESSARY flag. Set
28572 NECESSARY flag if we propagate from a inserted expression.
28573
28574 2010-05-08 Eric Botcazou <ebotcazou@adacore.com>
28575
28576 * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
28577 domain types as equal if they are both PLACEHOLDER_EXPRs.
28578
28579 2010-05-08 Richard Guenther <rguenther@suse.de>
28580
28581 * lto-wrapper.c (run_gcc): Remove linker output from
28582 command line for LTRANS invocation.
28583
28584 2010-05-07 Steven Bosscher <steven@gcc.gnu.org>
28585
28586 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
28587 lto-macho as lto_binary_reader.
28588 * target.h (struct gcc_target): New hooks lto_start and lto_end.
28589 * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
28590 * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
28591 in lto_start and lto_end calls.
28592 (is_elf_or_coff): Rename to maybe_lto_object_file. Add Mach-O
28593 magic numbers.
28594 (scan_prog_file): Update is_elf_or_coff call.
28595 * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
28596
28597 * collect2.c (main): Fix enum comparison.
28598
28599 * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
28600 Add prototypes.
28601 * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
28602 * darwin.h (LINK_COMMAND_SPEC): Likewise. Define TARGET_ASM_LTO_START
28603 and TARGET_ASM_LTO_END.
28604 * darwin.c: Include obstack.h and lto-streamer.h.
28605 (lto_section_names_offset, lto_section_names_obstack,
28606 lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
28607 global variables.
28608 (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
28609 (darwin_asm_lto_start): New function. Redirect output to asm_out_file
28610 to a temporary file.
28611 (darwin_asm_lto_end): New function. Restore asm_out_file.
28612 (darwin_asm_named_section): For LTO sections, replace the name with
28613 the offset of the section name in a string table, and build this
28614 table.
28615 (darwin_file_start): Initialize global vars for LTO support.
28616 (darwin_file_end): If output to asm_out_file was redirected, append it
28617 to the proper asm_out_file here. Add the section names section.
28618
28619 2010-05-07 Steven Bosscher <steven@gcc.gnu.org>
28620
28621 * c-pragma.c (pending_weak_d, pending_weak): New.
28622 (pending_weaks): Change the type to VEC((pending_weak,gc) *.
28623 (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
28624 handle_pragma_weak): Update the uses of pending_weaks.
28625
28626 2010-05-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
28627
28628 PR documentation/44016
28629 * doc/standards.texi (Standards): Link to unversioned
28630 cxx0x_status.html page.
28631
28632 2010-05-07 Iain Sandoe <iains@gcc.gnu.org>
28633
28634 PR target/43708
28635 * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
28636 in addition to TREE_USED, to avoid "set but unused" warnings.
28637
28638 2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
28639
28640 * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
28641 (is_loop_prefetching_profitable): Do not insert prefetches
28642 when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
28643 times the prefetch ahead distance.
28644
28645 2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
28646
28647 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
28648 Account for loop unrolling in the insn-to-prefetch ratio heuristic.
28649 (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
28650 the unroll_factor.
28651
28652 2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
28653
28654 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
28655 a diagnostic info when the insn-to-mem ratio is too small.
28656
28657 2010-05-07 Richard Guenther <rguenther@suse.de>
28658
28659 * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
28660 the linker plugin.
28661 (store_arg): Queue temp_filename for deletion instead of
28662 the whole argument.
28663
28664 2010-05-07 Richard Guenther <rguenther@suse.de>
28665
28666 * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
28667 (run_gcc): Handle LTRANS phase invocation.
28668 * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
28669
28670 2010-05-07 Jakub Jelinek <jakub@redhat.com>
28671
28672 * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
28673 this is also meaningful on PARM_DECLs and RESULT_DECLs.
28674
28675 2010-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28676
28677 * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
28678
28679 2010-05-07 Richard Guenther <rguenther@suse.de>
28680
28681 PR tree-optimization/44020
28682 * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
28683 code when PRE is not yet initialized.
28684
28685 2010-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28686
28687 * config/mips/dbxmdebug.h: Remove.
28688 * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
28689
28690 2010-05-07 Shujing Zhao <pearly.zhao@oracle.com>
28691
28692 * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
28693 with null pointer and also warn about ordered comparison of zero with
28694 pointer if -Wextra.
28695
28696 2010-05-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
28697
28698 * graphite-blocking.c
28699 (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
28700 * graphite-clast-to-gimple.c
28701 (clast_to_gcc_expression): Same.
28702 (precision_for_value): Same.
28703 (precision_for_interval): Same.
28704 (gcc_type_for_interval): Same.
28705 (graphite_create_new_guard): Same.
28706 (compute_bounds_for_level): Same.
28707 (graphite_create_new_loop_guard): Same.
28708 * graphite-interchange.c
28709 (build_linearized_memory_access): Same.
28710 (pdr_stride_in_loop): Same.
28711 (memory_strides_in_loop_1): Same.
28712 (memory_strides_in_loop): Same.
28713 (extend_scattering): Same.
28714 (psct_scattering_dim_for_loop_depth): Same.
28715 (pbb_number_of_iterations): Same.
28716 * graphite-poly.h
28717 (debug_iteration_domains): Same.
28718 * graphite-ppl.c
28719 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
28720 (ppl_set_inhomogeneous_gmp): Same.
28721 (ppl_strip_loop): Same.
28722 (ppl_lexico_compare_linear_expressions): Same.
28723 (ppl_read_polyhedron_matrix): Same.
28724 (ppl_max_for_le_pointset): Same.
28725 * graphite-ppl.h
28726 (ppl_read_polyhedron_matrix): Same.
28727 (tree_int_to_gmp): Same.
28728 (gmp_cst_to_tree): Same.
28729 (ppl_set_inhomogeneous): Same.
28730 (ppl_set_inhomogeneous_tree): Same.
28731 (ppl_set_coef): Same.
28732 (ppl_set_coef_tree): Same.
28733 * graphite-sese-to-poly.c
28734 (build_pbb_scattering_polyhedrons): Same.
28735 (build_scop_scattering): Same.
28736 (scan_tree_for_params_right_scev): Same.
28737 (scan_tree_for_params): Same.
28738 (find_params_in_bb): Same.
28739 (find_scop_parameters): Same.
28740 (add_upper_bounds_from_estimated_nit): Same.
28741 (build_loop_iteration_domains): Same.
28742 (add_condition_to_domain): Same.
28743 (pdr_add_memory_accesses): Same.
28744
28745 2010-05-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
28746
28747 * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
28748 CLooG's value_* macros to their respective mpz_* counterparts.
28749 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
28750 (graphite_create_new_loop_guard): Same.
28751 * graphite-interchange.c (build_linearized_memory_access): Same.
28752 (pdr_stride_in_loop): Same.
28753 (memory_strides_in_loop_1): Same.
28754 (1st_interchange_profitable_p): Same.
28755 * graphite-poly.c (extend_scattering): Same.
28756 (psct_scattering_dim_for_loop_depth): Same.
28757 (pbb_number_of_iterations): Same.
28758 (pbb_number_of_iterations_at_time): Same.
28759 * graphite-poly.h (new_1st_loop): Same.
28760 * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
28761 (oppose_constraint): Same.
28762 (insert_constraint_into_matrix): Same.
28763 (ppl_set_inhomogeneous_gmp): Same.
28764 (ppl_set_coef_gmp): Same.
28765 (ppl_strip_loop): Same.
28766 (ppl_lexico_compare_linear_expressions): Same.
28767 (ppl_max_for_le_pointset): Same.
28768 (ppl_min_for_le_pointset): Same.
28769 (ppl_build_realtion): Same.
28770 * graphite-ppl.h (gmp_cst_to_tree): Same.
28771 (ppl_set_inhomogeneous): Same.
28772 (ppl_set_inhomogeneous_tree): Same.
28773 (ppl_set_coef): Same.
28774 (ppl_set_coef_tree): Same.
28775 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
28776 (build_scop_scattering): Same.
28777 (add_value_to_dim): Same.
28778 (scan_tree_for_params_right_scev): Same.
28779 (scan_tree_for_params_int): Same.
28780 (scan_tree_for_params): Same.
28781 (find_params_in_bb): Same.
28782 (find_scop_parameters): Same.
28783 (add_upper_bounds_from_estimated_nit): Same.
28784 (build_loop_iteration_domains): Same.
28785 (create_linear_expr_from_tree): Same.
28786 (add_condition_to_domain): Same.
28787 (pdr_add_memory_accesses): Same.
28788
28789 2010-05-06 Magnus Fromreide <magfr@lysator.liu.se>
28790 Jason Merrill <jason@redhat.com>
28791
28792 * c-common.c (c_common_reswords): Add nullptr.
28793 * c-common.h: Add RID_NULLPTR. Reorganize C++0x rids.
28794 * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
28795 (gen_type_die_with_usage): Likewise.
28796 * dbxout.c (dbxout_type): Likewise.
28797 * sdbout.c (plain_type_1): Likewise.
28798
28799 2010-05-06 Jason Merrill <jason@redhat.com>
28800
28801 * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
28802 Don't change GS_OK to GS_ALL_DONE. Make sure that all cases set
28803 ret appropriately.
28804 (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
28805
28806 * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
28807 stripping WITH_SIZE_EXPR.
28808 (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
28809 change.
28810
28811 2010-05-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28812
28813 * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
28814 list of obsolete configurations.
28815 Disabled check for obsolete configurations.
28816 (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
28817 Removed support for previous versions.
28818 * config/mips/iris.h: Removed.
28819 * config/mips/iris5.h: Removed.
28820 * config/mips/iris6.h: Merged old iris.h contents.
28821 (TARGET_IRIX): Removed.
28822 (DRIVER_SELF_SPECS): Removed mabi=32.
28823 (IDENT_ASM_OP): Removed undef.
28824 (STARTFILE_SPEC): Removed mabi=32.
28825 (ENDFILE_SPEC): Likewise.
28826 (IRIX_SUBTARGET_LINK_SPEC): Likewise.
28827 (MACHINE_TYPE): Update for IRIX 6.5.
28828 * config/mips/mips.c (mips_build_builtin_va_list): Replaced
28829 TARGET_IRIX by TARGET_IRIX6.
28830 (mips_file_start): Likewise.
28831 (mips_output_external): Remove IRIX 5/6 O32 support.
28832 (mips_output_function_prologue): Likewise.
28833 * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
28834 TARGET_IRIX6.
28835 (TARGET_CPU_CPP_BUILTINS): Likewise.
28836 (TARGET_IRIX): Removed.
28837 * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
28838 (MULTILIB_DIRNAMES): Removed 32.
28839 (MULTILIB_OSDIRNAMES): Removed ../lib.
28840 * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
28841 (Specific, mips-sgi-irix5): Document removal.
28842 (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
28843 Remove references to older IRIX 6 releases and the O32 ABI.
28844
28845 2010-05-06 Jakub Jelinek <jakub@redhat.com>
28846
28847 PR bootstrap/43994
28848 * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
28849 instead of DF_REF_REAL_REG.
28850
28851 2010-05-06 Dave Korn <dave.korn.cygwin@gmail.com>
28852
28853 PR target/43888
28854 * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
28855 handling to still return true for x64 targets.
28856
28857 2010-05-06 Maxim Kuvyrkov <maxim@codesourcery.com>
28858
28859 * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
28860
28861 2010-05-06 Jan Hubicka <jh@suse.cz>
28862
28863 PR tree-optimization/43791
28864 * ipa-inline.c (update_caller_keys): Remove bogus
28865 disregard_inline_limits check.
28866
28867 2010-05-06 Michael Matz <matz@suse.de>
28868
28869 PR tree-optimization/43984
28870 * tree-ssa-pre.c (inserted_phi_names): Remove.
28871 (inserted_exprs): Change to bitmap.
28872 (create_expression_by_pieces): Set bits, don't append to vector.
28873 (insert_into_preds_of_block): Don't handle inserted_phi_names.
28874 (eliminate): Don't look at inserted_phi_names, remove deleted
28875 insns from inserted_exprs.
28876 (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
28877 (init_pre, fini_pre): Allocate and free bitmaps.
28878 (execute_pre): Insert insns on edges before elimination.
28879
28880 2010-05-06 Maxim Kuvyrkov <maxim@codesourcery.com>
28881
28882 * tree.c (initializer_zerop): Handle STRING_CST.
28883
28884 2010-05-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
28885
28886 PR 40989
28887 * doc/invoke.texi (Wimplicit): Document as C only.
28888 * opts.c (common_handle_option): Add argument kind.
28889 (handle_option): Rename as read_cmdline_option. Factor out code to...
28890 (handle_option): ... here. New.
28891 (handle_options): Rename as read_cmdline_options.
28892 (decode_options): Update call.
28893 (set_option): Use option index instead of option pointer. Classify
28894 diagnostics correctly.
28895 (enable_warning_as_error): Call handle_option.
28896 * opts.h (set_option): Update declaration.
28897 (handle_option): Declare.
28898 * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
28899 * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
28900 * c-opts.c (set_Wimplicit): Delete.
28901 (c_family_lang_mask): New static constant.
28902 (c_common_handle_option): Add argument kind. Use handle_option
28903 instead of set_Wimplicit.
28904 (c_common_post_options): warn_implicit and warn_implicit_int
28905 are disabled by default.
28906 * c-common.c (warn_implicit): Do not define here.
28907 * c-common.h (warn_implicit): Do not declare here.
28908 (c_common_handle_option): Update declaration.
28909 * lto-opts.c (lto_reissue_options): Update call to set_option.
28910
28911 2010-05-06 Richard Guenther <rguenther@suse.de>
28912
28913 PR tree-optimization/43571
28914 * domwalk.c (walk_dominator_tree): Walk the dominator
28915 sons in more optimal order.
28916
28917 2010-05-06 Richard Guenther <rguenther@suse.de>
28918
28919 PR tree-optimization/43934
28920 * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
28921 (stmt_cost): Likewise.
28922 (extract_true_false_args_from_phi): New helper.
28923 (determine_max_movement): For PHI nodes verify we can hoist them
28924 and compute their cost.
28925 (determine_invariantness_stmt): Handle PHI nodes.
28926 (move_computations_stmt): Likewise. Hoist PHI nodes in
28927 if-converted form using COND_EXPRs.
28928 (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
28929 (tree_ssa_lim): Likewise.
28930 * tree-flow.h (tree_ssa_lim): Adjust prototype.
28931 * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
28932
28933 2010-05-06 Richard Guenther <rguenther@suse.de>
28934
28935 PR tree-optimization/43987
28936 * tree-ssa-structalias.c (could_have_pointers): For possibly
28937 address-taken variables force pointers to be recorded.
28938 (create_variable_info_for_1): Likewise.
28939 (push_fields_onto_fieldstack): Pass in wheter all fields
28940 must have pointers.
28941 (find_func_aliases): Query types instead of vars whether
28942 they contain pointers where appropriate.
28943
28944 2010-05-06 Jan Hubicka <jh@suse.cz>
28945
28946 * cgraphbuild.c (record_reference_ctx): Add varpool_node.
28947 (record_reference, mark_address, mark_load, mark_store): Record
28948 references.
28949 (record_references_in_initializer): Update call of record_references.
28950 (rebuild_cgraph_edges): Remove all references before rebuiding.
28951 * cgraph.c (cgraph_create_node): Clear ref list.
28952 (cgraph_remove_node): Remove references.
28953 (dump_cgraph_node): Dump references.
28954 (cgraph_clone_node): Clone references.
28955 * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
28956 (struct cgraph_node, varpool_node): Add ref_lst.
28957 * ipa-ref.c: New file.
28958 * ipa-ref.h: New file.
28959 * ipa-ref-inline.h: New file.
28960 * lto-cgraph.c (output_varpool): Take cgrag node set argument.
28961 (referenced_from_other_partition_p): New function.
28962 (lto_output_varpool_node): Take set arugment; call
28963 referenced_from_other_partition.
28964 (lto_output_ref): New.
28965 (add_references): New.
28966 (output_refs): New.
28967 (output_cgraph): Compute boundary based on references; output refs.
28968 (output_varpool): Accept cgraph_node_set argument.
28969 (input_ref): New.
28970 (input_refs): New.
28971 (input_cgraph): Call input_refs.
28972 * lto-section-in.c (lto_section_name): Add refs.
28973 * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
28974 (ipa-ref.o): New file.
28975 * varpool.c (varpool_node): Clear ipa ref list.
28976 (varpool_remove_node): Remove references.
28977 (dump_varpool_node): Dump references.
28978 (varpool_assemble_decl): Only compile finalized ones.
28979 (varpool_extra_name_alias): Initialize ref list.
28980 * lto-streamer.c (lto-get_section_name): Add .refs section.
28981 * lto-streamer.h (lto_section_type): Add LTO_section_refs.
28982 (referenced_from_other_partition_p): Declared.
28983
28984 2010-05-06 Ira Rosen <irar@il.ibm.com>
28985
28986 PR tree-optimization/43901
28987 * tree-vect-stmts.c (vectorizable_call): Assert that vector
28988 type is not NULL if it's transformation phase, and return
28989 FALSE if it's analysis.
28990 (vectorizable_conversion, vectorizable_operation,
28991 vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
28992
28993 2010-05-05 Andrew Pinski <andrew.pinski@caviumnetworks.com>
28994
28995 * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
28996 Delete.
28997 * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
28998 New define.
28999 * config/mips/mips-protos.h
29000 (mips_small_register_classes_for_mode_p): Delete prototype.
29001
29002 2010-05-06 Bernd Schmidt <bernds@codesourcery.com>
29003
29004 * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
29005 * config/arm/arm.c (multiple_operation_profitable_p,
29006 compute_offset_order): New static functions.
29007 (load_multiple_sequence, store_multiple_sequence): Use them.
29008 Replace constant 4 with MAX_LDM_STM_OPS. Compute order[0] from
29009 memory offsets, not register numbers.
29010 (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
29011
29012 2010-05-05 Steven Bosscher <steven@gcc.gnu.org>
29013
29014 * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
29015 (get_pending_sizes, put_pending_size, put_pending_sizes):
29016 Update the uses of pending_sizes.
29017 * c-decl.c (store_parm_decls): Likewise.
29018 * c-tree.h (struct c_arg_info): Likewise.
29019 * tree.h: Update the prototype for get_pending_sizes and
29020 put_pending_sizes.
29021
29022 2010-05-05 Jason Merrill <jason@redhat.com>
29023
29024 PR debug/43370
29025 * c-common.c (handle_aligned_attribute): Respect
29026 ATTR_FLAG_TYPE_IN_PLACE.
29027
29028 PR testsuite/43758
29029 * target.h (struct gcc_target): Add attribute_takes_identifier_p.
29030 * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
29031 (TARGET_INITIALIZER): Use it.
29032 * c-common.c (attribute_takes_identifier_p): Call it.
29033 * c-common.h: Update prototype.
29034 * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
29035 (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
29036
29037 2010-05-05 Jakub Jelinek <jakub@redhat.com>
29038
29039 PR debug/43950
29040 * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
29041 DW_ID_down_case for Fortran compilation units.
29042
29043 2010-05-05 Jan Hubicka <jh@suse.cz>
29044
29045 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
29046 handle aliases.
29047
29048 2010-05-05 Eric Botcazou <ebotcazou@adacore.com>
29049
29050 * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
29051 a variable-sized RESULT_DECL.
29052
29053 2010-05-05 Maxim Kuvyrkov <maxim@codesourcery.com>
29054
29055 * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
29056
29057 2010-05-05 Jason Merrill <jason@redhat.com>
29058
29059 PR c++/43787
29060 * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
29061 returns GS_OK.
29062 (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
29063
29064 2010-05-05 Alexandre Oliva <aoliva@redhat.com>
29065 Jakub Jelinek <jakub@redhat.com>
29066
29067 PR debug/43478
29068 * df-problems.c (struct dead_debug_use, struct dead_debug): New.
29069 (dead_debug_init, dead_debug_finish): New functions.
29070 (dead_debug_add, dead_debug_insert_before): Likewise.
29071 (df_note_bb_compute): Initialize a dead_debug object, add dead
29072 debug uses to it, insert debug bind insns before death insns,
29073 reset debug insns that refer to pending uses at the end.
29074 * rtl.h (make_debug_expr_from_rtl): New prototype.
29075 * varasm.c (make_debug_expr_from_rtl): New function.
29076
29077 2010-05-05 Jan Hubicka <jh@suse.cz>
29078
29079 * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
29080 (lto_varpool_encoder_new, lto_varpool_encoder_delete,
29081 lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
29082 lto_varpool_encoder_deref, lto_varpool_encoder_size,
29083 lto_varpool_encoder_encode_initializer_p,
29084 lto_set_varpool_encoder_encode_initializer): New functions.
29085 (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
29086 call output_varpool.
29087 (input_varpool_node): Do not always set analyzed.
29088 (input_cgraph_1): Return vector of cgraph nodes.
29089 (input_varpool_1): Return vector of varpools.
29090 (input_cgraph): Free the vectors.
29091 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
29092 output only initializers needed.
29093 (lto_output): Only call output_cgraph.
29094 (produce_asm_for_decls): Call lto_varpool_encoder_delete.
29095 * lto-section-out.c (lto_new_out_decl_state): Initialize
29096 state->varpool_node_encoder.
29097 * lto-streamer.h (lto_varpool_encoder_d): New.
29098 (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
29099 (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
29100 (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
29101 lto_varpool_encoder_encode, lto_varpool_encoder_delete,
29102 lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
29103 Declare.
29104 (output_varpool, input_varpool): Remove declarations.
29105
29106 2010-05-05 Jan Hubicka <jh@suse.cz>
29107
29108 * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
29109 with body can prevail.
29110
29111 2010-05-05 Jan Hubicka <jh@suse.cz>
29112
29113 * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
29114 size.
29115
29116 2010-05-05 Laurynas Biveinis <laurynas.biveinis@gmail.com>
29117
29118 * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
29119
29120 * gengtype.h (erro_at_line): Constify pos argument.
29121
29122 * gengtype.c: Include hashtab.h.
29123 (enum gc_used): Document GC_MAYBE_POINTED_TO.
29124 (error_at_line): Constify pos argument.
29125 (do_typedef): Initialize p->opt field.
29126 (get_file_gtfilename): Fix comment typo.
29127 (struct walk_type_data): Constify line field.
29128 (get_output_file_for_structure): New function.
29129 (write_local_func_for_structure): Constify orig_s argument.
29130 Use get_output_file_for_structure.
29131 (write_func_for_structure): Use get_output_file_for_structure.
29132 (INDENT): New define.
29133 (dump_pair, dump_type, dump_type_list, dump_typekind)
29134 (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
29135 (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
29136 functions.
29137 (seen_types): New variable.
29138 (main): New variable do_dump. Process "-d" command line option.
29139 Call dump_everything if dump requested.
29140
29141 2010-05-05 Jakub Jelinek <jakub@redhat.com>
29142
29143 * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
29144 in a temporary instead of invoking the macro multiple times.
29145 (track_expr_p): Likewise.
29146
29147 2010-05-04 Neil Vachharajani <nvachhar@google.com>
29148
29149 * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
29150 per new semantics.
29151 * opts.c (decode_options): Enable -Werror=coverage-mismatch.
29152 * coverage.c (get_coverage_counts): Always emit a warning. Adjust
29153 conditions for printing notes.
29154 * common.opt (-Wcoverage-mismatch): Allow negative, default to
29155 true, update documentation.
29156 * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
29157
29158 2010-05-04 Jakub Jelinek <jakub@redhat.com>
29159
29160 PR c/43981
29161 * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
29162 on dimen.
29163
29164 2010-05-04 H.J. Lu <hongjiu.lu@intel.com>
29165
29166 PR target/43799
29167 * config/i386/i386.md (sse_prologue_save): Clobber CC register.
29168 (*sse_prologue_save_insn1): Likewise.
29169 (SSE prologue save splitter): Likewise.
29170
29171 2010-05-04 Eric Botcazou <ebotcazou@adacore.com>
29172
29173 * tree.c (free_lang_data_in_one_sizepos): New inline function.
29174 (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
29175 types. Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
29176 (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
29177 all decls. Call it on DECL_FIELD_OFFSET of fields.
29178 (find_decls_types_r): Follow DECL_VALUE_EXPR.
29179 (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
29180
29181 2010-05-04 Martin Jambor <mjambor@suse.cz>
29182
29183 * tree-sra.c (build_access_from_expr_1): The first parameter type
29184 changed to simple tree.
29185 (build_access_from_expr): Likewise, gsi parameter was eliminated.
29186 (scan_assign_result): Renamed to assignment_mod_result, enum elements
29187 renamed as well.
29188 (build_accesses_from_assign): Removed all parameters except for a
29189 simple gimple statement. Now returns a simple bool.
29190 (scan_function): All non-analysis parts moved to separate functions
29191 sra_modify_function_body and ipa_sra_modify_function_body. Removed all
29192 parameters and updated both callers.
29193 (sra_modify_expr): Removed parameter data.
29194 (sra_modify_function_body): New function.
29195 (perform_intra_sra): Call sra_modify_function_body to modify the
29196 function body.
29197 (replace_removed_params_ssa_names): Parameter data changed into
29198 adjustments vector.
29199 (sra_ipa_modify_expr): Likewise. Also removed unused parameter gsi and
29200 changed the parameter dont_convert to convert with the opposite
29201 meaning.
29202 (sra_ipa_modify_assign): Parameter data changed into adjustments
29203 vector, return value changed to bool.
29204 (ipa_sra_modify_function_body): New function.
29205 (sra_ipa_reset_debug_stmts): Updated a comment.
29206 (modify_function): Use ipa_sra_modify_function_body to modify function
29207 body.
29208
29209 2010-05-04 H.J. Lu <hongjiu.lu@intel.com>
29210
29211 PR middle-end/43671
29212 * alias.c (true_dependence): Handle the same VALUE in x and mem.
29213 (canon_true_dependence): Likewise.
29214 (write_dependence_p): Likewise.
29215
29216 2010-05-04 Jan Hubicka <jh@suse.cz>
29217
29218 * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
29219 * cgraphbuild.c: Include ipa-utils.h
29220 (record_reference_ctx): New struct.
29221 (record_reference): Simplify to work on initializers; not statements.
29222 (mark_address, mark_load, mark_store): New.
29223 (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
29224 walk PHI nodes too.
29225 (record_references_in_initializer): Update use of record_reference.
29226 (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
29227 walk PHI nodes too.
29228
29229 2010-05-04 Jan Hubicka <jh@suse.cz>
29230
29231 * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
29232 node will be removed anyway.
29233 (lto_varpool_replace_node): Allow also unanalyzed nodes;
29234 relink aliases of node into prevailing node.
29235 * varpool.c (varpool_remove_node): Remove aliases properly;
29236 when removing node, remove all its aliases too; remove DECL_INITIAL
29237 of removed node; ggc_free the varpool node.
29238
29239 2010-05-04 Richard Guenther <rguenther@suse.de>
29240
29241 PR tree-optimization/43879
29242 * tree-ssa-structalias.c (alias_get_name): Use
29243 DECL_ASSEMBLER_NAME if available.
29244 (create_function_info_for): Return the varinfo node.
29245 (ipa_pta_execute): Associate same-body aliases and extra names
29246 with their origin nodes varinfo. Dump DECL_ASSEMBLER_NAME.
29247
29248 2010-05-04 Kaz Kojima <kkojima@gcc.gnu.org>
29249
29250 * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
29251
29252 2010-05-04 Mikael Pettersson <mikpe@it.uu.se>
29253
29254 PR bootstrap/43964
29255 * ira-color.c (assign_hard_reg): Declare rclass and add_cost
29256 only if HONOR_REG_ALLOC_ORDER is not defined.
29257
29258 2010-05-04 Richard Guenther <rguenther@suse.de>
29259
29260 PR tree-optimization/43949
29261 * tree-vrp.c (extract_range_from_binary_expr): Only handle
29262 TRUNC_MOD_EXPR.
29263
29264 2010-04-26 Jason Merrill <jason@redhat.com>
29265
29266 * c.opt (-fstrict-enums): New.
29267 * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
29268
29269 2010-05-03 David Ung <davidu@mips.com>
29270 James E. Wilson <wilson@codesourcery.com>
29271
29272 * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
29273 emit the trap instruction before the divide for TUNE_74K.
29274
29275 2010-05-03 Steven Bosscher <steven@gcc.gnu.org>
29276
29277 * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
29278 (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
29279 based on the above, for new target hook.
29280
29281 * hooks.c (hook_bool_mode_true): New generic hook.
29282 * hooks.h (hook_bool_mode_true): Add prototype.
29283
29284 * target.h (struct gcc_target): Add small_register_classes_for_mode_p
29285 target hook.
29286 * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
29287 target hook, set to hook_bool_mode_false.
29288 * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
29289 * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
29290 with targetm.small_register_classes_for_mode_p.
29291 (find_reusable_reload): Likewise.
29292 (combine_reloads): Likewise.
29293 * reload1.c (reload_as_needed): Likewise.
29294 * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
29295 * ifcvt.c (noce_process_if_block, check_cond_move_block,
29296 dead_or_predicable): Likewise.
29297 * regmove.c (optimize_reg_copy_1): Likewise.
29298 * calls.c (prepare_call_address): Likewise.
29299 (precompute_register_parameters): Likewise.
29300
29301 * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
29302 hook definition.
29303 * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
29304 implementation of the hook that considers all register classes
29305 small except for SH64.
29306 (sh_override_options): Use the new hook.
29307 * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
29308 Add prototype.
29309
29310 * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
29311 hook definition.
29312 * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
29313 implementation of the hook that considers all register classes
29314 small for THUMB1.
29315 * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
29316 Add prototype.
29317
29318 * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
29319 hook definition.
29320 * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
29321 implementation of the hook that considers all register classes
29322 small for MIPS16.
29323 * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
29324 Add prototype.
29325
29326 * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
29327 hook definition.
29328 * config/m32c/m32c.h: Likewise.
29329 * config/pdp11/pdp11.h: Likewise.
29330 * config/avr/avr.h: Likewise.
29331 * config/xtensa/xtensa.h: Likewise.
29332 * config/m68hc11/m68hc11.h: Likewise.
29333 * config/mn10300/mn10300.h: Likewise.
29334 * config/mcore/mcore.h: Likewise.
29335 * config/h8300/h8300.h: Likewise.
29336 * config/bfin/bfin.h: Likewise.
29337
29338 * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
29339 * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
29340
29341 2010-05-03 Anatoly Sokolov <aesok@post.ru>
29342
29343 * double-int.h (tree_to_double_int): Remove macro.
29344 (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
29345 * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
29346 (tree_to_double_int): New function.
29347 * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
29348 Move ...
29349 * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
29350
29351 2010-05-03 Richard Guenther <rguenther@suse.de>
29352
29353 PR tree-optimization/43971
29354 * tree-ssa-structalias.c (get_constraint_for_1): Fix
29355 constraints in the !flag_delete_null_pointer_checks case.
29356
29357 2010-05-03 Jakub Jelinek <jakub@redhat.com>
29358
29359 PR debug/43972
29360 * config/i386/i386.c (ix86_delegitimize_address): Make sure the
29361 result mode matches original rtl mode.
29362
29363 2010-05-03 Dave Korn <dave.korn.cygwin@gmail.com>
29364
29365 PR target/43888
29366 * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
29367
29368 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
29369
29370 * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
29371 when processing flag options.
29372
29373 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
29374
29375 * gcov-iov.c (main): Change format string placeholder
29376 from %#08x to 0x%08x.
29377 * genchecksum.c (dosum): Change format string placeholder
29378 from %#02x to 0x%02x.
29379
29380 2010-05-02 Richard Guenther <rguenther@suse.de>
29381
29382 PR tree-optimization/43879
29383 * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
29384
29385 2010-05-02 Bruno Haible <bruno@clisp.org>
29386
29387 * doc/extend.texi (Function Attributes): Fix a typo.
29388
29389 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
29390
29391 Revert:
29392 * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
29393 placeholder from 0x%x to %#x.
29394 (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
29395 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
29396 * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
29397 * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
29398 * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
29399 * config/i386/i386.c (ix86_target_string): Ditto.
29400 * config/i386/i386.c (output_pic_addr_const): Ditto.
29401 (print_operand): Ditto.
29402
29403 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
29404
29405 * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
29406 placeholder from 0x%x to %#x.
29407 (ASM_OUTPUT_DEBUG_DATA1): Ditto.
29408 (ASM_OUTPUT_DEBUG_DATA4): Ditto.
29409 (ASM_OUTPUT_DEBUG_DATA): Ditto.
29410 (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
29411 (ASM_OUTPUT_DEBUG_DATA8): Ditto.
29412 * optc-gen.awk: Ditto.
29413 * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
29414 (HOST_WIDE_INT_PRINT_HEX): Ditto.
29415 (HOST_WIDEST_INT_PRINT_HEX): Ditto.
29416 (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
29417
29418 2010-05-01 Anatoly Sokolov <aesok@post.ru>
29419
29420 * target.h (struct calls): Add function_value_regno_p field.
29421 * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
29422 (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
29423 * targhooks.c (default_function_value_regno_p): New function.
29424 * targhooks.h (default_function_value_regno_p): Declare function.
29425 * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
29426 * builtins.c. (apply_result_size): (Ditto.).
29427 * combine.c. (likely_spilled_retval_p): (Ditto.).
29428 * mode-switching.c. Include 'target.h'.
29429 (create_pre_exit): Use function_value_regno_p hook.
29430 * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
29431 * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
29432 TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
29433
29434 * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
29435 * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
29436 (ix86_function_value_regno_p): Declare as static, change argument
29437 type to const unsigned int.
29438 * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
29439
29440 2010-05-01 Richard Guenther <rguenther@suse.de>
29441
29442 PR tree-optimization/43949
29443 * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
29444 types.
29445 (extract_range_from_binary_expr): Handle *_MOD_EXPR.
29446
29447 2010-05-01 Anatoly Sokolov <aesok@post.ru>
29448
29449 * rtl.h (CONST_DOUBLE_P): Define.
29450 (rtx_to_double_int): Declare.
29451 * emit-rtl.c (rtx_to_double_int): New function.
29452 * dwarf2out.c (insert_double): New function.
29453 (loc_descriptor, add_const_value_attribute): Clean up, use
29454 rtx_to_double_int and insert_double functions.
29455
29456 2010-05-01 Jonathan Wakely <jwakely.gcc@gmail.com>
29457
29458 * doc/extend.texi (Inline): Add missing return keyword to examples.
29459 (Function Attributes, Variable Attributes, Pragmas): Hyphenate
29460 "command-line".
29461
29462 2010-04-30 Eric Botcazou <ebotcazou@adacore.com>
29463
29464 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
29465 the variable part of the offset as well. Use highest_pow2_factor for
29466 all alignment checks.
29467
29468 2010-04-30 Richard Guenther <rguenther@suse.de>
29469
29470 PR tree-optimization/43879
29471 * tree-ssa-structalias.c (type_could_have_pointers): Functions
29472 can have pointers.
29473
29474 2010-04-30 Jan Hubicka <jh@suse.cz>
29475
29476 * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
29477 varpool.
29478 (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
29479
29480 2010-04-30 Jan Hubicka <jh@suse.cz>
29481
29482 * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
29483 New.
29484 * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
29485 * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
29486 (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
29487 cgraph_node_set_needs_ltrans_p): Remove.
29488
29489 2010-04-30 Steven Bosscher <steven@gcc.gnu.org>
29490
29491 * sdbout.c: Include vec.h, do not include varray.h.
29492 (deferred_global_decls, sdbout_global_decl,
29493 sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
29494 * toplev.c: Do not include varray.h.
29495 (dump_memory_report): Do not dump VARRAY statistics.
29496 * gengtype.c (open_base_file): Ignore varray.h.
29497 * Makefile.in: Update for abovementioned changes.
29498 Remove all traces of varray.c and varray.h.
29499 * varray.c: Remove file.
29500 * varray.h: Remove file.
29501
29502 2010-04-30 Jan Hubicka <jh@suse.cz>
29503
29504 * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
29505 references.
29506
29507 2010-04-30 Jan Hubicka <jh@suse.cz>
29508
29509 * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
29510 needed.
29511
29512 2010-04-30 Richard Guenther <rguenther@suse.de>
29513
29514 * tree-ssa-structalias.c (get_constraint_for_1): Generate
29515 constraints for CONSTRUCTOR.
29516
29517 2010-04-30 Richard Guenther <rguenther@suse.de>
29518
29519 PR lto/43946
29520 * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
29521 first after all lowering passes.
29522
29523 2010-04-30 Steven Bosscher <steven@gcc.gnu.org>
29524
29525 * toplev.c: Include varray.h for statistics dumping.
29526 * tree.h: Do not declare varray_head_tag.
29527 * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
29528 regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
29529 c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
29530 gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
29531 lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
29532 tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
29533 c-common.c, c-common.h, reg-stack.c, basic-block.h,
29534 tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
29535 include varray.h.
29536 * Makefile.in: Update for abovementioned changes.
29537
29538 2010-04-30 Jakub Jelinek <jakub@redhat.com>
29539
29540 PR debug/43942
29541 * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
29542
29543 2010-04-30 Hariharan Sandanagobalane <hariharan@picochip.com>
29544
29545 * config/picochip/picochip.c (picochip_legitimize_address): Define.
29546 Use this function to do machine-specific conversion.
29547 (picochip_legitimize_reload_address): Likewise.
29548 (picochip_legitimate_address_p): Check valid base register only if
29549 strict.
29550 (picochip_check_conditional_copy): Check for modw only if opnd is
29551 register.
29552 * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
29553 to call the function in c.
29554 * config/picochip/picochip-protos.h
29555 (picochip_legitimize_reload_address): Define.
29556 * config/picochip/picochip.md (supported_compare1): Define.
29557
29558 2010-04-30 Jan Hubicka <jh@suse.cz>
29559
29560 * cgraph.h (cgraph_local_info): Remove for_functions_valid.
29561 (cgraph_global_info): Remove inlined.
29562 (LTO_cgraph_tag_names): Remove.
29563 (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
29564 * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
29565 simplify cgraph tags and document.
29566 (lto_output_node): Use only LTO_cgraph_unavail_node and
29567 LTO_cgraph_analyzed_node; Do not save analzed, reachable,
29568 for_functions_valid, global info, process and output flags.
29569 (input_overwrite_node): Initialize estimated stack size and
29570 estimated growth. Do not read flags we no longer store.
29571 (input_node): Likewise do not read info no longer stored.
29572 * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
29573 flag.
29574
29575 2010-04-30 Richard Guenther <rguenther@suse.de>
29576
29577 PR tree-optimization/43879
29578 * tree-ssa-structalias.c (get_constraint_for_1): Properly
29579 handle non-zero initializers.
29580
29581 2010-04-30 Richard Guenther <rguenther@suse.de>
29582
29583 * builtins.c (fold_builtin_1): Delete free (0).
29584
29585 2010-04-29 Jan Hubicka <jh@suse.cz>
29586
29587 * gengtype.c (open_base_files): Add lto-streamer.h
29588 * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
29589 (pass_ipa_cp): GGC collect.
29590 * toplev. (compile_file): Do not output symbols.
29591 * ipa-inline.c (pass_ipa_inline): Add ggc collect.
29592 * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
29593 TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
29594 * lto-section-in.c: Include ggc.h
29595 (lto_new_in_decl_state): Alloc in GGC.
29596 (lto_delete_in_decl_state): Likewise.
29597 * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
29598 Collect.
29599
29600 2010-04-29 Bernd Schmidt <bernds@codesourcery.com>
29601
29602 PR target/42895
29603 * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
29604 ORDER_REGS_FOR_LOCAL_ALLOC. All instances of this macro changed.
29605 (HONOR_REG_ALLOC_ORDER): Describe new macro.
29606 * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
29607 * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
29608 account only if HONOR_REG_ALLOC_ORDER is not defined.
29609 * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
29610 * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
29611
29612 2010-04-29 Jon Grant <04@jguk.org>
29613
29614 * collect2.c (vflag): Change type from int to bool.
29615 (debug): Likewise.
29616 (helpflag): New global bool.
29617 (main): Set vflag and debug with boolean, not integer truth values.
29618 Accept new "--help" option and output usage text if found.
29619 * collect2.h (vflag): Update prototype.
29620 (debug): Likewise.
29621
29622 2010-04-29 H.J. Lu <hongjiu.lu@intel.com>
29623
29624 PR bootstrap/43936
29625 * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
29626
29627 2010-04-29 Richard Guenther <rguenther@suse.de>
29628
29629 PR bootstrap/43935
29630 * plugin.h (invoke_plugin_callbacks): Annotate arguments
29631 with ATTRIBUTE_UNUSED.
29632
29633 2010-04-29 H.J. Lu <hongjiu.lu@intel.com>
29634
29635 PR target/43921
29636 * config/i386/i386.c (get_some_local_dynamic_name): Replace
29637 INSN_P with NONDEBUG_INSN_P.
29638 (distance_non_agu_define): Likewise.
29639 (distance_agu_use): Likewise.
29640
29641 2010-04-29 Bernd Schmidt <bernds@codesourcery.com>
29642
29643 From Dominique d'Humieres <dominiq@lps.ens.fr>
29644 PR bootstrap/43858
29645 * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
29646 test_set.
29647
29648 2010-04-29 Brian Hackett <bhackett1024@gmail.com>
29649
29650 * plugin.h (invoke_plugin_callbacks): New inline function.
29651 * plugin.c (flag_plugin_added): New global flag.
29652 (add_new_plugin): Initialize above flag.
29653 (invoke_plugin_callbacks): Rename to ...
29654 (invoke_plugin_callbacks_full): ... this.
29655
29656 2010-04-28 Jan Hubicka <jh@suse.cz>
29657
29658 * lto-symtab.c (lto_symtab_entry_def) Add vnode.
29659 (lto_varpool_replace_node): New.
29660 (lto_symtab_resolve_symbols): Resolve varpool nodes.
29661 (lto_symtab_merge_decls_1): Prefer decls with varpool node.
29662 (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
29663 * cgraph.h (varpool_node_ptr): New type.
29664 (varpool_node_ptr): New vector.
29665 (varpool_node_set_def): New structure.
29666 (varpool_node_set): New type.
29667 (varpool_node_set): New vector.
29668 (varpool_node_set_element_def): New structure.
29669 (varpool_node_set_element, const_varpool_node_set_element): New types.
29670 (varpool_node_set_iterator): New type.
29671 (varpool_node): Add prev pointers, add used_from_other_partition,
29672 in_other_partition.
29673 (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
29674 varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
29675 varpool_get_node, varpool_remove_node): Declare.
29676 (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
29677 varpool_node_set_size): New inlines.
29678 * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
29679 * tree-pass.h (varpool_node_set_def): Forward declare.
29680 (ipa_opt_pass_d): Summary writting takes vnode sets too.
29681 (ipa_write_optimization_summaries): Update prototype.
29682 * ipa-cp.c (ipcp_write_summary): Update.
29683 * ipa-reference.c (ipa_reference_write_summary): Update.
29684 * lto-cgraph.c (lto_output_varpool_node): New static function.
29685 (output_varpool): New function.
29686 (input_varpool_node): New static function.
29687 (input_varpool_1): New function.
29688 (input_cgraph): Input varpool.
29689 * ipa-pure-const.c (pure_const_write_summary): Update.
29690 * lto-streamer-out.c (lto_output): Update, output varpool too.
29691 (write_global_stream): Kill WPA hack.
29692 (produce_asm_for_decls): Update.
29693 (output_alias_pair_p): Handle variables.
29694 (output_unreferenced_globals): Output only needed partition of varpool.
29695 * ipa-inline.c (inline_write_summary): Update.
29696 * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
29697 cgraph.
29698 * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
29699 * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
29700 varpool_node_set_new, varpool_node_set_add,
29701 varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
29702 debug_varpool_node_set): New functions.
29703 * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
29704 (execute_one_pass): Process new decls too.
29705 (ipa_write_summaries_2): Pass around vsets.
29706 (ipa_write_summaries_1): Likewise.
29707 (ipa_write_summaries): Build vset; be more selective about cgraph nodes
29708 to add.
29709 (ipa_write_optimization_summaries_1): Pass around vsets.
29710 (ipa_write_optimization_summaries): Likewise.
29711 * varpool.c (varpool_get_node): New.
29712 (varpool_node): Update doubly linked lists.
29713 (varpool_remove_node): New.
29714 (dump_varpool_node): More dumping.
29715 (varpool_enqueue_needed_node): Update doubly linked lists.
29716 (decide_is_variable_needed): Kill ltrans hack.
29717 (varpool_finalize_decl): Kill lto hack.
29718 (varpool_assemble_decl): Skip decls in other partitions.
29719 (varpool_assemble_pending_decls): Update doubly linkes lists.
29720 (varpool_empty_needed_queue): Likewise.
29721 (varpool_extra_name_alias): Likewise.
29722 * lto-streamer.c (lto_get_section_name): Add vars section.
29723 * lto-streamer.h (lto_section_type): Update.
29724 (output_varpool, input_varpool): Declare.
29725
29726 2010-04-28 Mike Stump <mikestump@comcast.net>
29727
29728 * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
29729
29730 2010-04-28 Eric Botcazou <ebotcazou@adacore.com>
29731
29732 * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
29733 record or union type with RECORD_OR_UNION_TYPE_P predicate.
29734 (lto_input_ts_type_tree_pointers): Likewise.
29735 * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
29736 (lto_output_ts_type_tree_pointers): Likewise.
29737
29738 2010-04-28 Eric Botcazou <ebotcazou@adacore.com>
29739
29740 Uniquization of constants at the Tree level
29741 * tree.h (DECL_IN_CONSTANT_POOL): New macro.
29742 (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
29743 bit to the end.
29744 (tree_output_constant_def): Declare.
29745 * gimplify.c (gimplify_init_constructor): When using block copy, first
29746 uniquize the constant constructor on the RHS.
29747 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
29748 DECL_IN_CONSTANT_POOL flag.
29749 * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
29750 * varasm.c (make_decl_rtl): Deal with variables belonging to the global
29751 constant pool.
29752 (assemble_variable): Deal with symbols belonging to the tree constant
29753 pool.
29754 (get_constant_section): Add ALIGN parameter and simplify.
29755 (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
29756 (assemble_constant_contents): Use the expression of the VAR_DECL.
29757 (output_constant_def_contents): Use the alignment of the VAR_DECL.
29758 (tree_output_constant_def): New global function.
29759 (mark_constant): Use the expression of the VAR_DECL.
29760 (place_block_symbol): Use the alignment of the VAR_DECL and the size of
29761 its expression.
29762 (output_object_block): Likewise and assemble the expression.
29763
29764 2010-04-28 Eric Botcazou <ebotcazou@adacore.com>
29765
29766 * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
29767 hash_tree, eq_tree): New tree hash table.
29768 (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
29769 [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
29770 lto_orig_address_remove): Reimplement.
29771
29772 2010-04-28 Xinliang David Li <davidxl@google.com>
29773
29774 PR c/42643
29775 * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
29776 (compute_uninit_opnds_pos): New function.
29777 (is_non_loop_exit_postdominating): New function.
29778 (compute_control_dep_chain): New function.
29779 (find_pdom): New function.
29780 (convert_control_dep_chain_into_preds): New function.
29781 (find_predicates): New function.
29782 (find_control_equiv_block): New function.
29783 (collect_phi_def_edges): New function.
29784 (find_def_preds): New function.
29785 (find_dom): New function.
29786 (dump_predicates): New function.
29787 (get_cmp_code): New function.
29788 (is_value_included_in): New function.
29789 (find_matching_predicate_in_rest_chains): New function.
29790 (use_pred_not_overlap_with_undef_path_pred): New function.
29791 (is_use_properly_guarded): New function.
29792 (normalize_cond_1): New function.
29793 (is_and_or_or): New function.
29794 (normalize_cond): New function.
29795 (is_gcond_subset_of): New function.
29796 (is_subset_of_any): New function.
29797 (is_or_set_subset_of): New function.
29798 (is_and_set_subset_of): New function.
29799 (is_norm_cond_subset_of): New function.
29800 (is_pred_expr_subset_of): New function.
29801 (is_pred_chain_subset_of): New function.
29802 (is_included_in): New function.
29803 (is_superset_of): New function.
29804 (find_uninit_use): New function.
29805 (warn_uninitialized_phi): New function.
29806 (compute_possibly_undefined_names): New function.
29807 (ssa_undefined_value_p): New function.
29808 (execute_late_warn_uninitialized): New function.
29809 * tree-ssa.c (ssa_undefined_value_p): Removed.
29810 (warn_uninit): Changed to extern.
29811 (warn_uninitialized_phi): Removed.
29812 (warn_uninitialized_vars): Changed to extern.
29813 (execute_late_warn_uninitialized): Removed
29814 * tree-flow.h: Add new prototypes.
29815 * timevar.def: Add new time variable.
29816 * Makefile.in: Add new build file.
29817
29818 2010-04-28 Uros Bizjak <ubizjak@gmail.com>
29819
29820 * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
29821 type if available.
29822
29823 2010-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29824
29825 PR target/22224
29826 * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
29827
29828 2010-04-28 Martin Jambor <mjambor@suse.cz>
29829
29830 * cgraph.h (struct cgraph_node): New field indirect_calls.
29831 (struct cgraph_indirect_call_info): New type.
29832 (struct cgraph_edge): Removed field indirect_call. New fields
29833 indirect_info, indirect_inlining_edge and indirect_unknown_callee.
29834 (cgraph_create_indirect_edge): Declare.
29835 (cgraph_make_edge_direct): Likewise.
29836 (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
29837 * ipa-prop.h (struct ipa_param_call_note): Removed.
29838 (struct ipa_node_params): Removed field param_calls.
29839 (ipa_create_all_structures_for_iinln): Declare.
29840 * cgraph.c: Described indirect edges and uids in initial comment.
29841 (cgraph_add_edge_to_call_site_hash): New function.
29842 (cgraph_edge): Search also among the indirect edges, use
29843 cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
29844 (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
29845 one, use cgraph_add_edge_to_call_site_hash to add edges to the call
29846 site hash.
29847 (initialize_inline_failed): Assign a reason to indirect edges.
29848 (cgraph_create_edge_1): New function.
29849 (cgraph_create_edge): Moved some functionality to
29850 cgraph_create_edge_1.
29851 (cgraph_create_indirect_edge): New function.
29852 (cgraph_edge_remove_callee): Add an assert checking for
29853 non-indirectness.
29854 (cgraph_edge_remove_caller): Special-case indirect edges.
29855 (cgraph_remove_edge): Likewise.
29856 (cgraph_set_edge_callee): New function.
29857 (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
29858 (cgraph_make_edge_direct): New function.
29859 (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
29860 the declaration of the call statement matches.
29861 (cgraph_node_remove_callees): Special-case indirect edges.
29862 (cgraph_clone_edge): Likewise.
29863 (cgraph_clone_node): Clone also the indirect edges.
29864 (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
29865 indirect_call, dump count of indirect_calls edges.
29866 * ipa-prop.c (iinlining_processed_edges): New variable.
29867 (ipa_note_param_call): Create indirect edges instead of
29868 creating notes. New parameter node.
29869 (ipa_analyze_call_uses): New parameter node, pass it on to
29870 ipa_note_param_call.
29871 (ipa_analyze_stmt_uses): Likewise.
29872 (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
29873 (print_edge_addition_message): Work on edges rather than on notes.
29874 (update_call_notes_after_inlining): Likewise, renamed to
29875 update_indirect_edges_after_inlining.
29876 (ipa_create_all_structures_for_iinln): New function.
29877 (ipa_free_node_params_substructures): Do not free notes.
29878 (ipa_edge_duplication_hook): Propagate bits within
29879 iinlining_processed_edges bitmap.
29880 (ipa_node_duplication_hook): Do not duplicate notes.
29881 (free_all_ipa_structures_after_ipa_cp): Renamed to
29882 ipa_free_all_structures_after_ipa_cp.
29883 (free_all_ipa_structures_after_iinln): Renamed to
29884 ipa_free_all_structures_after_iinln.
29885 (ipa_write_param_call_note): Removed.
29886 (ipa_read_param_call_note): Removed.
29887 (ipa_write_indirect_edge_info): New function.
29888 (ipa_read_indirect_edge_info): Likewise.
29889 (ipa_write_node_info): Do not stream notes, do stream information
29890 in indirect edges.
29891 (ipa_read_node_info): Likewise.
29892 (lto_ipa_fixup_call_notes): Removed.
29893 * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
29894 * ipa-inline.c (pass_ipa_inline): Likewise.
29895 * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
29896 * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
29897 * tree-inline.c (copy_bb): Removed an unnecessary double check for
29898 is_gimple_call.
29899 * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
29900 edges.
29901 * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
29902 (output_cgraph): Stream also indirect edges.
29903 (lto_output_edge): Added capability to stream indirect edges.
29904 (input_edge): Likewise.
29905 (input_cgraph_1): Likewise.
29906 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
29907 of indirect edges.
29908
29909 2010-04-28 Richard Guenther <rguenther@suse.de>
29910
29911 PR tree-optimization/43879
29912 PR tree-optimization/43909
29913 * tree-ssa-structalias.c (struct variable_info): Add
29914 only_restrict_pointers flag.
29915 (new_var_info): Initialize it. Increment stats.total_vars here.
29916 (create_function_info_for): Do not increment stats.total_vars here.
29917 (get_function_part_constraint): Fix build with C++.
29918 (insert_into_field_list): Remove.
29919 (push_fields_onto_fieldstack): Properly merge fields.
29920 (create_variable_info_for): Split and simplify.
29921 (create_variable_info_for_1): New piece.
29922 (intra_create_variable_infos): Properly make restrict constraints
29923 from parameters.
29924
29925 2010-04-28 Richard Guenther <rguenther@suse.de>
29926
29927 PR c++/43880
29928 * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
29929
29930 2010-04-27 Manuel López-Ibáñez <manu@gcc.gnu.org>
29931 Jan Hubicka <hubicka@ucw.cz>
29932
29933 * doc/invoke.texi (-Wsuggest-attribute=const,
29934 -Wsuggest-attribute=pure): Document.
29935 * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
29936 (function_always_visible_to_compiler_p,
29937 suggest_attribute, warn_function_pure, warn_function_const):
29938 New functions.
29939 (check_call): Improve debug info.
29940 (analyze_function): Do not check availability.
29941 (add_new_function): Check availability.
29942 (propagate): Output warnings.
29943 (skip_function_for_local_pure_const): New function.
29944 (local_pure_const): Use it; output warnings.
29945 * common.opt (Wsuggest-attribute=const,
29946 Wsuggest-attribute=pure): New.
29947
29948 2010-04-27 Jakub Jelinek <jakub@redhat.com>
29949
29950 * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
29951 force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
29952 or DW_CFA_def_cfa_offset{,_sf}.
29953
29954 2010-04-27 Eric Botcazou <ebotcazou@adacore.com>
29955
29956 * tree.h: Fix truncated long macros.
29957
29958 2010-04-27 Kai Tietz <kai.tietz@onevision.com>
29959
29960 * collect2.c (TARGET_64BIT): Redefine to target's default.
29961 * tlink.c: Likewise.
29962 * config/i386/cygming.h (USER_LABEL_PREFIX): Define
29963 dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
29964 * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
29965 for underscoring __USER_LABEL_PREFIX__.
29966 * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
29967 (SUB_LINK_ENTRY32): New.
29968 (SUB_LINK_ENTRY64): New.
29969 (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
29970 * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
29971 (SUB_LINK_ENTRY64): New.
29972 (SUB_LINK_ENTRY): New.
29973 (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
29974 (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
29975 x64 target is choosen.
29976 * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
29977 * configure: Regenerated.
29978 * configure.ac (leading-mingw64-underscores): Option added.
29979
29980 2010-04-27 Jan Hubicka <jh@suse.cz>
29981
29982 * doc/invoke.texi (-fipa-profile): Document.
29983 * opts.c (decode_options): Enable ipa-profile at -O1.
29984 * timevar.def (TV_IPA_PROFILE): Define.
29985 * common.opt (fipa-profile): Add.
29986 * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
29987 flag for clones.
29988 (cgraph_propagate_frequency): Handle only local ones.
29989 * tree-pass.h (pass_ipa_profile): Declare.
29990 * ipa-profile.c (gate_profile): Use flag_ipa_profile.
29991 (pass_ipa_profile): Use TV_IPA_PROFILE.
29992 * ipa.c (ipa_profile): New function.
29993 (gate_ipa_profile): Likewise.
29994 (pass_ipa_profile): New global variable.
29995 * passes.c (pass_ipa_profile): New.
29996
29997 2010-04-27 Nathan Froyd <froydnj@codesourcery.com>
29998
29999 * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
30000
30001 2010-04-27 Martin Jambor <mjambor@suse.cz>
30002
30003 PR middle-end/43812
30004 * ipa.c (dissolve_same_comdat_group_list): New function.
30005 (function_and_variable_visibility): Call
30006 dissolve_same_comdat_group_list when comdat group contains external or
30007 newly local nodes.
30008 * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
30009 lists are circular and that they contain only DECL_ONE_ONLY nodes.
30010
30011 2010-04-27 Eric Botcazou <ebotcazou@adacore.com>
30012
30013 * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
30014 (const_hash_1) <VECTOR_CST>: New case.
30015 (compare_constant) <VECTOR_CST>: Likewise.
30016 <ADDR_EXPR>: Deal with LABEL_REFs.
30017 (copy_constant) <VECTOR_CST>: New case.
30018
30019 2010-04-27 Jan Hubicka <jh@suse.cz>
30020
30021 * cgraph.c (cgraph_propagate_frequency): New function.
30022 * cgraph.h (cgraph_propagate_frequency): Declare.
30023 * ipa-inline.c (cgraph_clone_inlined_nodes): Call
30024 cgraph_propagate_frequency.
30025
30026 2010-04-27 Jakub Jelinek <jakub@redhat.com>
30027
30028 * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
30029
30030 2010-04-27 Bernd Schmidt <bernds@codesourcery.com>
30031
30032 PR target/40657
30033 * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
30034 (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
30035 here to determine which regs to push and how much stack to reserve.
30036
30037 2010-04-27 Jie Zhang <jie@codesourcery.com>
30038
30039 * doc/gimple.texi (gimple_statement_with_ops): Remove
30040 addresses_taken field.
30041 (gimple_statement_with_memory_ops): Likewise.
30042
30043 2010-04-27 Jan Hubicka <jh@suse.cz>
30044
30045 * tree-inline.c (eni_inlining_weights): Remove.
30046 (estimate_num_insns): Special case more builtins.
30047
30048 2010-04-27 Shujing Zhao <pearly.zhao@oracle.com>
30049
30050 PR c/32207
30051 * c-typeck.c (build_binary_op): Move forward check for comparison
30052 pointer with null pointer constant and adjust the diagnostic message.
30053
30054 2010-04-27 Dave Korn <dave.korn.cygwin@gmail.com>
30055
30056 PR lto/42776
30057 * configure.ac (gcc_cv_as_section_has_align): Set if installed
30058 binutils supports extended .section directive needed by LTO, or
30059 warn if older binutils found.
30060 (LTO_BINARY_READER): New AC_SUBST'd variable.
30061 (LTO_USE_LIBELF): Likewise.
30062 * config.gcc (lto_binary_reader): New target-specific configure
30063 variable.
30064 * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
30065 (LTO_USE_LIBELF): Likewise.
30066 * configure: Regenerate.
30067
30068 * collect2.c (is_elf): Rename from this ...
30069 (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
30070 object files in addition to ELF-formatted ones.
30071 (scan_prog_file): Caller updated. Also allow for LTO info marker
30072 symbol to be prefixed or not by an extra underscore.
30073
30074 * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
30075 * config/i386/winnt.c: Also #include lto-streamer.h
30076 (i386_pe_asm_named_section): Specify 1-byte section alignment for
30077 LTO named sections.
30078 (i386_pe_asm_output_aligned_decl_common): Add comment.
30079 (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
30080
30081 2010-04-27 Hans-Peter Nilsson <hp@bitrange.com>
30082
30083 PR target/43889
30084 * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
30085 Add missing earlyclobber for second alternative.
30086
30087 2010-04-26 Bernd Schmidt <bernds@codesourcery.com>
30088
30089 * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
30090 bits for artificial defs at the top of the block.
30091 * fwprop.c (single_def_use_enter_block): Don't call it.
30092
30093 2010-04-26 Jack Howarth <howarth@bromo.med.uc.edu>
30094
30095 PR 43715
30096 * configure.ac: Use "$gcc_cv_nm -g" on darwin
30097 instead of "$gcc_cv_objdump -T".
30098 Use "-undefined dynamic_lookup" on darwin.
30099 * configure: Regenerate.
30100
30101 2010-04-26 Jakub Jelinek <jakub@redhat.com>
30102
30103 PR c/43893
30104 * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
30105
30106 2010-04-26 Nathan Froyd <froydnj@codesourcery.com>
30107
30108 * c-parser.c (struct c_token): Move location field up.
30109 * c-tree.h (struct c_typespec): Move expr_const_operands field up.
30110 (struct c_declspecs): Convert typespec_word, storage_class, and
30111 default_int_p into bitfields.
30112 (struct c_declarator): Move loc field up.
30113
30114 2010-04-26 Nathan Froyd <froydnj@codesourcery.com>
30115
30116 * cfgloop.h (struct loop): Move can_be_parallel field up.
30117 * ipa-prop.h (struct ip_node_params): Move bitfields up.
30118 * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
30119 down.
30120 (struct iv_cand): Convert pos field into a bitfield.
30121 * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
30122 field up.
30123 (struct _stmt_vec_info): Shuffle fields for better packing.
30124
30125 2010-04-26 Eric Botcazou <ebotcazou@adacore.com>
30126
30127 * varasm.c (IN_NAMED_SECTION): Remove guard.
30128 * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
30129 (IN_NAMED_SECTION_P): ...this.
30130 (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
30131 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
30132
30133 2010-04-26 Eric Botcazou <ebotcazou@adacore.com>
30134
30135 * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
30136 Use VOID_TYPE_P for all void type tests. Adjust TYPE variable instead
30137 of shadowing it. Fix comments.
30138
30139 2010-04-26 Jan Hubicka <jh@suse.cz>
30140
30141 * cgraph.c (cgraph_create_node): Set node frequency to normal.
30142 (cgraph_clone_node): Copy function frequency.
30143 * cgraph.h (node_frequency): New enum
30144 (struct cgraph_node): Add.
30145 * final.c (rest_of_clean_state): Update.
30146 * lto-cgraph.c (lto_output_node): Output node frequency.
30147 (input_overwrite_node): Input node frequency.
30148 * tre-ssa-loop-ivopts (computation_cost): Update.
30149 * lto-streamer-out.c (output_function): Do not output function
30150 frequency.
30151 * predict.c (maybe_hot_frequency_p): Update and handle functions
30152 executed once.
30153 (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
30154 attribute lookup.
30155 (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
30156 (compute_function_frequency): Set noreturn functions to be executed
30157 once.
30158 (choose_function_section): Update.
30159 * lto-streamer-in.c (input_function): Do not input function frequency.
30160 * function.c (allocate_struct_function): Do not initialize function
30161 frequency.
30162 * function.h (function_frequency): Remove.
30163 (struct function): Remove function frequency.
30164 * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
30165 (try_update): Update.
30166 * tree-inline.c (initialize_cfun): Do not update function frequency.
30167 * passes.c (pass_init_dump_file): Update.
30168 * i386.c (ix86_compute_frame_layout): Update.
30169 (ix86_pad_returns): Update.
30170
30171 2010-04-26 Jie Zhang <jie@codesourcery.com>
30172
30173 PR tree-optimization/43833
30174 * tree-vrp.c (range_int_cst_p): New.
30175 (range_int_cst_singleton_p): New.
30176 (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
30177 when both operands are constants. Use range_int_cst_p in
30178 BIT_IOR_EXPR case.
30179
30180 2010-04-26 Jan Hubicka <jh@suse.cz>
30181
30182 * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
30183
30184 2010-04-26 Richard Guenther <rguenther@suse.de>
30185
30186 PR lto/43080
30187 * gimple.c (gimple_decl_printable_name): Deal gracefully
30188 with a NULL DECL_NAME.
30189
30190 2010-04-26 Richard Guenther <rguenther@suse.de>
30191
30192 PR lto/42425
30193 * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
30194 if emitting debug information and it is either a function
30195 or a namespace decl.
30196
30197 2010-04-26 Ira Rosen <irar@il.ibm.com>
30198
30199 * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
30200 determine if the statement is vectorizable, and a macro to access it.
30201 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
30202 Skip statements that can't be vectorized. If the analysis fails,
30203 mark the statement as unvectorizable if vectorizing basic block.
30204 (vect_compute_data_refs_alignment): Likewise.
30205 (vect_verify_datarefs_alignment): Skip statements marked as
30206 unvectorizable. Add print.
30207 (vect_analyze_group_access): Skip statements that can't be
30208 vectorized. If the analysis fails, mark the statement as
30209 unvectorizable if vectorizing basic block.
30210 (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
30211 * tree-vect-stmts.c (vectorizable_store): Fix the number of
30212 generated stmts for SLP.
30213 (new_stmt_vec_info): Initialize the new field.
30214 * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
30215 statements marked as unvectorizable.
30216
30217 2010-04-25 Joseph Myers <joseph@codesourcery.com>
30218
30219 * c-common.c (flag_isoc1x): New.
30220 (flag_isoc99): Update comment.
30221 * c-common.h (flag_isoc1x): New.
30222 (flag_isoc99): Update comment.
30223 * c-cppbuiltin.c (builtin_define_float_constants): Also define
30224 __<type>_DECIMAL_DIG__.
30225 * c-opts.c (set_std_c1x): New.
30226 (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
30227 (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
30228 * c.opt (-std=c1x, -std=gnu1x): New options.
30229 * doc/cpp.texi: Mention -std=c1x.
30230 * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
30231 * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
30232 * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
30233 * doc/standards.texi: Mention C1X.
30234 * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
30235 LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
30236 LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
30237 Define for C1X.
30238
30239 2010-04-25 Uros Bizjak <ubizjak@gmail.com>
30240
30241 * config/i386/gmon-sol2.c (_mcleanup): Change format string
30242 placeholder from 0x%x to %#x.
30243 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
30244 * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
30245 * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
30246 * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
30247 * config/i386/i386.c (ix86_target_string): Ditto.
30248 (output_pic_addr_const): Ditto.
30249 (print_operand): Ditto.
30250
30251 2010-04-25 Paolo Bonzini <bonzini@gnu.org>
30252
30253 * combine.c (find_split_point): Add third argument. Use it
30254 to find nested multiply-accumulate instructions. Adjust calls.
30255 (try_combine): Adjust call to find_split_point.
30256
30257 2010-04-24 Gerald Pfeifer <gerald@pfeifer.com>
30258
30259 * doc/contrib.texi (Contributors): Add Dodji Seketeli.
30260
30261 2010-04-24 Bernd Schmidt <bernds@codesourcery.com>
30262
30263 PR tree-optimization/41442
30264 * fold-const.c (merge_truthop_with_opposite_arm): New function.
30265 (fold_binary_loc): Call it.
30266
30267 2010-04-23 Manuel López-Ibáñez <manu@gcc.gnu.org>
30268
30269 * toplev.c (general_init): Set default for fdiagnostics-show-option.
30270 * opts.c (common_handle_option): Allow disabling it.
30271 * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
30272
30273 2010-04-23 Eric Botcazou <ebotcazou@adacore.com>
30274
30275 * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
30276 between modes if both types are integral.
30277
30278 2010-04-23 Richard Guenther <rguenther@suse.de>
30279
30280 PR tree-optimization/43572
30281 * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
30282
30283 2010-04-23 Richard Guenther <rguenther@suse.de>
30284
30285 PR lto/43455
30286 * tree-inline.c (tree_can_inline_p): Also check compatibility
30287 of return types.
30288
30289 2010-04-23 Martin Jambor <mjambor@suse.cz>
30290
30291 PR tree-optimization/43846
30292 * tree-sra.c (struct access): New flag grp_assignment_read.
30293 (build_accesses_from_assign): Set grp_assignment_read.
30294 (sort_and_splice_var_accesses): Propagate grp_assignment_read.
30295 (enum mark_read_status): New type.
30296 (analyze_access_subtree): Propagate grp_assignment_read, create
30297 accesses also if both direct_read and root->grp_assignment_read.
30298
30299 2010-04-23 Martin Jambor <mjambor@suse.cz>
30300
30301 PR middle-end/43835
30302 * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
30303 function does not have type attributes.
30304
30305 2010-04-23 Richard Guenther <rguenther@suse.de>
30306
30307 PR lto/42653
30308 * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
30309 of FUNCTION_DECLs.
30310
30311 2010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
30312
30313 * sese.h (create_if_region_on_edge): Remove.
30314
30315 * sese.c (create_if_region_on_edge): Make static.
30316
30317 * tree-inline.c: Do not include ggc.h.
30318
30319 * expr.c: Do not include ggc.h.
30320
30321 * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
30322 dependencies.
30323
30324 2010-04-22 Kaz Kojima <kkojima@gcc.gnu.org>
30325
30326 PR target/43744
30327 * config/sh/sh.c (find_barrier): Don't emit a constant pool
30328 in the middle of insns for casesi_worker_2.
30329
30330 2010-04-22 David Edelsohn <edelsohn@gnu.org>
30331
30332 * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
30333
30334 2010-04-22 Ira Rosen <irar@il.ibm.com>
30335
30336 PR tree-optimization/43842
30337 * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
30338 loop unrolling in update of exit phis. Fix comment.
30339 * tree-vect-slp.c (vect_analyze_slp): Check that there are at
30340 least two reduction statements in the loop before starting SLP
30341 analysis.
30342
30343 2010-04-22 Nick Clifton <nickc@redhat.com>
30344
30345 * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
30346
30347 2010-04-22 Alexander Monakov <amonakov@ispras.ru>
30348
30349 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
30350 to simplify a + ~a.
30351
30352 2010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
30353
30354 * tree-parloops.c (loop_parallel_p): New argument
30355 parloop_obstack. Pass it down.
30356 (parallelize_loops): New variable parloop_obstack. Initialize it,
30357 pass it down, free it.
30358
30359 * tree-loop-linear.c (linear_transform_loops): Pass down
30360 lambda_obstack.
30361
30362 * tree-data-ref.h (lambda_compute_access_matrices): New argument
30363 of type struct obstack *.
30364
30365 * tree-data-ref.c (analyze_subscript_affine_affine): New variable
30366 scratch_obstack. Initialize it, pass down, free it.
30367
30368 * lambda.h (lambda_loop_new): Remove.
30369 (lambda_matrix_new, lambda_matrix_inverse)
30370 (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
30371 argument of type struct obstack *.
30372
30373 * lambda-trans.c (lambda_trans_matrix_new): New argument
30374 lambda_obstack. Pass it down, use obstack allocation for ret.
30375 (lambda_trans_matrix_inverse): New argument lambda_obstack. Pass
30376 it down.
30377
30378 * lambda-mat.c (lambda_matrix_get_column)
30379 (lambda_matrix_project_to_null): Remove.
30380 (lambda_matrix_new): New argument lambda_obstack. Use obstack
30381 allocation for mat.
30382 (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
30383 lambda_obstack.
30384
30385 * lambda-code.c (lambda_loop_new): New function.
30386 (lambda_lattice_new, compute_nest_using_fourier_motzkin)
30387 (lambda_compute_auxillary_space, lambda_compute_target_space)
30388 (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
30389 (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
30390 (build_access_matrix): New argument lambda_obstack. Use obstack
30391 allocation for am.
30392 (lambda_compute_step_signs, lambda_compute_access_matrices): New
30393 argument lambda_obstack. Pass it down.
30394
30395 2010-04-22 Bernd Schmidt <bernds@codesourcery.com>
30396
30397 * optabs.h (expand_widening_mult): Declare.
30398
30399 2010-04-22 Richard Guenther <rguenther@suse.de>
30400
30401 PR tree-optimization/43845
30402 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
30403 lookup the CALL_EXPR function and arguments.
30404
30405 2010-04-22 Nick Clifton <nickc@redhat.com>
30406
30407 * config/stormy16/stormy16.c
30408 (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
30409 * config/stormy16/stormy16.h: Tidy up formatting.
30410 (DONT_USE_BUILTIN_SETJMP): Remove definition.
30411 * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
30412 (ineqbranchsi): Delete pattern.
30413 * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
30414 * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
30415 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
30416 stormy16-lib2-ucmpsi2.c.
30417
30418 2010-04-22 Bernd Schmidt <bernds@codesourcery.com>
30419
30420 * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
30421 df_simulate_find_noclobber_defs as appropriate. Keep track of an
30422 extra set merge_set_noclobber, and use it to relax the final test
30423 slightly.
30424 * df.h (df_simulate_find_noclobber_defs): Declare.
30425 * df-problems.c (df_simulate_find_defs): Don't ignore partial or
30426 conditional defs.
30427 (df_simulate_find_noclobber_defs): New function.
30428
30429 2010-04-22 Uros Bizjak <ubizjak@gmail.com>
30430
30431 * config/i386/i386.md: Use {} around multi-line preparation statements.
30432
30433 2010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
30434
30435 * c-tree.h (push_init_level, pop_init_level, set_init_index)
30436 (process_init_element): New argument of type struct obstack *.
30437
30438 * c-typeck.c (push_init_level, pop_init_level, set_designator)
30439 (set_init_index, set_init_label, set_nonincremental_init)
30440 (set_nonincremental_init_from_string, find_init_member)
30441 (output_init_element, output_pending_init_elements)
30442 (process_init_element): New argument braced_init_obstack. Pass it
30443 down.
30444 (push_range_stack, add_pending_init): New argument
30445 braced_init_obstack. Use obstack allocation.
30446
30447 * c-parser.c (c_parser_initelt, c_parser_initval): New argument
30448 braced_init_obstack. Pass it down.
30449 (c_parser_braced_init): New variables ret, braced_init_obstack.
30450 Initialize obstack, pass it down and finally free it.
30451
30452 2010-04-22 Bernd Schmidt <bernds@codesourcery.com>
30453
30454 PR middle-end/29274
30455 * tree-pass.h (pass_optimize_widening_mul): Declare.
30456 * tree-ssa-math-opts.c (execute_optimize_widening_mul,
30457 gate_optimize_widening_mul): New static functions.
30458 (pass_optimize_widening_mul): New.
30459 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
30460 <case MULT_EXPR>: Remove support for widening multiplies.
30461 * tree.def (WIDEN_MULT_EXPR): Tweak comment.
30462 * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
30463 simplify_gen_unary rather than directly building extensions.
30464 * tree-cfg.c (verify_gimple_assign_binary): Add tests for
30465 WIDEN_MULT_EXPR.
30466 * expmed.c (expand_widening_mult): New function.
30467 * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
30468
30469 2010-04-21 Jan Hubicka <jh@suse.cz>
30470
30471 * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
30472 * lto-section-in.c (lto_section_name): Remove wpa_fixup.
30473 * lto-wpa-fixup.c: Remove.
30474 * Makefile.in (lto-wpa-fixup.o): Remove.
30475 * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
30476 (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
30477 * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
30478
30479 2010-04-21 Jan Hubicka <jh@suse.cz>
30480
30481 * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
30482 add write_optimization_summary, read_optimization_summary.
30483 (ipa_write_summaries_of_cgraph_node_set): Remove.
30484 (ipa_write_optimization_summaries): Declare.
30485 (ipa_read_optimization_summaries): Declare.
30486 * ipa-cp.c (pass_ipa_cp): Update.
30487 * ipa-reference.c (pass_ipa_reference): Update.
30488 * ipa-pure-const.c (pass_ipa_pure_const): Update.
30489 * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
30490 Update.
30491 * ipa-inline.c (pass_ipa_inline): Update.
30492 * ipa.c (pass_ipa_whole_program): Update.
30493 * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
30494 * passes.c (ipa_write_summaries_1): Do not test wpa.
30495 (ipa_write_optimization_summaries_1): New.
30496 (ipa_write_optimization_summaries): New.
30497 (ipa_read_summaries): Do not test ltrans.
30498 (ipa_read_optimization_summaries_1): New.
30499 (ipa_read_optimization_summaries): New.
30500
30501 2010-04-21 Jan Hubicka <jh@suse.cz>
30502
30503 * lto-cgraph.c (lto_output_node): Do not output comdat groups
30504 for boundary nodes.
30505 (output_cgraph): Do not arrange comdat groups for boundary nodes.
30506
30507 2010-04-21 Jakub Jelinek <jakub@redhat.com>
30508
30509 PR debug/40040
30510 * dwarf2out.c (add_name_and_src_coords_attributes): Add
30511 DW_AT_{,MIPS_}linkage_name even for Fortran decls.
30512
30513 2010-04-21 Jan Hubicka <jh@suse.cz>
30514
30515 * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
30516
30517 2010-04-21 Jan Hubicka <jh@suse.cz>
30518
30519 * varpool.c (decide_is_variable_needed): Variable is always needed
30520 during ltrans.
30521
30522 2010-04-21 Jan Hubicka <jh@suse.cz>
30523
30524 * opts.c (decode_options): Enable pure-const pass for whopr.
30525
30526 2010-04-21 Jan Hubicka <jh@suse.cz>
30527
30528 * cgraph.c (dump_cgraph_node): Dump also assembler name.
30529 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
30530 at WPA dumping.
30531 (cgraph_decide_inlining): Do not expect callee to be removed in all
30532 cases.
30533
30534 2010-04-21 Eric B. Weddington <eric.weddington@atmel.com>
30535
30536 * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
30537
30538 2010-04-21 Uros Bizjak <ubizjak@gmail.com>
30539
30540 * config/i386/i386.md (x86_shrd): Add athlon_decode and
30541 amdfam10_decode attributes.
30542
30543 2010-04-21 Jakub Jelinek <jakub@redhat.com>
30544
30545 PR middle-end/43570
30546 * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
30547 OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
30548 (lower_copyprivate_clauses): Use private var in outer
30549 context instead of original var. Make sure the types
30550 are correct for VLAs.
30551
30552 2010-04-21 Richard Guenther <rguenther@suse.de>
30553
30554 * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
30555 to non-pointer objects.
30556
30557 2010-04-21 Jakub Jelinek <jakub@redhat.com>
30558
30559 * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument. Drop
30560 last chain entry if it starts with the still current label.
30561 (add_location_or_const_value_attribute): Check that
30562 loc_list->first->next is NULL instead of comparing ->first with ->last.
30563 (dwarf2out_var_location): Pass last_label resp. last_postcall_label
30564 to add_var_loc_to_decl.
30565
30566 * dwarf2out.c (output_call_frame_info): For dw_cie_version
30567 >= 4 add also address size and segment size fields into CIE header.
30568
30569 * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
30570 long as address size is the same as sizeof (void *) and
30571 segment size is 0.
30572 * unwind-dw2-fde.c (get_cie_encoding): Likewise. If
30573 address size or segment size is unexpected, return DW_EH_PE_omit.
30574 (classify_object_over_fdes): If get_cie_encoding returned
30575 DW_EH_PE_omit, return -1.
30576 (init_object): If classify_object_over_fdes returned -1,
30577 pretend there were no FDEs at all.
30578
30579 2010-04-21 Uros Bizjak <ubizjak@gmail.com>
30580
30581 * config/i386/i386.md (bswap<mode>2): Macroize expander from
30582 bswap{si,di}2 using SWI48 mode iterator.
30583 (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
30584 SWI48 mode iterator. Set type attribute of bswap insn to bitmanip,
30585 set modrm attribute of bswap insn to 0 and remove length attribute.
30586 (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
30587 iterator. Set type attribute to bitmanip, set modrm attribute to 0,
30588 set mode attribute to <MODE> and remove length attribute.
30589
30590 2010-04-20 James E. Wilson <wilson@codesourcery.com>
30591
30592 PR rtl-optimization/43520
30593 * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
30594 zero available registers.
30595
30596 2010-04-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
30597
30598 * builtins.c (fold_builtin_cproj): Fold more cases.
30599
30600 2010-04-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
30601
30602 * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
30603 (fold_builtin_1): Fold builtin cproj.
30604 * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
30605 Use ATTR_CONST_NOTHROW_LIST.
30606
30607 2010-04-20 Uros Bizjak <ubizjak@gmail.com>
30608
30609 * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
30610 and ffsdi2 using SWI48 mode iterator. Expand SImode insn through
30611 ffsi2_no_cmove for !TARGET_CMOVE.
30612 (ffssi2_no_cmove): Rename from *ffs_no_cmove. Make public.
30613 (ffssi2): Remove expander.
30614 (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
30615 mode iterator.
30616 (ctz<mode>2): Ditto from ctz{si,di}2.
30617 (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
30618 mode iterator.
30619 (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
30620 mode iterator.
30621
30622 2010-04-20 Jakub Jelinek <jakub@redhat.com>
30623
30624 * dwarf2out.c (AT_linkage_name): Define.
30625 (clone_as_declaration): Handle DW_AT_linkage_name.
30626 (add_name_and_src_coords_attributes): Use AT_linkage_name instead
30627 of DW_AT_MIPS_linkage_name.
30628 (move_linkage_attr): Likewise.
30629 (dwarf2out_finish): Likewise.
30630
30631 2010-04-20 Xinliang David Li <davidxl@gcc.gnu.org>
30632
30633 PR middle-end/41952
30634 * fold-const.c (fold_comparison): New folding rule.
30635
30636 2010-04-20 Anatoly Sokolov <aesok@post.ru>
30637
30638 * double-int.h (double_int_setbit): Declare.
30639 * double-int.c (double_int_setbit): New function.
30640 * rtl.h (immed_double_int_const): Declare.
30641 * emit-rtl.c (immed_double_int_const): New function.
30642 * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
30643 and immed_double_int_const functions.
30644 * optabs.c (expand_absneg_bit, expand_copysign_absneg,
30645 expand_copysign_bit): (Ditto.).
30646 * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
30647 * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
30648 * dojump.c (prefer_and_bit_test): (Ditto.).
30649 * expr.c (convert_modes, reduce_to_bit_field_precision,
30650 const_vector_from_tree): (Ditto.).
30651 * expmed.c (mask_rtx, lshift_value): (Ditto.).
30652
30653 2010-04-20 Jan Hubicka <jh@suse.cz>
30654
30655 * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
30656 (dump_cgraph_node): Dump new flags.
30657 * cgraph.h (struct cgraph_node): Add flags
30658 reachable_from_other_partition and in_other_partition.
30659 (cgraph_can_remove_if_no_direct_calls_p): Functions used by
30660 other partition can not be removed.
30661 * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
30662 the other partition must be output; silence sanity checking on
30663 leaking functions bodies from other paritition.
30664 * lto-cgraph.c (reachable_from_other_partition_p): New function.
30665 (lto_output_node): Output new flags; do not sanity check that inline
30666 clones are output; drop lto_forced_extern_inline_p code; do not mock
30667 visibility flags at partition boundaries.
30668 (add_node_to): New function.
30669 (output_cgraph): Use it to sort functions so masters appear before
30670 clones.
30671 (input_overwrite_node): Input new flags.
30672 * passes.c (ipa_write_summaries): Do not call
30673 lto_new_extern_inline_states.
30674 * lto-section-out.c (forced_extern_inline,
30675 lto_new_extern_inline_states lto_delete_extern_inline_states,
30676 lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
30677 * lto-streamer.h (lto_new_extern_inline_states,
30678 * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
30679 lto_forced_extern_inline_p): Kill.
30680
30681 2010-04-20 Richard Guenther <rguenther@suse.de>
30682
30683 * tree-ssa-structalias.c (do_sd_constraint): Add edges only
30684 from vars that can have pointers.
30685 (process_constraint): Dump useless constraints.
30686
30687 2010-04-20 Richard Guenther <rguenther@suse.de>
30688
30689 * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
30690 (dump_sa_points_to_info): Remove asserts.
30691 (init_base_vars): nothing_id isn't an escape point nor does it
30692 have pointers.
30693
30694 2010-04-20 Jakub Jelinek <jakub@redhat.com>
30695
30696 * tree.h (TYPE_REF_IS_RVALUE): Define.
30697 * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
30698 should_move_die_to_comdat, prune_unused_types_walk): Handle
30699 DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
30700 (modified_type_die, gen_reference_type_die): Emit
30701 DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
30702 if TYPE_REF_IS_RVALUE and -gdwarf-4.
30703
30704 2010-04-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
30705
30706 PR target/43635
30707 * config/s390/s390.c (s390_emit_call): Turn direct into indirect
30708 calls for -fpic -m31 if they have been sibcall optimized.
30709
30710 2010-04-19 James E. Wilson <wilson@codesourcery.com>
30711
30712 * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
30713 ar.lc fixed and call-used.
30714
30715 * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
30716
30717 2010-04-19 Jan Hubicka <jh@suse.cz>
30718
30719 * opts.c (decode_options): Disable whpr incompatible passes.
30720 * lto/lto.c (lto_1_to_1_map): Skip clones.
30721 (read_cgraph_and_symbols): Do not mark everything as needed.
30722 (do_whole_program_analysis): Do map only after optimizing;
30723 set proper cgraph_state; use passmanager.
30724
30725 2010-04-19 DJ Delorie <dj@redhat.com>
30726
30727 * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
30728 POINTER_PLUS_EXPR and fix them.
30729
30730 2010-04-19 Eric B. Weddington <eric.weddington@atmel.com>
30731
30732 * config/avr/avr-devices.c (avr_mcu_types): Add support for new
30733 devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
30734 attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
30735 atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
30736 atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
30737 atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
30738 atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
30739 atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
30740 m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
30741 atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
30742 * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
30743
30744 2010-04-19 Eric Botcazou <ebotcazou@adacore.com>
30745
30746 * ifcvt.c (noce_try_cmove_arith): Fix long lines.
30747 (check_cond_move_block): Likewise.
30748 (cond_move_process_if_block): Likewise.
30749 (noce_find_if_block): Improve formatting.
30750 (find_if_header): Pass 0 to memset and tweak conditions.
30751 (cond_exec_find_if_block): Fix long lines and tweak conditions.
30752
30753 2010-04-19 Jakub Jelinek <jakub@redhat.com>
30754
30755 * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
30756 for -gdwarf-4.
30757
30758 PR middle-end/43337
30759 * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
30760 with non-local decl doesn't need chain.
30761
30762 2010-04-19 Vladimir Makarov <vmakarov@redhat.com>
30763
30764 * ira-color.c (allocno_reload_assign): Avoid accumulating
30765 reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
30766
30767 2010-04-19 Martin Jambor <mjambor@suse.cz>
30768
30769 * gimple.h (create_tmp_reg): Declare.
30770 * gimplify.c (create_tmp_reg): New function.
30771 (gimplify_return_expr): Use create_tmp_reg.
30772 (gimplify_omp_atomic): Likewise.
30773 (gimple_regimplify_operands): Likewise.
30774 * tree-dfa.c (make_rename_temp): Likewise.
30775 * tree-predcom.c (predcom_tmp_var): Likewise.
30776 (reassociate_to_the_same_stmt): Likewise.
30777 * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
30778 (get_replaced_param_substitute): Likewise.
30779 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
30780 * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
30781 * tree-ssa-pre.c (get_representative_for): Likewise.
30782 (create_expression_by_pieces): Likewise.
30783 * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
30784 (create_tailcall_accumulator): Likewise.
30785
30786 2010-04-19 Martin Jambor <mjambor@suse.cz>
30787
30788 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
30789 new_stmt.
30790 (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
30791
30792 2010-04-19 Richard Guenther <rguenther@suse.de>
30793
30794 PR tree-optimization/43796
30795 * tree-vrp.c (adjust_range_with_scev): Lookup init and step
30796 from SCEV in the lattice.
30797 (vrp_visit_phi_node): Dump change.
30798
30799 2010-04-19 Richard Guenther <rguenther@suse.de>
30800
30801 * configure.ac: Fix quoting around elf_getshstrndx ABI check.
30802 * configure: Re-generated.
30803
30804 2010-04-19 Richard Guenther <rguenther@suse.de>
30805
30806 PR tree-optimization/43783
30807 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
30808 constant ARRAY_REF operands two and three if possible.
30809
30810 2010-04-19 Uros Bizjak <ubizjak@gmail.com>
30811
30812 PR target/43766
30813 * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
30814
30815 2010-04-19 Jie Zhang <jie@codesourcery.com>
30816
30817 PR target/43662
30818 * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
30819
30820 2010-04-19 Ira Rosen <irar@il.ibm.com>
30821
30822 PR tree-optimization/37027
30823 * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
30824 and macro to access it.
30825 (vectorizable_reduction): Add argument.
30826 (vect_get_slp_defs): Likewise.
30827 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
30828 statements for possible use in SLP.
30829 (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
30830 (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
30831 (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
30832 add new argument.
30833 (vectorizable_reduction): Likewise.
30834 * tree-vect-stmts.c (vect_get_vec_defs): Update call to
30835 vect_get_slp_defs.
30836 (vectorizable_type_demotion, vectorizable_type_promotion,
30837 vectorizable_store): Likewise.
30838 (vect_analyze_stmt): Update call to vectorizable_reduction.
30839 (vect_transform_stmt): Likewise.
30840 * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
30841 (vect_build_slp_tree): Fix indentation. Check that there are no loads
30842 from different interleaving chains in same node.
30843 (vect_slp_rearrange_stmts): New function.
30844 (vect_supported_load_permutation_p): Allow load permutations for
30845 reductions. Call vect_slp_rearrange_stmts() to rearrange statements
30846 inside SLP nodes if necessary.
30847 (vect_analyze_slp_instance): Handle reductions.
30848 (vect_analyze_slp): Try to build SLP instances originating from groups
30849 of reductions.
30850 (vect_detect_hybrid_slp_stmts): Skip reduction statements.
30851 (vect_get_constant_vectors): Create initial vectors for reductions
30852 according to reduction code. Add new argument.
30853 (vect_get_slp_defs): Add new argument, pass it to
30854 vect_get_constant_vectors.
30855 (vect_schedule_slp_instance): Remove SLP tree root statements.
30856
30857 2010-04-19 Jakub Jelinek <jakub@redhat.com>
30858
30859 * tree.h (ENUM_IS_SCOPED): Define.
30860 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
30861 for ENUM_IS_SCOPED enums.
30862
30863 2010-04-18 Eric Botcazou <ebotcazou@adacore.com>
30864
30865 * fold-const.c (fold_comparison): Use ssizetype.
30866 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
30867 * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
30868 * tree-loop-distribution.c (build_size_arg_loc): Likewise.
30869 * tree-object-size.c (compute_object_sizes): Use size_type_node.
30870
30871 * tree.h (initialize_sizetypes): Remove parameter.
30872 (build_common_tree_nodes): Remove second parameter.
30873 * stor-layout.c (initialize_sizetypes): Remove parameter.
30874 Always create an unsigned type.
30875 (set_sizetype): Assert that the passed type is unsigned and simplify.
30876 * tree.c (build_common_tree_nodes): Remove second parameter.
30877 Adjust call to initialize_sizetypes.
30878 * c-decl.c (c_init_decl_processing): Remove second argument in call to
30879 build_common_tree_nodes.
30880
30881 2010-04-18 Matthias Klose <doko@ubuntu.com>
30882
30883 * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
30884
30885 2010-04-18 Ira Rosen <irar@il.ibm.com>
30886
30887 PR tree-optimization/43771
30888 * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
30889 load permutation doesn't have gaps.
30890
30891 2010-04-18 Jan Hubicka <jh@suse.cz>
30892
30893 * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
30894 (sse_prologue_save_insn expander): Use new pattern.
30895 (sse_prologue_save_insn1): New pattern and splitter.
30896 (sse_prologue_save_insn): Update to deal also with 64bit aligned
30897 blocks.
30898 * i386.c (setup_incoming_varargs_64): Do not compute jump
30899 destination here.
30900 (ix86_gimplify_va_arg): Update alignment needed.
30901 (ix86_local_alignment): Do not align all local arrays to 128bit.
30902
30903 2010-04-17 Jan Hubicka <jh@suse.cz>
30904
30905 * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
30906
30907 2010-04-17 Richard Earnshaw <rearnsha@arm.com>
30908
30909 * arm.md (negdi2): Remove redundant code to force values into a
30910 register.
30911
30912 2010-04-17 Richard Earnshaw <rearnsha@arm.com>
30913
30914 * arm/bpabi.S: Add EABI alignment attributes to objects.
30915 * arm/bpabi-v6m.S: Likewise.
30916 * arm/crti.asm: Likewise.
30917 * arm/crtn.asm: Likewise.
30918 * arm/lib1funcs.asm: Likewise.
30919 * arm/libunwind.S: Likewise.
30920
30921 2010-04-17 Richard Earnshaw <rearnsha@arm.com>
30922
30923 * arm-protos.h (tune_params): New structure.
30924 * arm.c (current_tune): New variable.
30925 (arm_constant_limit): Delete.
30926 (struct processors): Add pointer to the tune parameters.
30927 (arm_slowmul_tune): New tuning option.
30928 (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
30929 (all_cores): Adjust to pick up the tuning model.
30930 (arm_constant_limit): New function.
30931 (arm_override_options): Select the appropriate tuning model. Delete
30932 initialization of arm_const_limit.
30933 (arm_split_constant): Use the new constant-limit model.
30934 (arm_rtx_costs): Pick up the current tuning model.
30935 * arm.md (is_strongarm, is_xscale): Delete.
30936 * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
30937 for Xscale variant architectures.
30938 (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
30939
30940 2010-04-17 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
30941
30942 * config/arm/arm.c (arm_gen_constant): Remove unused variable
30943 can_shift.
30944 (arm_rtx_costs_1): Remove unused variable extra_cost.
30945 (arm_unwind_emit_set): Use variable offset.
30946 (thumb1_output_casesi): Remove unused variable flags.
30947
30948 2010-04-16 Jeff Law <law@redhat.com>
30949
30950 * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
30951 needing assignment rather than doing a two-phase assignment. Remove
30952 unused variable 'm'.
30953
30954 2010-04-16 Jakub Jelinek <jakub@redhat.com>
30955
30956 PR bootstrap/43767
30957 * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
30958
30959 2010-04-16 Doug Kwan <dougkwan@google.com>
30960
30961 * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
30962 (next_operand_entry_id): New static variable.
30963 (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
30964 (add_to_ops_vec): Assigned unique ID to operand entry.
30965 (struct oecount_s): New field ID.
30966 (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
30967 (undistribute_ops_list): Assign unique IDs to oecounts.
30968 (init_reassoc): reset next_operand_entry_id.
30969
30970 2010-04-16 Doug Kwan <dougkwan@google.com>
30971
30972 * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
30973 missing left parenthesis.
30974
30975 2010-04-16 Uros Bizjak <ubizjak@gmail.com>
30976
30977 * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
30978 *btdi_rex64 using SWI48 mode iterator.
30979 (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
30980 (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
30981 *jcc_btdi_mask_rex64.
30982
30983 2010-04-16 Anatoly Sokolov <aesok@post.ru>
30984
30985 * double-int.h (tree_to_double_int): Convert to macro.
30986 * double-int.c (tree_to_double_int): Remove.
30987
30988 2010-04-16 Jakub Jelinek <jakub@redhat.com>
30989
30990 PR debug/43762
30991 * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
30992 with want_address 2 and in case a single element list might be
30993 possible, call it again with want_address 0.
30994
30995 2010-04-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
30996
30997 * config/h8300/h8300.c (print_operand) : Modify case 'V' and
30998 case 'W' print operands for HI mode.
30999 * config/h8300/h8300.h (Y0, Y2) : New constraints.
31000 * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
31001 (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
31002 * config/h8300/predicate.md (bit_register_indirect_operand): New.
31003
31004 * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
31005
31006 * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
31007 cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
31008 #xx:3 and #xx:4 mode.
31009
31010 * config/h8300/h8300.md (inverted load with HImode dest): Add
31011 support for H8300SX.
31012
31013 * config/h8300/predicate.md (bit_operand): Allow immediate values that
31014 satisfy 'U' constraint.
31015
31016 2010-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31017
31018 * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
31019 * configure: Regenerate.
31020 * config.in: Regenerate.
31021 * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
31022 works.
31023
31024 2010-04-16 Richard Guenther <rguenther@suse.de>
31025
31026 * tree.h (struct tree_decl_minimal): Move pt_uid ...
31027 (struct tree_decl_common): ... here.
31028 (DECL_PT_UID): Adjust.
31029 (SET_DECL_PT_UID): Likewise.
31030 (DECL_PT_UID_SET_P): Likewise.
31031
31032 2010-04-16 Richard Guenther <rguenther@suse.de>
31033
31034 PR tree-optimization/43572
31035 * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
31036 * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
31037 * tree-flow.h (is_call_clobbered): Remove.
31038 * tree-flow-inline.h (is_call_clobbered): Likewise.
31039 * tree-dfa.c (dump_variable): Do not dump call clobber state.
31040 * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
31041 (execute_return_slot_opt): Adjust.
31042 * tree-tailcall.c (suitable_for_tail_opt_p): Remove
31043 check for call clobbered vars here.
31044 (find_tail_calls): Move tailcall verification to the
31045 proper place.
31046
31047 2010-04-16 Diego Novillo <dnovillo@google.com>
31048
31049 * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
31050
31051 2010-04-16 Bernd Schmidt <bernds@codesourcery.com>
31052
31053 PR target/40603
31054 * config/arm/arm.md (cbranchqi4): New pattern.
31055 * config/arm/predicates.md (const0_operand,
31056 cbranchqi4_comparison_operator): New predicates.
31057
31058 2010-04-16 Richard Guenther <rguenther@suse.de>
31059
31060 * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
31061 (dump_gimple_stmt): Likewise.
31062
31063 2010-04-16 Bernd Schmidt <bernds@codesourcery.com>
31064
31065 * recog.h (struct recog_data): New field is_operator.
31066 (struct insn_operand_data): New field is_operator.
31067 * recog.c (extract_insn): Set recog_data.is_operator.
31068 * genoutput.c (output_operand_data): Emit code to set the
31069 is_operator field.
31070 * reload.c (find_reloads): Use it rather than testing for an
31071 empty constraint string.
31072
31073 PR target/41514
31074 * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
31075 If the previous insn is a cbranchsi4_insn with the same arguments,
31076 omit the compare instruction.
31077
31078 * config/arm/arm.md (addsi3_cbranch): If destination is a high
31079 register, inputs must be low registers and we need a low register
31080 scratch. Handle alternative 2 like alternative 3.
31081
31082 2010-04-16 Jakub Jelinek <jakub@redhat.com>
31083
31084 * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
31085 don't call get_addr on both. If one expression is a VALUE and
31086 the other a REG, check VALUE's locs if the REG isn't among them.
31087
31088 2010-04-16 Christian Bruel <christian.bruel@st.com>
31089
31090 * config/sh/sh.h (sh_frame_pointer_required): New function.
31091 * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
31092 (flag_omit_frame_pointer) Set.
31093 (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
31094 (rounded_frame_size): Adjust size with outgoing_args_size.
31095 (sh_set_return_address): Must return from stack pointer.
31096 * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
31097 (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
31098 (ACCUMULATE_OUTGOING_ARGS): Define.
31099 * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
31100 * config/sh/sh.opt (maccumulate-outgoing-args): New option.
31101
31102 2010-04-15 Kaz Kojima <kkojima@gcc.gnu.org>
31103
31104 PR target/43471
31105 * config/sh/sh.c (sh_legitimize_reload_address): Use
31106 MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
31107 Remove a unneeded check for offset_base.
31108
31109 2010-04-15 H.J. Lu <hongjiu.lu@intel.com>
31110
31111 * configure: Regenerated.
31112
31113 2010-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
31114
31115 * config/s390/s390.c (s390_call_save_register_used): Switch back
31116 to HARD_REGNO_NREGS.
31117
31118 2010-04-15 Richard Guenther <rguenther@suse.de>
31119
31120 * alias.c (alias_set_subset_of): Handle alias-set zero
31121 child properly.
31122
31123 2010-04-15 Mark Shinwell <shinwell@codesourcery.com>
31124 Julian Brown <julian@codesourcery.com>
31125
31126 * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
31127 alternatives according to use of high and low regs.
31128 * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
31129 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
31130 optimizing for size on Thumb-2.
31131
31132 2010-04-15 Thomas Schwinge <tschwinge@gnu.org>
31133
31134 * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
31135
31136 2010-04-15 Richard Guenther <rguenther@suse.de>
31137
31138 * tree-ssa-structalias.c (struct variable_info): Add
31139 is_fn_info flag.
31140 (new_var_info): Initialize it.
31141 (dump_constraints): Support printing last added constraints.
31142 (debug_constraints): Adjust.
31143 (dump_constraint_graph): Likewise.
31144 (make_heapvar_for): Check for NULL cfun.
31145 (get_function_part_constraint): New function.
31146 (get_fi_for_callee): Likewise.
31147 (find_func_aliases): Properly implement IPA PTA constraints.
31148 (process_ipa_clobber): New function.
31149 (find_func_clobbers): Likewise.
31150 (insert_into_field_list_sorted): Remove.
31151 (create_function_info_for): Properly allocate vars for IPA mode.
31152 Do not use insert_into_field_list_sorted.
31153 (create_variable_info_for): Properly generate constraints for
31154 global vars in IPA mode.
31155 (dump_solution_for_var): Always dump the solution.
31156 (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
31157 (find_what_var_points_to): Adjust.
31158 (pt_solution_set): Change.
31159 (pt_solution_ior_into): New function.
31160 (pt_solution_empty_p): Export.
31161 (pt_solution_includes_global): Adjust.
31162 (pt_solution_includes_1): Likewise.
31163 (pt_solutions_intersect_1): Likewise.
31164 (dump_sa_points_to_info): Check some invariants.
31165 (solve_constraints): Move constraint dumping ...
31166 (compute_points_to_sets): ... here.
31167 (ipa_pta_execute): ... and here.
31168 (compute_may_aliases): Do not re-compute points-to info
31169 locally if IPA info is available.
31170 (ipa_escaped_pt): New global var.
31171 (ipa_pta_execute): Properly implement IPA PTA.
31172 * tree-into-ssa.c (dump_decl_set): Support dumping
31173 decls not in referenced-vars.
31174 * tree-flow.h (struct gimple_df): Add ipa_pta flag.
31175 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
31176 (dump_points_to_solution): Likewise.
31177 * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
31178 * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
31179 (remap_gimple_stmt): Reset call clobber/use information if necessary.
31180 (copy_decl_to_var): Copy DECL_PT_UID.
31181 (copy_result_decl_to_var): Likewise.
31182 * tree.c (make_node_stat): Initialize DECL_PT_UID.
31183 (copy_node_stat): Copy it.
31184 * tree.h (DECL_PT_UID): New macro.
31185 (SET_DECL_PT_UID): Likewise.
31186 (DECL_PT_UID_SET_P): Likewise.
31187 (struct tree_decl_minimal): Add pt_uid member.
31188 * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
31189 (pt_solution_empty_p): Declare.
31190 (pt_solution_set): Adjust.
31191 (ipa_escaped_pt): Declare.
31192 * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
31193 * gimple-pretty-print.c (pp_points_to_solution): New function.
31194 (dump_gimple_call): Dump call clobber/use information.
31195 * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
31196 * tree-pass.h (TDF_ALIAS): New dump option.
31197 * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
31198 * doc/invoke.texi (-fipa-pta): Update documentation.
31199
31200 2010-04-15 Richard Guenther <rguenther@suse.de>
31201
31202 * Makefile.in (OBJS-common): Add gimple-fold.o.
31203 (gimple-fold.o): New rule.
31204 * tree.h (maybe_fold_offset_to_reference,
31205 maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
31206 prototypes ...
31207 * gimple.h: ... here.
31208 * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
31209 may_propagate_address_into_dereference): Move prototypes ...
31210 * gimple.h: ... here.
31211 * tree-ssa-ccp.c (get_symbol_constant_value,
31212 may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
31213 maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
31214 maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
31215 maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
31216 ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
31217 fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
31218 gimplify_and_update_call_from_tree): Move ...
31219 * gimple-fold.c: ... here. New file.
31220 (ccp_fold_builtin): Rename to ...
31221 (gimple_fold_builtin): ... this.
31222 * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
31223
31224 2010-04-15 Richard Guenther <rguenther@suse.de>
31225
31226 * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
31227 fit_double_type, force_fit_type_double, add_double_with_sign,
31228 neg_double, mul_double_with_sign, lshift_double, rshift_double,
31229 lrotate_double, rrotate_double, div_and_round_double): Move ...
31230 * double-int.c: ... here.
31231 * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
31232 add_double, neg_double, mul_double_with_sign, mul_double,
31233 lshift_double, rshift_double, lrotate_double, rrotate_double,
31234 div_and_round_double): Move prototypes ...
31235 * double-int.h: ... here.
31236
31237 2010-04-15 Bernd Schmidt <bernds@codesourcery.com>
31238
31239 PR target/43742
31240 * config/sh/sh.md (doloop_end_split, dect): Undo previous patch. Use
31241 matching constraints to ensure inputs match the output.
31242
31243 2010-04-15 Kaz Kojima <kkojima@gcc.gnu.org>
31244
31245 PR target/43742
31246 * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
31247 in an input-only operand.
31248
31249 2010-04-15 Anatoly Sokolov <aesok@post.ru>
31250
31251 * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
31252 (double_int_not, double_int_lshift, double_int_rshift): Declare.
31253 (double_int_negative_p): Convert to static inline function.
31254 * double-int.c (double_int_lshift, double_int_lshift): New functions.
31255 (double_int_negative_p): Remove.
31256 * tree.h (lshift_double, rshift_double):
31257 * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
31258 * fold-const.c (fold_convert_const_int_from_real,
31259 fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
31260 (lshift_double): Change type of arith argument to bool.
31261 (rshift_double): Change type of arith argument to bool. Correct
31262 comment.
31263 * expmed.c (mask_rtx, lshift_value): (Ditto.).
31264
31265 2010-04-14 Bernd Schmidt <bernds@codesourcery.com>
31266
31267 PR target/21803
31268 * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
31269 at the start and end of the then/else blocks, and omit them from the
31270 conversion.
31271 * cfgcleanup.c (flow_find_cross_jump): No longer static. Remove MODE
31272 argument; all callers changed. Pass zero to old_insns_match_p instead.
31273 (flow_find_head_matching_sequence): New function.
31274 (old_insns_match_p): Check REG_EH_REGION notes for calls.
31275 * basic-block.h (flow_find_cross_jump,
31276 flow_find_head_matching_sequence): Declare functions.
31277
31278 2010-04-14 Jason Merrill <jason@redhat.com>
31279
31280 PR c++/36625
31281 * c-common.c (attribute_takes_identifier_p): New fn.
31282 * c-common.h: Declare it.
31283
31284 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
31285
31286 * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
31287 splitter condition.
31288 (*udivmod<mode>4): Ditto.
31289
31290 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
31291
31292 * config/i386/i386.md (maxmin_int): Rename code attribute from
31293 maxminiprefix and update all users.
31294 (maxmin_float): Ditto from maxminfprefix.
31295 (logic): Ditto from logicprefix.
31296 (absneg_mnemonic): Ditto from absnegprefix.
31297 * config/i386/mmx.md: Update all users of maxminiprefix,
31298 maxminfprefix and logicprefix for rename.
31299 * config/i386/sse.md: Ditto.
31300 * config/i386/sync.md (sync_<code><mode>): Update for
31301 logicprefix rename.
31302
31303 2010-04-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
31304
31305 PR 42966
31306 * diagnostics.c (diagnostic_report_diagnostic): Mark specially
31307 warnings converted to errors.
31308
31309 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
31310
31311 * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
31312 used insn_type variable.
31313 (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
31314 to avoid set-but-not-used warning.
31315
31316 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
31317
31318 * df-core.c (df_ref_debug): Change format string placeholder
31319 from 0x%x to %#x.
31320 * dwarf2asm.c (dw2_asm_output_data_raw,
31321 dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
31322 dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
31323 * dwarf2out.c (output_cfi, output_cfi_directive,
31324 dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
31325 output_cfa_loc_raw, output_die, output_ranges, output_file_names):
31326 Ditto.
31327 * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
31328 * print-rtl.c (print_rtx): Ditto.
31329
31330 2010-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
31331
31332 PR middle-end/42694
31333 * builtins.c (expand_builtin_pow_root): New function to expand pow
31334 calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
31335 series of sqrt and cbrt calls under -ffast-math.
31336 (expand_builtin_pow): Call it.
31337
31338 2010-04-14 Michael Matz <matz@suse.de>
31339
31340 PR tree-optimization/42963
31341 * tree-cfg.c (touched_switch_bbs): New static variable.
31342 (group_case_labels_stmt): New function broken out from ...
31343 (group_case_labels): ... here, use the above.
31344 (start_recording_case_labels): Allocate touched_switch_bbs.
31345 (end_recording_case_labels): Deallocate it, call
31346 group_case_labels_stmt.
31347 (gimple_redirect_edge_and_branch): Remember index of affected BB.
31348
31349 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
31350
31351 * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
31352 from insn template.
31353
31354 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
31355
31356 * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
31357
31358 2010-04-13 Jan Hubicka <jh@suse.cz>
31359
31360 * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
31361 of optimized out static functions.
31362 (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
31363 cost computation. Also sanity check for overflows.
31364 (update_caller_keys): Update cgraph_edge_badness call; properly
31365 update fibheap and sanity check that it is up to date.
31366 (add_new_edges_to_heap): Update cgraph_edge_badness.
31367 (cgraph_decide_inlining_of_small_function): Likewise;
31368 add sanity checking that badness in heap is up to date;
31369 improve dumping of reason; Update badness of calls to the
31370 offline copy of function currently inlined; dump badness
31371 of functions not inlined because of unit growth limits.
31372
31373 2010-04-13 Eric Botcazou <ebotcazou@adacore.com>
31374
31375 PR middle-end/32628
31376 * c-common.c (pointer_int_sum): Disregard overflow that occured only
31377 because of sign-extension change when converting to sizetype here...
31378 * fold-const.c (fold_convert_const_int_from_int): ...and not here.
31379
31380 * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
31381 the folding to constants. Remove redundant final conversion.
31382 (fold_binary) <associate>: Do not associate if the re-association of
31383 constants alone overflows.
31384 (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
31385 to the end of the list.
31386 (multiple_of_p) <COND_EXPR>: New case.
31387
31388 2010-04-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
31389
31390 * opt-functions.awk (opt_sanitized_name): New.
31391 (opt_enum): New.
31392 * optc-gen.awk: Use it
31393 * opth-gen.awk: Use it.
31394
31395 2010-04-13 Martin Jambor <mjambor@suse.cz>
31396
31397 * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
31398 (sra_modify_assign): Delete stmts loading dead data even if racc has no
31399 children. Call replace_uses_with_default_def_ssa_name to handle
31400 SSA_NAES on lhs.
31401
31402 2010-04-13 Michael Matz <matz@suse.de>
31403
31404 PR middle-end/43730
31405 * builtins.c (expand_builtin_interclass_mathfn): Also create
31406 a register if the predicate doesn't match.
31407
31408 2010-04-13 Diego Novillo <dnovillo@google.com>
31409
31410 * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
31411 * c-pch.c: Include timevar.h.
31412 (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
31413 (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
31414 * ggc-common.c: Include timevar.h.
31415 (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
31416 * timevar.def (TV_PCH_SAVE): Define.
31417 (TV_PCH_CPP_SAVE): Define.
31418 (TV_PCH_PTR_REALLOC): Define.
31419 (TV_PCH_PTR_SORT): Define.
31420 (TV_PCH_RESTORE): Define.
31421 (TV_PCH_CPP_RESTORE): Define.
31422
31423 2010-04-13 Michael Matz <matz@suse.de>
31424
31425 * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
31426 into MINUS_EXPRs.
31427 (can_reassociate_p): New function.
31428 (break_up_subtract_bb, reassociate_bb): Use it.
31429
31430 2010-04-13 Richard Guenther <rguenther@suse.de>
31431
31432 PR bootstrap/43737
31433 * builtins.c (c_readstr): Fix assert.
31434
31435 2010-04-13 Uros Bizjak <ubizjak@gmail.com>
31436
31437 * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
31438 when generating cltd insn.
31439
31440 (*ashl<mode>3_1): Remove special handling for register operand 2.
31441 (*ashlsi3_1_zext): Ditto.
31442 (*ashlhi3_1): Ditto.
31443 (*ashlhi3_1_lea): Ditto.
31444 (*ashlqi3_1): Ditto.
31445 (*ashlqi3_1_lea): Ditto.
31446 (*<shiftrt_insn><mode>3_1): Ditto.
31447 (*<shiftrt_insn>si3_1_zext): Ditto.
31448 (*<shiftrt_insn>qi3_1_slp): Ditto.
31449 (*<rotate_insn><mode>3_1): Ditto.
31450 (*<rotate_insn>si3_1_zext): Ditto.
31451 (*<rotate_insn>qi3_1_slp): Ditto.
31452
31453 2010-04-13 Richard Guenther <rguenther@suse.de>
31454
31455 * tree-ssa-structalias.c (callused_id): Remove.
31456 (call_stmt_vars): New.
31457 (get_call_vi): Likewise.
31458 (lookup_call_use_vi): Likewise.
31459 (lookup_call_clobber_vi): Likewise.
31460 (get_call_use_vi): Likewise.
31461 (get_call_clobber_vi): Likewise.
31462 (make_transitive_closure_constraints): Likewise.
31463 (handle_const_call): Adjust to do per-call call-used handling.
31464 (handle_pure_call): Likewise.
31465 (find_what_var_points_to): Remove general callused handling.
31466 (init_base_vars): Likewise.
31467 (init_alias_vars): Initialize call_stmt_vars.
31468 (compute_points_to_sets): Process call-used and call-clobbered
31469 vars for call statements.
31470 (delete_points_to_sets): Free call_stmt_vars.
31471
31472 2010-04-13 Richard Guenther <rguenther@suse.de>
31473
31474 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
31475 Only add RW dependence for dependence distance zero.
31476 Adjust maximal vectorization factor according to dependences.
31477 Move alignment handling ...
31478 (vect_find_same_alignment_drs): ... here. New function.
31479 (vect_analyze_data_ref_dependences): Adjust.
31480 (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
31481 (vect_analyze_data_refs): Adjust minimal vectorization factor
31482 according to data references.
31483 * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
31484 dependences before determining the vectorization factor.
31485 Analyze alignment after determining the vectorization factor.
31486 * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
31487 dependences before alignment.
31488 * tree-vectorizer.h (vect_analyze_data_ref_dependences):
31489 Adjust prototype.
31490 (vect_analyze_data_refs): Likewise.
31491 (MAX_VECTORIZATION_FACTOR): New define.
31492
31493 2010-04-13 Duncan Sands <baldrick@free.fr>
31494
31495 * except.h (lang_eh_type_covers): Remove.
31496 * except.c (lang_eh_type_covers): Likewise.
31497
31498 2010-04-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
31499 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
31500
31501 * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
31502 * config/s390/s390.c: Replace UNTIS_PER_WORD with
31503 UNITS_PER_LONG where it is ABI relevant.
31504 (s390_return_addr_rtx): Likewise.
31505 (s390_back_chain_rtx): Likewise.
31506 (s390_frame_area): Likewise.
31507 (s390_frame_info): Likewise.
31508 (s390_initial_elimination_offset): Likewise.
31509 (save_gprs): Likewise.
31510 (s390_emit_prologue): Likewise.
31511 (s390_emit_epilogue): Likewise.
31512 (s390_function_arg_advance): Likewise.
31513 (s390_function_arg): Likewise.
31514 (s390_va_start): Likewise.
31515 (s390_gimplify_va_arg): Likewise.
31516 (s390_function_profiler): Likewise.
31517 (s390_optimize_prologue): Likewise.
31518 (s390_rtx_costs): Likewise.
31519 (s390_secondary_reload): Likewise.
31520 (s390_promote_function_mode): Likewise.
31521 (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
31522 (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
31523 registers available.
31524 (s390_unwind_word_mode): New function.
31525 (s390_function_value): Split 64 bit values into register pair if
31526 used as return value.
31527 (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
31528 function call parameters. Handle parallels.
31529 (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
31530 (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
31531 (DWARF_CIE_DATA_ALIGNMENT): New macro.
31532 (s390_expand_setmem): Remove unused variable src_addr.
31533 * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
31534 deal with 64 bit registers.
31535 * config/s390/s390.h: Define __zarch__ predefined macro.
31536 Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
31537 (UNITS_PER_LONG): New macro.
31538 * libjava/include/s390-signal.h: Define extended ucontext
31539 structure containing the upper halfs of the 64 bit registers.
31540
31541 2010-04-13 Simon Baldwin <simonb@google.com>
31542
31543 * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
31544
31545 2010-04-13 Eric Botcazou <ebotcazou@adacore.com>
31546
31547 * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
31548 rvalue on the RHS if the LHS is of a non-renamable type.
31549 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
31550
31551 2010-04-13 Matthias Klose <doko@ubuntu.com>
31552
31553 * gcc.c (cc1_options): Handle -iplugindir before processing
31554 the cc1 spec. Only add -iplugindir once.
31555 (cpp_unique_options): Add -iplugindir option if -fplugin* options
31556 found.
31557 * common.opt (iplugindir): Remove `Separate' property, initialize.
31558 * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
31559 option.
31560 * Makefile.in (check-%, check-parallel-%): Create plugin dir.
31561 (distclean): Remove plugin dir.
31562 * doc/invoke.texi: Document -iplugindir.
31563
31564 2010-04-13 Basile Starynkevitch <basile@starynkevitch.net>
31565
31566 * doc/plugins.texi (Loading Plugins): Document short
31567 -fplugin=foo option.
31568 (Plugin API): Mention default_plugin_dir_name function.
31569
31570 * gcc.c (find_file_spec_function): Add new declaration.
31571 (static_spec_func): Use it for "find-file".
31572 (find_file_spec_function): Add new function.
31573 (cc1_options): Add -iplugindir option if -fplugin* options found.
31574
31575 * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
31576
31577 * plugin.c (add_new_plugin): Updated comment, and handle short
31578 plugin name.
31579 (default_plugin_dir_name): Added new function.
31580
31581 * common.opt (iplugindir): New option to set the plugin directory.
31582
31583 2010-04-12 Uros Bizjak <ubizjak@gmail.com>
31584
31585 * config/i386/i386.md (any_rotate): New code iterator.
31586 (rotate_insn): New code attribute.
31587 (rotate): Ditto.
31588 (SWIM124): New mode iterator.
31589 (<rotate_insn>ti3): New expander.
31590 (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
31591 any_rotate code iterator.
31592 (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
31593 using any_rotate code iterator and SWIM124 mode iterator.
31594 (ix86_rotlti3): New insn_and_split pattern.
31595 (ix86_rotrti3): Ditto.
31596 (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
31597 ix86_rotl{di,ti}3 patterns.
31598 (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
31599 (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
31600 and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
31601 *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
31602 code iterator and SWI mode iterator.
31603 (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
31604 Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
31605 code iterator.
31606 (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
31607 Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
31608 (bswap rotatert splitter): Add splitter.
31609 (bswap splitter): Macroize splitter using any_rotate code iterator.
31610 Add insn predicate to split only for TARGET_USE_XCHGB or when
31611 optimizing function for size.
31612
31613 2010-04-12 Steve Ellcey <sje@cup.hp.com>
31614
31615 * config/pa/pa.c (emit_move_sequence): Remove use of
31616 deleted variable flag_argument_noalias.
31617
31618 2010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31619
31620 * config.gcc: Removed *-*-solaris2.7* from list of obsolete
31621 configurations.
31622 Add to unsupported targets list.
31623 * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
31624 sparc*-sun-solaris2.[567]* from target lists.
31625 * configure: Regenerate.
31626 * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
31627 removal.
31628 Remove Solaris 7 patch references.
31629 (Specific, sparc-sun-solaris2.7): Removed.
31630 (sparc-sun-solaris2*): Update Solaris 7 example.
31631 (sparc64-*-solaris2*): Likewise.
31632
31633 2010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31634
31635 * config.build (alpha*-dec-osf4*): Remove.
31636 * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
31637 of obsolete configurations.
31638 (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
31639 support.
31640 * config/alpha/t-osf4: Renamed to ...
31641 * config/alpha/t-osf5: ... this.
31642 * config/alpha/osf.h: Renamed to ...
31643 * config/alpha/osf5.h: ... this.
31644 Merged old osf5.h contents.
31645 Update comments.
31646 (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
31647 (EXTRA_SPECS): Removed.
31648 * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
31649 reflect removal of Tru64 UNIX V4.0/V5.0 support.
31650 Document that.
31651
31652 2010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31653
31654 * doc/contrib.texi (Contributors, Rainer Orth): Update.
31655
31656 2010-04-12 Kai Tietz <kai.tietz@onevision.com>
31657
31658 PR/43702
31659 * config/i386/i386.c (x86_this_parameter): Handle aggregate for
31660 __thiscall convention.
31661
31662 2010-04-12 Steve Ellcey <sje@cup.hp.com>
31663
31664 * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
31665 orig_base.
31666 * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
31667
31668 2010-04-12 Steve Ellcey <sje@cup.hp.com>
31669
31670 * function.c (assign_parms_initialize_all): Add unused attribute
31671 to fntype.
31672
31673 2010-04-12 Richard Guenther <rguenther@suse.de>
31674
31675 * gsstruct.def (GSS_CALL): New.
31676 * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
31677 * gimple.h: Include tree-ssa-alias.h.
31678 (struct gimple_statement_call): New.
31679 (union gimple_statement_struct_d): Add gimple_call member.
31680 (gimple_call_reset_alias_info): Declare.
31681 (gimple_call_use_set): New function.
31682 (gimple_call_clobber_set): Likewise.
31683 * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
31684 * gimple.c (gimple_call_reset_alias_info): New function.
31685 (gimple_build_call_1): Call it.
31686 * lto-streamer-in.c (input_gimple_stmt): Likewise.
31687 * tree-inline.c (remap_gimple_stmt): Likewise.
31688 (expand_call_inline): Remove callused handling.
31689 * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
31690 * tree-dfa.c (dump_variable): Likewise.
31691 * tree-parloops.c (parallelize_loops): Likewise.
31692 * tree-ssa.c (init_tree_ssa): Likewise.
31693 (delete_tree_ssa): Likewise.
31694 * tree-flow-inline.h (is_call_used): Remove.
31695 * tree-flow.h (struct gimple_df): Remove callused member.
31696 * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
31697 * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
31698 (ref_maybe_used_by_call_p_1): Simplify.
31699 (call_may_clobber_ref_p_1): Likewise.
31700 * tree-ssa-structalias.c (compute_points_to_sets): Set
31701 the call stmt used and clobbered sets.
31702 * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
31703 (find_tail_calls): Verify the tail call.
31704
31705 2010-04-12 Richard Guenther <rguenther@suse.de>
31706
31707 * ipa.c (cgraph_postorder): Adjust postorder to guarantee
31708 single-iteration always-inline inlining.
31709 * ipa-inline.c (cgraph_mark_inline): Do not return anything.
31710 (cgraph_decide_inlining): Do not handle always-inline specially.
31711 (try_inline): Remove always-inline cycle detection special case.
31712 Do not recurse on always-inlines.
31713 (cgraph_early_inlining): Do not iterate if not optimizing.
31714 (cgraph_gate_early_inlining): remove.
31715 (pass_early_inline): Run unconditionally.
31716 (gate_cgraph_decide_inlining): New function.
31717 (pass_ipa_inline): Use it. Do not run the IPA inliner if
31718 not inlining or optimizing.
31719 (cgraph_decide_inlining_of_small_functions): Also consider
31720 always-inline functions.
31721 (cgraph_default_inline_p): Return true for nodes which should
31722 disregard inline limits.
31723 (estimate_function_body_sizes): Assume zero size and time for
31724 nodes which are marked as disregarding inline limits.
31725 (cgraph_decide_recursive_inlining): Do not perform recursive
31726 inlining on always-inline nodes.
31727
31728 2010-04-12 Jakub Jelinek <jakub@redhat.com>
31729
31730 PR bootstrap/43699
31731 * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
31732 for exprs satisfying handled_component_p.
31733
31734 2010-04-12 Eric Botcazou <ebotcazou@adacore.com>
31735
31736 * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
31737 non-constant aggregate elements.
31738
31739 * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
31740 is a real initialization.
31741
31742 2010-04-12 Shujing Zhao <pearly.zhao@oracle.com>
31743
31744 PR c/36774
31745 * c-decl.c (start_function): Move forward check for nested function.
31746
31747 2010-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
31748
31749 * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
31750 * config/sh/sh.c: Include reload.h.
31751 (sh_legitimize_reload_address): New.
31752 * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
31753 sh_legitimize_reload_address.
31754
31755 2010-04-11 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
31756
31757 * config/sh/sh.md (*movqi_pop): New insn pattern.
31758 * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
31759
31760 2010-04-11 Uros Bizjak <ubizjak@gmail.com>
31761
31762 * config/i386/i386.md (any_shiftrt): New code iterator.
31763 (shiftrt_insn): New code attribute.
31764 (shiftrt): Ditto.
31765 (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
31766 using any_shiftrt code iterator.
31767 (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
31768 *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
31769 (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
31770 pattern from corresponding peephole2 patterns.
31771 (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
31772 using any_shiftrt code iterator.
31773 (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
31774 (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
31775 (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
31776 (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
31777 *{ashr,lshr}<mode>3_cmp_zext.
31778 (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
31779
31780 2010-04-11 Uros Bizjak <ubizjak@gmail.com>
31781
31782 * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
31783 scratch register.
31784 (*lshr<mode>3_cconly): Ditto.
31785
31786 2010-04-11 Uros Bizjak <ubizjak@gmail.com>
31787
31788 * config/i386/i386.md (lshr<mode>3): Macroize expander from
31789 lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
31790 (*lshr<mode>3_doubleword): New insn_and_split_pattern. Macroize
31791 pattern from *lshr{di,ti}3_1 and corresponding splitters using
31792 DWI mode iterator.
31793 (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
31794 from corresponding peephole2 patterns.
31795 (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
31796 *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
31797 and *lshrdi3_1_rex64 using SWI mode iterator.
31798 (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
31799 (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
31800 (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
31801 *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
31802 and *lshrdi3_cmp_rex64 using SWI mode iterator.
31803 (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
31804 (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
31805 *lshrdi3_one_bit_cconly_rex64. Macroize insn from
31806 *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
31807 SWI mode iterator.
31808
31809 2010-04-10 Uros Bizjak <ubizjak@gmail.com>
31810
31811 * config/i386/i386.md (ashr<mode>3): Macroize expander from
31812 ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
31813 (*ashr<mode>3_doubleword): New insn_and_split_pattern. Macroize
31814 pattern from *ashr{di,ti}3_1 and corresponding splitters using
31815 DWI mode iterator.
31816 (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
31817 from corresponding peephole2 patterns.
31818 (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
31819 (ashrsi3_cvt): Rename from ashrsi3_31.
31820 (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
31821 (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
31822 and x86_64_shift_adj_3 using SWI48 mode iterator.
31823 (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
31824 *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
31825 and *ashrdi3_1_rex64 using SWI mode iterator.
31826 (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
31827 (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
31828 (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
31829 *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
31830 and *ashrdi3_cmp_rex64 using SWI mode iterator.
31831 (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
31832 (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
31833 *ashrdi3_one_bit_cconly_rex64. Macroize insn from
31834 *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
31835 SWI mode iterator.
31836 (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
31837 * config/i386/i386.c (ix86_split_ashr): Update for renamed
31838 x86_shift<mode>_adj_3 expanders.
31839
31840 2010-04-10 Wei Guozhi <carrot@google.com>
31841
31842 PR target/42601
31843 * config/arm/arm.c (arm_pic_static_addr): New function.
31844 (legitimize_pic_address): Call arm_pic_static_addr when it detects
31845 a static symbol.
31846 (arm_output_addr_const_extra): Output expression for new pattern.
31847 * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
31848
31849 2010-04-10 Bernd Schmidt <bernds@codesourcery.com>
31850
31851 * ira-costs.c (record_reg_classes): Ignore alternatives that are
31852 not enabled.
31853
31854 * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
31855 * web.c: Include "insn-config.h" and "recog.h".
31856 (union_match_dups): New function.
31857 (web_main): Call it.
31858 (union_defs): Don't try to recognize match_dups.
31859
31860 * reload1.c (eliminate_regs_in_insn): Don't restore an operand
31861 if doing so would replace the entire pattern.
31862
31863 2010-04-09 Uros Bizjak <ubizjak@gmail.com>
31864
31865 PR target/43707
31866 PR target/43709
31867 * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
31868 and splitter pattern. Change splitter operand 1 predicate to
31869 nonmemory_operand.
31870
31871 2010-04-09 Martin Jambor <mjambor@suse.cz>
31872
31873 * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
31874 lattices are addresses of CONST_DECLs with the same initial value.
31875 (ipcp_print_all_lattices): Print values of CONST_DECLs.
31876 * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
31877
31878 2010-04-09 Eric Botcazou <ebotcazou@adacore.com>
31879 Bernd Schmidt <bernds@codesourcery.com>
31880
31881 * loop-invariant.c (replace_uses): New static function.
31882 (move_invariant_reg): Use it to ensure we can replace the uses.
31883
31884 2010-04-09 Hariharan Sandanagobalane <hariharan@picochip.com>
31885
31886 * config/picochip/picochip.c (picochip_rtx_costs): Use correct
31887 function template.
31888 (picochip_override_options): Enable section anchors only above -O1.
31889 (picochip_reorg): Fixed a couple of build warnings.
31890
31891 2010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31892
31893 * configure.ac (plugin -rdynamic test): Log result.
31894 * configure: Regenerate.
31895 * config/sol2.h (LINK_SPEC): Handle -rdynamic.
31896 (RDYNAMIC_SPEC): Define.
31897 * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
31898
31899 2010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31900
31901 * configure.ac: Determine Sun ld version numbers.
31902 (comdat_group): Restrict GNU ld version checks to gld.
31903 (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
31904 (enable_comdat): Support --enable-comdat.
31905 * configure: Regenerate.
31906 * doc/install.texi (Configuration): Document --enable-comdat.
31907
31908 2010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31909
31910 * config/sparc/sol2-gld.h: Remove SPARC reference. Rename ...
31911 * config/sol2-gld.h: ... here.
31912 * config.gcc (sparc*-*-solaris2*): Reflect this.
31913 (i[34567]86-*-solaris2*): Use it.
31914
31915 2010-04-09 Steve Ellcey <sje@cup.hp.com>
31916
31917 * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
31918 setup_clocks_p.
31919 (final_emit_insn_group_barriers): Remove unused variable prev_insn.
31920
31921 2010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
31922
31923 PR 42965
31924 * diagnostic.c (diagnostic_initialize): Initialize
31925 some_warnings_are_errors.
31926 (diagnostic_finish): New.
31927 (diagnostic_action_after_output): Call it before exiting.
31928 (diagnostic_report_diagnostic): Do not print message here. Set
31929 some_warnings_are_errors.
31930 * diagnostic.h (diagnostic_context): Delete
31931 issue_warnings_are_errors_message. Add some_warnings_are_errors.
31932 (diagnostic_finish): Declare.
31933 * toplev.c (toplev_main): Call it before exit.
31934
31935 2010-04-09 Jason Merrill <jason@redhat.com>
31936
31937 PR c++/42623
31938 * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
31939 for incomplete type.
31940
31941 PR c++/41788
31942 * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
31943 based on a warning flag.
31944
31945 2010-04-09 Richard Guenther <rguenther@suse.de>
31946
31947 * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
31948
31949 2010-04-09 Iain Sandoe <iains@gcc.gnu.org>
31950
31951 PR bootstrap/43684
31952 * varasm.c (default_assemble_visibility): Wrap vars that are
31953 set, but unused, by targets without GAS.
31954 * config/rs6000/rs6000.c (paired_emit_vector_compare):
31955 Remove set, but unused, vars.
31956 (rs6000_legitimize_tls_address): Likewise.
31957 (altivec_expand_dst_builtin): Likewise.
31958 * config/darwin.c (machopic_classify_symbol): Likewise.
31959 (machopic_indirection_name): Likewise.
31960
31961 2010-04-09 Uros Bizjak <ubizjak@gmail.com>
31962
31963 * config/i386/i386.md (DWI): New mode iterator.
31964 (S): New mode attribute.
31965 (shift_operand): Ditto.
31966 (shift_immediate_operand): Ditto.
31967 (ashl_input_operand): Ditto.
31968 (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
31969 using SDWIM mode iterator.
31970 (*ashl<mode>3_doubleword): New insn_and_split_pattern. Macroize
31971 pattern from *ashl{di,ti}3_1 and corresponding splitters using
31972 DWI mode iterator.
31973 (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
31974 from corresponding peephole2 patterns.
31975 (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
31976 and x86_64_shift_adj_1 using SWI48 mode iterator.
31977 (x86_shift<mode>_adj_2): Ditto.
31978 (*ashldi3_1_rex64): Split TYPE_LEA pattern.
31979 (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
31980 using SWI48 mode iterator.
31981 (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
31982 *ashldi3_cmp_rex64 using SWI mode iterator.
31983 (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
31984 *ashldi3_cconly_rex64 using SWI mode iterator.
31985 * config/i386/i386.c (ix86_split_ashl): Update for renamed
31986 x86_shift<mode>_adj_{1,2}.
31987 (ix86_split_ashr): Ditto.
31988 (ix86_split_lshr): Ditto.
31989
31990 2010-04-09 Richard Guenther <rguenther@suse.de>
31991
31992 * target.h (builtin_conversion): Pass in input and output types.
31993 * targhooks.c (default_builtin_vectorized_conversion): Adjust.
31994 * targhooks.h (default_builtin_vectorized_conversion): Likewise.
31995 * tree-vect-stmts.c (vectorizable_conversion): Adjust.
31996 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
31997
31998 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
31999 Handle AVX modes.
32000 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
32001
32002 2010-04-09 Richard Guenther <rguenther@suse.de>
32003
32004 PR target/43152
32005 * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
32006
32007 2010-04-09 Richard Guenther <rguenther@suse.de>
32008
32009 * tree-vectorizer.h (struct _stmt_vec_info): Document
32010 that vectype is the type of the LHS.
32011 (supportable_widening_operation, supportable_narrowing_operation):
32012 Get both input and output vector types as arguments.
32013 (vect_is_simple_use_1): Declare.
32014 (get_same_sized_vectype): Likewise.
32015 * tree-vect-loop.c (vect_determine_vectorization_factor):
32016 Set STMT_VINFO_VECTYPE to the vector type of the def.
32017 (vectorizable_reduction): Adjust.
32018 * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
32019 Adjust. Specify the output vector type.
32020 (vect_pattern_recog_1): Adjust.
32021 * tree-vect-stmts.c (get_same_sized_vectype): New function.
32022 (vectorizable_call): Adjust.
32023 (vectorizable_conversion): Likewise.
32024 (vectorizable_operation): Likewise.
32025 (vectorizable_type_demotion): Likewise.
32026 (vectorizable_type_promotion): Likewise.
32027 (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
32028 the def.
32029 (vect_is_simple_use_1): New function.
32030 (supportable_widening_operation): Get both input and output
32031 vector types.
32032 (supportable_narrowing_operation): Likewise.
32033 * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
32034
32035 2010-04-09 Kai Tietz <kai.tietz@onevision.com>
32036
32037 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
32038 __thiscall and _thiscall as predefined macros.
32039 * config/i386/i386.c (ix86_handle_cconv_attribute): Add
32040 thiscall attribute handling.
32041 (ix86_comp_type_attributes): Likewise.
32042 (ix86_function_regparm): Likewise.
32043 (ix86_return_pops_args): Likewise.
32044 (init_cumulative_args): Likewise.
32045 (find_drap_reg): Likewise.
32046 (ix86_static_chain): Likewise.
32047 (x86_this_parameter): Likewise.
32048 (x86_output_mi_thunk): Likewise.
32049 (ix86_attribute_table): Add description for thiscall attribute.
32050 * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
32051 * doc/extend.texi: Add documentation for thiscall.
32052
32053 2010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
32054
32055 PR c++/28584
32056 * c.opt (Wint-to-pointer-cast): Available in C++.
32057 * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
32058
32059 2010-04-08 Eric Botcazou <ebotcazou@adacore.com>
32060
32061 * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
32062 * calls.c (expand_call): Pass the function type to aggregate_value_p.
32063 * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
32064 the target function of a CALL_EXPR. Honor TREE_ADDRESSABLE on the
32065 function type instead. Reorder and simplify checks.
32066
32067 * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
32068
32069 2010-04-08 Jing Yu <jingyu@google.com>
32070 Zdenek Dvorak <ook@ucw.cz>
32071
32072 PR tree-optimization/42720
32073 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
32074 loop unswitch conditions here from ...
32075 (tree_unswitch_single_loop): ... here.
32076
32077 2010-04-08 Sebastian Pop <sebastian.pop@amd.com>
32078
32079 * tree-if-conv.c: Fix comments and simplify logic.
32080
32081 2010-04-08 Sebastian Pop <sebastian.pop@amd.com>
32082
32083 * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
32084 (tree_if_conversion): Same. Update call to if_convertible_loop_p.
32085 (main_tree_if_conversion): Update call to tree_if_conversion.
32086
32087 2010-04-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
32088
32089 PR 42485
32090 * doc/invoke.texi (-b,-V): Delete.
32091 * doc/tm.texi: Do not mention -b.
32092 * gcc.c (display_help): Delete -b and -V.
32093 (process_command): Delete -b and -V.
32094 * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
32095
32096 2010-04-08 Christian Borntraeger <borntraeger@de.ibm.com>
32097 Wolfgang Gellerich <gellerich@de.ibm.com>
32098
32099 Implement target hook for loop unrolling
32100 * target.h (loop_unroll_adjust): Add a new target hook function.
32101 * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
32102 * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
32103 * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
32104 (s390_loop_unroll_adjust): Implement the new target hook for s390.
32105 * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
32106 target hook.
32107 (decide_unroll_stupid): Likewise.
32108
32109 2010-04-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32110
32111 PR target/43643
32112 * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
32113
32114 2010-04-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32115
32116 * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
32117 (Specific, *-*-solaris2*): Likewise.
32118 Don't prefer Sun as over GNU as.
32119
32120 2010-04-08 Wolfgang Gellerich <gellerich@de.ibm.com>
32121
32122 * config/s390/s390.c (override_options): Adjust the z10 defaults
32123 for max-unroll-times, max-completely-peeled-insns
32124 and max-completely-peel-times.
32125
32126 2010-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
32127
32128 * config/s390/s390.c (s390_expand_movmem): Issue prefetch
32129 instructions for z10.
32130 (s390_expand_setmem): Likewise.
32131 (s390_expand_cmpmem): Likewise.
32132
32133 2010-04-08 Richard Guenther <rguenther@suse.de>
32134
32135 PR tree-optimization/43679
32136 * tree-ssa-pre.c (eliminate): Only propagate copies.
32137
32138 2010-04-08 Jakub Jelinek <jakub@redhat.com>
32139
32140 PR bootstrap/43681
32141 * expr.c (block_move_libcall_safe_for_call_parm): Avoid
32142 set but not used variable warning.
32143
32144 2010-04-08 Wei Guozhi <carrot@google.com>
32145
32146 PR target/41653
32147 * config/arm/arm.c (thumb1_size_rtx_costs): New function.
32148 (arm_size_rtx_costs): Call the new function when optimized for size.
32149
32150 2010-04-08 Jakub Jelinek <jakub@redhat.com>
32151
32152 PR debug/43670
32153 * cfgexpand.c (expand_debug_expr): If for non-NULL offset
32154 op0 is not a MEM, just return NULL instead of assertion
32155 failure.
32156 (discover_nonconstant_array_refs): Don't walk debug stmts.
32157
32158 2010-04-08 Doug Kwan <dougkwan@google.com>
32159
32160 * configure.ac: Recognize gold and do not use its version number
32161 to test ld features.
32162 * configure: Regenerate.
32163
32164 2010-04-08 Maxim Kuvyrkov <maxim@codesourcery.com>
32165
32166 PR middle-end/40815
32167 * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
32168 (negate_value): Move code to push elements to broken_up_substracts ...
32169 (eliminate_plus_minus_pair): ... here. Push operands that have no
32170 negative pair to plus_negates.
32171 (repropagate_negates, init_reassoc, fini_reassoc): Update.
32172
32173 2010-04-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
32174
32175 * doc/install.texi (Configuration): Move description of
32176 --enable-lto, --with-libelf*, --enable-gold from Java section to
32177 general section.
32178
32179 * doc/generic.texi (Working with declarations)
32180 (Function Properties, C and C++ Trees): Fix typos.
32181 * doc/sourcebuild.texi (Top Level): Likewise.
32182
32183 2010-04-07 Jakub Jelinek <jakub@redhat.com>
32184
32185 PR c/18624
32186 * tree.h (DECL_READ_P): Define.
32187 (struct tree_decl_common): Add decl_read_flag.
32188 * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
32189 a set but not used warning.
32190 (merge_decls): Merge DECL_READ_P flag.
32191 (finish_decl, build_compound_literal): Set DECL_READ_P flag.
32192 (finish_function): Issue -Wunused-but-set-parameter diagnostics.
32193 * c-common.c (handle_used_attribute, handle_unused_attribute):
32194 Likewise.
32195 * c-tree.h (default_function_array_read_conversion, mark_exp_read):
32196 New prototypes.
32197 * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
32198 New functions.
32199 (default_conversion, c_process_expr_stmt): Call mark_exp_read.
32200 * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
32201 c_parser_binary_expression, c_parser_cast_expression,
32202 c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
32203 Call default_function_array_read_conversion instead of
32204 default_function_array_conversion where needed.
32205 (c_parser_unary_expression, c_parser_conditional_expression,
32206 c_parser_postfix_expression_after_primary, c_parser_initelt):
32207 Likewise. Call mark_exp_read where needed.
32208 (c_parser_statement_after_labels, c_parser_asm_operands,
32209 c_parser_typeof_specifier, c_parser_sizeof_expression,
32210 c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
32211 where needed.
32212 * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
32213 New.
32214 * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
32215 (warn_unused_but_set_parameter): Default to warn_unused
32216 && extra_warnings.
32217 * doc/invoke.texi: Document -Wunused-but-set-variable and
32218 -Wunused-but-set-parameter.
32219
32220 * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
32221 used count variable.
32222 * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
32223 when operandN variables aren't used in the body of the expander
32224 or splitter.
32225 * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
32226 FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
32227 * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
32228 * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
32229 FOR_EACH_IMM_USE_ON_STMT): Likewise.
32230 * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
32231 * tree.c (PROCESS_ARG): Likewise.
32232
32233 2010-04-07 Simon Baldwin <simonb@google.com>
32234
32235 * diagnostic.h (diagnostic_override_option_index): New macro to
32236 set a diagnostic's option_index.
32237 * c-tree.h (c_cpp_error): Add warning reason argument.
32238 * opts.c (_warning_as_error_callback): New.
32239 (register_warning_as_error_callback): Store callback for
32240 warnings enabled via enable_warning_as_error.
32241 (enable_warning_as_error): Call callback, minor code tidy.
32242 * opts.h (register_warning_as_error_callback): Declare.
32243 * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
32244 response to -Werror=.
32245 (c_common_init_options): Register warning_as_error_callback in opts.c.
32246 * common.opt: Add -Wno-cpp option.
32247 * c-common.c (struct reason_option_codes_t): Map cpp warning
32248 reason codes to gcc option indexes.
32249 * (c_option_controlling_cpp_error): New function, lookup the gcc
32250 option index for a cpp warning reason code.
32251 * (c_cpp_error): Add warning reason argument, call
32252 c_option_controlling_cpp_error for diagnostic_override_option_index.
32253 * doc/invoke.texi: Document -Wno-cpp.
32254
32255 2010-04-07 Richard Guenther <rguenther@suse.de>
32256
32257 * ipa-reference.c (mark_load): Use get_base_address.
32258 (mark_store): Likewise.
32259
32260 * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
32261 inserting GIMPLE_NOPs into the IL.
32262 * tree-ssa-structalias.c (get_constraint_for_component_ref):
32263 Explicitly strip handled components and indirect references.
32264
32265 * fold-const.c (fold_unary_loc): Do not strip qualifiers when
32266 folding address expressions.
32267 * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
32268 * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
32269 operand_equal_p to compare decls.
32270 (ptr_deref_may_alias_decl_p): Likewise.
32271 * tree-ssa-operands.c (get_asm_expr_operands): Simplify
32272 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
32273 Handle reversed comparison ops.
32274 * tree-sra.c (asm_visit_addr): Use get_base_address.
32275 * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
32276 * ipa-reference.c (mark_address): Use get_base_address.
32277
32278 2010-04-07 Richard Guenther <rguenther@suse.de>
32279
32280 * tree-ssa-forwprop.c (forward_propagate_addr_expr):
32281 Propagate constants everywhere.
32282
32283 2010-04-07 Jakub Jelinek <jakub@redhat.com>
32284
32285 PR debug/43516
32286 * tree.c (MAX_INT_CACHED_PREC): Define.
32287 (nonstandard_integer_type_cache): New array.
32288 (build_nonstandard_integer_type): Cache results for precision
32289 <= MAX_INT_CACHED_PREC.
32290
32291 2010-04-07 Richard Guenther <rguenther@suse.de>
32292
32293 * doc/invoke.texi (-fargument-alias, -fargument-noalias,
32294 -fargument-noalias-global, -fargument-noalias-anything): Remove.
32295 * common.opt: Likewise.
32296 * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
32297 * alias.c (base_alias_check): Remove flag_argument_noalias handling.
32298 (nonoverlapping_memrefs_p): Likewise.
32299 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
32300 * opts.c (common_handle_option): Handle OPT_fargument_alias,
32301 OPT_fargument_noalias, OPT_fargument_noalias_anything and
32302 OPT_fargument_noalias_global for backward compatibility.
32303
32304 2010-04-07 Richard Guenther <rguenther@suse.de>
32305
32306 PR tree-optimization/43270
32307 * tree-vrp.c (check_array_ref): Fix flexible array member detection.
32308 * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
32309 * tree-ssa-pre.c (phi_translate_1): Adjust.
32310 (fully_constant_expression): Split out vn_reference handling to ...
32311 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
32312 Fold reads from constant strings.
32313 (vn_reference_lookup): Handle fully constant references.
32314 (vn_reference_lookup_pieces): Likewise.
32315 * Makefile.in (expmed.o-warn): Add -Wno-error.
32316
32317 2010-04-07 Martin Jambor <mjambor@suse.cz>
32318
32319 * tree-sra.c (find_param_candidates): Allow scalar va_list types.
32320
32321 2010-04-07 Iain Sandoe <iains@gcc.gnu.org>
32322
32323 PR driver/41594
32324 * gcc.c: Add -static-libstdc++ to list of recognized options.
32325
32326 2010-04-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32327
32328 * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
32329
32330 2010-04-07 Richard Guenther <rguenther@suse.de>
32331
32332 PR middle-end/42617
32333 * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
32334 bases build simple mem attributes to retain points-to information.
32335
32336 2010-04-07 Richard Guenther <rguenther@suse.de>
32337
32338 PR middle-end/42617
32339 * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
32340 preserve points-to related information.
32341
32342 2010-04-07 Richard Guenther <rguenther@suse.de>
32343
32344 PR middle-end/42617
32345 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
32346 discard plain indirect references.
32347 * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
32348 * tree.c (tree_nop_conversion): Likewise.
32349
32350 2010-04-07 Dodji Seketeli <dodji@redhat.com>
32351
32352 PR debug/43628
32353 * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
32354
32355 2010-04-06 Kai Tietz <kai.tietz@onevision.com>
32356
32357 * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
32358 calling convention attributes on METHOD_TYPEs for w64 ABI, too.
32359
32360 2010-04-07 Sebastian Pop <sebastian.pop@amd.com>
32361
32362 * tree-if-conv.c: Fix indentation and comments.
32363
32364 2010-04-07 Sebastian Pop <sebastian.pop@amd.com>
32365
32366 * tree-if-conv.c: Sort static functions in topological order.
32367
32368 2010-04-07 Sebastian Pop <sebastian.pop@amd.com>
32369
32370 * tree-if-conv.c: Fix indentation and comments.
32371
32372 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
32373
32374 PR middle-end/43519
32375 * graphite-clast-to-gimple.c (max_signed_precision_type): Use
32376 lang_hooks.types.type_for_size instead of
32377 build_nonstandard_integer_type.
32378 When converting an unsigned type to signed, double its precision.
32379 (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
32380 (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
32381 (graphite_create_new_loop_guard): When ub + 1 wraps around,
32382 use lb <= ub.
32383
32384 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
32385
32386 PR middle-end/43519
32387 * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
32388 POINTER_PLUS_EXPR for pointer types.
32389
32390 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
32391
32392 PR middle-end/43519
32393 * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
32394 * graphite-clast-to-gimple.c: Include langhooks.h.
32395 (max_signed_precision_type): New.
32396 (max_precision_type): Takes two types as arguments.
32397 (precision_for_value): New.
32398 (precision_for_interval): New.
32399 (gcc_type_for_interval): New.
32400 (gcc_type_for_value): New.
32401 (gcc_type_for_clast_term): New.
32402 (gcc_type_for_clast_red): New.
32403 (gcc_type_for_clast_bin): New.
32404 (gcc_type_for_clast_expr): Split up into several functions.
32405 (gcc_type_for_clast_eq): Rewritten.
32406 (compute_bounds_for_level): New.
32407 (compute_type_for_level_1): New.
32408 (compute_type_for_level): New.
32409 (gcc_type_for_cloog_iv): Removed.
32410 (gcc_type_for_iv_of_clast_loop): Rewritten.
32411 (graphite_create_new_loop): Compute the lower and upper bound types
32412 with gcc_type_for_clast_expr.
32413 (graphite_create_new_loop_guard): Same.
32414 (find_cloog_iv_in_expr): Removed.
32415 (compute_cloog_iv_types_1): Removed.
32416 (compute_cloog_iv_types): Removed.
32417 (gloog): Do not call compute_cloog_iv_types.
32418 * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
32419 GBB_CLOOG_IV_TYPES.
32420 (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
32421 * sese.h (struct gimple_bb): Removed field cloog_iv_types.
32422 (GBB_CLOOG_IV_TYPES): Removed.
32423
32424 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
32425
32426 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
32427 gimple_phi_num_args of the loop close SSA phi node is equal to 1.
32428 (detect_commutative_reduction): Same.
32429
32430 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
32431
32432 * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
32433 call to verify_ssa. Invoke verify_loop_closed_ssa with an extra
32434 argument.
32435 * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
32436 * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
32437 (rewrite_commutative_reductions_out_of_ssa): Same.
32438 * passes.c (execute_function_todo): Call verify_ssa for every pass
32439 in the LNO. Invoke verify_loop_closed_ssa with an extra argument.
32440 * tree-flow.h (verify_loop_closed_ssa): Update declaration.
32441 * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
32442 with an extra argument.
32443 * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same. Call
32444 verify_ssa only when the extra argument is true.
32445 (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
32446 with an extra argument.
32447 (tree_transform_and_unroll_loop): Same.
32448
32449 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
32450
32451 * passes.c (execute_function_todo): Call verify_loop_closed_ssa
32452 for all the passes of the LNO having LOOP_CLOSED_SSA.
32453 * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
32454 * tree-loop-distribution.c (pass_loop_distribution): Same.
32455 * tree-pass.h (TODO_verify_loops): Removed.
32456 * tree-ssa-loop.c (pass_tree_loop_init): Same.
32457 (pass_lim): Same.
32458 (pass_tree_unswitch): Same.
32459 (pass_predcom): Same.
32460 (pass_vectorize): Same.
32461 (pass_linear_transform): Same.
32462 (pass_graphite_transforms): Same.
32463 (pass_iv_canon): Same.
32464 (pass_complete_unroll): Same.
32465 (pass_complete_unrolli): Same.
32466 (pass_parallelize_loops): Same.
32467 (pass_loop_prefetch): Same.
32468 (pass_iv_optimize): Same.
32469
32470 2010-04-06 Changpeng Fang <changpeng.fang@amd.com>
32471
32472 PR middle-end/32824
32473 * passes.c (init_optimization_passes): Move pass_lim before
32474 pass_copy_prop and pass_dce_loop.
32475
32476 2010-04-06 Jakub Jelinek <jakub@redhat.com>
32477
32478 PR target/43667
32479 * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
32480 instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
32481 (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
32482 MULTI_* defines for 4 argument vpermil2p* builtins.
32483
32484 2010-04-06 Uros Bizjak <ubizjak@gmail.com>
32485
32486 * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
32487 * config/i386/i386.c (x86_maybe_negate_const_int): New.
32488 (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
32489 * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
32490 *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
32491 *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
32492 *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
32493 Use x86_maybe_negate_const_int to output insn mnemonic.
32494 (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto. Remove overflow
32495 check from instruction predicate. Update comments.
32496 * config/i386/sync.md (sync_add<mode>): Use
32497 x86_maybe_negate_const_int to output insn mnemonic.
32498
32499 2010-04-06 Jan Hubicka <jh@suse.cz>
32500
32501 PR tree-optimization/42906
32502 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
32503 IGNORE_SELF argument. Set visited_control_parents for fully
32504 processed BBs.
32505 (find_obviously_necessary_stmts): Update call of
32506 mark_control_dependent_edges_necessary.
32507 (propagate_necessity): Likewise. Handle PHI edges more curefully.
32508
32509 2010-04-06 Uros Bizjak <ubizjak@gmail.com>
32510
32511 * config/i386/i386.md: Remove comment about 'e' and 'E'
32512 operand modifier.
32513
32514 2010-04-06 Richard Guenther <rguenther@suse.de>
32515
32516 PR tree-optimization/43627
32517 * tree-vrp.c (extract_range_from_unary_expr): Widenings
32518 of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
32519 not varying.
32520
32521 2010-04-06 Jakub Jelinek <jakub@redhat.com>
32522
32523 * BASE-VER: Change to 4.6.0.
32524
32525 PR target/43638
32526 * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
32527 handling.
32528
32529 2010-04-06 Richard Guenther <rguenther@suse.de>
32530
32531 PR middle-end/43661
32532 * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
32533
32534 2010-04-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
32535
32536 * doc/invoke.texi (Optimize Options): Document that LTO
32537 won't remove object access purely due to incompatible
32538 declarations.
32539
32540 2010-04-04 Matthias Klose <doko@ubuntu.com>
32541
32542 * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
32543 Initialize variable.
32544
32545 2010-04-03 Richard Guenther <rguenther@suse.de>
32546
32547 PR middle-end/42509
32548 * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
32549 require a non-NULL MEM_OFFSET.
32550
32551 2010-04-02 Steven Bosscher <steven@gcc.gnu.org>
32552
32553 * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
32554 basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
32555 collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
32556 config/alpha/predicates.md, config/arm/arm.md,
32557 config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
32558 config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
32559 config/darwin9.h, config/darwin.c, config/darwin.h,
32560 config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
32561 config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
32562 config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
32563 config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
32564 config/mips/mips.md, config/mn10300/mn10300.c,
32565 config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
32566 config/rs6000/aix.h, config/rs6000/dfp.md,
32567 config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
32568 config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
32569 config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
32570 config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
32571 config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
32572 config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
32573 c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
32574 diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
32575 doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
32576 doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
32577 fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
32578 gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
32579 graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
32580 graphite-dependences.c, graphite-poly.c, graphite-poly.h,
32581 graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
32582 graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
32583 intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
32584 ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
32585 ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
32586 loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
32587 objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
32588 opt-functions.awk, opth-gen.awk, params.def, passes.c,
32589 postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
32590 rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
32591 store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
32592 tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
32593 tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
32594 tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
32595 tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
32596 tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
32597 tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
32598 tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
32599 tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
32600 tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
32601 tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
32602 unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
32603
32604 2010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
32605
32606 PR other/43620
32607 * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
32608 * aclocal.m4: Regenerate.
32609
32610 2010-04-02 Richard Guenther <rguenther@suse.de>
32611
32612 PR tree-optimization/43629
32613 * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
32614 if we have seen a constant value.
32615
32616 2010-04-02 Joseph Myers <joseph@codesourcery.com>
32617
32618 * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
32619
32620 2010-04-02 Richard Earnshaw <rearnsha@arm.com>
32621
32622 PR target/43469
32623 * arm.c (legitimize_tls_address): Adjust call to
32624 gen_tls_load_dot_plus_four.
32625 (arm_note_pic_base): New function.
32626 (arm_cannot_copy_insn_p): Use it.
32627 * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
32628 constraint.
32629
32630 2010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
32631
32632 PR bootstrap/43531
32633
32634 Revert:
32635 2009-09-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
32636
32637 * Makefile.in ($(out_object_file)): Depend on
32638 gt-$(basename $(notdir $(out_file))).h.
32639
32640 2010-04-01 Ralf Corsépius <ralf.corsepius@rtems.org>
32641
32642 * config.gcc (lm32-*-rtems*): Add t-lm32.
32643
32644 2010-04-01 Joel Sherrill <joel.sherrill@oarcorp.com>
32645
32646 * config.gcc: Add lm32-*-rtems*.
32647 * config/lm32/rtems.h: New file.
32648
32649 2010-04-01 Dave Korn <dave.korn.cygwin@gmail.com>
32650
32651 PR target/42609
32652 * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
32653
32654 2010-04-01 Jakub Jelinek <jakub@redhat.com>
32655
32656 * dwarf2out.c (output_compilation_unit_header): For
32657 -gdwarf-4 use version 4 instead of version 3.
32658 (output_line_info): For version 4 and above emit additional
32659 maximum ops per insn header field.
32660 (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
32661
32662 * dwarf2out.c (is_c_family, is_java): Remove.
32663 (lower_bound_default): New function.
32664 (add_bound_info, gen_descr_array_type_die): Use it.
32665
32666 2010-04-01 Dodji Seketeli <dodji@redhat.com>
32667
32668 PR debug/43325
32669 * dwarf2out.c (gen_variable_die): Allow debug info for variable
32670 re-declaration when it happens in a function.
32671
32672 2010-04-01 Aldy Hernandez <aldyh@redhat.com>
32673
32674 * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
32675 (cgraph_remove_function_insertion_hook): Same.
32676 (cgraph_call_function_insertion_hooks): Same.
32677
32678 2010-04-01 Richard Guenther <rguenther@suse.de>
32679
32680 PR middle-end/43614
32681 * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
32682 and TREE_THIS_VOLATILE.
32683 (copy_ref_info): Likewise.
32684 * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
32685 * tree.c (build6_stat): Ignore side-effects of all but arg5
32686 for TARGET_MEM_REF. Set TREE_THIS_VOLATILE from arg5 of
32687 TARGET_MEM_REF.
32688
32689 2010-04-01 Richard Guenther <rguenther@suse.de>
32690
32691 PR tree-optimization/43607
32692 * ipa-type-escape.c (check_call): Do not access non-existing
32693 arguments.
32694
32695 2010-04-01 Richard Guenther <rguenther@suse.de>
32696
32697 PR middle-end/43602
32698 Revert
32699 2010-03-30 Seongbae Park <seongbae.park@gmail.com>
32700 Jack Howarth <howarth@bromo.med.uc.edu>
32701
32702 * tree-profile.c (tree_init_ic_make_global_vars): Make static
32703 variables TLS.
32704
32705 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32706
32707 * doc/install.texi (Prerequisites): Document libelf usability on
32708 IRIX 5/6 and Solaris 2.
32709 (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
32710 Update GNU as, GNU ld requirements.
32711 (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
32712 Document Sun Studio compiler download.
32713 Update and simplify as, ld recommendations.
32714 (Specific, *-*-solaris2.7): Note obsoletion, removal.
32715
32716 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32717
32718 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
32719 with_tune_32 to pentium4.
32720
32721 2010-04-01 Uros Bizjak <ubizjak@gmail.com>
32722
32723 * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
32724
32725 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32726
32727 * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
32728 obsoletion, removal.
32729 Update IDO URL.
32730 Document GNU as requirement.
32731 Update configure requirements.
32732 (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
32733 Recomment IRIX 6.5.18+.
32734 Document IDF/IDL requirement.
32735 Document GNU as requirement.
32736 Document GNU ld bootstrap failure.
32737 Remove freeware.sgi.com reference.
32738
32739 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32740
32741 * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
32742 UNIX V4.0, V5.0 obsoletion, removal.
32743 Remove --with-gc=simple reference.
32744 Update VM requirements during bootstrap.
32745 Remove -oldas bootstrap description.
32746 Update binutils reference.
32747 Remove comparison failure note.
32748
32749 2010-03-31 Richard Guenther <rguenther@suse.de>
32750 Zdenek Dvorak <ook@ucw.cz>
32751 Sebastian Pop <sebastian.pop@amd.com>
32752
32753 PR middle-end/43464
32754 * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
32755 with multiple arguments.
32756 (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
32757
32758 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
32759
32760 * graphite-dependences.c (print_pddr): Call print_pdr with an
32761 extra argument.
32762 * graphite-poly.c (debug_pdr): Add an extra argument for the
32763 verbosity level.
32764 (print_pdr): Same.
32765 (print_pbb_domain): Same.
32766 (print_pbb): Same.
32767 (print_scop_context): Same.
32768 (print_scop): Same.
32769 (print_cloog): Same.
32770 (debug_pbb_domain): Same.
32771 (debug_pbb): Same.
32772 (print_pdrs): Same.
32773 (debug_pdrs): Same.
32774 (debug_scop_context): Same.
32775 (debug_scop): Same.
32776 (debug_cloog): Same.
32777 (print_scop_params): Same.
32778 (debug_scop_params): Same.
32779 (print_iteration_domain): Same.
32780 (print_iteration_domains): Same.
32781 (debug_iteration_domain): Same.
32782 (debug_iteration_domains): Same.
32783 (print_scattering_function): Same.
32784 (print_scattering_functions): Same.
32785 (debug_scattering_function): Same.
32786 (debug_scattering_functions): Same.
32787 * graphite-poly.h (debug_pdr): Update declaration.
32788 (print_pdr): Same.
32789 (print_pbb_domain): Same.
32790 (print_pbb): Same.
32791 (print_scop_context): Same.
32792 (print_scop): Same.
32793 (print_cloog): Same.
32794 (debug_pbb_domain): Same.
32795 (debug_pbb): Same.
32796 (print_pdrs): Same.
32797 (debug_pdrs): Same.
32798 (debug_scop_context): Same.
32799 (debug_scop): Same.
32800 (debug_cloog): Same.
32801 (print_scop_params): Same.
32802 (debug_scop_params): Same.
32803 (print_iteration_domain): Same.
32804 (print_iteration_domains): Same.
32805 (debug_iteration_domain): Same.
32806 (debug_iteration_domains): Same.
32807 (print_scattering_function): Same.
32808 (print_scattering_functions): Same.
32809 (debug_scattering_function): Same.
32810 (debug_scattering_functions): Same.
32811
32812 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
32813
32814 * graphite-poly.c (print_scattering_function_1): New.
32815 (print_scattering_function): Call it.
32816 (print_scop_params): Remove spaces at the end of lines.
32817 (print_cloog): New.
32818 (debug_cloog): New.
32819 * graphite-poly.h (print_cloog): Declared.
32820 (debug_cloog): Declared.
32821
32822 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
32823
32824 * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
32825 in loop->header.
32826 * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
32827 * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
32828 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
32829 to switch between adding the IV bump in loop->latch or in loop->header.
32830
32831 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
32832
32833 * graphite-poly.c (print_scattering_function): Pretty print following
32834 the scoplib format.
32835 (print_pdr): Same.
32836 (print_pbb_domain): Same.
32837 (dump_gbb_cases): Same.
32838 (dump_gbb_conditions): Same.
32839 (print_pdrs): Same.
32840 (print_pbb): Same.
32841 (print_scop_params): Same.
32842 (print_scop_context): Same.
32843 (print_scop): Same.
32844 (print_pbb_body): New.
32845 (lst_indent_to): New.
32846 (print_lst): Start new lines with a #.
32847 * graphite-poly.h (pbb_bb): New.
32848 (pbb_index): Use pbb_bb.
32849 * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
32850 disjuncts.
32851 * tree-data-ref.c (dump_data_reference): Start new lines with a #.
32852
32853 2010-03-31 Jakub Jelinek <jakub@redhat.com>
32854
32855 * dwarf2out.c (size_of_die): For -gdwarf-4 use
32856 uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
32857 and 0 instead of 1 for dw_val_class_flag.
32858 (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
32859 dw_val_class_range_list, dw_val_class_loc_list,
32860 dw_val_class_lineptr and dw_val_class_macptr, use
32861 DW_FORM_flag_present for dw_val_class_flag and
32862 DW_FORM_exprloc for dw_val_class_loc.
32863 (output_die): For -gdwarf-4 print dw_val_class_loc
32864 size as uleb128 instead of 1 or 2 bytes and don't print
32865 anything for dw_val_class_flag.
32866
32867 * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
32868 instead of cselib_lookup following by tweaking locs->setting_insn.
32869
32870 PR bootstrap/43596
32871 * cselib.c (cselib_process_insn): Clear cselib_current_insn
32872 even before returning from label, setjmp call or volatile asm
32873 handling.
32874
32875 2010-03-31 Richard Guenther <rguenther@suse.de>
32876
32877 PR middle-end/43600
32878 * cgraphunit.c (cgraph_output_in_order): Do not allocate
32879 temporary data on stack.
32880
32881 2010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32882
32883 * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
32884 (PUSHSECTION_ASM_OP): Remove.
32885 (POPSECTION_ASM_OP): Remove.
32886 (PUSHSECTION_FORMAT): Remove.
32887 * config/sol2.h (PUSHSECTION_FORMAT): Define.
32888 * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
32889 * config/sol2.c (solaris_output_init_fini): Use it.
32890
32891 2010-03-31 Jie Zhang <jie@codesourcery.com>
32892
32893 PR 43574
32894 * opt-functions.awk (var_type_struct): Use signed char type
32895 for simple variables.
32896
32897 2010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32898
32899 * config/sol2.c: Include output.h.
32900 (solaris_assemble_visibility): New function.
32901 * config/t-sol2 (sol2.o): Add output.h dependency.
32902 * config/sol2-protos.h (solaris_assemble_visibility): Declare.
32903 * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
32904 Redefine.
32905
32906 2010-03-31 Jakub Jelinek <jakub@redhat.com>
32907
32908 PR target/43580
32909 * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
32910 V2SImode or XFmode on PRE_DEC.
32911
32912 PR debug/43557
32913 * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
32914 BLKmode.
32915
32916 2010-03-31 Jie Zhang <jie@codesourcery.com>
32917
32918 PR 43562
32919 * reload.h (caller_save_initialized_p): Declare.
32920 * toplev.c (backend_init_target): Don't call
32921 init_caller_save but set caller_save_initialized_p to false.
32922 * caller-save.c (caller_save_initialized_p): Define.
32923 (init_caller_save): Check caller_save_initialized_p.
32924 * ira.c (ira): Call init_caller_save if flag_caller_saves.
32925
32926 2010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32927
32928 PR target/39048
32929 * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
32930 and soft-fp/t-softfp to tmake_file.
32931 * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
32932 (LIBGCC2_TF_CEXT): Define.
32933 (TF_SIZE): Define.
32934
32935 2010-03-30 Alexandre Oliva <aoliva@redhat.com>
32936
32937 PR debug/42977
32938 * cselib.c (n_useless_values): Document handling of debug locs.
32939 (n_useless_debug_values, n_debug_values): New variables.
32940 (new_elt_loc_list): Don't add to debug values, keep count.
32941 (promote_debug_loc): New.
32942 (cselib_reset_table): Zero new variables.
32943 (entry_and_rtx_equal_p): Promote debug locs.
32944 (discard_useless_locs): Increment n_useless_debug_values for
32945 debug values.
32946 (remove_useless_values): Adjust n_useless_values and n_debug_values
32947 with n_useless_debug_values.
32948 (add_mem_for_addr): Promote debug locs.
32949 (cselib_lookup_mem): Likewise.
32950 (cselib_lookup_addr): Renamed to...
32951 (cselib_lookup_addr_1): ... this. Promote debug locs. Don't call...
32952 (cselib_log_lookup): ... this. Turn into...
32953 (cselib_lookup_addr): ... new wrapper.
32954 (cselib_lookup_from_insn): New.
32955 (cselib_invalidate_regno): Increment n_useless_debug_values for
32956 debug values.
32957 (cselib_invalidate_mem): Likewise.
32958 (cselib_process_insn): Take n_deleted and n_debug_values into
32959 account to guard remove_useless_value call.
32960 (cselib_finish): Zero n_useless_debug_values.
32961 * cselib.h (cselib_lookup_from_insn): Declare.
32962 * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
32963 (sched_analyze_2): Likewise.
32964
32965 2010-03-30 Jakub Jelinek <jakub@redhat.com>
32966
32967 * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
32968 functions.
32969 (adjust_mems): Replace narrowing SUBREG of expression containing
32970 just PLUS, MINUS, MULT and ASHIFT of registers and constants
32971 with operations in the narrower mode.
32972
32973 PR debug/43593
32974 * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
32975 regs_invalidated_by_call instead all call_used_reg_set registers.
32976
32977 2010-03-30 Sebastian Pop <sebastian.pop@amd.com>
32978
32979 PR middle-end/43430
32980 * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
32981 pointer comparisons with types_compatible_p.
32982 * tree-vect-stmts.c (vectorizable_call): Same.
32983 (vectorizable_condition): Same.
32984
32985 2010-03-30 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
32986
32987 * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
32988 stack check if the mask would be zero.
32989
32990 2010-03-30 Seongbae Park <seongbae.park@gmail.com>
32991 Jack Howarth <howarth@bromo.med.uc.edu>
32992
32993 * tree-profile.c (tree_init_ic_make_global_vars): Make static
32994 variables TLS.
32995
32996 2010-03-30 Joseph Myers <joseph@codesourcery.com>
32997
32998 PR other/25232
32999 * libgcc-std.ver (GCC_4.5.0): Define version. Include __unordxf2
33000 and __unordtf2.
33001 * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
33002 Include ___unordxf2 and ___unordtf2.
33003 * config/i386/libgcc-glibc.ver: Do not define inheritance from
33004 GCC_4.4.0 here.
33005
33006 2010-03-30 Tarik Graba <tarik.graba@telecom-paristech.fr>
33007
33008 * config/lm32/t-lm32: New file.
33009 * config.gcc: Use the above file when targetting lm32.
33010
33011 2010-03-28 Duncan Sands <baldrick@free.fr>
33012
33013 * Makefile.in (PLUGIN_HEADERS): Add except.h.
33014
33015 2010-03-29 Sebastian Pop <sebastian.pop@amd.com>
33016
33017 PR middle-end/43431
33018 * tree-vect-loop.c (vect_estimate_min_profitable_iters):
33019 Improve vectorization cost model diagnostic.
33020
33021 2010-03-29 Sebastian Pop <sebastian.pop@amd.com>
33022
33023 PR middle-end/43436
33024 * tree-vect-data-refs.c (vect_analyze_data_refs): When
33025 compute_data_dependences_for_loop returns false, early exit
33026 and output an extra diagnostic for the failed data reference
33027 analysis.
33028
33029 2010-03-29 Richard Guenther <rguenther@suse.de>
33030
33031 PR tree-optimization/43560
33032 * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
33033 (can_sm_ref_p): Treat stores to readonly locations as trapping.
33034
33035 2010-03-29 Jie Zhang <jie@codesourcery.com>
33036
33037 PR 43564
33038 * toplev.c (process_options): Set optimization_default_node
33039 and optimization_current_node.
33040 * opts.c (decode_options): Don't set optimization_default_node
33041 and optimization_current_node.
33042
33043 2010-03-29 Ralf Corsépius <ralf.corsepius@rtems.org>
33044
33045 * config/rtems.h: Abandon -qrtems_debug.
33046
33047 2010-03-28 Jan Hubicka <jh@suse.cz>
33048
33049 PR tree-optimization/43505
33050 * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
33051 map should not be copied.
33052
33053 2010-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
33054
33055 PR middle-end/41674
33056 * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
33057 cdtors, set DECL_PRESERVE_P.
33058 * ipa.c (cgraph_externally_visible_p): Return true if declaration
33059 should be preseved.
33060
33061 2010-03-27 Uros Bizjak <ubizjak@gmail.com>
33062
33063 PR tree-optimization/43528
33064 * stor-layout.c (place_field): Check that constant fits into
33065 unsigned HWI when skipping calculation of MS bitfield layout.
33066
33067 2010-03-27 Jan Hubicka <jh@suse.cz>
33068
33069 PR middle-end/43391
33070 * varasm.c (make_decl_rtl): Deal with COMMON flag to make
33071 notice_global_symbol work.
33072
33073 2010-03-27 Jakub Jelinek <jakub@redhat.com>
33074
33075 * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
33076 instead of dwarf2out_decl.
33077 (struct var_loc_node): Remove section_label field.
33078 (dwarf2out_function_decl): New function.
33079 (dwarf2out_var_location): Don't set section_label field.
33080 (dwarf2out_begin_function): Don't empty decl_loc_table here.
33081
33082 2010-03-26 Michael Meissner <meissner@linux.vnet.ibm.com>
33083
33084 PR tree-optimization/43544
33085 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
33086 First argument for builtin vectorized function hook is now a
33087 tree to be able to distinguish between machine specific and
33088 standard builtins.
33089 * targhooks.c (default_builtin_vectorized_function): Ditto.
33090 * targhooks.h (default_builtin_vectorized_function): Ditto.
33091 * target.h (struct gcc_target): Ditto.
33092 * tree-vect-stmts.c (vectorizable_function): Ditto.
33093 * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
33094 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
33095 Ditto.
33096
33097 2010-03-26 Joseph Myers <joseph@codesourcery.com>
33098
33099 PR c/43381
33100 * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
33101 nested binding iff it is a FUNCTION_DECL.
33102 (store_parm_decls_newstyle): Pass nested=true to bind for
33103 FUNCTION_DECLs amongst parameters.
33104
33105 2010-03-26 Jakub Jelinek <jakub@redhat.com>
33106
33107 * var-tracking.c (vt_expand_loc_callback): Don't run
33108 cselib_expand_value_rtx_cb in dummy mode if
33109 cselib_dummy_expand_value_rtx_cb returned false.
33110
33111 * var-tracking.c (emit_note_insn_var_location): For one part
33112 notes with offset 0, don't add EXPR_LIST around the location.
33113 * dwarf2out.c (loc_descriptor, dw_loc_list_1,
33114 add_location_or_const_value_attribute): Adjust for that change.
33115
33116 PR debug/43540
33117 * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
33118 into first operand and location into second.
33119 (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
33120 dw_cfi_oprnd_loc for DW_CFA_expression.
33121 (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
33122 (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
33123 assume first argument is regnum and second argument is location.
33124
33125 2010-03-26 Uros Bizjak <ubizjak@gmail.com>
33126
33127 PR target/42113
33128 * config/alpha/alpha.md (*cmp_sadd_si): Change mode
33129 of scratch register to DImode. Split to DImode comparison operator.
33130 Use SImode subreg of scratch register in the multiplication.
33131 (*cmp_sadd_sidi): Ditto.
33132 (*cmp_ssub_si): Ditto.
33133 (*cmp_ssub_sidi): Ditto.
33134
33135 2010-03-26 Uros Bizjak <ubizjak@gmail.com>
33136
33137 PR target/43524
33138 * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
33139 Remove invalid assert and wrong comment.
33140
33141 2010-03-26 Jakub Jelinek <jakub@redhat.com>
33142
33143 PR debug/43516
33144 * flags.h (final_insns_dump_p): New extern.
33145 * final.c (final_insns_dump_p): New variable.
33146 (rest_of_clean_state): Set it before -fdump-final-insns=
33147 dumping, clear afterwards.
33148 * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
33149 MEM_ALIAS_SET on MEMs.
33150
33151 2010-03-26 David S. Miller <davem@davemloft.net>
33152
33153 * configure.ac: Fix sparc GOTDATA_OP bug check.
33154 * configure: Rebuild.
33155
33156 2010-03-26 Alan Modra <amodra@gmail.com>
33157
33158 * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
33159
33160 2010-03-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33161
33162 * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
33163 TLS_SECTION_ASM_FLAG.
33164
33165 2010-03-25 Jakub Jelinek <jakub@redhat.com>
33166
33167 PR bootstrap/43511
33168 * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
33169 Clear first_function_block_is_cold.
33170
33171 PR c/43385
33172 * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
33173 argument if the argument is truth_value_p.
33174
33175 2010-03-24 Michael Meissner <meissner@linux.vnet.ibm.com>
33176
33177 * config/rs6000/constraints.md: Update copyright year for my changes.
33178
33179 PR target/43484
33180 * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
33181 used in reg+reg addressing, swap registers.
33182
33183 2010-03-24 Jakub Jelinek <jakub@redhat.com>
33184
33185 PR debug/43293
33186 * target.h (struct gcc_target): Add code_end hook.
33187 * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
33188 if not yet defined.
33189 (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
33190 * toplev.c (compile_file): Call targetm.asm_out.code_end
33191 hook before unwind info/debug info output.
33192 * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
33193 * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
33194 (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
33195 * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
33196 (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
33197 * config/i386/i386.c (ix86_file_end): Renamed to...
33198 (ix86_code_end): ... this. Make static. Don't call
33199 file_end_indicate_exec_stack. Emit unwind info using
33200 final_start_function/final_end_function.
33201 (darwin_x86_file_end): Remove.
33202 (TARGET_ASM_CODE_END): Define.
33203 * config/i386/i386.h (TARGET_ASM_FILE_END,
33204 NEED_INDICATE_EXEC_STACK): Don't define.
33205 * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
33206 (TARGET_ASM_FILE_END): Define to darwin_file_end.
33207 * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
33208 * doc/tm.texi (TARGET_ASM_CODE_END): Document.
33209
33210 PR target/43498
33211 * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
33212 at the beginning and final_end_function at the end.
33213 * config/s390/s390.c (s390_output_mi_thunk): Likewise.
33214
33215 2010-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33216
33217 * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
33218 and Sun as TLS syntax.
33219 (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
33220 * configure: Regenerate.
33221 * config.in: Regenerate.
33222 * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
33223 (default_elf_asm_named_section): Use it.
33224 * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
33225 (i386_output_dwarf_dtprel): Likewise.
33226 (output_addr_const_extra): Likewise.
33227 (output_pic_addr_const): Lowercase @GOTTPOFF.
33228 (output_addr_const_extra): Likewise.
33229 (output_pic_addr_const): Lowercase @GOTNTPOFF.
33230 (output_addr_const_extra): Likewise.
33231 (output_pic_addr_const): Lowercase @INDNTPOFF.
33232 (output_addr_const_extra): Likewise.
33233 (output_pic_addr_const): Lowercase @NTPOFF.
33234 (output_addr_const_extra): Likewise.
33235 (output_pic_addr_const): Lowercase @TPOFF.
33236 (output_addr_const_extra): Likewise.
33237 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
33238 (*tls_global_dynamic_64): Likewise.
33239 (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
33240 (*tls_local_dynamic_base_64): Lowercase @TLSLD.
33241
33242 * defaults.h (TLS_COMMON_ASM_OP): Provide default.
33243 (ASM_OUTPUT_TLS_COMMON): Use it.
33244 * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
33245
33246 PR target/38118
33247 * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
33248 * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
33249 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
33250 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
33251 * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
33252 (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
33253
33254 2010-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33255
33256 * config/i386/i386.c (override_options): Don't accept
33257 -mtls-dialect=sun any longer.
33258 * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
33259 * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
33260 (*tls_local_dynamic_base_32_sun): Likewise.
33261 * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
33262
33263 2010-03-24 Jakub Jelinek <jakub@redhat.com>
33264
33265 PR debug/43508
33266 * dwarf2out.c (mem_loc_descriptor): Don't ICE on
33267 VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
33268
33269 PR debug/43479
33270 * ira.c (adjust_cleared_regs): New function.
33271 (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
33272
33273 PR debug/19192
33274 PR debug/43479
33275 * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
33276 from gimple_block.
33277 * expr.c (expand_expr_real): Restore previous
33278 curr_insn_source_location and curr_insn_block after
33279 expand_expr_real_1 call.
33280 (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
33281 instead of expand_expr_real_1.
33282
33283 2010-03-23 Vladimir Makarov <vmakarov@redhat.com>
33284
33285 PR rtl-optimization/43413
33286 * ira-color.c (setup_allocno_available_regs_num): Count prohibited
33287 hard regs too.
33288
33289 2010-03-22 James E. Wilson <wilson@codesourcery.com>
33290
33291 PR target/43348
33292 * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
33293 call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
33294
33295 2010-03-22 H.J. Lu <hongjiu.lu@intel.com>
33296
33297 * config/i386/i386.c (ix86_target_string): Add -mfma.
33298 Fix a typo in comment.
33299
33300 2010-03-22 Mike Stump <mikestump@comcast.net>
33301
33302 PR target/23071
33303 * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
33304 Don't overly align based upon packed packed fields.
33305
33306 2010-03-22 Jason Merrill <jason@redhat.com>
33307
33308 * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
33309 Use () rather than [], and move before the element type.
33310
33311 2010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33312
33313 * doc/configfiles.texi (Configuration Files): Removed
33314 fixinc/Makefile*, intl/Makefile.*.
33315 * doc/makefile.texi: Fixed markup. Abstract from version
33316 control system used.
33317 (Makefile): Removed obsolete java/parse.y example.
33318 * doc/sourcebuild.texi: Likewise.
33319 (Top Level): Added config, gnattools, libdecnumber, libgcc,
33320 libgomp, libssp. Removed fastjar.
33321 (Miscellaneous Docs): Clarify location.
33322 Added COPYING3, COPYING3.LIB.
33323 (Front End Directory): Moved Make-lang.in entry to new subsubsection.
33324
33325 2010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33326
33327 PR target/38085
33328 * config/i386/i386.c (x86_function_profiler)
33329 [!NO_PROFILE_COUNTERS]: Fix typo.
33330 * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
33331 instead of callq.
33332
33333 2010-03-22 Janis Johnson <janis187@us.ibm.com>
33334 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33335
33336 * doc/sourcebuild.texi (Test Directives): Split into six
33337 subsections, with most of the current text in new subsections
33338 Directives, Selectors, and Final Actions.
33339 (Directives): Split list of test directives into multiple
33340 subsubsections.
33341 (Selectors): Describe use and syntax of selectors.
33342 (Effective-Target Keywords): Describe all existing keywords.
33343 (Add Options): Describe features for dg-add-options.
33344 (Require Support): Describe variants of dg-require-support.
33345 (Final Actions): Describe commands to use in dg-final.
33346
33347 2010-03-22 Michael Matz <matz@suse.de>
33348
33349 PR middle-end/43475
33350 * recog.c (validate_replace_rtx_group): Replace also in
33351 REG_EQUAL and REG_EQUIV notes.
33352
33353 2010-03-22 Richard Guenther <rguenther@suse.de>
33354
33355 PR tree-optimization/43390
33356 * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
33357 sure vector extracts are type correct.
33358
33359 2010-03-22 Richard Guenther <rguenther@suse.de>
33360
33361 PR middle-end/40106
33362 * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
33363 x * sqrt (x) even when optimizing for size if the target
33364 has native support for sqrt.
33365
33366 2010-03-22 Jakub Jelinek <jakub@redhat.com>
33367
33368 * varasm.c (make_decl_rtl_for_debug): Also clear
33369 flag_mudflap for the duration of make_decl_rtl call.
33370
33371 PR debug/43443
33372 * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
33373 locs from preserved VALUEs.
33374
33375 2010-03-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
33376
33377 PR middle-end/42718
33378 * pa.md (movmemsi): Set align to one if zero.
33379 (movmemdi): Likewise.
33380
33381 2010-03-21 Richard Earnshaw <rearnsha@arm.com>
33382
33383 PR target/42321
33384 * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
33385 with their corresponding prologue pushes.
33386
33387 2010-03-20 Andrew Pinski <pinskia@gmail.com>
33388
33389 PR target/43156
33390 * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
33391 at the begining or end.
33392 (spu_expand_epilogue): Likewise.
33393
33394 2010-03-20 Richard Guenther <rguenther@suse.de>
33395
33396 PR rtl-optimization/43438
33397 * combine.c (make_extraction): Properly zero-/sign-extend an
33398 extraction of the low part of a CONST_INT. Also handle
33399 CONST_DOUBLE.
33400
33401 2010-03-19 Mike Stump <mikestump@comcast.net>
33402
33403 * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
33404 * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
33405 (override_options): Use SUBTARGET32_DEFAULT_CPU.
33406
33407 2010-03-19 Andrew Pinski <andrew_pinski@caviumnetworks.com>
33408
33409 PR c/43211
33410 * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
33411 an error.
33412
33413 2010-03-19 Bernd Schmidt <bernds@codesourcery.com>
33414
33415 PR rtl-optimization/42258
33416 * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
33417 use that may match DEF.
33418
33419 PR target/40697
33420 * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
33421 the cost of loading the constant rather than assuming
33422 COSTS_N_INSNS (1).
33423 * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
33424 outer code is AND, do the same tests as the andsi3 expander and
33425 return COSTS_N_INSNS (1) if and is cheap.
33426
33427 * optabs.c (avoid_expensive_constant): Fix formatting.
33428
33429 2010-03-19 Michael Matz <matz@suse.de>
33430
33431 PR c++/43116
33432 * attribs.c (decl_attributes): When rebuilding a function pointer
33433 type use the same qualifiers as the original pointer type.
33434
33435 2010-03-19 Martin Jambor <mjambor@suse.cz>
33436
33437 * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
33438 and is_gimple_ip_invariant_address.
33439
33440 2010-03-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
33441
33442 Revert
33443 2009-10-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
33444
33445 * config/arm/arm.c (arm_override_options): Turn off
33446 flag_dwarf2_cfi_asm for AAPCS variants.
33447
33448 2010-03-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
33449
33450 PR target/43399
33451 * config/arm/arm.c (emit_multi_reg_push): Update comments.
33452 Use PRE_MODIFY instead of PRE_DEC.
33453 (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
33454 (vfp_emit_fstmd): Likewise.
33455
33456 2010-03-19 Michael Matz <matz@suse.de>
33457
33458 PR target/43305
33459 * builtins.c (expand_builtin_interclass_mathfn,
33460 expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
33461 if that fails.
33462
33463 2010-03-19 Richard Guenther <rguenther@suse.de>
33464
33465 PR tree-optimization/43415
33466 * tree-ssa-pre.c (phi_translate): Split out worker to ...
33467 (phi_translate_1): ... this.
33468 (phi_translate): Move all caching here. Cache all NARY
33469 and REFERENCE translations.
33470
33471 2010-03-19 David S. Miller <davem@davemloft.net>
33472
33473 With help from Eric Botcazou.
33474 * config/sparc/sparc.c: Include dwarf2out.h.
33475 (emit_pic_helper): Delete.
33476 (pic_helper_symbol_name): Delete.
33477 (pic_helper_emitted_p): Delete.
33478 (pic_helper_needed): New.
33479 (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
33480 (get_pc_thunk_name): New.
33481 (load_pic_register): Remove 'delay_pic_helper' arg. Use
33482 get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
33483 Set pic_helper_needed to true. Don't call emit_pic_helper.
33484 (sparc_expand_prologue): Update load_pic_register call.
33485 (sparc_output_mi_thunk): Likewise.
33486 (sparc_file_end): Emit a hidden comdat symbol for the PIC
33487 thunk if possible. Output CFI information as needed.
33488
33489 2010-03-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
33490 Jack Howarth <howarth@bromo.med.uc.edu>
33491
33492 PR target/36399
33493 * config/i386/i386.h: Fix ABI on darwin x86-32.
33494
33495 2010-03-18 Aldy Hernandez <aldyh@redhat.com>
33496
33497 * tree.h: Declare make_decl_rtl_for_debug.
33498 * varasm.c (make_decl_rtl_for_debug): New.
33499 * dwarf2out.c (rtl_for_decl_location): Call it.
33500 * cfgexpand.c (expand_debug_expr): Call it.
33501
33502 2010-03-18 Jakub Jelinek <jakub@redhat.com>
33503
33504 PR bootstrap/43399
33505 * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
33506 mem_mode.
33507
33508 PR bootstrap/43403
33509 * var-tracking.c (vt_init_cfa_base): Do nothing if
33510 cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
33511
33512 2010-03-18 Alexandre Oliva <aoliva@redhat.com>
33513
33514 PR debug/42873
33515 * var-tracking.c (canonicalize_vars_star): New.
33516 (dataflow_post_merge_adjust): Use it.
33517
33518 2010-03-18 Jakub Jelinek <jakub@redhat.com>
33519
33520 PR debug/43058
33521 * var-tracking.c (non_suitable_const): New function.
33522 (add_uses): For DEBUG_INSNs with constants, don't record any
33523 value, instead just the constant value itself.
33524 (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
33525 is not VAR_LOC_UNKNOWN_P, set var to the constant.
33526 (emit_notes_in_bb): Likewise.
33527 (emit_note_insn_var_location): For onepart variables if
33528 cur_loc is a VOIDmode constant, use DECL_MODE.
33529
33530 2010-03-18 Martin Jambor <mjambor@suse.cz>
33531
33532 PR middle-end/42450
33533 * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
33534 * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
33535 all non-clones. Moved call redirection...
33536 (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
33537 (cgraph_materialize_all_clones): Dispose of all
33538 combined_args_to_skip bitmaps.
33539 (verify_cgraph_node): Do not check for edges pointing to wrong
33540 nodes in inline clones.
33541 * tree-inline.c (copy_bb): Call
33542 cgraph_redirect_edge_call_stmt_to_callee.
33543 * ipa.c (cgraph_remove_unreachable_nodes): Call
33544 cgraph_node_remove_callees even when there are used clones.
33545
33546 2010-03-18 H.J. Lu <hongjiu.lu@intel.com>
33547
33548 * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
33549
33550 2010-03-18 H.J. Lu <hongjiu.lu@intel.com>
33551
33552 PR target/43383
33553 * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
33554 for 32bit.
33555
33556 2010-03-18 Michael Matz <matz@suse.de>
33557
33558 PR middle-end/43419
33559 * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
33560 into sqrt(x) if we need to preserve signed zeros.
33561
33562 2010-03-18 Steven Bosscher <steven@gcc.gnu.org>
33563 Eric Botcazou <ebotcazou@adacore.com>
33564
33565 PR rtl-optimization/43360
33566 * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
33567 note if we don't know its invariant status.
33568
33569 2010-03-18 Michael Matz <matz@suse.de>
33570
33571 PR tree-optimization/43402
33572 * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
33573 PHI chains of ssa names registered for update.
33574
33575 2010-03-17 Peter Bergner <bergner@vnet.ibm.com>
33576
33577 PR target/42427
33578 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
33579 non-offsettable and pre_modify update addressing.
33580 * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
33581 and "2" alternatives "#".
33582 (*movdd_softfloat32): Make all alternatives "#";
33583 * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
33584 (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
33585 (*movdf_softfloat32): Make all alternatives "#";
33586 (movdi): Use the new DIFD mode iterator to create a common splitter
33587 for movdi, movdf and movdd patterns.
33588
33589 2010-03-18 Shujing Zhao <pearly.zhao@oracle.com>
33590
33591 * common.opt (dumpdir): Remove redundant tab.
33592
33593 2010-03-17 Martin Jambor <mjambor@suse.cz>
33594
33595 PR tree-optimization/43347
33596 * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
33597 original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
33598
33599 2010-03-17 Bernd Schmidt <bernd.schmidt@analog.com>
33600
33601 PR rtl-optimization/42216
33602 * regrename.c (create_new_chain): New function, broken out from...
33603 (scan_rtx_reg): ... here. Call it. Handle the case where we are
33604 appending a use to an empty chain.
33605 (build_def_use): Remove previous changes that convert OP_INOUT to
33606 OP_OUT operands; instead detect the case where an OP_INOUT operand
33607 uses a previously untracked register and create an empty chain for it.
33608
33609 2010-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
33610
33611 * doc/extend.texi (Function Attributes): Rewrite unfinished
33612 sentence in ms_abi documentation.
33613
33614 2010-03-17 Alan Modra <amodra@gmail.com>
33615
33616 * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
33617 * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
33618 (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
33619 * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
33620
33621 2010-03-16 Richard Henderson <rth@redhat.com>
33622
33623 PR middle-end/43365
33624 * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
33625 (lower_try_finally): Save and restore eh_seq around the expansion
33626 of the try-finally.
33627
33628 2010-03-16 Aldy Hernandez <aldyh@redhat.com>
33629
33630 * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
33631 statements before splitting block.
33632
33633 2010-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33634
33635 * doc/sourcebuild.texi (Testsuites): Fix markup.
33636 Use pathnames relative to gcc/testsuite.
33637 (Test Directives): Move description of how timeout is determined.
33638 (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
33639 (C Tests): Correct gcc.misc-tests directory.
33640 Framework tests now live in gcc.test-framework.
33641
33642 2010-03-16 Richard Guenther <rguenther@suse.de>
33643
33644 PR middle-end/43379
33645 * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
33646 operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
33647
33648 2010-03-16 Aldy Hernandez <aldyh@redhat.com>
33649 Alexandre Oliva <aoliva@redhat.com>
33650
33651 PR tree-optimization/42917
33652 * lambda-code.c (remove_iv): Skip debug statements.
33653 (lambda_loopnest_to_gcc_loopnest): Likewise.
33654 (not_interesting_stmt): Debug statements are not interesting.
33655
33656 2010-03-16 Jakub Jelinek <jakub@redhat.com>
33657
33658 PR debug/43051
33659 PR debug/43092
33660 * cselib.c (cselib_preserve_constants,
33661 cfa_base_preserved_val): New static variables.
33662 (preserve_only_constants): New function.
33663 (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
33664 clear its REG_VALUES. If cselib_preserve_constants, don't
33665 empty the whole hash table, but preserve there VALUEs with constants,
33666 cfa_base_preserved_val and cfa_base_preserved_val plus constant.
33667 (cselib_preserve_cfa_base_value): New function.
33668 (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
33669 (cselib_init): Change argument to int bitfield. Set
33670 cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
33671 is in it.
33672 (cselib_finish): Clear cselib_preserve_constants and
33673 cfa_base_preserved_val.
33674 * cselib.h (enum cselib_record_what): New enum.
33675 (cselib_init): Change argument to int.
33676 (cselib_preserve_cfa_base_value): New prototype.
33677 * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
33678 * dse.c (dse_step1): Likewise.
33679 * cfgcleanup.c (thread_jump): Likewise.
33680 * sched-deps.c (sched_analyze): Likewise.
33681 * gcse.c (local_cprop_pass): Likewise.
33682 * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
33683 If FN is non-NULL, call the callback always and whenever it returns
33684 non-NULL just return that. Only do rtx_equal_p if FN is NULL.
33685 * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
33686 * combine.c (propagate_for_debug_subst): Add old_rtx argument,
33687 compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
33688 * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
33689 * var-tracking.c: Include recog.h.
33690 (bb_stack_adjust_offset): Remove.
33691 (vt_stack_adjustments): Don't call it, instead just gather the
33692 adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
33693 (adjust_stack_reference): Remove.
33694 (compute_cfa_pointer): New function.
33695 (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
33696 (struct adjust_mem_data): New type.
33697 (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
33698 functions.
33699 (get_address_mode): New function.
33700 (replace_expr_with_values): Use it.
33701 (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
33702 Use get_address_mode. For cfa_base_rtx return MO_CLOBBER.
33703 (adjust_sets): Remove.
33704 (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
33705 Use get_address_mode.
33706 (get_adjusted_src): Remove.
33707 (add_stores): Don't call it. Never reuse expr SET. Don't add extra
33708 MO_VAL_USE for cfa_base_rtx plus constant. Use get_address_mode.
33709 (add_with_sets): Don't call adjust_sets.
33710 (fp_setter, vt_init_cfa_base): New functions.
33711 (vt_initialize): Change return type to bool. Move most of pool etc.
33712 initialization to the beginning of the function from end. Pass
33713 CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
33714 If !frame_pointer_needed, call vt_stack_adjustment before mos
33715 vector is filled, call vt_init_cfa_base if argp/framep has been
33716 eliminated to sp. If frame_pointer_needed and argp/framep has
33717 been eliminated to hard frame pointer, set
33718 hard_frame_pointer_adjustment and call vt_init_cfa_base after
33719 encountering fp setter in the prologue. For MO_ADJUST, call
33720 log_op_type before pusing the op into mos vector, not afterwards.
33721 Call adjust_insn before cselib_process_insn/add_with_sets,
33722 call cancel_changes (0) afterwards.
33723 (variable_tracking_main_1): Adjust for vt_initialize calling
33724 vt_stack_adjustments and returning whether it succeeded or not.
33725
33726 2010-03-15 Aldy Hernandez <aldyh@redhat.com>
33727
33728 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
33729 debug statements.
33730
33731 2010-03-15 Jakub Jelinek <jakub@redhat.com>
33732
33733 * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
33734 has been set.
33735 (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
33736 drap_reg has not been set.
33737
33738 2010-03-15 Michael Matz <matz@suse.de>
33739
33740 PR middle-end/43300
33741 * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
33742 use it to expand block copies.
33743 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
33744 insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
33745 (insert_value_copy_on_edge): Use store_expr for BLKmode values.
33746
33747 2010-03-15 Richard Guenther <rguenther@suse.de>
33748
33749 PR tree-optimization/43367
33750 * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
33751 elimination check.
33752
33753 2010-03-15 Richard Guenther <rguenther@suse.de>
33754
33755 PR tree-optimization/43317
33756 * ipa-struct-reorg.c (create_new_general_access): Update stmt.
33757
33758 2010-03-15 Martin Jambor <mjambor@suse.cz>
33759
33760 PR tree-optimization/43141
33761 * tree-sra.c (create_abstract_origin): New function.
33762 (modify_function): Call create_abstract_origin.
33763
33764 2010-03-15 Chris Demetriou <cgd@google.com>
33765
33766 * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
33767 wasn't copied.
33768
33769 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
33770
33771 PR middle-end/43354
33772 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
33773 call insert_out_of_ssa_copy for default definitions.
33774
33775 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
33776
33777 * graphite-clast-to-gimple.c (my_long_long): Defined.
33778 (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
33779 * graphite-sese-to-poly.c (my_long_long): Defined.
33780 (scop_ivs_can_be_represented): Use it.
33781
33782 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
33783
33784 * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
33785 graphite-max-bbs-per-function, and loop-block-tile-size.
33786 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
33787 with "maximum".
33788 (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
33789
33790 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
33791
33792 * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
33793 forward declaration.
33794 * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
33795 (add_upper_bounds_from_estimated_nit): New.
33796 (build_loop_iteration_domains): Use it.
33797
33798 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
33799
33800 * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
33801
33802 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
33803
33804 PR middle-end/43306
33805 * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
33806 should be an INTEGER_CST. Also handle CASE_CONVERT.
33807
33808 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
33809
33810 * graphite.c (graphite_initialize): To bound the number of bbs per
33811 function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
33812 * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
33813 * doc/invoke.texi: Document it.
33814
33815 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
33816
33817 * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
33818 * graphite-sese-to-poly.h (build_poly_scop): Same.
33819
33820 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
33821
33822 * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
33823 the number of parameters in the scop. Use as an upper bound
33824 PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
33825 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
33826 * doc/invoke.texi: Document it.
33827
33828 2010-03-13 Jerry Quinn <jlquinn@optonline.net>
33829
33830 * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
33831 * doc/c-tree.texi: Remove.
33832 * doc/generic.texi: Merge c-tree.texi here.
33833 * doc/gccint.texi (Trees): Remove menu entry.
33834 (c-tree.texi): Remove @include.
33835 * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
33836 * doc/languages.texi (Reading RTL): Ditto.
33837
33838 2010-03-12 Steve Ellcey <sje@cup.hp.com>
33839
33840 PR target/42869
33841 * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
33842
33843 2010-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
33844
33845 PR middle-end/42431
33846 * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
33847 code added to work around reload clobbering CONST insns.
33848
33849 2010-03-12 Jakub Jelinek <jakub@redhat.com>
33850
33851 * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
33852 (cselib_preserve_definitely, cselib_clear_preserve): Remove.
33853 (cselib_preserve_only_values): Remove retain argument, don't
33854 traverse hash table with cselib_{preserve_definitely,clear_preserve}.
33855 * cselib.h (cselib_preserve_only_values): Remove retain argument.
33856 * var-tracking.c (micro_operation): Move insn field before union.
33857 Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
33858 (struct variable_tracking_info_def): Remove n_mos field, change
33859 mos into a vector of micro_operations.
33860 (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
33861 (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
33862 compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
33863 changing into a vector.
33864 (add_with_sets): Likewise. Ensure MO_VAL_USE uops from add_stores
33865 come before all other uops generated by add_stores.
33866 (vt_add_function_parameters): Adjust for cselib_preserve_only_values
33867 argument removal.
33868 (vt_initialize): Likewise. Adjust for VTI (bb)->mos changing into
33869 a vector. Run just one pass over the bbs instead of separate counting
33870 and computation phase.
33871 (vt_finalize): Free VTI (bb)->mos vector instead of array.
33872
33873 PR debug/43329
33874 * tree-inline.c (remap_decls): Put old_var rather than origin_var
33875 into *nonlocalized_list vector.
33876 * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
33877 even if origin is non-NULL.
33878 (gen_variable_die): Likewise.
33879 (process_scope_var): Don't change origin.
33880 (gen_decl_die): Likewise.
33881 * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
33882 before adding new edges instead of after it, fix moving over
33883 debug stmts.
33884
33885 2010-03-11 David S. Miller <davem@davemloft.net>
33886
33887 * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
33888 of four.
33889 * configure: Rebuild.
33890
33891 2010-03-11 Martin Jambor <mjambor@suse.cz>
33892
33893 PR tree-optimization/43257
33894 * tree.c (assign_assembler_name_if_neeeded): New function.
33895 (free_lang_data_in_cgraph): Assembler name assignment moved to the
33896 above new function.
33897 * tree.h (assign_assembler_name_if_neeeded): Declare.
33898 * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
33899 the function if needed.
33900
33901 2010-03-11 Chris Demetriou <cgd@google.com>
33902
33903 * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
33904 include/stdint-gcc.h, and include/stdint.h world-readable.
33905
33906 2010-03-11 Richard Guenther <rguenther@suse.de>
33907
33908 PR tree-optimization/43255
33909 * tree-vrp.c (process_assert_insertions_for): Do not insert
33910 asserts for trivial conditions.
33911
33912 2010-03-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
33913
33914 PR tree-optimization/43280
33915 * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
33916 generation. Move calculation of size out of the if branch.
33917 (find_bswap): Modify compare number generation.
33918
33919 2010-03-11 Richard Guenther <rguenther@suse.de>
33920
33921 PR lto/43200
33922 * lto-streamer-in.c (maybe_fixup_decls): Simplify.
33923 (input_gimple_stmt): Fixup handled component types during
33924 operand read. Also fix up decls in ADDR_EXPRs.
33925
33926 2010-03-10 Eric Botcazou <ebotcazou@adacore.com>
33927
33928 * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
33929 * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
33930
33931 2010-03-10 Jan Hubicka <jh@suse.cz>
33932
33933 PR c/43288
33934 * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
33935 * varasm.c (get_variable_section): Don't do that here...
33936 (make_decl_rtl): ... and here.
33937 (do_assemble_alias): Produce decl RTL.
33938 (assemble_alias): Likewise.
33939
33940 2010-03-10 Jakub Jelinek <jakub@redhat.com>
33941
33942 PR debug/43290
33943 * reg-notes.def (REG_CFA_SET_VDRAP): New note.
33944 * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
33945 of fde->vdrap_reg.
33946 (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
33947 (based_loc_descr): Only express drap or vdrap regno based expressions
33948 using DW_OP_fbreg when not optimizing.
33949 * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
33950 make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
33951 REG_CFA_SET_VDRAP note.
33952
33953 2010-03-10 Alexander Monakov <amonakov@ispras.ru>
33954
33955 PR tree-optimization/43236
33956 * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
33957 error in calculation of base address in reverse iteration case.
33958 (generate_builtin): Take number of latch executions if the statement
33959 is in the latch.
33960
33961 2010-03-10 Andrey Belevantsev <abel@ispras.ru>
33962
33963 PR middle-end/42859
33964 * tree-eh.c: Include pointer-set.h.
33965 (lower_eh_dispatch): Filter out duplicate case labels and
33966 remove the unneeded edge when the label is unused. Return
33967 true when some edges are removed.
33968 (execute_lower_eh_dispatch): When any lowering resulted in
33969 removing an edge, also delete unreachable blocks.
33970
33971 2010-03-10 Jakub Jelinek <jakub@redhat.com>
33972
33973 PR bootstrap/43287
33974 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
33975 UNSPEC_MACHOPIC_OFFSET.
33976
33977 2010-03-09 Andreas Schwab <schwab@linux-m68k.org>
33978
33979 PR target/43294
33980 * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
33981 (m68k_delegitimize_address): New function.
33982
33983 2010-03-09 Jakub Jelinek <jakub@redhat.com>
33984
33985 PR debug/43299
33986 * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
33987
33988 PR debug/43299
33989 * var-tracking.c (adjust_sets): New function.
33990 (count_with_sets, add_with_sets): Use it.
33991 (get_adjusted_src): New inline function.
33992 (add_stores): Use it.
33993
33994 PR debug/43304
33995 * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
33996 call cselib_dummy_expand_value_rtx_cb instead of
33997 cselib_expand_value_rtx_cb.
33998
33999 PR debug/43293
34000 * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
34001 * config/i386/i386.c: Include debug.h and dwarf2out.h.
34002 (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
34003 and .cfi_endproc around the pic thunks.
34004 (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
34005 all queued unwind info register saves are saved before the call.
34006 For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
34007 considered as sp-=4 for unwind info and the pop as sp+=4 which
34008 also clobbers dest, but doesn't actually restore it.
34009
34010 PR debug/43290
34011 * config/i386/i386.c (ix86_get_drap_rtx): Don't set
34012 RTX_FRAME_RELATED_P.
34013
34014 2010-03-09 Jie Zhang <jie@codesourcery.com>
34015
34016 * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
34017 whitespaces in output template.
34018
34019 2010-03-09 Jie Zhang <jie@codesourcery.com>
34020
34021 * ira-lives.c (check_and_make_def_use_conflict): Don't fall
34022 out array boundary.
34023
34024 2010-03-08 Jakub Jelinek <jakub@redhat.com>
34025
34026 * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
34027 builtins.exp in a separate job.
34028
34029 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
34030
34031 * graphite-sese-to-poly.c (add_param_constraints): Use
34032 lower_bound_in_type and upper_bound_in_type.
34033
34034 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
34035
34036 * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
34037 instead of unsigned_type_node.
34038
34039 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
34040 Reza Yazdani <reza.yazdani@amd.com>
34041
34042 PR middle-end/43065
34043 * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
34044 on pointer type parameters.
34045
34046 2010-03-08 Tobias Grosser <grosser@fim.uni-passau.de>
34047
34048 PR middle-end/42644
34049 PR middle-end/42130
34050 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
34051 handle conversions from pointer to integers.
34052 (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
34053 induction variable, to be able to work with code generated by CLooG.
34054 * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
34055 (build_poly_scop): Bail out if we cannot codegen a loop.
34056
34057 2010-03-08 Tobias Grosser <grosser@fim.uni-passau.de>
34058
34059 * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
34060 code generation with gloog_error.
34061
34062 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
34063
34064 * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
34065 Call fold_convert on all the returned values.
34066 (expand_scalar_variables_expr): Pass to
34067 expand_scalar_variables_ssa_name the type of the resulting expression.
34068
34069 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
34070
34071 * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
34072 ppl_min_for_le_pointset.
34073 Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
34074 * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
34075
34076 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
34077
34078 * graphite-dependences.c (map_into_dep_poly): Removed.
34079 (dependence_polyhedron_1): Use combine_context_id_scat.
34080
34081 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
34082
34083 * graphite-poly.h (struct poly_scattering): Add layout documentation.
34084 (struct poly_bb): Same.
34085 (combine_context_id_scat): New.
34086
34087 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
34088
34089 PR middle-end/42326
34090 * sese.c (name_defined_in_loop_p): Return false for default
34091 definitions.
34092
34093 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
34094
34095 * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
34096 and clean up the logic.
34097
34098 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
34099
34100 * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
34101 early return.
34102
34103 2010-03-08 Jakub Jelinek <jakub@redhat.com>
34104
34105 * var-tracking.c (remove_cselib_value_chains): Define only for
34106 ENABLE_CHECKING.
34107 (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
34108 delete_slot_part, emit_notes_for_differences_1): Don't call
34109 remove_cselib_value_chains here.
34110 (set_slot_part, emit_notes_for_differences_2): Don't call
34111 add_cselib_value_chains here.
34112 (preserved_values): New vector.
34113 (preserve_value): New function.
34114 (add_uses, add_stores, vt_add_function_parameters): Use it
34115 instead of cselib_preserve_value.
34116 (changed_values_stack): New vector.
34117 (check_changed_vars_0): New function.
34118 (check_changed_vars_1, check_changed_vars_2): Use it.
34119 (emit_notes_for_changes): Call set_dv_changed (*, false) on all
34120 changed_values_stack VALUEs.
34121 (vt_emit_notes): For all preserved_values call
34122 add_cselib_value_chains. If ENABLE_CHECKING call
34123 remove_cselib_value_chains before verifying value_chains is empty.
34124 Initialize and free changed_values_stack.
34125 (vt_initialize): Initialize preserved_values.
34126 (vt_finalize): Free preserved_values.
34127
34128 2010-03-08 Richard Guenther <rguenther@suse.de>
34129
34130 PR tree-optimization/43269
34131 * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
34132 region detection.
34133
34134 2010-03-08 Martin Jambor <mjambor@suse.cz>
34135
34136 * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
34137 (ipa_is_param_called): Removed.
34138 * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
34139 (ipa_print_node_params): Do not print the called flag.
34140 (ipa_write_node_info): Do not stream the called flag.
34141 (ipa_read_node_info): Likewise.
34142
34143 2010-03-07 Jakub Jelinek <jakub@redhat.com>
34144
34145 PR debug/43176
34146 * Makefile.in (var-tracking.o): Depend on pointer-set.h.
34147 * cselib.c (struct expand_value_data): Add dummy field.
34148 (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
34149 dummy to false.
34150 (cselib_dummy_expand_value_rtx_cb): New function.
34151 (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
34152 any rtl.
34153 * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
34154 * var-tracking.c: Include pointer-set.h.
34155 (variable): Change n_var_parts to char from int. Add
34156 cur_loc_changed and in_changed_variables fields.
34157 (variable_canonicalize): Remove.
34158 (shared_var_p): New inline function.
34159 (unshare_variable): Maintain cur_loc_changed and
34160 in_changed_variables fields. If var was in changed_variables,
34161 replace it there with new_var. Just copy cur_loc instead of
34162 resetting it to something else.
34163 (variable_union): Don't recompute cur_loc. Use shared_var_p.
34164 (dataflow_set_union): Don't call variable_canonicalize.
34165 (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
34166 of their DEBUG_EXPR_TREE_DECLs.
34167 (canonicalize_loc_order_check): Verify that cur_loc is NULL
34168 and in_changed_variables and cur_loc_changed is false.
34169 (variable_merge_over_cur): Clear cur_loc, in_changed_variables
34170 and cur_loc_changed. Don't update cur_loc here.
34171 (variable_merge_over_src): Don't call variable_canonicalize.
34172 (dataflow_set_preserve_mem_locs): Use shared_var_p. When
34173 removing loc that is equal to cur_loc, clear cur_loc,
34174 set cur_loc_changed and ensure variable_was_changed is called.
34175 (dataflow_set_remove_mem_locs): Use shared_var_p. Only
34176 compare pointers in cur_loc check, if it is equal to loc,
34177 clear cur_loc and set cur_loc_changed. Don't recompute cur_loc here.
34178 (variable_different_p): Remove compare_current_location argument,
34179 don't compare cur_loc.
34180 (dataflow_set_different_1): Adjust variable_different_p caller.
34181 (variable_was_changed): If dv had some var in changed_variables
34182 already, reset in_changed_variables flag for it and propagate
34183 cur_loc_changed over to the new variable. On empty var
34184 always set cur_loc_changed. Set in_changed_variables on whatever
34185 var is added to changed_variables.
34186 (set_slot_part): Clear cur_loc_changed and in_changed_variables.
34187 Use shared_var_p. When removing loc that is equal to cur_loc,
34188 clear cur_loc and set cur_loc_changed. If cur_loc is NULL at the
34189 end, don't set it to something else, just call variable_was_changed.
34190 (delete_slot_part): Use shared_var_p. When cur_loc equals to
34191 loc being removed, clear cur_loc and set cur_loc_changed.
34192 Set cur_loc_changed if all locations have been removed.
34193 (struct expand_loc_callback_data): New type.
34194 (vt_expand_loc_callback): Add dummy mode in which no rtxes are
34195 allocated. Always create SUBREGs if simplify_subreg failed.
34196 Prefer to use cur_loc, when that fails and still in
34197 changed_variables (and seen first time) recompute it. Set
34198 cur_loc_changed of variables which had to change cur_loc and
34199 compute elcd->cur_loc_changed if any of the subexpressions used
34200 had to change cur_loc.
34201 (vt_expand_loc): Adjust to pass arguments in
34202 expand_loc_callback_data structure.
34203 (vt_expand_loc_dummy): New function.
34204 (emitted_notes): New variable.
34205 (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
34206 that weren't used for any other decl in current
34207 emit_notes_for_changes call call vt_expand_loc_dummy to update
34208 cur_loc. For -fno-var-tracking-assignments, set cur_loc to
34209 first loc_chain location if NULL before. Always use just
34210 cur_loc instead of first loc_chain location. When cur_loc_changed
34211 is false, when not --enable-checking=rtl just don't emit any note.
34212 When rtl checking, compute the note and assert it is the same
34213 as previous note. Clear cur_loc_changed and in_changed_variables
34214 at the end before removing from changed_variables.
34215 (check_changed_vars_3): New function.
34216 (emit_notes_for_changes): Traverse changed_vars to call
34217 check_changed_vars_3 on each changed var.
34218 (emit_notes_for_differences_1): Clear cur_loc_changed and
34219 in_changed_variables. Recompute cur_loc of new_var.
34220 (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
34221 (vt_emit_notes): Initialize and destroy emitted_notes.
34222
34223 2010-03-07 Bernd Schmidt <bernd.schmidt@analog.com>
34224
34225 PR rtl-optimization/42220
34226 * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
34227 Use verify_reg_tracked to determine if we should use OP_OUT rather
34228 than OP_INOUT.
34229 (build_def_use): If we see an in-out operand for a register that we
34230 know nothing about, treat is an output if possible, fail the block if
34231 not.
34232
34233 2010-03-06 Alexandre Oliva <aoliva@redhat.com>
34234
34235 PR debug/42897
34236 * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
34237 permanently.
34238
34239 2010-03-06 Alexandre Oliva <aoliva@redhat.com>
34240
34241 PR debug/42897
34242 * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
34243 uses of relevant DEFs that are dead outside the loop too.
34244
34245 2010-03-06 Alexandre Oliva <aoliva@redhat.com>
34246
34247 * var-tracking.c (dataflow_set_merge): Swap src and src2.
34248 Reverted:
34249 2010-01-13 Jakub Jelinek <jakub@redhat.com>
34250 PR debug/41371
34251 * var-tracking.c (values_to_unmark): New variable.
34252 (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
34253 values_to_unmark vector. Moved body to...
34254 (find_loc_in_1pdv_1): ... this. Don't clear VALUE_RECURSED_INTO,
34255 instead queue it into values_to_unmark vector.
34256 (vt_find_locations): Free values_to_unmark vector.
34257
34258 2010-03-05 Eric Botcazou <ebotcazou@adacore.com>
34259
34260 * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
34261 (site.exp): Export them when plugins are enabled.
34262
34263 2010-03-05 Sebastian Pop <sebastian.pop@amd.com>
34264
34265 PR middle-end/42326
34266 * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
34267 that contain scevs.
34268 (chrec_fold_multiply): Same.
34269
34270 2010-03-04 Andrew Pinski <andrew_pinski@caviumnetworks.com>
34271
34272 PR c/43248
34273 * c-decl.c (build_compound_literal): Return early if init is
34274 an error_mark_node.
34275
34276 2010-03-04 Martin Jambor <mjambor@suse.cz>
34277
34278 PR tree-optimization/43164
34279 PR tree-optimization/43191
34280 * tree-sra.c (type_consists_of_records_p): Reject records with
34281 zero-size bit-fields at the end.
34282
34283 2010-03-04 Mike Stump <mikestump@comcast.net>
34284
34285 * Makefile.in (TAGS): Remove *.y.
34286
34287 2010-03-04 Richard Guenther <rguenther@suse.de>
34288
34289 PR tree-optimization/40761
34290 * tree-ssa-pre.c (compute_antic): Walk reverse postorder
34291 in reverse order.
34292 (my_rev_post_order_compute): New function.
34293 (init_pre): Call it.
34294
34295 2010-03-04 Changpeng Fang <changpeng.fang@amd.com>
34296
34297 PR middle-end/43209
34298 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
34299 decrease the cost of an IV candidate when the cost is infinite.
34300
34301 2010-03-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
34302
34303 * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
34304 Use '3DNow!' for the extension of that name, ensure normal space
34305 after the string.
34306 * doc/invoke.texi (i386 and x86-64 Options): Likewise.
34307
34308 2010-03-03 Jeff Law <law@redhat.com>
34309
34310 * PR middle-end/32693
34311 * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
34312 than gen_rtx_SUBREG.
34313 (extract_bit_field_1): Likewise.
34314
34315 2010-03-03 Janis Johnson <janis187@us.ibm.com>
34316
34317 * doc/sourcebuild.texi (Test directives): Document that arguments
34318 include-opts and exclude-opts are now optional for dg-skip-if,
34319 dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
34320
34321 2010-03-03 Jason Merrill <jason@redhat.com>
34322
34323 PR c++/12909
34324 * cgraph.h (varpool_node): Add extra_name field.
34325 * varpool.c (varpool_extra_name_alias): New.
34326 (varpool_assemble_decl): Emit extra name aliases.
34327 (varpool_mark_needed_node): Look past an extra name alias.
34328 * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
34329 * lto-streamer-in.c (lto_input_tree): Read it.
34330 * lto-streamer-out.c (output_unreferenced_globals): Write it.
34331
34332 2010-03-03 Eric Botcazou <ebotcazou@adacore.com>
34333
34334 * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
34335 (sparc*-*-solaris2*): ...this.
34336
34337 2010-03-03 Jakub Jelinek <jakub@redhat.com>
34338
34339 PR debug/43229
34340 * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
34341 WIDEN_MULT_EXPR and WIDEN_SUM_EXPR. Return NULL without
34342 ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
34343 FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
34344
34345 PR debug/43237
34346 * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
34347 fallthrough to default handling, just with want_address 0 instead of 2.
34348 For single element lists, add_AT_loc directly, otherwise create an
34349 artificial variable DIE and stick location list to it.
34350
34351 PR debug/43177
34352 * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
34353 (VAL_EXPR_HAS_REVERSE): Define.
34354 (reverse_op): New function.
34355 (add_stores): For reversible operations add an extra MO_VAL_USE.
34356
34357 2010-03-02 Jason Merrill <jason@redhat.com>
34358
34359 * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
34360
34361 2010-03-02 Eric Botcazou <ebotcazou@adacore.com>
34362
34363 * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
34364 (sparc64-*-linux*): Likewise.
34365 (sparc64-*-solaris2*): Include assembler files before linker ones.
34366 (sparc-*-solaris2*): Simplify and reorder to match previous case.
34367 * config/sparc/gas.h: Delete.
34368 * config/sparc/sol2-64.h: Add copyright notice.
34369 * config/sparc/sol2-gas-bi.h: Likewise.
34370 * config/sparc/sol2-gld.h: Likewise.
34371 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
34372 * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
34373 * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
34374 * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
34375 (sparc_elf_asm_named_section): Rename into...
34376 (sparc_solaris_elf_asm_named_section): ...this. Always define.
34377
34378 2010-03-02 Uros Bizjak <ubizjak@gmail.com>
34379
34380 * config/alpha/alpha.c (override_options): Fix -mtune error message.
34381
34382 2010-03-02 Jeff Law <law@redhat.com>
34383
34384 PR middle-end/42431
34385 * reload1.c (rtx_p, substitute_stack): Declare.
34386 (substitute): Record addresses of changed rtxs.
34387 (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
34388 Restore the original rtx when complete.
34389 (reload): Free subsitute_stack when complete.
34390
34391 2010-03-02 Janis Johnson <janis187@us.ibm.com>
34392
34393 * doc/gccint.texi (menu): Add Testsuites as a chapter.
34394 * doc/sourcebuild.texi (Testsuites): Move up a level to be a
34395 new chapter.
34396 (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
34397 LTO Testing, gcov Testing, profopt Testing, compat Testing,
34398 Torture Tests): Change from subsection to section.
34399
34400 2010-03-02 Jakub Jelinek <jakub@redhat.com>
34401 Steven Bosscher <steven@gcc.gnu.org>
34402
34403 * var-tracking.c (vt_initialize): Scan insns in ebb chunks
34404 instead of bb.
34405
34406 2010-03-02 Reza Yazdani <reza.yazdani@amd.com>
34407
34408 PR middle-end/42640
34409 * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
34410 the assignment from the new induction variable to the assignment
34411 of the value from the original loop PHI function.
34412
34413 2010-03-01 Janis Johnson <janis187@us.ibm.com>
34414 Daniel Jacobowitz <dan@codesourcery.com>
34415
34416 * doc/sourcebuild.texi (Test directives): Clarify options to
34417 dg-skip-if.
34418
34419 2010-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
34420
34421 * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
34422 Disable cfi directives unless GCC and gas agree on using read-only
34423 .eh_frame sections for 64-bit.
34424 * configure: Regenerate.
34425
34426 2010-03-01 Richard Guenther <rguenther@suse.de>
34427
34428 PR tree-optimization/43220
34429 * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
34430 BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
34431
34432 2010-03-01 Richard Guenther <rguenther@suse.de>
34433 Martin Jambor <mjambor@suse.cz>
34434
34435 PR middle-end/41250
34436 * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
34437 gimplified parameters.
34438
34439 2010-03-01 Christian Bruel <christian.bruel@st.com>
34440
34441 * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
34442
34443 2010-03-01 H.J. Lu <hongjiu.lu@intel.com>
34444
34445 * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
34446
34447 2010-03-01 Richard Guenther <rguenther@suse.de>
34448
34449 PR middle-end/43213
34450 * expr.c (expand_assignment): Use the alias-oracle to tell
34451 if the rhs aliases the result decl.
34452
34453 2010-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
34454
34455 PR pch/14940
34456 * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
34457 to sol_gt_pch_get_address.
34458 (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
34459 64-bit, SPARC and x86.
34460 (sol_gt_pch_get_address): New function.
34461
34462 2010-03-01 Marco Poletti <poletti.marco@gmail.com>
34463
34464 * toplev.h (inform_n, error_n): Declare.
34465 * diagnostic.c (inform_n, error_n): New function.
34466
34467 2010-03-01 Jakub Jelinek <jakub@redhat.com>
34468
34469 * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
34470 has no rtl yet when processing local_decls, queue it and recheck
34471 if deferred stack allocation hasn't assigned it rtl.
34472
34473 2010-02-28 Kaz Kojima <kkojima@gcc.gnu.org>
34474
34475 * config/sh/sh.c (unspec_bbr_uid): New.
34476 (gen_block_redirect): Use it instead of INSN_UID.
34477 (gen_far_branch): Likewise.
34478
34479 2010-02-28 H.J. Lu <hongjiu.lu@intel.com>
34480
34481 * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
34482 it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
34483
34484 2010-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
34485
34486 * doc/invoke.texi (Warning Options, RX Options): Fix typos.
34487 (Warning Options): -Wno-conversion-null is valid for
34488 Objective-C++ as well.
34489 * doc/tm.texi (Named Address Spaces): Likewise.
34490 * doc/plugins.texi (Plugins): Replace TABs with spaces.
34491 * doc/tree-ssa.texi (Tree SSA): Likewise.
34492
34493 2010-02-27 H.J. Lu <hongjiu.lu@intel.com>
34494
34495 PR bootstrap/43202
34496 * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
34497 by default. Don't set the default arch for
34498 i[34567]86-*-darwin*|x86_64-*-darwin*.
34499
34500 2010-02-27 H.J. Lu <hongjiu.lu@intel.com>
34501
34502 PR bootstrap/43202
34503 * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
34504 default. Set the default 32bit/64bit archs with $with_arch
34505 instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
34506
34507 2010-02-27 Richard Guenther <rguenther@suse.de>
34508
34509 PR tree-optimization/43186
34510 * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
34511 * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
34512 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
34513 unroller iterations.
34514
34515 2010-02-27 H.J. Lu <hongjiu.lu@intel.com>
34516
34517 * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
34518 required and i[34567]86-*-* targets don't support 64bit ISA.
34519
34520 2010-02-26 Eric Botcazou <ebotcazou@adacore.com>
34521
34522 PR ada/43096
34523 * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
34524 the same alias set.
34525
34526 2010-02-26 H.J. Lu <hongjiu.lu@intel.com>
34527
34528 * config.gcc: Set the default arch at least to Prescott for
34529 i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
34530 if SSE math is enabled.
34531
34532 2010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
34533
34534 * diagnostic.c (diagnostic_initialize): Update.
34535 (diagnostic_report_diagnostic): Test inhibit_notes_p for
34536 informative notes.
34537 * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
34538 (diagnostic_inhibit_notes): New.
34539 * toplev.c (process_options): inhibit notes with -fcompare-debug.
34540
34541 2010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
34542
34543 PR c/20631
34544 * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
34545 * doc/standards.texi: Likewise.
34546 * doc/extend.texi: Likewise.
34547 * doc/trouble.texi: Likewise.
34548 * doc/cppopts.texi: Likewise.
34549 * doc/install.texi: Likewise.
34550 * c.opt (std=c90,std=gnu90): New options.
34551 * c-opts.c (c_common_handle_option): Handle them.
34552
34553 2010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
34554
34555 PR c/24577
34556 * c-decl.c (undeclared_variable): Use an informative note.
34557
34558 2010-02-26 Richard Guenther <rguenther@suse.de>
34559
34560 PR tree-optimization/43186
34561 * gimple.h (gimple_fold): Remove.
34562 * gimple.c (gimple_fold): Remove. Inline into single user ...
34563 * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
34564 Try harder for conditions.
34565
34566 2010-02-26 Jakub Jelinek <jakub@redhat.com>
34567
34568 PR debug/43190
34569 * function.c (used_types_insert): Don't skip through named pointer
34570 types. Don't use TYPE_MAIN_VARIANT if the original type has a name
34571 and it is different from the main variant's type.
34572
34573 2010-02-26 Nick Clifton <nickc@redhat.com>
34574
34575 * config/rx/rx.md (sminsi3): Remove bogus alternative.
34576
34577 2010-02-26 H.J. Lu <hongjiu.lu@intel.com>
34578
34579 * config.gcc: Support --with-fpmath=sse for x86.
34580
34581 * config/i386/ssemath.h: New.
34582
34583 * doc/install.texi (--with-fpmath=sse): Documented.
34584
34585 2010-02-26 Richard Guenther <rguenther@suse.de>
34586
34587 PR tree-optimization/43188
34588 * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
34589 vector types of over-aligned element type.
34590
34591 2010-02-26 Uros Bizjak <ubizjak@gmail.com>
34592
34593 PR target/43175
34594 * config/i386/i386.c (expand_vec_perm_blend): Use correct
34595 operands in V8HImode subregs. Fix operand order in VEC_MERGE rtx.
34596
34597 2010-02-26 Jan Kratochvil <jan.kratochvil@redhat.com>
34598
34599 * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
34600
34601 2010-02-26 Jakub Jelinek <jakub@redhat.com>
34602
34603 * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
34604 * var-tracking.c: Include diagnostic.h.
34605 (debug_dv): New function.
34606 (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
34607
34608 PR debug/43160
34609 * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
34610 (add_value_chain, add_value_chains, remove_value_chain,
34611 remove_value_chains): Handle DEBUG_EXPRs.
34612 (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
34613
34614 PR debug/43161
34615 * regcprop.c (struct queued_debug_insn_change): New type.
34616 (struct value_data_entry): Add debug_insn_changes field.
34617 (struct value_data): Add n_debug_insn_changes field.
34618 (debug_insn_changes_pool): New variable.
34619 (free_debug_insn_changes, apply_debug_insn_changes,
34620 cprop_find_used_regs_1, cprop_find_used_regs): New functions.
34621 (kill_value_one_regno): Call free_debug_insn_changes if needed.
34622 (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
34623 fields.
34624 (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
34625 changes for them.
34626 (copyprop_hardreg_forward_1): Don't call apply_change_group for
34627 DEBUG_INSNs. For a real insn, if there are queued DEBUG_INSN
34628 changes, call cprop_find_used_regs via note_stores.
34629 (copyprop_hardreg_forward): When copying vd from predecessor
34630 which has any queued DEBUG_INSN changes, make sure the pointers are
34631 cleared. At the end call df_analyze and then if there are any
34632 DEBUG_INSN changes queued at the end of some basic block for still
34633 live registers, apply them.
34634 (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
34635
34636 2010-02-25 Uros Bizjak <ubizjak@gmail.com>
34637
34638 * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
34639 (arm*-*-*): Ditto.
34640
34641 2010-02-25 H.J. Lu <hongjiu.lu@intel.com>
34642
34643 * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
34644 targets. Set the default with_cpu/with_arch from arch/cpu.
34645 Allow x86-64 and native for with_cpu/with_arch.
34646
34647 2010-02-25 Nicolas Benoit <nbenoit@tuxfamily.org>
34648
34649 * ebitmap.c: Change calls to verify_popcount with calls to
34650 sbitmap_verify_popcount.
34651 (ebitmap_clear_bit): Fixed map->cacheindex test and
34652 map>cache update when bit clearing results in an empty
34653 element.
34654
34655 2010-02-25 Michael Meissner <meissner@linux.vnet.ibm.com>
34656
34657 PR target/43154
34658 * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
34659 (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
34660 and support both V2DF and V2DI modes.
34661 (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
34662 support both V2DF and V2DI modes.
34663 (general): Delete trailing whitespace from a few patterns.
34664
34665 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
34666 V2DF/V2DI interleave high/low builtins.
34667
34668 * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
34669 new VSX builtins.
34670
34671 * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
34672 interleave high/low functions.
34673
34674 2010-02-25 Gerald Pfeifer <gerald@pfeifer.com>
34675
34676 * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
34677 #pragma extern_prefix.
34678
34679 2010-02-25 Jakub Jelinek <jakub@redhat.com>
34680
34681 PR debug/43166
34682 * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
34683 BLKmode, assert op0 is a MEM and just adjust its mode.
34684
34685 PR debug/43165
34686 * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
34687 if bitpos isn't multiple of mode's bitsize.
34688
34689 2010-02-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
34690
34691 * c.opt (-ftemplate-depth=): New.
34692 (-ftemplate-depth-): Deprecate.
34693 * optc-gen.awk: Handle -ftemplate-depth=.
34694 * opth-gen.awk: Likewise.
34695 * c-opts.c (c_common_handle_option): Likewise.
34696 * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
34697
34698 2010-02-24 Jason Merrill <jason@redhat.com>
34699
34700 * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
34701
34702 2010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
34703
34704 * cfg.c (alloc_aux_for_block): Remove inline.
34705 (alloc_aux_for_edge): Likewise.
34706
34707 2010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
34708
34709 * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
34710
34711 2010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
34712
34713 * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
34714 * config/i386/sol2-gas.h: New file.
34715 * config.gcc (i[34567]86-*-solaris2*): Use it.
34716
34717 2010-02-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
34718
34719 PR c/43128
34720 * c-typeck.c (ep_convert_and_check): New.
34721 (build_conditional_expr): Use it.
34722 (build_binary_op): Likewise.
34723
34724 2010-02-24 Jakub Jelinek <jakub@redhat.com>
34725
34726 * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
34727
34728 PR debug/43150
34729 * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
34730 bounds even for -O+.
34731 * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
34732 expr needs to have DECL_NAME set.
34733
34734 2010-02-24 Nick Clifton <nickc@redhat.com>
34735
34736 * config/mep/mep.c: Include gimple.h.
34737 (mep_function_uses_sp): Delete unused function.
34738 (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
34739 parameters. Use unsigned integers to count args. Return a
34740 NULL_RTX instead of an error_mark_node. Toidy up formatting.
34741
34742 2010-02-23 Jakub Jelinek <jakub@redhat.com>
34743
34744 PR target/43107
34745 * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
34746 greater or equal to nelt instead of 2 * nelt.
34747 (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
34748 with nelt - 1.
34749
34750 2010-02-23 Jason Merrill <jason@redhat.com>
34751
34752 PR debug/42800
34753 * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
34754 in cfun->local_decls even if they have register types.
34755
34756 PR c++/42837
34757 * stor-layout.c (place_field): Don't warn about unnecessary
34758 DECL_PACKED if the type is packed.
34759
34760 2010-02-23 Jakub Jelinek <jakub@redhat.com>
34761
34762 PR target/43139
34763 * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
34764 GOTOFF relocs, even when the base reg isn't pic pointer.
34765
34766 2010-02-23 Michael Matz <matz@suse.de>
34767
34768 PR debug/43077
34769 * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
34770 (expand_gimple_basic_block): Generate and use debug temps if there
34771 are debug uses left after the last real use of TERed ssa names.
34772 Unlink debug immediate uses when they are expanded.
34773
34774 2010-02-23 Manuel López-Ibáñez <manu@gcc.gnu.org>
34775
34776 PR 43123
34777 * config/i386/i386.c (override_options): Reorganise to provide
34778 better error messages.
34779
34780 2010-02-22 Sebastian Pop <sebastian.pop@amd.com>
34781
34782 PR middle-end/43083
34783 * graphite-scop-detection.c (create_single_exit_edge): Move
34784 the call to find_single_exit_edge to....
34785 (create_sese_edges): ...here. Don't handle multiple edges
34786 exiting the function.
34787 (build_graphite_scops): Don't handle multiple edges
34788 exiting the function.
34789
34790 2010-02-22 Sebastian Pop <sebastian.pop@amd.com>
34791
34792 PR middle-end/43097
34793 * sese.c (get_rename): Assert that old_name is an SSA_NAME.
34794 (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
34795
34796 2010-02-22 Sebastian Pop <sebastian.pop@amd.com>
34797
34798 PR middle-end/43026
34799 * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
34800
34801 2010-02-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
34802
34803 PR c++/43126
34804 * c-typeck.c (convert_arguments): Print declaration location.
34805 * c-common.c (validate_nargs): Rename as
34806 builtin_function_validate_nargs.
34807 (check_builtin_function_arguments): Update.
34808
34809 2010-02-22 Richard Guenther <rguenther@suse.de>
34810
34811 PR lto/43045
34812 * tree-inline.c (declare_return_variable): Use the type of
34813 the call stmt lhs if available.
34814
34815 2010-02-22 Duncan Sands <baldrick@free.fr>
34816
34817 * passes.c (register_pass): Always consider all pass lists when
34818 ref_pass_instance_number is zero.
34819
34820 2010-02-22 Richard Guenther <rguenther@suse.de>
34821
34822 PR tree-optimization/42749
34823 * tree-tailcall.c (adjust_return_value_with_ops): Drop update
34824 parameter. Do arithmetic in the original type.
34825 (update_accumulator_with_ops): Likewise.
34826 (adjust_accumulator_values): Adjust.
34827
34828 2010-02-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
34829
34830 * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
34831 (QI to BLKmode splitter): New splitter.
34832
34833 2010-02-22 H.J. Lu <hongjiu.lu@intel.com>
34834
34835 * config/i386/i386.c (initial_ix86_tune_features): Turn on
34836 X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
34837
34838 2010-02-22 Richard Guenther <rguenther@suse.de>
34839
34840 * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
34841
34842 2010-02-22 Hans-Peter Nilsson <hp@bitrange.com>
34843
34844 Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
34845 * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
34846 ($(T)crti.o, $(T)crtn.o): Remove rules.
34847
34848 2010-02-21 Tobias Burnus <burnus@net-b.de>
34849
34850 PR fortran/35259
34851 * doc/invoke.texi (-fassociative-math): Document that this
34852 option is automatically enabled for Fortran.
34853
34854 2010-02-20 David S. Miller <davem@davemloft.net>
34855
34856 * configure.ac: Test if linker and assembler properly support
34857 GOTDATA_OP relocations.
34858 * configure: Rebuild.
34859 * config.in: Likewise.
34860 * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
34861 (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
34862 (movsi_high_pic): Likewise.
34863 (movdi_lo_sum_pic): Likewise.
34864 (movdi_high_pic): Likewise.
34865 (movsi_pic_gotdata_op): New pattern.
34866 (movdi_pic_gotdata_op): Likewise.
34867 * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
34868 emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
34869
34870 2010-02-20 Uros Bizjak <ubizjak@gmail.com>
34871
34872 PR target/43067
34873 * config/i386/sse.md (xop_mulv2div2di3_low): Change type
34874 attribute to ssemul.
34875 (xop_mulv2div2di3_high): Ditto.
34876
34877 2010-02-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
34878
34879 PR c++/35669
34880 * c.opt (Wconversion-null): New option.
34881 * doc/invoke.texi (Wconversion-null): Document.
34882
34883 2010-02-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
34884
34885 * common.opt (Wlarger-than-): Add Undocumented.
34886
34887 2010-02-19 Mike Stump <mikestump@comcast.net>
34888
34889 * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
34890
34891 2010-02-19 Jason Merrill <jason@redhat.com>
34892
34893 PR target/40332
34894 * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
34895 * configure: Likewise.
34896
34897 2010-02-20 Alan Modra <amodra@gmail.com>
34898
34899 PR middle-end/42344
34900 * cgraph.h (cgraph_make_decl_local): Declare.
34901 * cgraph.c (cgraph_make_decl_local): New function.
34902 (cgraph_make_node_local): Use it.
34903 * cgraphunit.c (cgraph_function_versioning): Likewise.
34904 * ipa.c (function_and_variable_visibility): Likewise.
34905
34906 2010-02-19 Jakub Jelinek <jakub@redhat.com>
34907
34908 PR bootstrap/43121
34909 * except.c (sjlj_emit_function_enter): Don't call
34910 add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
34911 directly.
34912 * rtl.h (add_reg_br_prob_note): Remove prototype.
34913
34914 2010-02-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
34915
34916 PR 41779
34917 * c-common.c (conversion_warning): Remove widening conversions
34918 before checking the conversion of integers to reals.
34919
34920 2010-02-19 Mike Stump <mikestump@comcast.net>
34921
34922 PR middle-end/43125
34923 * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
34924
34925 PR objc/43061
34926 * cgraphunit.c (process_function_and_variable_attributes): Check
34927 DECL_PRESERVE_P instead of looking up attribute "used".
34928 * ipa-pure-const.c (check_decl): Likewise.
34929 * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
34930 * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
34931 * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
34932 instead of attribute "used".
34933 * config/sol2-c.c (solaris_pragma_init): Likewise.
34934 (solaris_pragma_fini): Likewise.
34935
34936 2010-02-19 Jakub Jelinek <jakub@redhat.com>
34937
34938 * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
34939 Use XCNEW instead of xcalloc.
34940 (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
34941 XNEW instead of xmalloc.
34942 (get_fields): Use XNEWVEC instead of xmalloc.
34943
34944 PR debug/43084
34945 * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
34946 populate vars array.
34947 (create_new_general_access): For debug stmts just reset value.
34948 (get_stmt_accesses): For accesses within debug stmts just record them
34949 using add_access_to_acc_sites instead of preventing the peeling or
34950 counting them as accesses.
34951
34952 PR middle-end/42233
34953 * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
34954
34955 2010-02-19 Richard Guenther <rguenther@suse.de>
34956
34957 PR tree-optimization/42916
34958 * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
34959 instructions.
34960
34961 2010-02-19 Andreas Schwab <schwab@linux-m68k.org>
34962
34963 * configure.ac: Replace all uses of changequote in macro arguments
34964 with proper quoting.
34965
34966 2010-02-19 Jakub Jelinek <jakub@redhat.com>
34967
34968 PR middle-end/42233
34969 * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
34970
34971 2010-02-19 Richard Guenther <rguenther@suse.de>
34972
34973 PR tree-optimization/42944
34974 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
34975 test for aliasing with errno.
34976
34977 2010-02-19 Jakub Jelinek <jakub@redhat.com>
34978
34979 PR middle-end/42233
34980 * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
34981 do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
34982 * dojump.c: Include output.h.
34983 (inv): New inline function.
34984 (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
34985 do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
34986 do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
34987 do_jump_by_parts_equality, do_compare_and_jump): Add PROB
34988 argument, pass it down to other calls.
34989 (do_compare_rtx_and_jump): Likewise. If PROB is not -1,
34990 add REG_BR_PROB note to the conditional jump.
34991 * cfgexpand.c (add_reg_br_prob_note): Removed.
34992 (expand_gimple_cond): Don't call it, add the probability
34993 as last argument to jumpif_1/jumpifnot_1.
34994 * Makefile.in (dojump.o): Depend on output.h.
34995 * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
34996 callers.
34997 * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
34998 * stmt.c (do_jump_if_equal): Likewise.
34999 * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
35000 * loop-unswitch.c (compare_and_jump_seq): Likewise.
35001 * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
35002 Likewise.
35003 * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
35004 * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
35005 jumpifnot_1 callers.
35006 (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
35007 callers.
35008 (store_expr): Adjust jumpifnot caller.
35009 (store_constructor): Adjust jumpif caller.
35010
35011 PR middle-end/42233
35012 * gimplify.c (gimple_boolify): For __builtin_expect call
35013 gimple_boolify also on its first argument.
35014
35015 2010-02-18 Uros Bizjak <ubizjak@gmail.com>
35016
35017 * configure.ac (gnu-unique-object): Wrap regexps using [] in
35018 changequote block.
35019 (__stack_chk_fail): Ditto. Remove quadrigraphs.
35020 * configure: Regenerated.
35021
35022 2010-02-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
35023
35024 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
35025 lang_hooks.types_compatible_p instead of comptypes.
35026
35027 2010-02-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
35028
35029 * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
35030 (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
35031 if __prefer_thumb__ is defined.
35032
35033 2010-02-18 Martin Jambor <mjambor@suse.cz>
35034
35035 PR tree-optimization/43066
35036 * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
35037 array with zero-sized element type.
35038
35039 2010-02-18 Jakub Jelinek <jakub@redhat.com>
35040
35041 * dwarf2out.c (add_var_loc_to_decl): Change last argument to
35042 rtx, allocate struct var_loc_node here and return it to the
35043 caller, and only if it is actually needed.
35044 (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
35045 move it earlier and return immediately if it returns NULL.
35046
35047 2010-02-17 Mikael Pettersson <mikpe@it.uu.se>
35048
35049 * config/sparc/gas.h: New file. Restore
35050 TARGET_ASM_NAMED_SECTION to its ELF default.
35051 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
35052 check !HAVE_GNU_AS.
35053 * config/sparc/sparc.c (sparc_elf_asm_named_section):
35054 Likewise. Add ATTRIBUTE_UNUSED to prototype.
35055 * config.gcc (sparc*-*-linux*): Include sparc/gas.h
35056 after sparc/sysv4.h.
35057
35058 2010-02-17 Dave Korn <dave.korn.cygwin@gmail.com>
35059
35060 * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
35061
35062 2010-02-17 Steven Bosscher <steven@gcc.gnu.org>
35063
35064 * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
35065 patterns from predicated pattern.
35066
35067 2010-02-17 Uros Bizjak <ubizjak@gmail.com>
35068
35069 PR target/43103
35070 * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
35071 for insn mnemonic suffix.
35072
35073 2010-02-17 Richard Guenther <rguenther@suse.de>
35074
35075 * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
35076 to loop PHI nodes.
35077
35078 2010-02-17 Jakub Jelinek <jakub@redhat.com>
35079
35080 PR debug/42918
35081 * caller-save.c (save_call_clobbered_regs): If BB ends with
35082 a DEBUG_INSN, move any notes in between last real insn and the last
35083 DEBUG_INSN after the last DEBUG_INSN.
35084
35085 2010-02-16 Joern Rennecke <joern.rennecke@embecosm.com>
35086
35087 * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
35088 Fix return type. Fix argument type. Explain meaning of return value.
35089
35090 2010-02-16 Richard Guenther <rguenther@suse.de>
35091
35092 PR tree-optimization/41043
35093 * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
35094 (vrp_visit_assignment_or_call): Do not ask SCEV for regular
35095 statements ...
35096 (vrp_visit_phi_node): ... but only for loop PHI nodes.
35097
35098 2010-02-16 Ira Rosen <irar@il.ibm.com>
35099
35100 PR tree-optimization/43074
35101 * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
35102 * tree-vect-loop.c (vect_analyze_loop_operations): Add
35103 vectorizable cycles in hybrid SLP check.
35104 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
35105
35106 2010-02-16 Richard Guenther <rguenther@suse.de>
35107
35108 * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
35109 (true_dependence): If memrefs_conflict_p computes must-alias
35110 trust it. Move TBAA check after offset-based disambiguation.
35111 (canon_true_dependence): Likewise.
35112
35113 2010-02-16 Alexandre Oliva <aoliva@redhat.com>
35114
35115 * params.def (PARAM_MAX_VARTRACK_SIZE): New.
35116 * doc/invoke.texi: Document it.
35117 * var-tracking.c: Include toplev.h and params.h.
35118 (vt_find_locations): Return bool indicating success. Compute
35119 hash sizes unconditionally. Check new parameter, report.
35120 (variable_tracking_main_1): Check vt_find_locations results and
35121 retry. Renamed from...
35122 (variable_tracking_main): ... this. New wrapper to preserve
35123 flag_var_tracking_assignments.
35124 * Makefile.in (var-tracking.o): Adjust dependencies.
35125
35126 2010-02-16 Jack Howarth <howarth@bromo.med.uc.edu>
35127 Jakub Jelinek <jakub@redhat.com>
35128
35129 PR target/42854
35130 * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
35131 if weak_import attribute is present.
35132 * config/darwin.c (machopic_select_section): Likewise.
35133
35134 2010-02-15 Joern Rennecke <joern.rennecke@embecosm.com>
35135
35136 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
35137 (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
35138 (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
35139 (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
35140
35141 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
35142 types.
35143
35144 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
35145 Fix argument types.
35146
35147 * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
35148 Rewrite text to refer to the names.
35149
35150 2010-02-15 Sebastian Pop <sebastian.pop@amd.com>
35151
35152 * config/i386/i386-builtin-types.def
35153 (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
35154 (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
35155 (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
35156 (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
35157 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
35158 IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
35159 IX86_BUILTIN_VPERMIL2PS256.
35160 (MULTI_ARG_4_DF2_DI_I): Defined.
35161 (MULTI_ARG_4_DF2_DI_I1): Defined.
35162 (MULTI_ARG_4_SF2_SI_I): Defined.
35163 (MULTI_ARG_4_SF2_SI_I1): Defined.
35164 (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
35165 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
35166 __builtin_ia32_vpermil2ps256.
35167 (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
35168 MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
35169 MULTI_ARG_4_SF2_SI_I1. Handle builtins with 4 arguments.
35170 (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
35171 MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
35172 MULTI_ARG_4_SF2_SI_I1. Handle CODE_FOR_xop_vpermil2v2df3,
35173 CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
35174 CODE_FOR_xop_vpermil2v8sf3.
35175 * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
35176 * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
35177 * config/i386/xopintrin.h (_mm_permute2_pd): New.
35178 (_mm256_permute2_pd): New.
35179 (_mm_permute2_ps): New.
35180 (_mm256_permute2_ps): New.
35181
35182 2010-02-15 Nick Clifton <nickc@redhat.com>
35183
35184 * config/h8300/h8300.c (h8300_push_pop): Use bool type for
35185 boolean parameters. Use emit_jump_insn when emitting a pop
35186 instruction containing a return insn.
35187 (push): Use 'true' rather than '1' as second parameter to F.
35188 (h8300_expand_prologue): Likewise.
35189 Use 'true' and 'false' for boolean parameters to h8300_push_pop.
35190 (h8300_expand_epilogue): Likewise.
35191
35192 2010-02-15 Richard Guenther <rguenther@suse.de>
35193
35194 PR middle-end/43068
35195 * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
35196 if that is zero.
35197
35198 2010-02-15 Nick Clifton <nickc@redhat.com>
35199
35200 * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
35201 delta.
35202
35203 2010-02-14 Marco Poletti <poletti.marco@gmail.com>
35204
35205 * intl.c (fake_ngettext): New function.
35206 * intl.h (fake_ngettext): Declare.
35207 (ngettext): Define macro.
35208 * collect2.c (notice_translated): New function.
35209 (main): Use notice_translated and ngettext.
35210 * collect2.h (notice_translated): Declare.
35211
35212 2010-02-14 Steven Bosscher <steven@gcc.gnu.org>
35213
35214 * reorg.c (delete_computation): Comment fixes.
35215 * caller-save.c (setup_save_areas): Idem.
35216 * sel-sched-dump.c (dump_lv_set): Idem.
35217 * rtl.def: Idem.
35218
35219 2010-02-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
35220
35221 * config/s390/s390.c (s390_sched_init): New function.
35222 (TARGET_SCHED_INIT): Target hook defined.
35223
35224 2010-02-12 Dave Korn <dave.korn.cygwin@gmail.com>
35225 Jack Howarth <howarth@bromo.med.uc.edu>
35226 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
35227
35228 PR target/42982
35229 Partial revert of unintended change in fix for PR41605.
35230 * config/darwin.h: Fix typo.
35231 * config/darwin9.h: Same.
35232
35233 2010-02-11 Jakub Jelinek <jakub@redhat.com>
35234
35235 * c-pch.c (pch_init): Clear v.
35236
35237 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
35238
35239 PR middle-end/42930
35240 * graphite-scop-detection.c (graphite_can_represent_scev): Call
35241 graphite_can_represent_init for MULT_EXPR.
35242
35243 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
35244
35245 PR middle-end/42914
35246 PR middle-end/42530
35247 * graphite-sese-to-poly.c (remove_phi): New.
35248 (translate_scalar_reduction_to_array): Call remove_phi.
35249
35250 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
35251
35252 PR middle-end/42771
35253 * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
35254 * graphite-clast-to-gimple.h (gloog): Update declaration.
35255 * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
35256 * graphite-poly.h (struct poly_bb): Add missing comments.
35257 (struct scop): Add poly_scop_p field.
35258 (POLY_SCOP_P): New.
35259 * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
35260 * graphite.c (graphite_transform_loops): Build the polyhedral
35261 representation for each scop before code generation.
35262 * sese.c (rename_variables_in_operand): Removed.
35263 (rename_variables_in_expr): Return the renamed expression.
35264 (rename_sese_parameters): New.
35265 * sese.h (rename_sese_parameters): Declared.
35266
35267 2010-02-11 Richard Guenther <rguenther@suse.de>
35268
35269 PR tree-optimization/42998
35270 * tree-ssa-pre.c (create_expression_by_pieces): Treat
35271 POINTER_PLUS_EXPR properly.
35272
35273 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
35274 Changpeng Fang <changpeng.fang@amd.com>
35275
35276 PR middle-end/40886
35277 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
35278 the cost of an IV candidate when the IV is used in a test against zero.
35279
35280 * gcc.dg/tree-ssa/ivopts-3.c: New.
35281
35282 2010-02-11 Richard Guenther <rguenther@suse.de>
35283
35284 PR lto/41664
35285 * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
35286 pointer-vs-decl case by swapping refs. Handle some cases
35287 of pointer-vs-decl disambiguations more conservatively.
35288 * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
35289 to false after expanding.
35290
35291 2010-02-11 Richard Guenther <rguenther@suse.de>
35292
35293 PR driver/43021
35294 * gcc.c (process_command): Handle LTO file@offset case more
35295 appropriately.
35296
35297 2010-02-11 Jakub Jelinek <jakub@redhat.com>
35298
35299 * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
35300 modifications outside of the DEBUG_INSN. Accept CLOBBERs inside
35301 of DEBUG_INSNs.
35302 (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
35303
35304 * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
35305 if MEM's mode size isn't DWARF2_ADDR_SIZE.
35306 (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
35307 Optimize eq/ne comparisons when both arguments are known to be
35308 zero-extended.
35309 (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
35310 Don't mask operands unnecessarily if they are known to be already
35311 zero-extended.
35312
35313 2010-02-10 Vladimir Makarov <vmakarov@redhat.com>
35314
35315 * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
35316 instead of loop.
35317
35318 2010-02-10 Richard Guenther <rguenther@suse.de>
35319
35320 PR tree-optimization/43017
35321 * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
35322 for wrapping signed arithmetic.
35323
35324 2010-02-10 Jakub Jelinek <jakub@redhat.com>
35325
35326 PR debug/43010
35327 * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
35328 if no debug info should be emitted for it.
35329
35330 2010-02-10 Kaz Kojima <kkojima@gcc.gnu.org>
35331
35332 * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
35333 note when flag_exceptions is set.
35334
35335 2010-02-10 Duncan Sands <baldrick@free.fr>
35336
35337 * Makefile.in (PLUGIN_HEADERS): Add debug.h.
35338
35339 2010-02-10 Richard Guenther <rguenther@suse.de>
35340
35341 PR c/43007
35342 * tree.c (get_unwidened): Handle constants.
35343 * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
35344
35345 2010-02-10 Martin Jambor <mjambor@suse.cz>
35346
35347 PR lto/42985
35348 * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
35349 check for variable argument counts independently.
35350
35351 2010-02-10 Christian Bruel <christian.bruel@st.com>
35352
35353 PR target/42841
35354 * config/sh/sh.c (find_barrier): Increase length for non delayed
35355 conditional branches.
35356
35357 2010-02-10 Christian Bruel <christian.bruel@st.com>
35358
35359 * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
35360
35361 2010-02-10 Jakub Jelinek <jakub@redhat.com>
35362
35363 * builtins.c (set_builtin_user_assembler_name): Also handle
35364 ffs if int is smaller than word.
35365
35366 2010-02-09 Vladimir Makarov <vmakarov@redhat.com>
35367
35368 PR middle-end/42973
35369 * ira-conflicts.c (get_dup): Remove.
35370 (process_reg_shuffles): Add new parameter. Use it as an
35371 additional guard for copy generation.
35372 (add_insn_allocno_copies): Rewrite.
35373
35374 2010-02-09 Alexander Monakov <amonakov@ispras.ru>
35375
35376 * common.opt (fsched2-use-traces): Preserved for backward
35377 compatibility.
35378 * doc/invoke.texi: Remove the documentation about option
35379 -fsched2-use-traces.
35380 * sched-rgn.c (rest_of_handle_sched2): Remove usage of
35381 flag_sched2_use_traces.
35382 * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
35383 the backward compatibility flag section.
35384
35385 2010-02-09 Richard Guenther <rguenther@suse.de>
35386
35387 PR tree-optimization/43008
35388 * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
35389 make HEAP variables initialized from global memory if they
35390 are not known builtin functions.
35391 (find_func_aliases): Adjust.
35392
35393 2010-02-09 Richard Guenther <rguenther@suse.de>
35394
35395 PR tree-optimization/43000
35396 * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
35397 arithmetic manually.
35398
35399 2010-02-08 Jakub Jelinek <jakub@redhat.com>
35400
35401 PR tree-optimization/42931
35402 * tree-loop-linear.c (try_interchange_loops): Don't call
35403 double_int_mul if estimated_loop_iterations failed.
35404
35405 2010-02-08 Martin Jambor <mjambor@suse.cz>
35406
35407 PR middle-end/42898
35408 * tree-sra.c (build_accesses_from_assign): Do not mark in
35409 should_scalarize_away_bitmap if stmt has volatile ops.
35410 (sra_modify_assign): Do not process assigns piecemeal if if stmt
35411 has volatile ops.
35412
35413 2010-02-08 Joern Rennecke <joern.rennecke@embecosm.com>
35414
35415 * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
35416
35417 2010-02-07 Adam Nemet <adambnmet@gmail.com>
35418
35419 * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
35420 before the pattern.
35421
35422 2010-02-07 Andrew Pinski <pinskia@gmail.com>
35423
35424 PR middle-end/42946
35425 * df-core.c (df_finish_pass): Change type of saved_flags to int.
35426
35427 2010-02-07 Sebastian Pop <sebastian.pop@amd.com>
35428
35429 PR middle-end/42988
35430 * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
35431 to unknown_dependence.
35432 (graphite_legal_transform_dr): Handle the unknown_dependence.
35433 (graphite_carried_dependence_level_k): Same.
35434
35435 2010-02-07 Sebastian Pop <sebastian.pop@amd.com>
35436
35437 * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
35438
35439 2010-02-07 Richard Guenther <rguenther@suse.de>
35440
35441 PR middle-end/42991
35442 * expr.c (get_inner_reference): Always initialize *pbitsize.
35443
35444 2010-02-07 Richard Guenther <rguenther@suse.de>
35445
35446 PR middle-end/42956
35447 * gimplify.c (gimple_fold_indirect_ref): Avoid generating
35448 new ARRAY_REFs on variable size element or minimal index arrays.
35449 Complete.
35450 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
35451 gimple_fold_indirect_ref.
35452
35453 2010-02-06 Richard Earnshaw <rearnsha@arm.com>
35454
35455 PR target/42957
35456 * arm.c (arm_override_options): Just return if the user has specified
35457 an invalid fpu name.
35458
35459 2010-02-03 Jason Merrill <jason@redhat.com>
35460
35461 PR c++/42870
35462 * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
35463 i386_pe_maybe_record_exported_symbol.
35464
35465 2010-02-05 Steve Ellcey <sje@cup.hp.com>
35466
35467 PR target/42924
35468 * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
35469 (pa_delegitimize_address): New function.
35470
35471 2010-02-05 Ozkan Sezer <sezeroz@gmail.com>
35472
35473 * config/i386/msformat-c.c (ms_printf_length_specs): Set the
35474 scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
35475
35476 2010-02-05 Richard Guenther <rguenther@suse.de>
35477
35478 PR lto/42762
35479 * lto-streamer-in.c (get_resolution): Deal with references
35480 to undefined functions.
35481
35482 2010-02-05 Richard Guenther <rguenther@suse.de>
35483
35484 * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
35485 (fold_const_aggregate_ref): Likewise.
35486 (ccp_fold_stmt): Substitute loads.
35487 (maybe_fold_reference): Verify types before substituting.
35488 Unshare properly.
35489 (fold_gimple_assign): Unshare properly.
35490 (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
35491
35492 2010-02-05 Nathan Froyd <froydnj@codesourcery.com>
35493
35494 * config/rs6000/rs6000.c (rs6000_override_options): Invert check
35495 for rs6000_gen_cell_microcode.
35496
35497 2010-02-04 Richard Guenther <rguenther@suse.de>
35498
35499 PR rtl-optimization/42952
35500 * dse.c (const_or_frame_p): Remove MEM handling.
35501
35502 2010-02-04 Nick Clifton <nickc@redhat.com>
35503
35504 * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
35505 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
35506 (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
35507 (mn10300_asm_output_mi_thunk): New function.
35508 (mn10300_can_output_mu_thunk): New function.
35509 * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
35510 (FUNCTION_ARG_REGNO_P): Fix comment. Accept d0 and d1.
35511 (FUNCTION_ARG): Delete incorrect comment.
35512
35513 2010-02-03 Jason Merrill <jason@redhat.com>
35514
35515 PR c++/40138
35516 * fold-const.c (operand_equal_p): Handle erroneous types.
35517
35518 2010-02-03 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
35519
35520 * config/h8300/h8300.md (can_delay): Fix attibute condition.
35521
35522 2010-02-03 Vladimir Makarov <vmakarov@redhat.com>
35523
35524 PR rtl-optimization/42941
35525 * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
35526 of xmalloc.
35527
35528 2010-02-03 Jason Merrill <jason@redhat.com>
35529
35530 PR c++/35652
35531 * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
35532
35533 2010-02-03 Alexandre Oliva <aoliva@redhat.com>
35534
35535 PR debug/42896
35536 * cselib.h (struct cselib_val_struct): Add uid. Rename value to hash.
35537 (cselib_reset_table): Renamed from...
35538 (cselib_reset_table_with_next_value): ... this.
35539 (cselib_get_next_uid): Renamed from...
35540 (cselib_get_next_unknown_value): ... this.
35541 * cselib.c (next_uid): Renamed from...
35542 (next_unknown_value): ... this.
35543 (cselib_clear_table): Adjust.
35544 (cselib_reset_table): Adjust. Renamed from...
35545 (cselib_reset_table_with_next_value): ... this.
35546 (cselib_get_next_uid): Adjust. Renamed from...
35547 (cselib_get_next_unknown_value): ... this.
35548 (get_value_hash): Use hash.
35549 (cselib_hash_rtx): Likewise.
35550 (new_cselib_val): Adjust. Set and dump uid.
35551 (cselib_lookup_mem): Pass next_uid as hash.
35552 (cselib_subst_to_values): Likewise.
35553 (cselib_log_lookup): Dump uid.
35554 (cselib_lookup): Pass next_uid as hash. Adjust.
35555 (cselib_process_insn): Adjust.
35556 (cselib_init): Initialize next_uid.
35557 (cselib_finish): Adjust.
35558 (dump_cselib_table): Likewise.
35559 * dse.c (canon_address): Dump value uid.
35560 * print-rtl.c (print_rtx): Print value uid.
35561 * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
35562 (dvuid): New type.
35563 (dv_uid): New function, sort of renamed from...
35564 (dv_htab_hash): ... this, reimplemented in terms of it and...
35565 (dv_uid2hash): ... this. New.
35566 (variable_htab_eq): Drop excess assertions.
35567 (tie_break_pointers): Removed.
35568 (canon_value_cmp): Compare uids.
35569 (variable_post_merge_New_vals): Print uids.
35570 (vt_add_function_parameters): Adjust.
35571 (vt_initialize): Reset table. Adjust.
35572
35573 2010-02-03 Richard Guenther <rguenther@suse.de>
35574
35575 PR tree-optimization/42944
35576 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
35577 (call_may_clobber_ref_p_1): Likewise. Properly handle
35578 malloc and calloc clobbering errno.
35579
35580 2010-02-03 Steven Bosscher <steven@gcc.gnu.org>
35581
35582 * doc/invoke.texi: Fix name of sched1 dump.
35583
35584 * opts.c (decode_options): Set flag_tree_switch_conversion
35585 only conditionally on optimize >= 2.
35586
35587 * gcse.c: Assorted comment fixes in pass description.
35588
35589 2010-02-03 Anthony Green <green@moxielogic.com>
35590
35591 * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
35592 nop padding in order to maintain alignment of storage location of
35593 target function address.
35594 (moxie_trampoline_init): Store target function address at newly
35595 aligned location.
35596 * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
35597 to 32.
35598 (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
35599
35600 2010-02-03 Richard Guenther <rguenther@suse.de>
35601
35602 PR middle-end/42927
35603 * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
35604
35605 2010-02-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
35606
35607 * config.gcc: Reenable check for obsolete targets.
35608 Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
35609 mips-sgi-irix6.[0-4]*.
35610
35611 2010-02-02 Nick Clifton <nickc@redhat.com>
35612
35613 * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
35614 constant size of 4 as being the same as 0.
35615 * doc/invoke.texi (RX Options): Document that -mmax-constant-size
35616 can take values in the range 0..4.
35617
35618 2010-02-02 Jack Howarth <howarth@bromo.med.uc.edu>
35619
35620 PR java/41991
35621 * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
35622 as _darwin10_Unwind_FindEnclosingFunction().
35623 * libgcc-libsystem.ver: New.
35624
35625 2010-02-01 Vladimir Makarov <vmakarov@redhat.com>
35626
35627 PR target/41399
35628 * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
35629 implicitly set registers.
35630
35631 2010-02-01 Richard Earnshaw <rearnsha@arm.com>
35632
35633 * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
35634 (arm_override_options): Allow automatic selection of the thread
35635 pointer register if thumb2.
35636 (legitimize_pic_address): Improve code sequences for Thumb2.
35637 (arm_call_tls_get_addr): Likewise.
35638 (legitimize_tls_address): Likewise.
35639 * arm.md (pic_load_addr_arm): Delete. Replace with ...
35640 (pic_load_addr_32bit): ... this. New named pattern.
35641 * thumb2.md (pic_load_addr_thumb2): Delete.
35642 (pic_load_dot_plus_four): Delete.
35643 (tls_load_dot_plus_four): New named pattern.
35644
35645 2010-02-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
35646
35647 PR libgomp/29986
35648 * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
35649 Document fix for TLS bug.
35650
35651 2010-01-31 Richard Guenther <rguenther@suse.de>
35652
35653 * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
35654 conservatively correct.
35655
35656 2010-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
35657
35658 PR target/42850
35659 Revert:
35660 2010-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
35661
35662 * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
35663
35664 2010-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
35665
35666 * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
35667
35668 2010-01-31 Kai Tietz <kai.tietz@onevision.com>
35669
35670 * config.gcc: Adjust order of makefile fragments for mingw targets.
35671
35672 2010-01-31 Richard Guenther <rguenther@suse.de>
35673
35674 PR middle-end/42898
35675 * gimplify.c (gimplify_init_constructor): For volatile LHS
35676 initialize a temporary.
35677
35678 2010-01-31 Matthias Klose <doko@ubuntu.com>
35679
35680 * configure.ac: Fix __stack_chk_fail check for cross builds configured
35681 --with-headers
35682 * configure: Regenerate.
35683
35684 2010-01-29 Eric Botcazou <ebotcazou@adacore.com>
35685
35686 * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
35687 the same alias set and their sizes different constantness.
35688 (aliasing_component_refs_p): Revert 2009-10-24 change.
35689
35690 2010-01-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
35691
35692 * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
35693 unused.
35694
35695 2010-01-29 Richard Guenther <rguenther@suse.de>
35696
35697 * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
35698 Assert we successfully updated the call.
35699
35700 2010-01-29 Jakub Jelinek <jakub@redhat.com>
35701
35702 PR rtl-optimization/42889
35703 * df.h (df_set_bb_dirty_nonlr): New prototype.
35704 * df-core.c (df_set_bb_dirty_nonlr): New function.
35705 * df-scan.c (df_insn_rescan): Call it instead of
35706 df_set_bb_dirty for DEBUG_INSNs.
35707
35708 2010-01-29 Richard Guenther <rguenther@suse.de>
35709
35710 PR middle-end/37448
35711 * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
35712 quadratic behavior in most cases.
35713
35714 2010-01-28 Uros Bizjak <ubizjak@gmail.com>
35715
35716 PR target/42891
35717 * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
35718 in the call to gen_x86_movsicc_0_m1.
35719
35720 2010-01-28 Richard Guenther <rguenther@suse.de>
35721
35722 PR tree-optimization/42871
35723 * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
35724
35725 2010-01-28 Richard Guenther <rguenther@suse.de>
35726
35727 * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
35728 into call arguments.
35729
35730 2010-01-28 Richard Guenther <rguenther@suse.de>
35731
35732 PR middle-end/42883
35733 * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
35734 the forwarder if the destination is an EH landing pad.
35735
35736 2010-01-28 Razya Ladelsky <razya@il.ibm.com>
35737
35738 * tree-parloops.c (transform_to_exit_first_loop): Update the basic
35739 block list passed to gimple_duplicate_sese_tail.
35740 (parallelize_loops): Avoid parallelization when the function
35741 has_nonlocal_label.
35742 Avoid parallelization when the preheader is IRREDUCIBLE.
35743 Try to optimize when estimated_loop_iterations_int is unresolved.
35744 Add the loop's location to the dump file.
35745 * tree-cfg.c (add_phi_args_after_redirect): Remove.
35746 (gimple_duplicate_sese_tail): Remove the check for the latch.
35747 Redirect nexits to the exit block.
35748 Remove handling of the incoming edges to the latch.
35749 Redirect the backedge from the copied latch to the exit bb.
35750
35751 2010-01-28 Michael Matz <matz@suse.de>
35752
35753 PR target/42881
35754 * config/i386/i386.c (ix86_expand_vector_init_duplicate):
35755 Wrap force_reg into a sequence, emit it before user.
35756
35757 2010-01-28 Stephen Thomas <stephen.thomas@arm.com>
35758
35759 * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
35760 (arm_rev): New.
35761 (arm_legacy_rev): Likewise.
35762 (thumb_legacy_rev): Likewise.
35763
35764 2010-01-27 Jakub Jelinek <jakub@redhat.com>
35765
35766 * dwarf2out.c (mem_loc_descriptor): Remove special casing of
35767 CONSTANT_POOL_ADDRESS_P SYMBOL_REFs. If for MEM recursive call
35768 on MEM's address failed, try avoid_constant_pool_reference and
35769 recurse if it returned something different.
35770 (loc_descriptor): If for MEM mem_loc_descriptor failed on the
35771 address, try avoid_constant_pool_reference and recurse if it
35772 returned something different.
35773 (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
35774 address and avoid_constant_pool_reference returned something
35775 different, don't set have_address.
35776
35777 2010-01-27 Alexandre Oliva <aoliva@redhat.com>
35778
35779 PR debug/42861
35780 * var-tracking.c (val_store): Add modified argument, obey it.
35781 Adjust callers.
35782 (count_uses): Move down logging of main.
35783 (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
35784 don't need resolution.
35785 (emit_notes_in_bb): Likewise.
35786
35787 2010-01-27 Richard Guenther <rguenther@suse.de>
35788
35789 PR middle-end/42878
35790 * tree-inline.c (remap_decl): Delay remapping of SSA name
35791 default definitions until we need them.
35792
35793 2010-01-27 Jakub Jelinek <jakub@redhat.com>
35794
35795 * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
35796 (rs6000_delegitimize_address): New function.
35797
35798 * config/s390/s390.c (s390_delegitimize_address): Call
35799 delegitimize_mem_from_attrs.
35800
35801 PR middle-end/42874
35802 * tree-inline.c (cannot_copy_type_1): Removed.
35803 (copy_forbidden): Don't forbid copying of functions containing
35804 records/unions with variable length fields.
35805
35806 2010-01-27 Christian Bruel <christian.bruel@st.com>
35807
35808 Revert:
35809 PR target/42841
35810 * config/sh/sh.c (find_barrier): Increase length for non delayed
35811 conditional branches.
35812
35813 2010-01-27 Matthias Klose <doko@ubuntu.com>
35814
35815 * configure.ac (gnu-unique-object): Fix ldd version check.
35816 * configure: Regenerate.
35817
35818 2010-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
35819
35820 * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
35821 HAVE_GNU_AS value.
35822 * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
35823 Test for HAVE_GNU_AS value.
35824
35825 2010-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
35826
35827 * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
35828 * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
35829 INT64_TYPE): Define.
35830 (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
35831 (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
35832 INT_LEAST64_TYPE): Define.
35833 (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
35834 UINT_LEAST64_TYPE): Define.
35835 (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
35836 INT_FAST64_TYPE): Define.
35837 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
35838 UINT_FAST64_TYPE): Define.
35839 (INTMAX_TYPE, UINTMAX_TYPE): Define.
35840 (INTPTR_TYPE, UINTPTR_TYPE): Define.
35841 (SIG_ATOMIC_TYPE): Define.
35842
35843 2010-01-26 Richard Guenther <rguenther@suse.de>
35844
35845 * df-scan.c (df_scan_set_bb_info): Remove assert.
35846 (df_insn_rescan_debug_internal): Merge asserts.
35847 (df_install_ref): Likewise.
35848 (df_mark_reg): Use bitmap_set_range.
35849 (df_hard_reg_used_p): Remove assert.
35850 (df_hard_reg_used_count): Likewise.
35851
35852 2010-01-26 Richard Guenther <rguenther@suse.de>
35853
35854 PR rtl-optimization/42685
35855 * web.c (web_main): Ignore DEBUG_INSNs.
35856
35857 2010-01-26 Joern Rennecke <amylaar@spamcop.net>
35858
35859 * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
35860
35861 (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
35862 Fix types of fndecl and arglist parameters.
35863
35864 2010-01-26 Richard Guenther <rguenther@suse.de>
35865
35866 PR middle-end/42806
35867 * tree-eh.c (unsplit_eh): Skip debug insns.
35868
35869 2010-01-26 Richard Guenther <rguenther@suse.de>
35870
35871 PR tree-optimization/42250
35872 * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
35873
35874 2010-01-26 Jakub Jelinek <jakub@redhat.com>
35875
35876 PR fortran/42866
35877 * omp-low.c (expand_omp_sections): Only use single_pred if
35878 l2_bb is single_pred_p.
35879
35880 2010-01-25 Christian Bruel <christian.bruel@st.com>
35881
35882 PR target/42841
35883 * config/sh/sh.c (find_barrier): Increase length for non delayed
35884 conditional branches.
35885 (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
35886
35887 2010-01-24 David S. Miller <davem@davemloft.net>
35888
35889 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
35890 define if not using GAS.
35891 * config/sparc/sparc.c (sparc_elf_asm_named_section):
35892 Likewise. Delete SECTION_MERGE code, which is only applicable
35893 when using GAS.
35894
35895 2010-01-24 Mark Mitchell <mark@codesourcery.com>
35896
35897 PR c++/42748
35898 * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
35899 mangling of va_list in system headers.
35900
35901 2010-01-23 Toon Moene <toon@moene.org>
35902
35903 * tree-predcom.c (combine_chains): Return NULL, not false.
35904
35905 2010-01-23 Joern Rennecke <amylaar@spamcop.net>
35906
35907 * tree-loop-distribution.c (distribute_loop): Fix declaration and
35908 initialization of variable res to agree with return type.
35909
35910 2010-01-22 Steve Ellcey <sje@cup.hp.com>
35911
35912 * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
35913 * tree-sra.c: Add include of expr.h.
35914
35915 2010-01-22 Jakub Jelinek <jakub@redhat.com>
35916
35917 * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
35918 insert the debug stmt on the single non-EH edge from the stmt.
35919
35920 2010-01-22 Richard Henderson <rth@redhat.com>
35921
35922 PR tree-opt/42833
35923 * tree-sra.c (sra_modify_assign): Delay re-gimplification of
35924 the RHS until after generate_subtree_copies has insertted its
35925 code before the current statement.
35926
35927 2010-01-22 Joern Rennecke <amylaar@spamcop.net>
35928
35929 * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
35930
35931 * gcc-plugin.h (plugin_init): Use "C" likage for c++.
35932
35933 2010-01-21 Martin Jambor <mjambor@suse.cz>
35934
35935 PR tree-optimization/42585
35936 * tree-sra.c (struct access): New field grp_total_scalarization.
35937 (dump_access): Dump the new field.
35938 (should_scalarize_away_bitmap): New variable.
35939 (cannot_scalarize_away_bitmap): Likewise.
35940 (sra_initialize): Allocate new bitmaps.
35941 (sra_deinitialize): Free new bitmaps.
35942 (create_access_1): New function.
35943 (create_access): Parts moved to create_access_1.
35944 (type_consists_of_records_p): New function.
35945 (completely_scalarize_record): Likewise.
35946 (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
35947 (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
35948 (sort_and_splice_var_accesses): Hint groups with a total_scalarization
35949 access.
35950 (analyze_all_variable_accesses): Completely scalarize small eligible
35951 records.
35952
35953 2010-01-21 Martin Jambor <mjambor@suse.cz>
35954
35955 * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
35956
35957 2010-01-21 Andrew Haley <aph@redhat.com>
35958
35959 * gcc.c (process_command): Move lang_specific_driver before
35960 setting cc_libexec_prefix.
35961
35962 2010-01-21 Richard Guenther <rguenther@suse.de>
35963
35964 PR middle-end/19988
35965 * fold-const.c (negate_expr_p): Pretend only negative
35966 real constants are easily negatable.
35967
35968 2010-01-20 Janis Johnson <janis187@us.ibm.com>
35969 Jason Merrill <jason@redhat.com>
35970
35971 * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
35972 (TYPE_TRANSPARENT_AGGR): this, for union and record.
35973 * calls.c (initialize argument_information): Handle it.
35974 * c-common.c (handle_transparent_union_attribute): Use new name.
35975 * c-decl.c (finish_struct): Ditto.
35976 * c-typeck.c (type_lists_compatible_p): Ditto.
35977 (convert_for_assignment): Use new name and also handle record.
35978 * function.c (aggregate_value_p): Handle it.
35979 (pass_by_reference): Ditto.
35980 (assign_parm_data_types): Ditto.
35981 * print-tree.c (print_node): Ditto.
35982 * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
35983 * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
35984 * tree.c (first_field): New fn.
35985
35986 2010-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
35987
35988 PR target/42818
35989 * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
35990 even when linking statically, for now.
35991
35992 2010-01-20 Alexandre Oliva <aoliva@redhat.com>
35993
35994 PR debug/42715
35995 * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
35996 without a cselib val.
35997 (count_uses): Accept MO_VAL_SET with no val on stores.
35998 (add_stores): Likewise.
35999
36000 2010-01-20 Jakub Jelinek <jakub@redhat.com>
36001
36002 * var-tracking.c (check_value_val): Add a compile time assertion.
36003 (dv_is_decl_p): Simplify.
36004 (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
36005 gcc_assert if ENABLE_CHECKING.
36006
36007 2010-01-20 Alexandre Oliva <aoliva@redhat.com>
36008
36009 PR debug/42782
36010 * var-tracking.c: Include tree-flow.h.
36011 (mem_dies_at_call): New.
36012 (dataflow_set_preserve_mem_locs): Use it.
36013 (dataflow_set_remove_mem_locs): Likewise.
36014 (dump_var): Renamed from dump_variable. Adjust all callers.
36015 (dump_var_slot): Renamed from dump_variable_slot. Likewise.
36016 * Makefile.in (var-tracking.o): Adjust deps.
36017
36018 2010-01-20 Joern Rennecke <amylaar@spamcop.net>
36019
36020 * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
36021
36022 2010-01-20 Richard Guenther <rguenther@suse.de>
36023
36024 PR tree-optimization/42717
36025 * tree-ssa-dce.c (get_live_post_dom): Remove.
36026 (forward_edge_to_pdom): Take an arbitrary edge to copy
36027 degenerate PHI args from.
36028 (remove_dead_stmt): Use the first post-dominator even if it
36029 does not contain live statements as redirection destination.
36030
36031 2010-01-20 Richard Guenther <rguenther@suse.de>
36032
36033 * tree-inline.c (estimate_num_insns): Handle EH builtins.
36034
36035 2010-01-20 Jakub Jelinek <jakub@redhat.com>
36036
36037 * sel-sched.c (create_speculation_check): Remove set but not used
36038 variable twin.
36039 (try_transformation_cache): Remove set but not used variable ds.
36040 (calculate_privileged_insns): Remove set but not used variables
36041 cur_insn and min_spec_insn.
36042 (find_best_expr): Remove set but not used variable avail_n.
36043 * tree-predcom.c (base_names_in_chain_on): Remove set but not used
36044 variable e.
36045 * cgraphunit.c (assemble_thunk): Remove set but not used variable
36046 false_label.
36047 * haifa-sched.c (remove_notes): Remove set but not used variable prev.
36048 * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
36049 new_scop_exit_edge.
36050
36051 2010-01-20 Felyza Wishbringer <fwishbringer@gmail.com>
36052
36053 PR bootstrap/42786
36054 * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
36055 cpu types. Add support for *-sse3 cpu types.
36056 (x86_64-*-*): Ditto.
36057
36058 2010-01-20 Jakub Jelinek <jakub@redhat.com>
36059
36060 PR middle-end/42803
36061 * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
36062 argument, call initializer_constant_valid_p_1 instead of
36063 initializer_constant_valid_p, pass CACHE to it, return NULL
36064 immediately if first call returns NULL.
36065 (initializer_constant_valid_p_1): New function.
36066 (initializer_constant_valid_p): Use it.
36067
36068 2010-01-20 Thomas Quinot <quinot@adacore.com>
36069
36070 * tree.def (PLACEHOLDER_EXPR): Fix comment.
36071
36072 2010-01-20 Jakub Jelinek <jakub@redhat.com>
36073
36074 * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
36075 of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
36076 (loc_list_from_tree): Don't handle unsigned division. Handle
36077 signed modulo using DW_OP_{over,over,div,mul,minus}.
36078 * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
36079 modulo instead of signed.
36080
36081 2010-01-20 DJ Delorie <dj@redhat.com>
36082
36083 * config/h8300/h8300.c (F): Add "in_epilogue" flag.
36084 (Fpa): Pass it
36085 (h8300_emit_stack_adjustment): Propogate it.
36086 (push): Pass it.
36087 (h8300_expand_prologue): Likewise.
36088 (h8300_expand_epilogue): Likewise.
36089
36090 2010-01-19 Michael Matz <matz@suse.de>
36091
36092 PR tree-optimization/41783
36093 * tree-data-ref.c (toplevel): Include flags.h.
36094 (dump_data_dependence_relation): Also dump the inputs if the
36095 result will be unknown.
36096 (split_constant_offset_1): Look through some conversions.
36097 * tree-predcom.c (determine_roots_comp): Restart a new chain if
36098 the offset from last element is too large.
36099 (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
36100 (reassociate_to_the_same_stmt): Handle vector registers.
36101 * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
36102 (e.g. conversions).
36103 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
36104 wide_prolog_niters argument, emit widening instructions.
36105 (vect_do_peeling_for_alignment): Adjust caller, use widened
36106 variant of the iteration cound.
36107 * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
36108
36109 2010-01-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
36110
36111 PR target/38697
36112 * config/arm/neon-testgen.m (emit_automatics): New parameter
36113 features. Adjust for Fixed_return_reg feature.
36114 (test_intrinsic): Call emit_automatics with new feature.
36115 * config/arm/neon.ml: Update copyright years.
36116 (features): New Fixed_return_reg feature.
36117 (ops): Update feature for Vget_low.
36118
36119 2010-01-19 Jakub Jelinek <jakub@redhat.com>
36120
36121 PR tree-optimization/42719
36122 * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
36123 stmt uses.
36124
36125 PR debug/42728
36126 * fwprop.c (all_uses_available_at): Return false if def_set dest
36127 is a REG that is used in def_insn.
36128
36129 2010-01-19 Joern Rennecke <amylaar@spamcop.net>
36130
36131 * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
36132
36133 (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
36134 Add argument names.
36135
36136 (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
36137
36138 * target.h (struct gcc_target) <secondary_reload>: Change type
36139 of last argument to secondary_reload_info *.
36140
36141 2010-01-18 Uros Bizjak <ubizjak@gmail.com>
36142
36143 PR target/42774
36144 * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
36145 memory references with unaligned offsets. Remove CQImode handling.
36146 (unaligned_memory_operand): Return 1 for memory references with
36147 unaligned offsets. Remove CQImode handling.
36148
36149 2010-01-18 Richard Guenther <rguenther@suse.de>
36150
36151 PR middle-end/39954
36152 * cfgexpand.c (expand_call_stmt): TER pointer arguments in
36153 builtin calls.
36154
36155 2010-01-18 Richard Guenther <rguenther@suse.de>
36156
36157 PR tree-optimization/42781
36158 * tree-ssa-structalias.c (find_what_var_points_to): Skip
36159 restrict processing only if the original variable was artificial.
36160
36161 2010-01-18 Joern Rennecke <amylaar@spamcop.net>
36162
36163 * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
36164 find number of popped argument bytes.
36165
36166 (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
36167 Fix the text that describes the return value for invalid insns.
36168
36169 (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type. Fix argument list.
36170
36171 (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
36172 Clarify what 'cost of the -dependence' is. Fix quoting.
36173
36174 * toplev.c (default_get_pch_validity): Rename argument to "sz".
36175 * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
36176
36177 2010-01-17 Jakub Jelinek <jakub@redhat.com>
36178
36179 * dwarf2out.c (mem_loc_descriptor): Don't ICE on
36180 {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
36181
36182 2010-01-17 Richard Guenther <rguenther@suse.de>
36183
36184 PR middle-end/42248
36185 * function.c (split_complex_args): Take a VEC to modify.
36186 (assign_parms_augmented_arg_list): Build a VEC instead of
36187 a chain of PARM_DECLs.
36188 (assign_parms_unsplit_complex): Take a VEC of arguments.
36189 Do not fixup unmodified parms.
36190 (assign_parms): Deal with the VEC.
36191 (gimplify_parameters): Likewise.
36192
36193 2010-01-17 Richard Guenther <rguenther@suse.de>
36194
36195 * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
36196 node existence check.
36197 * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
36198 * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
36199 * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
36200 * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
36201 (gimple_execute_on_growing_pred): Likewise.
36202
36203 2010-01-17 Richard Guenther <rguenther@suse.de>
36204
36205 PR tree-optimization/42773
36206 * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
36207 (compute_antic_aux): Likewise.
36208 (compute_partial_antic_aux): Likewise.
36209
36210 2010-01-17 Jie Zhang <jie.zhang@analog.com>
36211
36212 PR debug/42767
36213 * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
36214 and US_TRUNCATE.
36215
36216 2010-01-17 Joern Rennecke <amylaar@spamcop.net>
36217
36218 * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
36219 appearance.
36220
36221 (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
36222 Fix markup for strict argument.
36223
36224 (TARGET_SCHED_REORDER2): Fix argument types.
36225
36226 (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
36227 (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
36228
36229 (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
36230 (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
36231
36232 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
36233 Add argument name.
36234
36235 (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
36236 (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
36237 (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
36238 (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
36239 (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
36240
36241 (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
36242
36243 (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
36244
36245 (TARGET_ASM_RELOC_RW_MASK): Add return type.
36246 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
36247
36248 (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
36249
36250 (TARGET_ASM_FILE_START): Put @findex before paragraph start.
36251 Use prototype.
36252
36253 (TARGET_ASM_NAMED_SECTION): Fix argument list.
36254
36255 (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
36256 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
36257
36258 (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
36259
36260 (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
36261
36262 (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
36263 referring to it. Fix language.
36264
36265 (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
36266
36267 (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
36268
36269 (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
36270
36271 (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
36272
36273 (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
36274 '@var{stream}. Remove stray 'and'.
36275
36276 (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
36277
36278 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
36279
36280 (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
36281
36282 (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
36283 misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
36284
36285 (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
36286 Fix description of return value.
36287 Rename argument "sz" to "len."
36288
36289 (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
36290 Clarify meaning of 'true' return value.
36291
36292 (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
36293
36294 (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
36295 rep_mode versus mode_rep.
36296
36297 (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
36298
36299 (TARGET_BUILTIN_DECL): Fix name.
36300
36301 (TARGET_COMMUTATIVE_P): Fix type of first argument.
36302
36303 (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
36304
36305 (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
36306
36307 (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
36308
36309 (TARGET_RELAXED_ORDERING): Use @deftypevr.
36310
36311 (TARGET_GET_DRAP_RTX): Note that this is a hook.
36312 Clarify language.
36313
36314 (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
36315 Rename argument tm_fn to md_fn.
36316
36317 (TARGET_OPTION_PRINT): Fix argument list.
36318
36319 2010-01-16 Harsha Jagasia <harsha.jagasia@amd.com>
36320
36321 PR target/42664
36322 * config/i386/i386.c (ix86_fixup_binary_operands):
36323 Revert FMA4 fixup of operands.
36324
36325 2010-01-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
36326
36327 PR other/42525
36328 * Makefile.in (write_entries_to_file, install-plugin):
36329 Use \012 instead of \n with tr.
36330
36331 2010-01-16 Richard Sandiford <r.sandiford@uk.ibm.com>
36332
36333 * configure.ac (HAVE_AS_REF): New C macro.
36334 * configure: Regenerate.
36335 * config.in: Likewise.
36336 * collect2.c (main): Only postpone SCAN_DWEH to the second pass
36337 if HAVE_AS_REF.
36338 * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
36339 if HAVE_AS_REF.
36340
36341 2010-01-16 Joern Rennecke <amylaar@spamcop.net>
36342
36343 * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
36344
36345 (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
36346
36347 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
36348
36349 (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
36350
36351 (TARGET_IN_SMALL_DATA_P): Fix argument type.
36352
36353 (TARGET_BINDS_LOCAL_P): Fix argument type.
36354
36355 (TARGET_ASM_FILE_END): Use prototype.
36356
36357 (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
36358
36359 (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
36360
36361 (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
36362
36363 (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
36364
36365 (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
36366 (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
36367
36368 (TARGET_PCH_VALID_P): Put 'const char *' in braces.
36369 (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
36370
36371 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
36372 (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
36373 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
36374 (TARGET_ADDR_SPACE_CONVERT): Likewise.
36375
36376 (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
36377
36378 (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
36379
36380 (TARGET_INIT_BUILTINS): Use prototype.
36381
36382 (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
36383 Put 'const char *' in braces. Fix parameter types.
36384 (TARGET_INVALID_CONVERSION): Fix parameter types.
36385 (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
36386 (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
36387
36388 (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
36389 Fix argument type.
36390
36391 (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
36392
36393 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
36394
36395 2010-01-15 Joern Rennecke <amylaar@spamcop.net>
36396
36397 * doc/tm.texi (TARGET_HELP): Fix return type.
36398
36399 (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
36400 in braces. Fix argument types.
36401
36402 (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
36403
36404 (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
36405
36406 (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
36407
36408 (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
36409 (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
36410
36411 (TARGET_MANGLE_TYPE): Fix argument types.
36412
36413 (TARGET_IRA_COVER_CLASSES): Use prototype.
36414
36415 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type. Use prototype.
36416
36417 (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
36418
36419 (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
36420
36421 (TARGET_MUST_PASS_IN_STACK): Fix argument type.
36422
36423 (TARGET_CALLEE_COPIES): Fix argument types.
36424
36425 (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
36426
36427 (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
36428
36429 (TARGET_FUNCTION_VALUE): Fix argument types.
36430
36431 (TARGET_RETURN_IN_MSB): Fix argument type.
36432
36433 (TARGET_RETURN_IN_MEMORY): Fix argument types.
36434
36435 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
36436
36437 (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
36438
36439 (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
36440 agree with return type.
36441
36442 (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
36443
36444 2010-01-15 Jing Yu <jingyu@google.com>
36445
36446 PR rtl-optimization/42691
36447 * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
36448 a pseudo to a constant and are merged, and adjust comments.
36449
36450 2010-01-15 Eric Botcazou <ebotcazou@adacore.com>
36451
36452 * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
36453
36454 2010-01-15 Richard Guenther <rguenther@suse.de>
36455
36456 PR middle-end/42739
36457 * tree-cfgcleanup.c (remove_forwarder_block): Move destination
36458 labels of computed or non-local gotos to the destination.
36459 * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
36460 landing pad label is the first label.
36461
36462 2010-01-15 Richard Guenther <rguenther@suse.de>
36463
36464 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
36465
36466 2010-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
36467
36468 PR target/42747
36469 * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
36470 to allow generation of the xssqrtdp instruction on power7.
36471 (sqrtdf2_fpr): Ditto.
36472
36473 2010-01-14 Jakub Jelinek <jakub@redhat.com>
36474
36475 PR middle-end/42674
36476 * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
36477 functions with noreturn attribute.
36478
36479 PR c++/42608
36480 * varasm.c (declare_weak): Add weak attribute to decl if it
36481 doesn't have one already.
36482 (assemble_external): Only add decls to weak_decls if they also
36483 have weak attribute.
36484
36485 2010-01-14 Alexandre Oliva <aoliva@redhat.com>
36486
36487 * var-tracking.c (var_reg_delete): Don't delete the association
36488 between REGs and values or one-part variables if the register
36489 isn't clobbered.
36490
36491 2010-01-14 Jakub Jelinek <jakub@redhat.com>
36492
36493 PR debug/42657
36494 * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
36495 because its first operand is a non-localized variable.
36496
36497 2010-01-14 Martin Jambor <mjambor@suse.cz>
36498
36499 PR tree-optimization/42706
36500 * tree-sra.c (encountered_recursive_call): New variable.
36501 (encountered_unchangable_recursive_call): Likewise.
36502 (sra_initialize): Initialize both new variables.
36503 (callsite_has_enough_arguments_p): New function.
36504 (scan_function): Call decl and flags check only for IPA-SRA, check
36505 whether there is a recursive call and whether it has enough arguments.
36506 (all_callers_have_enough_arguments_p): New function.
36507 (convert_callers): Look for recursive calls only when
36508 encountered_recursive_call is set.
36509 (ipa_early_sra): Bail out either if
36510 !all_callers_have_enough_arguments_p or
36511 encountered_unchangable_recursive_call.
36512
36513 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
36514
36515 * sel-sched.c: Add 2010 to copyright years.
36516 * sel-sched-ir.c: Likewise.
36517 * sel-sched-ir.h: Likewise.
36518
36519 2010-01-14 Martin Jambor <mjambor@suse.cz>
36520
36521 PR tree-optimization/42714
36522 * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
36523 constructors specially.
36524
36525 2010-01-14 Andi Kleen <ak@linux.intel.com>
36526
36527 * config/i386/drivers-i386.c (detect_caches_intel):
36528 Add l2sizekb parameter and fill in.
36529 (host_detect_local_cpu): Add l2sizekb, fill in.
36530 Add Atom small cache heuristic.
36531
36532 2010-01-14 Andi Kleen <ak@linux.intel.com>
36533
36534 * config/i386/drivers-i386.c (detect_caches_cpuid4):
36535 Add level3 parameter and fill in.
36536 (detect_caches_intel): Handle level3 cache.
36537
36538 2010-01-14 Andi Kleen <ak@linux.intel.com>
36539
36540 * config/i386/drivers-i386.c (host_detect_local_cpu):
36541 Fix core duo detection.
36542
36543 2010-01-14 Andi Kleen <ak@linux.intel.com>
36544
36545 * config/i386/drivers-i386.c (host_detect_local_cpu):
36546 Fix Atom detection.
36547
36548 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
36549
36550 * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
36551 (rs6000_variable_issue_1): this. Use...
36552 (rs6000_variable_issue): here. Reimplement. Print debug info.
36553
36554 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
36555
36556 * sel-sched-ir.c (sel_restore_other_notes): Rename to
36557 sel_restore_notes. Update all callers. Call reemit_notes
36558 for all insns.
36559
36560 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
36561
36562 PR rtl-optimization/42246
36563 * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
36564 loops.
36565
36566 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
36567
36568 * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
36569 all successors is the same as number of successors in current region.
36570
36571 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
36572
36573 * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
36574 to rename is not separable. Otherwise check that its LHS is not NULL.
36575
36576 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
36577
36578 * sel-sched.c (choose_best_reg_1): Loop over all regs for mode.
36579
36580 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
36581
36582 * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
36583 available registers when failed to discover LHS register class.
36584 Fix indentation. Update comment.
36585
36586 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
36587 Alexander Monakov <amonakov@ispras.ru>
36588
36589 PR rtl-optimization/42389
36590 * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
36591 to can_issue_more.
36592 (advance_state_on_fence): Likewise.
36593 (sel_target_adjust_priority): Print debug output only when
36594 sched_verbose >= 4, not 2.
36595 (get_expr_cost): Do not issue all unique insns on the next cycle.
36596 (fill_insns): Initialize can_issue_more from the value saved
36597 with the fence.
36598 * sel-sched-ir.c (flist_add): New parameter issue_more.
36599 Init FENCE_ISSUE_MORE with it.
36600 (merge_fences): Likewise.
36601 (init_fences): Update call to flist_add.
36602 (add_to_fences, add_clean_fence_to_fences)
36603 (add_dirty_fence_to_fences): Likewise.
36604 (move_fence_to_fences): Update call to merge_fences.
36605 (invoke_reorder_hooks): Do not reset can_issue_more on insns from
36606 sched groups.
36607 * sel-sched-ir.h (struct _fence): New field issue_more.
36608 (FENCE_ISSUE_MORE): New accessor macro.
36609
36610 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
36611
36612 PR rtl-optimization/42388
36613 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
36614 that have no predecessors nor successors. Do not call move_bb_info
36615 for empty blocks outside of current region.
36616
36617 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
36618
36619 PR rtl-optimization/42294
36620 * sel-sched-ir.h (struct _sel_insn_data): Update comment.
36621 * sel-sched.c (move_exprs_to_boundary): Transitively add all
36622 originators' originators.
36623
36624 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
36625
36626 PR rtl-optimization/39453
36627 PR rtl-optimization/42246
36628 * sel-sched-ir.c (considered_for_pipelining_p): Do not test
36629 for pipelining_p.
36630 (sel_add_loop_preheaders): Add preheader to last_added_blocks.
36631
36632 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
36633 Alexander Monakov <amonakov@ispras.ru>
36634
36635 PR middle-end/42245
36636 * sel-sched-ir.c (sel_recompute_toporder): New. Use it...
36637 (maybe_tidy_empty_bb): ... here. Make static. Add new
36638 argument. Update all callers.
36639 (tidy_control_flow): ... and here. Recompute topological order
36640 of basic blocks in region if necessary.
36641 (sel_redirect_edge_and_branch): Change return type. Return true
36642 if topological order might have been invalidated.
36643 (purge_empty_blocks): Export and move from...
36644 * sel-sched.c (purge_empty_blocks): ... here.
36645 * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
36646 (maybe_tidy_empty_bb): Delete prototype.
36647 (purge_empty_blocks): Declare.
36648
36649 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
36650
36651 PR rtl-optimization/42249
36652 * sel-sched.c (try_replace_dest_reg): When chosen register
36653 and original register is the same, do not bail out early, but
36654 still check all original insns for validity of replacing destination
36655 register. Set EXPR_TARGET_AVAILABLE to 1 before leaving function
36656 in this case.
36657
36658 2010-01-14 Jakub Jelinek <jakub@redhat.com>
36659
36660 PR c/42721
36661 Port from no-undefined-overflow branch:
36662 2009-03-09 Richard Guenther <rguenther@suse.de>
36663
36664 * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
36665
36666 2010-01-14 Richard Guenther <rguenther@suse.de>
36667
36668 PR lto/42665
36669 * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
36670
36671 2010-01-14 Ira Rosen <irar@il.ibm.com>
36672
36673 PR tree-optimization/42709
36674 * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
36675 as scalar type in creation of constant vector operand.
36676
36677 2010-01-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
36678
36679 PR testsuite/42414
36680 * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
36681 (check-parallel-%): Match `testsuite' directory component only
36682 at the end.
36683
36684 2010-01-14 Shujing Zhao <pearly.zhao@oracle.com>
36685
36686 PR translation/39521
36687 * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
36688 strings with _().
36689
36690 2010-01-13 Richard Guenther <rguenther@suse.de>
36691
36692 PR tree-optimization/42730
36693 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
36694 offset zero.
36695
36696 2010-01-13 Steve Ellcey <sje@cup.hp.com>
36697
36698 PR target/pr42542
36699 * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
36700 for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
36701 them signed.
36702
36703 2010-01-13 Bernd Schmidt <bernd.schmidt@analog.com>
36704
36705 * config/bfin/libgcc-bfin.ver: Regenerate based on current
36706 libgcc-std.ver. Add entries for ___smulsi3_highpart and
36707 ___umulsi3_highpart.
36708
36709 * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
36710 rather than schedule_insns if the pass is enabled.
36711
36712 2010-01-13 Martin Jambor <mjambor@suse.cz>
36713
36714 PR tree-optimization/42704
36715 * tree-sra.c (sra_modify_assign): Do not delete assignments to
36716 SSA_NAMEs.
36717
36718 2010-01-13 Martin Jambor <mjambor@suse.cz>
36719
36720 PR tree-optimization/42703
36721 * tree-sra.c (analyze_access_subtree): Check that we can build a
36722 reference to the original data within the aggregate.
36723
36724 2010-01-13 Richard Guenther <rguenther@suse.de>
36725
36726 PR tree-optimization/42705
36727 * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
36728
36729 2010-01-13 Richard Guenther <rguenther@suse.de>
36730
36731 PR middle-end/42716
36732 * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
36733
36734 2010-01-13 Jakub Jelinek <jakub@redhat.com>
36735
36736 PR debug/41371
36737 * var-tracking.c (values_to_unmark): New variable.
36738 (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
36739 values_to_unmark vector. Moved body to...
36740 (find_loc_in_1pdv_1): ... this. Don't clear VALUE_RECURSED_INTO,
36741 instead queue it into values_to_unmark vector.
36742 (vt_find_locations): Free values_to_unmark vector.
36743
36744 2010-01-13 Wolfgang Gellerich <gellerich@de.ibm.com>
36745
36746 * config/s390/s390.c (override_options): Set
36747 default of max-pending-list-length to 256
36748
36749 2010-01-13 Richard Guenther <rguenther@suse.de>
36750
36751 PR lto/42678
36752 * tree-pass.h (PROP_gimple_lcx): New.
36753 * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
36754 * passes.c (init_optimization_passes): Move pass_lower_complex_O0
36755 before the final cleanup_eh.
36756 (dump_properties): Dump PROP_gimple_lcx.
36757 * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
36758 (tree_lower_complex_O0): Remove.
36759 (gate_no_optimization): Run if PROP_gimple_lcx is not set.
36760 (pass_lower_complex_O0): Provide PROP_gimple_lcx. Run
36761 tree_lower_complex, schedule TODO_update_ssa.
36762 * lto-streamer-out.c (output_function): Stream the functions
36763 properties.
36764 * lto-streamer-in.c (input_function): Likewise.
36765 (lto_read_body): Do not override them here.
36766
36767 2010-01-12 Joseph Myers <joseph@codesourcery.com>
36768
36769 PR c/42708
36770 * c-typeck.c (build_c_cast): Fold value cast to union type before
36771 wrapping it in a CONSTRUCTOR.
36772
36773 2010-01-12 Jakub Jelinek <jakub@redhat.com>
36774
36775 PR rtl-optimization/42699
36776 * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
36777 involved.
36778
36779 2010-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
36780
36781 * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
36782 SUBTARGET_WARN_UNUSED_SPEC): Move ...
36783 config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
36784 SUBTARGET_WARN_UNUSED_SPEC): ... here
36785 * config/mips/iris5.h (LIBGCC_SPEC): Define.
36786
36787 2010-01-12 Julian Brown <julian@codesourcery.com>
36788
36789 * config/arm/neon-schedgen.ml (Utils): Don't try to
36790 open missing module.
36791 (find_with_result): New.
36792
36793 2010-01-12 Jakub Jelinek <jakub@redhat.com>
36794
36795 PR debug/42662
36796 * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
36797 sharing when canonicalizing ({lt,ge}u (plus a b) b).
36798
36799 PR tree-optimization/42645
36800 * tree-inline.c (processing_debug_stmt): Move earlier. Make static.
36801 (remap_ssa_name): If processing_debug_stmt and name wasn't found in
36802 decl_map, set processing_debug_stmt to -1 and return name without
36803 any remapping.
36804
36805 2010-01-11 Dave Korn <dave.korn.cygwin@gmail.com>
36806
36807 * doc/install.texi (Specific#x-x-cygwin): Document minimum required
36808 binutils version, and reword target configuration description.
36809
36810 2010-01-11 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
36811
36812 * config/avr/avr.h (LINKER_NAME): Remove.
36813
36814 2010-01-11 Janis Johnson <janis187@us.ibm.com>
36815
36816 PR target/42416
36817 * config/rs6000/rs6000.c (rs6000_override_options): On targets
36818 that support VSX, warn for -mno-altivec if vsx is not disabled,
36819 and disable vsx.
36820
36821 2010-01-11 Joseph Myers <joseph@codesourcery.com>
36822 Shujing Zhao <pearly.zhao@oracle.com>
36823
36824 PR translation/42469
36825 * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
36826 fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
36827 character between option name and help text.
36828 * c.opt (imultilib): Likewise.
36829
36830 2010-01-10 Rafael Avila de Espindola <espindola@google.com>
36831
36832 * lto-streamer-out.c (output_unreferenced_globals): Output static
36833 variables.
36834
36835 2010-01-10 Steven Bosscher <steven@gcc.gnu.org>
36836
36837 PR rtl-optimization/42621
36838 * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
36839 optimizing for size.
36840 (duplicate_computed_gotos): Remove now-redundant check.
36841
36842 2010-01-10 Steve Ellcey <sje@cup.hp.com>
36843
36844 PR target/37454
36845 * configure.ac: Save and restore LDFLAGS and LIBS
36846 * configure: Regenerate.
36847
36848 2010-01-10 Richard Guenther <rguenther@suse.de>
36849
36850 PR middle-end/42667
36851 * builtins.c (fold_builtin_strlen): Add type argument and
36852 convert the resulting length to it.
36853 (fold_builtin_1): Adjust.
36854
36855 2010-01-09 Jakub Jelinek <jakub@redhat.com>
36856
36857 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
36858 sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
36859 1 insn.
36860 (num_insns_constant_wide): Adjust for that change.
36861
36862 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
36863
36864 PR debug/42631
36865 * web.c (union_defs): Add used argument, to combine uses of
36866 uninitialized regs.
36867 (entry_register): Adjust type and tests of used argument.
36868 (web_main): Widen used for new use. Pass it to union_defs.
36869 * df.h (union_defs): Adjust prototype.
36870
36871 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
36872
36873 PR debug/42630
36874 * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
36875 uses in new incoming argument. Free body.
36876 (reset_debug_uses_in_loop): New.
36877 (analyze_insn_to_expand_var): Call the latter if the former found
36878 anything. Fix whitespace. Reject invalid dest overlaps before
36879 going through all insns in the loop.
36880
36881 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
36882
36883 PR debug/42629
36884 * haifa-sched.c (dying_use_p): Debug insns don't count.
36885
36886 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
36887
36888 PR middle-end/42363
36889 * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
36890 * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
36891 (verify_gimple_call): Reject LHS in noreturn calls.
36892
36893 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
36894
36895 PR debug/42604
36896 PR debug/42395
36897 * tree-vect-loop-manip.c (adjust_info): New type.
36898 (adjust_vec): New pointer to vector.
36899 (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
36900 (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
36901 (slpeel_update_phis_for_duplicate_loop): Use them.
36902 (slpeel_update_phi_nodes_for_guard1): Likewise.
36903 (slpeel_update_phi_nodes_for_guard2): Likewise.
36904 (slpeel_tree_peel_loop_to_edge): Likewise.
36905 (vect_update_ivs_after_vectorizer): Likewise.
36906
36907 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
36908
36909 * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
36910 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
36911
36912 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
36913
36914 * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
36915 bogus uninitialized warning.
36916
36917 2010-01-09 Richard Guenther <rguenther@suse.de>
36918
36919 PR middle-end/42512
36920 * tree-scalar-evolution.c (interpret_loop_phi): Make sure
36921 the evolution is compatible with the initial condition.
36922
36923 2010-01-09 Jakub Jelinek <jakub@redhat.com>
36924
36925 * gcc.c (process_command): Update copyright notice dates.
36926 * gcov.c (print_version): Likewise.
36927 * gcov-dump.c (print_version): Likewise.
36928 * mips-tfile.c (main): Likewise.
36929 * mips-tdump.c (main): Likewise.
36930
36931 2010-01-08 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
36932
36933 PR target/41885
36934 * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
36935 (rotlhi3): Delete.
36936 (rotlhi3_8): Delete.
36937 (rotlsi3): Delete.
36938 (rotlsi3_8): Delete.
36939 (rotlsi3_16): Delete.
36940 (rotlsi3_24): Delete.
36941 (rotl<mode>3): New.
36942 (*rotw<mode>3): New.
36943 (*rotb<mode>3): New.
36944 * config/avr/avr.c (avr_rotate_bytes): New function.
36945 * config/avr/avr-proto.h (avr_rotate_bytes): New function.
36946
36947 2010-01-08 Steve Ellcey <sje@cup.hp.com>
36948
36949 PR target/37454
36950 * configure.ac: Modify -rdynamic check.
36951 * configure: Regenerate.
36952
36953 2010-01-08 DJ Delorie <dj@redhat.com>
36954
36955 * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
36956 register popping order.
36957
36958 2010-01-08 Richard Guenther <rguenther@suse.de>
36959
36960 PR lto/42528
36961 * c.opt (fsigned-char): Also let LTO handle this option.
36962 (funsigned-char): Likewise.
36963
36964 2010-01-07 Richard Guenther <rguenther@suse.de>
36965
36966 * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
36967 (gimple_op): Likewise.
36968 (gimple_op_ptr): Likewise.
36969 (gimple_assign_set_lhs): Remove gcc_assert.
36970 (gimple_assign_set_rhs1): Likewise.
36971 (gimple_assign_set_rhs2): Likewise.
36972 (gimple_call_set_lhs): Likewise.
36973 (gimple_call_set_fn): Likewise.
36974 (gimple_call_set_fndecl): Likewise.
36975 (gimple_call_fndecl): Likewise.
36976 (gimple_call_return_type): Likewise.
36977 (gimple_call_set_chain): Likewise.
36978 (gimple_call_num_args): Likewise.
36979 (gimple_call_set_arg): Likewise.
36980 (gimple_cond_set_code): Likewise.
36981 (gimple_cond_set_lhs): Likewise.
36982 (gimple_cond_set_rhs): Likewise.
36983 (gimple_cond_set_true_label): Likewise.
36984 (gimple_cond_set_false_label): Likewise.
36985 (gimple_label_set_label): Likewise.
36986 (gimple_goto_set_dest): Likewise.
36987 (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
36988 (gimple_debug_bind_get_value): Likewise.
36989 (gimple_debug_bind_get_value_ptr): Likewise.
36990 (gimple_debug_bind_set_var): Likewise.
36991 (gimple_debug_bind_set_value): Likewise.
36992 (gimple_debug_bind_reset_value): Likewise.
36993 (gimple_debug_bind_has_value_p): Likewise.
36994 (gimple_return_retval_ptr): Remove gcc_assert.
36995 (gimple_return_retval): Likewise.
36996 (gimple_return_set_retval): Likewise.
36997 * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
36998 (safe_referenced_var_iterator): Remove.
36999 (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
37000 * tree-flow-inline.h (gimple_nonlocal_all): Remove.
37001 (fill_referenced_var_vec): Remove.
37002 (first_readonly_imm_use): Remove redundant gcc_assert.
37003 (phi_arg_index_from_use): Combine gcc_asserts.
37004 (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
37005 (first_imm_use_stmt): Remove redundant gcc_assert.
37006 * tree-cfg.c (verify_gimple_call): Verify function and chain
37007 operands. Verify arguments.
37008 (verify_types_in_gimple_stmt): Verify condition code and labels.
37009
37010 2010-01-07 Richard Guenther <rguenther@suse.de>
37011
37012 PR tree-optimization/42641
37013 * sese.c (rename_map_elt_info): Use the SSA name version, do
37014 not hash pointers.
37015
37016 2010-01-07 Jakub Jelinek <jakub@redhat.com>
37017
37018 PR tree-optimization/42625
37019 * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
37020 TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
37021
37022 2010-01-07 Duncan Sands <baldrick@free.fr>
37023
37024 * Makefile.in (PLUGIN_HEADERS): Add version.h.
37025
37026 2010-01-07 Uros Bizjak <ubizjak@gmail.com>
37027
37028 PR target/42511
37029 * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
37030 note itself is not function_invariant_p.
37031
37032 2009-01-07 Steven Bosscher <steven@gcc.gnu.org>
37033
37034 * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
37035 Do not add the DF_NOTE problem.
37036 * store-motion.c (execute_rtl_store_motion): Likewise.
37037
37038 2010-01-07 Martin Jambor <mjambor@suse.cz>
37039
37040 PR tree-optimization/42157
37041 * tree-sra.c (compare_access_positions): Stabilize sort if both
37042 accesses have integer types, return zero immediately if they are the
37043 same.
37044
37045 2010-01-06 Richard Henderson <rth@redhat.com>
37046
37047 PR middle-end/41883
37048 * haifa-sched.c (add_to_note_list): Merge into ...
37049 (concat_note_lists): ... here, and ...
37050 (unlink_other_notes, rm_other_notes): Merge into...
37051 (remove_notes): ... here. Create REG_SAVE_NOTEs for
37052 NOTE_INSN_EPILOGUE_BEG.
37053
37054 2010-01-06 Richard Guenther <rguenther@suse.de>
37055
37056 * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
37057 not inline regular functions into always-inline functions.
37058
37059 2010-01-06 Nick Clifton <nickc@redhat.com>
37060
37061 * config/rx/rx.h (enum rx_cpu_type): Add RX200.
37062 (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
37063 used together.
37064 (OVERRIDE_OPTIONS): Delete.
37065 (OPTIMIZATION_OPTIONS): Define.
37066 (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
37067 * config/rx/rx.c (rx_handle_option): Issue an error message if
37068 -mcpu=rx200 and -fpu are used together.
37069 (rx_set_optimization_options): New function. Issue an error
37070 message if an optimization attribute attempts to reset the FPU/
37071 math optimization pairing.
37072 * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
37073 * config/rx/rx.opt: Set the default to 32-bit doubles.
37074 * config/rx/t-rx: Add multilibs for -nofpu option.
37075 * doc/invoke.texi: Update documentation of RX options.
37076
37077 2010-01-06 Richard Guenther <rguenther@suse.de>
37078
37079 * tree-ssa-pre.c (name_to_id): New global.
37080 (alloc_expression_id): Simplify SSA name handling.
37081 (lookup_expression_id): Likewise.
37082 (init_pre): Zero name_to_id.
37083 (fini_pre): Free it.
37084
37085 2010-01-06 Uros Bizjak <ubizjak@gmail.com>
37086
37087 * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
37088
37089 2010-01-05 H.J. Lu <hongjiu.lu@intel.com>
37090
37091 PR target/42542
37092 * config/i386/sse.md (smaxv2di3): New.
37093 (umaxv2di3): Likewise.
37094 (sminv2di3): Likewise.
37095 (uminv2di3): Likewise.
37096
37097 2010-01-05 Eric Botcazou <ebotcazou@adacore.com>
37098
37099 PR target/42564
37100 * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
37101 * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
37102 (legitimize_tls_address): Likewise.
37103 (sparc_tls_referenced_p): Likewise.
37104 * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
37105 and adjust calls to legitimize_pic_address.
37106 (legitimate_constant_p) Use sparc_tls_referenced_p.
37107 (legitimate_pic_operand_p): Likewise.
37108 (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
37109 (sparc_tls_symbol_ref_1): Delete.
37110 (sparc_tls_referenced_p): Make static, recognize specific patterns.
37111 (legitimize_tls_address): Make static, handle CONST patterns.
37112 (legitimize_pic_address): Make static, remove unused parameter and
37113 adjust recursive calls.
37114 (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
37115 and adjust call to legitimize_pic_address.
37116 (sparc_output_mi_thunk): Likewise.
37117
37118 2010-01-05 Paolo Bonzini <bonzini@gnu.rg>
37119 H.J. Lu <hongjiu.lu@intel.com>
37120
37121 PR target/42542
37122 * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
37123 for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
37124 operands to make them signed.
37125
37126 Revert:
37127 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
37128
37129 PR target/42542
37130 * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
37131 GTU to GT for V4SI and V2DI.
37132
37133 * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
37134 (umin<mode>3): Removed.
37135 (uminv8hi3): New.
37136 (uminv4si3): Likewise.
37137
37138 2010-01-05 Martin Jambor <mjambor@suse.cz>
37139
37140 PR tree-optimization/42462
37141 * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
37142 current_function_decl to helper functions and macros.
37143
37144 2010-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
37145
37146 PR bootstrap/41771
37147 * flags.h: Don't include real.h.
37148 (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
37149 HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
37150 * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
37151 HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
37152 * dominance.c: Update copyright.
37153 * gimple.c (walk_gimple_op): Remove inline.
37154 * tree-ssa-reassoc.c: Include real.h.
37155 * Makefile.in (FLAGS_H): Remove $(REAL_H).
37156 (tree-ssa-reassoc.o): Depend on $(REAL_H).
37157
37158 2010-01-05 Nick Clifton <nickc@redhat.com>
37159
37160 * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
37161 register to push into the stack frame when the accumulator has to
37162 be saved during interrupts.
37163
37164 2010-01-05 Eric Fisher <joefoxreal@gmail.com>
37165
37166 * doc/invoke.texi: Remove the documentation about option
37167 -Wunreachable-code.
37168 * common.opt (Wunreachable-code): Preserved for backward
37169 compatibility.
37170 * tree-cfg.c: Remove the implementation of -Wunreachable-code.
37171 * opts.c (common_handle_option): Add OPT_Wunreachable_code to
37172 the backward compatibility flag section.
37173
37174 2010-01-05 Richard Guenther <rguenther@suse.de>
37175
37176 * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
37177
37178 2010-01-05 Jakub Jelinek <jakub@redhat.com>
37179
37180 PR other/42611
37181 * cfgexpand.c (expand_one_var): Diagnose too large variables.
37182
37183 PR tree-optimization/42508
37184 * tree-sra.c (convert_callers): Check for recursive call
37185 by comparing cgraph nodes instead of decls.
37186 (modify_function): Call ipa_modify_formal_parameters also
37187 on all same_body aliases.
37188
37189 * cgraphunit.c (cgraph_materialize_all_clones): Compare
37190 cgraph nodes when checking for same_body aliases.
37191
37192 2010-01-05 Richard Guenther <rguenther@suse.de>
37193
37194 * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
37195 allocation and lookup.
37196 (get_or_alloc_expr_for_constant): Likewise.
37197 (phi_translate): Sink allocation.
37198
37199 2010-01-04 Richard Guenther <rguenther@suse.de>
37200
37201 * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
37202 a new entry only if needed.
37203 * tree-ssa-dom.c (lookup_avail_expr): Likewise.
37204 * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
37205 hashtable lookup.
37206 * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
37207 the result array.
37208 (phi_translate): Handle CONSTANTs early.
37209
37210 2010-01-04 Martin Jambor <mjambor@suse.cz>
37211
37212 PR tree-optimization/42398
37213 * tree-sra.c (struct access): Removed flag grp_different_types.
37214 (dump_access): Do not dump the removed flag.
37215 (sort_and_splice_var_accesses): Do not set the removed flag.
37216 (sra_modify_expr): Check for type compatibility directly.
37217
37218 2010-01-04 Martin Jambor <mjambor@suse.cz>
37219
37220 PR tree-optimization/42366
37221 * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
37222 edges with variable number of parameters.
37223 * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
37224 flag instead of asserting it.
37225 (ipa_read_node_info): Read uses_analysis_done flag.
37226
37227 2010-01-04 Richard Guenther <rguenther@suse.de>
37228
37229 * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
37230 iterative_hash_* as intended.
37231 (vn_reference_compute_hash): Likewise. Simplify hashing
37232 SSA names.
37233 (vn_reference_lookup_2): Likewise.
37234 (vn_nary_op_compute_hash): Likewise.
37235 (vn_phi_compute_hash): Likewise.
37236 (expressions_equal_p): Remove strange code.
37237 * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
37238 (pre_expr_hash): Likewise. Simplify hashing SSA names.
37239 (bitmap_insert_into_set_1): Take value-id as parameter.
37240 (add_to_value): Pass it.
37241 (bitmap_insert_into_set): Likewise.
37242 (bitmap_value_insert_into_set): Likewise. Remove redundant check.
37243
37244 2010-01-04 Jakub Jelinek <jakub@redhat.com>
37245
37246 PR driver/42442
37247 * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
37248 (do_self_spec): For switches with SWITCH_IGNORE set set also
37249 SWITCH_IGNORE_PERMANENTLY.
37250 (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
37251 of SWITCH_IGNORE.
37252
37253 2010-01-04 Rafael Avila de Espindola <espindola@google.com>
37254
37255 * lto-streamer-out.c (output_unreferenced_globals): Output the full
37256 tree of an unreferenced global var.
37257
37258 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
37259
37260 PR target/42542
37261 * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
37262 GTU to GT for V4SI and V2DI.
37263
37264 * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
37265 (umin<mode>3): Removed.
37266 (uminv8hi3): New.
37267 (uminv4si3): Likewise.
37268
37269 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
37270
37271 PR lto/42581
37272 * collect2.c (main): Turn on trace in collect2 if -v is passed
37273 to gcc with LTO.
37274
37275 2010-01-03 Jerry Quinn <jlquinn@optonline.net>
37276
37277 * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR. Update
37278 description of expression operand.
37279
37280 2010-01-03 Andrew Jenner <andrew@codesourcery.com>
37281
37282 * configure.ac: Add install-html to target_list for Make-hooks.
37283 * configure: Regenerate.
37284 * fortran/Make-lang.in (F95_HTMLFILES): New.
37285 (fortran.html): Use it.
37286 (fortran.install-html): New.
37287 * Makefile.in (install-html): Add lang.install-html.
37288 * java/Make-lang.in (JAVA_HTMLFILES): New.
37289 (java.html): Use it.
37290 (java.install-html): New.
37291 * objc/Make-lang.in (objc.install-html): New.
37292 * objcp/Make-lang.in (obj-c++.install-html): New.
37293 * cp/Make-lang.in (c++.install-html): New.
37294 * ada/gcc-interface/Make-lang.in (ada.install-html): New.
37295 * lto/Make-lang.in (lto.install-html): New.
37296
37297 2010-01-03 H.J. Lu <hongjiu.lu@intel.com>
37298
37299 PR lto/42520
37300 * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
37301
37302 2009-01-03 Steven Bosscher <steven@gcc.gnu.org>
37303
37304 PR rtl-optimization/41862
37305 * store-motion.c (store_killed_in_insn, compute_store_table,
37306 remove_reachable_equiv_notes, replace_store_insn,
37307 build_store_vectors): Ignore all DEBUG_INSNs.
37308
37309 2010-01-03 H.J. Lu <hongjiu.lu@intel.com>
37310
37311 PR lto/41564
37312 * common.opt: Add dumpdir.
37313
37314 * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
37315 isn't specified.
37316 (option_map): Add --dumpdir.
37317
37318 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
37319
37320 * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
37321
37322 * opts.c (decode_options): Try dump_dir_name first if
37323 dump_base_name isn't an absolute path.
37324 (common_handle_option): Handle OPT_dumpdir.
37325
37326 * toplev.c (dump_dir_name): New.
37327 (print_switch_values): Also ignore -dumpdir.
37328
37329 * toplev.h (dump_dir_name): New.
37330
37331 2010-01-03 Richard Guenther <rguenther@suse.de>
37332
37333 PR tree-optimization/42589
37334 * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
37335 double-word expansion of bswap32.
37336
37337 2010-01-03 Steven Bosscher <steven@gcc.gnu.org>
37338
37339 * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
37340 with BLOCK_FOR_INSN.
37341 * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
37342 * ifcvt.c (noce_get_alt_condition, noce_try_abs,
37343 noce_process_if_block): Likewise.
37344 * gcse.c (compute_local_properties, insert_expr_in_table,
37345 insert_set_in_table, canon_list_insert, find_avail_set,
37346 pre_insert_copy_insn): Likewise.
37347
37348 * basic-block.h (BLOCK_NUM): Move from here...
37349 * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
37350
37351 2010-01-03 Richard Guenther <rguenther@suse.de>
37352
37353 PR tree-optimization/42438
37354 * tree-ssa-pre.c (struct bb_bitmap_sets): Add
37355 contains_may_not_return_call flag.
37356 (BB_MAY_NOTRETURN): New.
37357 (valid_in_sets): Trapping nary operations are not valid
37358 in blocks that may not return.
37359 (insert_into_preds_of_block): Remove check for trapping expressions.
37360 (compute_avail): Compute also BB_MAY_NOTRETURN.
37361
37362 2010-01-03 Gerald Pfeifer <gerald@pfeifer.com>
37363
37364 * doc/invoke.texi: Add 2010 to copyright years.
37365
37366 2010-01-03 Eric Botcazou <ebotcazou@adacore.com>
37367
37368 * config/sparc/sparc.c: Fix formatting nits.
37369
37370 2010-01-02 Gerald Pfeifer <gerald@pfeifer.com>
37371 Alexander Monakov <amonakov@ispras.ru>
37372
37373 * doc/invoke.texi (Optimize Options): Reword introduction a bit.
37374
37375 2010-01-02 Richard Guenther <rguenther@suse.de>
37376
37377 PR middle-end/42577
37378 * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
37379 (simplify_switch_using_ranges): Mark to be removed edges
37380 as non-executable.
37381
37382 2010-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
37383
37384 * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
37385
37386 * collect2.c (scan_libraries): Add missing argument in call to
37387 scan_prog_file.
37388
37389 2010-01-02 Uros Bizjak <ubizjak@gmail.com>
37390
37391 PR target/42448
37392 * config/alpha/predicates.md (aligned_memory_operand): Return false
37393 for CQImode.
37394 (unaligned_memory_operand): Return true for CQImode.
37395 * config/alpha/alpha.c (get_aligned_mem): Assert that location
37396 doesn not cross aligned SImode word boundary.
37397
37398 2010-01-02 Anatoly Sokolov <aesok@post.ru>
37399
37400 * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
37401 Remove.
37402 * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
37403 avr_change_section, avr_reg_class_from_letter) : Remove declaration.
37404
37405 2010-01-02 Richard Guenther <rguenther@suse.de>
37406
37407 PR lto/41597
37408 * toplev.c (compile_file): Emit LTO marker properly. Change
37409 it to __gnu_lto_v1.
37410 * collect2.c (scan_prog_file): Adjust for changed LTO marker.
37411
37412 2010-01-01 Richard Guenther <rguenther@suse.de>
37413
37414 PR debug/42455
37415 * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
37416
37417 2010-01-01 Richard Guenther <rguenther@suse.de>
37418
37419 PR c/42570
37420 * c-decl.c (grokdeclarator): For zero-size arrays force
37421 structural equality checks as layout_type does.
37422
37423 2010-01-01 H.J. Lu <hongjiu.lu@intel.com>
37424
37425 * builtins.c: Update copyright to 2010.
37426
37427 2010-01-01 H.J. Lu <hongjiu.lu@intel.com>
37428
37429 PR lto/42531
37430 * lto-streamer-out.c (produce_asm): Revert the last change.
37431 (copy_function): Likewise.
37432
37433 * lto-streamer.c (lto_get_section_name): Skip any leading
37434 asterisk in name.
37435
37436 2010-01-01 Richard Guenther <rguenther@suse.de>
37437
37438 PR middle-end/42559
37439 * builtins.c (get_object_alignment): Do not use DECL_ALIGN
37440 for LABEL_DECLs.
37441
37442 \f
37443 Copyright (C) 2010 Free Software Foundation, Inc.
37444
37445 Copying and distribution of this file, with or without modification,
37446 are permitted in any medium without royalty provided the copyright
37447 notice and this notice are preserved.