jsm28 [Wed, 24 Nov 2010 13:28:38 +0000 (13:28 +0000)]
* common.opt (user_vect_verbosity_level): New Variable entry.
(ftree-vectorizer-verbose=): Mark as UInteger.
* flag-types.h (enum vect_verbosity_levels): Move from enum
verbosity_levels in tree-vectorizer.h.
* opts.c: Don't include tree.h.
(vect_set_verbosity_level): Move from tree-vectorizer.c. Use
gcc_options parameter; take integer option argument.
(common_handle_option): Update call to vect_set_verbosity_level.
* tree-vectorizer.c (user_vect_verbosity_level): Remove.
(vect_set_verbosity_level): Move to opts.c.
(vect_verbosity_level, vect_print_dump_info): Update for change of
enum name.
* tree-vectorizer.h (enum verbosity_levels): Move to flag-types.h.
(vect_print_dump_info): Update for change of enum name.
* tree.h (vect_set_verbosity_level): Remove.
* Makefile.in (opts.o): Update dependencies.
jsm28 [Wed, 24 Nov 2010 00:54:26 +0000 (00:54 +0000)]
* common.opt (initial_max_fld_align, flag_debug_asm,
flag_dump_rtl_in_asm, flag_dump_all_passed, rtl_dump_and_exit,
flag_print_asm_name, graph_dump_format, help_printed,
help_columns, flag_opts_finished): New Variable entries.
(fdbg-cnt-list, fdbg-cnt=, fdebug-prefix-map=, frandom-seed,
frandom-seed=): Mark deferred.
(fsched-verbose=): Use UInteger and Var.
* flags.h (set_struct_debug_option, flag_print_asm_name,
rtl_dump_and_exit, flag_debug_asm, flag_dump_rtl_in_asm,
graph_dump_format): Don't declare here.
* haifa-sched.c (sched_verbose_param, fix_sched_param): Remove.
* opts-global.c: Include dbgcnt.h and debug.h.
(decode_options): Pass location to finish_options.
(handle_common_deferred_options): Check flag_dump_all_passed.
Handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list, OPT_fdebug_prefix_map_,
OPT_frandom_seed and OPT_frandom_seed_. Don't assert on
OPT_fstack_limit.
* opts.c: Don't include toplev.h, dbgcnt.h or debug.h.
(set_struct_debug_option): Add location_t parameter. Update
recursive call. Use error_at.
(default_options_optimization): Use error_at.
(finish_options): Add location_t parameter. Use
opts->x_flag_opts_finished instead of first_time_p. Use
opts->x_optimize instead of optimize. Use error_at. Pass
location to inform.
(print_filtered_help): Use opts->x_help_printed to track what
options have been printed.
(print_specific_help): Use opts->x_help_columns to track number of
columns.
(common_handle_option): Pass locations and gcc_options pointers to
more functions. Use warning_at instead of fnotice and warning.
Don't handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list or
OPT_fdebug_prefix_map_. Use error_at. Set
opts->x_initial_max_fld_align; don't set maximum_field_alignment.
Don't handle OPT_frandom_seed or OPT_frandom_seed_. Don't handle
OPT_fsched_verbose_.
(handle_param): Add location_r parameter. Use error_at.
(set_debug_level): Add location_r parameter. Use error_at and
warning_at.
(setup_core_dumping): Add diagnostic_context parameter.
(decode_d_option): Add gcc_options, location_t and
diagnostic_context parameters and use them instead of global
state. Use warning_at.
(enable_warning_as_error): Use error_at.
* opts.h (finish_options): Update prototype.
(set_struct_debug_option): Declare here.
* rtl.h (fix_sched_param): Remove.
* stor-layout.c (initial_max_fld_align): Remove.
* toplev.c (rtl_dump_and_exit, flag_print_asm_name,
graph_dump_format, flag_debug_asm, flag_dump_rtl_in_asm): Remove.
(process_options): Set maximum_field_alignment.
* tree.h (initial_max_fld_align) Don't declare here.
* Makefile.in (opts.o, opts-global.o): Update dependencies.
c-family:
* c-opts.c (c_common_handle_option): Pass location to
set_struct_debug_option.
jyasskin [Wed, 24 Nov 2010 00:24:54 +0000 (00:24 +0000)]
Propagate the source location from a template function's definition to
any already-instantiated declarations.
PR c++/46527
* gcc/cp/pt.c (instantiate_decl): Propagate the template's
location to its instance.
* gcc/testsuite/g++.dg/debug/dwarf2/pr46527.C: New test.
davek [Tue, 23 Nov 2010 19:18:39 +0000 (19:18 +0000)]
PR driver/42690
* gcc.c (LINK_COMMAND_SPEC): Remove hard-coded pass-through plugin
options, replace by call of pass-through-libs spec function to process
link_gcc_c_sequence spec.
(lto_libgcc_spec): Delete variable.
(static_specs[]): Remove related entry.
(static_spec_functions[]): Add new entry for pass-through-libs.
(main): Don't generate deleted lto_libgcc_spec.
(pass_through_libs_spec_func): New function to implement the new
pass-through-libs spec function.
* doc/invoke.texi (pass-through-libs): Document new spec function.
nicola [Tue, 23 Nov 2010 09:47:07 +0000 (09:47 +0000)]
In gcc/objc/:
2010-11-23 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc/24358
* lang-specs.h: Added objective-c-cpp-output. Mapped .mi to
objective-c-cpp-output instead of objc-cpp-output. Print a
deprecation note every time objc-cpp-output is requested.
In gcc/objcp/:
2010-11-23 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc/24358
* lang-specs.h: Print a deprecation note every time
objc++-cpp-output is requested.
rguenth [Tue, 23 Nov 2010 09:42:41 +0000 (09:42 +0000)]
2010-11-23 Richard Guenther <rguenther@suse.de>
* tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid doing work
twice. Avoid re-allocating the ops vector all the time.
2010-11-23 Richard Guenther <rguenther@suse.de>
* tree-ssa-alias.c (refs_may_alias_p_1): Avoid calls to
is_gimple_min_invariant, group tree code checks to allow
combining them.
(stmt_may_clobber_ref_p_1): Check for SSA_NAME instead
of is_gimple_reg.
jsm28 [Mon, 22 Nov 2010 23:59:18 +0000 (23:59 +0000)]
* common.opt (exit_after_options, write_symbols, debug_info_level,
use_gnu_debug_info_extensions): New Variable entries.
(fprofile-dir=): Use Var.
* flag-types.h (enum debug_info_level): Rename to enum
debug_info_levels.
* flags.h (write_symbols, debug_info_level,
use_gnu_debug_info_extensions): Remove declarations.
* opts.c (exit_after_options, write_symbols, debug_info_level):
Remove.
(set_struct_debug_option): Make static variables const.
(use_gnu_debug_info_extensions): Remove.
(set_debug_level, print_filtered_help, print_specific_help,
fast_math_flags_set_p): Take gcc_options parameters and use them
in place of global variables.
(print_filtered_help): Make new_help non-static.
(print_specific_help): Update call to print_filtered_help.
(common_handle_option): Update calls to print_specific_help. Use
gcc_options structure for more settings. Make --help table
const. Don't handle OPT_fprofile_dir_ here. Update calls to
set_debug_level.
* toplev.c (profile_data_prefix): Remove.
* toplev.h (profile_data_prefix, exit_after_options): Remove
declarations.
(fast_math_flags_set_p): Update prototype.
* cppbuiltin.c (define_builtin_macros_for_compilation_flags):
Update call to fast_math_flags_set_p.
* lib/target-supports.exp (check_vect_support_and_set_flags): New
procedure to check if the target supports vectorizer tests. Set
DEFAULT_VECTCFLAGS and dg-do-what-default depending on vectorization
capabilites.
* gcc.dg/vect/vect.exp: Use check_vect_support_and_set_flags.
* g++.dg/vect/vect.exp: Ditto.
* gfortran.dg/vect/vect.exp: Ditto.
nicola [Mon, 22 Nov 2010 19:27:17 +0000 (19:27 +0000)]
In gcc/c-family/:
2010-11-22 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc/34033
* c-lex.c (lex_string): Check that each string in an Objective-C
string concat sequence starts with either one or zero '@', and
that there are no spurious '@' signs at the end.
In gcc/testsuite/:
2010-11-22 Nicola Pero <nicola.pero@meta-innovation.com>
bonzini [Mon, 22 Nov 2010 16:20:16 +0000 (16:20 +0000)]
2010-11-22 Paolo Bonzini<bonzini@gnu.org>
PR bootstrap/44970
* Makefile.in (fwprop.o) Add sparseset.h.
* fwprop.c: Include sparseset.h
(struct find_occurrence_data, find_occurrence_callback,
find_occurrence): Remove.
(active_defs, active_defs_check, register_active_defs,
update_df_init, update_uses): New.
(update_df): Rewrite.
(try_fwprop_subst, forward_propagate_asm): Add calls to
update_df_init and update_df.
(fwprop_init): Allocate active_defs and active_defs_check.
(fwprop_done): Free them.
(fwprop, fwprop_addr): Adjust comments.
* df.h (df_uses_create): Declare.
* df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
(df_ref_create): Return result of df_ref_create_structure directly.
(df_ref_create_structure): Call df_install_ref_incremental when
no collection_rec is passed.
(df_ref_record): Do not create multiword hard reg info when no
collection_rec is passed.
(df_uses_create): New.
matz [Mon, 22 Nov 2010 11:39:01 +0000 (11:39 +0000)]
* gfortranspec.c (library): New global, moved from ...
(lang_specific_driver): ... here.
(lang_specific_pre_link): Test it here before including
libgfortran.spec.
amonakov [Mon, 22 Nov 2010 10:35:06 +0000 (10:35 +0000)]
PR rtl-optimization/45652
* alias.c (get_reg_base_value): New.
* rtl.h (get_reg_base_value): Add prototype.
* sel-sched.c (init_regs_for_mode): Use it. Don't use registers with
non-null REG_BASE_VALUE for renaming.
* gengtype.c: Include xregex.h and obstack.h
Added comments about role of get_output_file_with_visibility and
our regexpr machinery.
(frul_actionrout_t, struct file_rule_st): New.
(hader_dot_h_frul, source_dot_c_frul): New functions.
(NULL_REGEX, NULL_FRULACT): New.
(files_rules): New.
(matching_file_name_substitute): New function.
(get_output_file_with_visibility): Updated comments and rewritten
to use the new files_rules machinery.
* Makefile.in (XREGEX_H): Added variable.
(build/gengtype.o): Added dependencies for xregex.h and obstack.h
ebotcazou [Sun, 21 Nov 2010 10:36:54 +0000 (10:36 +0000)]
* config/mips/mips.c (machine_function): Rename load_label_length to
load_label_num_insns.
(mips_load_label_length): Rename to...
(mips_load_label_num_insns): ...this. Adjust to first renaming.
(mips_adjust_insn_length): Adjust to second renaming. Fix thinko.
burnus [Sun, 21 Nov 2010 07:56:12 +0000 (07:56 +0000)]
2010-11-21 Michael Matz <matz@suse.de>
Tobias Burnus <burnus@net-b.de>
PR driver/46516
* gfortranspec.c (lang_specific_driver,
lang_specific_pre_link): Load libgfortran.spec in
lang_specific_pre_link unless found in the -L path.
ian [Sun, 21 Nov 2010 01:49:05 +0000 (01:49 +0000)]
* configure.ac: Only disable a language library if no language needs
it. Don't let --disable-libgcj uncondtionally disable libffi.
* configure: Rebuild.
testsuite:
* g++.dg/cpp/_Pragma1.C: Test for all non-Solaris targets.
* gcc.dg/cpp/_Pragma6.c: Test for all non-Solaris targets.
* gcc.dg/pack-test-1.c: Test for all non-default_packed targets.
* gcc.dg/pack-test-2.c: Test for all targets.
* gcc.dg/pragma-align.c: Test for all targets.
* gcc.dg/pragma-pack-4.c: Do not skip for AVR.
* gcc.dg/ucnid-10.c: Test for all targets.
hubicka [Sat, 20 Nov 2010 21:10:46 +0000 (21:10 +0000)]
* cgraph.c (ld_plugin_symbol_resolution_names): New.
(dump_cgraph_node): Dump resolution.
* cgraph.h (ld_plugin_symbol_resolution_names): Declare.
(cgraph_comdat_can_be_unshared_p): Dclare.
* lto-streamer-out.c (produce_symtab): Use
cgraph_comdat_can_be_unshared_p.
* ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
(cgraph_comdat_can_be_unshared_p): New function based on logic
in cgraph_externally_visible_p.
(cgraph_externally_visible_p): Use it.
(varpool_externally_visible_p): Virtual tables can be unshared.
* varpool.c (dump_varpool_node): Dump resolution.
hubicka [Sat, 20 Nov 2010 20:57:31 +0000 (20:57 +0000)]
* cgraph.c (ld_plugin_symbol_resolution_names): New.
(dump_cgraph_node): Dump resolution.
* cgraph.h (ld_plugin_symbol_resolution_names): Declare.
(cgraph_comdat_can_be_unshared_p): Dclare.
* lto-streamer-out.c (produce_symtab): Use
cgraph_comdat_can_be_unshared_p.
* ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
(cgraph_comdat_can_be_unshared_p): New function based on logic
in cgraph_externally_visible_p.
(cgraph_externally_visible_p): Use it.
(varpool_externally_visible_p): Virtual tables can be unshared.
* varpool.c (dump_varpool_node): Dump resolution.
rwild [Sat, 20 Nov 2010 19:37:08 +0000 (19:37 +0000)]
PR other/46202: implement install-strip.
/:
PR other/46202
* configure.ac: Fix just-built in-tree STRIP name to be
binutils/strip-new.
* configure: Regenerate.
* Makefile.def (install-strip-gcc, install-strip-binutils)
(install-strip-opcodes, install-strip-ld, install-strip-itcl)
(install-strip-sid): Mirror dependencies on non-strip variants
of these targets on the respective -strip prerequisites.
* Makefile.tpl (install-strip, install-strip-host)
(install-strip-target): New targets.
(install-strip-[+module+], install-strip-target-[+module+]):
New targets.
* Makefile.in: Regenerate.
gcc/:
PR other/46202
* Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New
variables.
(AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
shell quoting.
(STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
(install-strip): New target.
(STRIPPROG): New variable, exported if STRIP is set.
* doc/install.texi (Final install): Minor markup and code style
fixes. Document install-strip target.
fixincludes/:
PR other/46202
* Makefile.in (install-strip): New phony target.
(all, check, install): Also mark as phony.
libgcc/:
PR other/46202
* Makefile.in (install-strip): New phony target.
libiberty/:
PR other/46202
* Makefile.in (install-strip): New phony target.
(install): Also mark as phony.
jakub [Fri, 19 Nov 2010 23:48:57 +0000 (23:48 +0000)]
PR tree-optimization/45830
* stmt.c (expand_switch_using_bit_tests_p): New function.
(expand_case): Use it.
* tree.h (expand_switch_using_bit_tests_p): New prototype.
* tree-switch-conversion.c (struct switch_conv_info): Add
bit_test_uniq, bit_test_count and bit_test_bb fields.
(check_range): Fix a comment.
(check_process_case): Compute bit_test_uniq and bit_test_count.
(create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
allocation.
(free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
(constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
(array_value_type): New function.
(build_one_array): Use it, if it returned different type,
fold_convert all constructor fields and convert back to the
wider type in the generated code.
(process_switch): Initialize bit_test_uniq, bit_test_count and
bit_test_bb fields. Don't optimize if expand_switch_using_bit_tests_p
returned true.
* gcc.target/i386/pr45830.c: New test.
* gcc.c-torture/execute/pr45830.c: New test.