jakub [Tue, 18 Oct 2011 15:33:12 +0000 (15:33 +0000)]
PR tree-optimization/50735
* function.c (gimplify_parameters): Use create_tmp_var instead of
create_tmp_reg. If parm is not TREE_ADDRESSABLE and type is complex
or vector type, set DECL_GIMPLE_REG_P.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180154
138bc75d-0d04-0410-961f-
82ee72b054a4
mikael [Tue, 18 Oct 2011 15:23:04 +0000 (15:23 +0000)]
PR fortran/50420
* gfortran.dg/coarray_subobject_1.f90: New test.
* gfortran.dg/coarray/subobject_1.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180153
138bc75d-0d04-0410-961f-
82ee72b054a4
mikael [Tue, 18 Oct 2011 15:17:29 +0000 (15:17 +0000)]
PR fortran/50420
* trans.c (gfc_build_array_ref): If type is not an array, check that
there is nothing to do, and do nothing.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180152
138bc75d-0d04-0410-961f-
82ee72b054a4
mikael [Tue, 18 Oct 2011 15:13:45 +0000 (15:13 +0000)]
PR fortran/50420
* trans-types.c (gfc_build_array_type): Don't force lower bound to one
in the deferred case.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180151
138bc75d-0d04-0410-961f-
82ee72b054a4
mikael [Tue, 18 Oct 2011 15:11:21 +0000 (15:11 +0000)]
PR fortran/50420
* simplify.c (simplify_cobound): Accept non-last-in-ref-chain coarrays.
Don't set already set array ref.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180150
138bc75d-0d04-0410-961f-
82ee72b054a4
mikael [Tue, 18 Oct 2011 15:08:08 +0000 (15:08 +0000)]
* array.c (gfc_find_array_ref): Remove coarray-specific handling.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180149
138bc75d-0d04-0410-961f-
82ee72b054a4
mikael [Tue, 18 Oct 2011 15:05:30 +0000 (15:05 +0000)]
PR fortran/50420
* check.c (dim_corank_check): Use gfc_get_corank to get corank.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180148
138bc75d-0d04-0410-961f-
82ee72b054a4
mikael [Tue, 18 Oct 2011 15:02:38 +0000 (15:02 +0000)]
PR fortran/50420
* trans-intrinsic.c (walk_coarray): Change AR_ELEMENT to AR_SECTION.
PR fortran/50420
* trans-intrinsic.c (walk_coarray): Use gfc_walk_array_ref for
the scalarization chain initialization.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180147
138bc75d-0d04-0410-961f-
82ee72b054a4
mikael [Tue, 18 Oct 2011 14:59:07 +0000 (14:59 +0000)]
PR fortran/50420
* trans-intrinsic.c (walk_coarray): Allow subreferences after a
coarray object reference.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180146
138bc75d-0d04-0410-961f-
82ee72b054a4
mikael [Tue, 18 Oct 2011 14:55:48 +0000 (14:55 +0000)]
PR fortran/50420
* trans-array.c (gfc_walk_array_ref): Allow zero rank arrays
if they are coarrays.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180145
138bc75d-0d04-0410-961f-
82ee72b054a4
mikael [Tue, 18 Oct 2011 14:53:43 +0000 (14:53 +0000)]
* trans-array.h (gfc_walk_array_ref): New prototype.
* trans-array.c (gfc_walk_array_ref): New function, containing
all but the beginning of gfc_walk_variable_expr's code.
(gfc_walk_variable_expr): Use gfc_walk_array_ref.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180144
138bc75d-0d04-0410-961f-
82ee72b054a4
mikael [Tue, 18 Oct 2011 14:45:46 +0000 (14:45 +0000)]
PR fortran/50420
* trans-array.c (gfc_conv_expr_descriptor): Use loop.dimen instead of
ndim for the descriptor's rank.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180143
138bc75d-0d04-0410-961f-
82ee72b054a4
mikael [Tue, 18 Oct 2011 14:42:21 +0000 (14:42 +0000)]
PR fortran/50420
* trans-array.c (gfc_conv_expr_descriptor): Count codimensions starting
from zero, and add then the relevant offset (either ndim or loop.dimen)
depending on context.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180142
138bc75d-0d04-0410-961f-
82ee72b054a4
mikael [Tue, 18 Oct 2011 14:37:39 +0000 (14:37 +0000)]
* trans-array.c (gfc_conv_expr_descriptor): Save some horizontal space.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180141
138bc75d-0d04-0410-961f-
82ee72b054a4
mikael [Tue, 18 Oct 2011 14:32:03 +0000 (14:32 +0000)]
* trans-array.c (gfc_conv_expr_descriptor): Move ndim initialization
earlier.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180140
138bc75d-0d04-0410-961f-
82ee72b054a4
ams [Tue, 18 Oct 2011 14:14:14 +0000 (14:14 +0000)]
2011-10-18 Andrew Stubbs <ams@codesourcery.com>
gcc/
* config.host (arm*-*-linux*): Add driver-arm.o and x-arm.
* config/arm/arm.opt: Add 'native' processor_type and
arm_arch enum values.
* config/arm/arm.h (host_detect_local_cpu): New prototype.
(EXTRA_SPEC_FUNCTIONS): New define.
(MCPU_MTUNE_NATIVE_SPECS): New define.
(DRIVER_SELF_SPECS): New define.
* config/arm/driver-arm.c: New file.
* config/arm/x-arm: New file.
* doc/invoke.texi (ARM Options): Document -mcpu=native,
-mtune=native and -march=native.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180139
138bc75d-0d04-0410-961f-
82ee72b054a4
dnovillo [Tue, 18 Oct 2011 12:36:46 +0000 (12:36 +0000)]
* parser.c: Remove ENABLE_CHECKING markers around debugging
routines.
(cp_lexer_dump_tokens): Add arguments START_TOKEN and CURR_TOKEN.
Make static
When printing CURR_TOKEN surround it in [[ ]].
Start printing at START_TOKEN.
Update all users.
(cp_debug_print_tree_if_set): New.
(cp_debug_print_context): New.
(cp_debug_print_context_stack): New.
(cp_debug_print_flag): New.
(cp_debug_print_unparsed_function): New.
(cp_debug_print_unparsed_queues): New.
(cp_debug_parser_tokens): New.
(cp_debug_parser): New.
(cp_lexer_start_debugging): Set cp_lexer_debug_stream to stderr.
(cp_lexer_stop_debugging): Set cp_lexer_debug_stream to NULL.
* parser.h (cp_lexer_dump_tokens): Remove declaration.
(cp_debug_parser): Declare.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180136
138bc75d-0d04-0410-961f-
82ee72b054a4
amonakov [Tue, 18 Oct 2011 12:36:16 +0000 (12:36 +0000)]
PR rtl-optimization/50205
* sel-sched.c (count_occurrences_1): Simplify on the assumption that
p->x is a register. Forbid substitution when the same register is
found in a different mode.
(count_occurrences_equiv): Assert that 'what' is a register.
* gcc.dg/pr50205.c: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180135
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Tue, 18 Oct 2011 11:44:15 +0000 (11:44 +0000)]
2011-10-18 Richard Guenther <rguenther@suse.de>
PR tree-optimization/50767
* tree-ssa-pre.c (create_expression_by_pieces): Update the
folded statement.
* gcc.dg/torture/pr50767.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180134
138bc75d-0d04-0410-961f-
82ee72b054a4
nicola [Tue, 18 Oct 2011 11:31:45 +0000 (11:31 +0000)]
In gcc/objc/:
2011-10-18 Mikael Pettersson <mikpe@it.uu.se>
PR objc/50743
* objc-act.c (check_duplicates): Cast TREE_VEC_LENGTH result to
size_t to avoid signed/unsigned
comparison.
(insert_method_into_method_map): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180132
138bc75d-0d04-0410-961f-
82ee72b054a4
jules [Tue, 18 Oct 2011 10:49:44 +0000 (10:49 +0000)]
gcc/
* config/arm/arm.c (arm_block_move_unaligned_straight)
(arm_adjust_block_mem, arm_block_move_unaligned_loop)
(arm_movmemqi_unaligned): New.
(arm_gen_movmemqi): Support unaligned block copies.
gcc/testsuite/
* lib/target-supports.exp (check_effective_target_arm_unaligned):
New.
* gcc.target/arm/unaligned-memcpy-1.c: New.
* gcc.target/arm/unaligned-memcpy-2.c: New.
* gcc.target/arm/unaligned-memcpy-3.c: New.
* gcc.target/arm/unaligned-memcpy-4.c: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180131
138bc75d-0d04-0410-961f-
82ee72b054a4
janus [Tue, 18 Oct 2011 10:48:12 +0000 (10:48 +0000)]
2011-10-18 Janus Weil <janus@gcc.gnu.org>
PR fortran/47023
* decl.c (verify_c_interop_param): Renamed to
'gfc_verify_c_interop_param'. Add error message for polymorphic
arguments.
(verify_c_interop): Renamed to 'gfc_verify_c_interop'. Reject
polymorphic variables.
(verify_bind_c_sym): Renamed 'verify_c_interop'.
* gfortran.h (verify_c_interop,verify_c_interop_param): Renamed.
* check.c (gfc_check_sizeof): Ditto.
* resolve.c (gfc_iso_c_func_interface,resolve_fl_procedure): Ditto.
* symbol.c (verify_bind_c_derived_type): Ditto.
2011-10-18 Janus Weil <janus@gcc.gnu.org>
PR fortran/47023
* gfortran.dg/iso_c_binding_class.f03: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180130
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Tue, 18 Oct 2011 09:50:47 +0000 (09:50 +0000)]
2011-10-18 Paolo Carlini <paolo.carlini@oracle.com>
* Fix ChangeLogs.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180129
138bc75d-0d04-0410-961f-
82ee72b054a4
irar [Tue, 18 Oct 2011 09:39:04 +0000 (09:39 +0000)]
* doc/md.texi (vec_widen_ushiftl_hi, vec_widen_ushiftl_lo,
vec_widen_sshiftl_hi, vec_widen_sshiftl_lo): Document.
* tree-pretty-print.c (dump_generic_node): Handle WIDEN_LSHIFT_EXPR,
VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
(op_code_prio): Likewise.
(op_symbol_code): Handle WIDEN_LSHIFT_EXPR.
* optabs.c (optab_for_tree_code): Handle
VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
(init-optabs): Initialize optab codes for vec_widen_u/sshiftl_hi/lo.
* optabs.h (enum optab_index): Add OTI_vec_widen_u/sshiftl_hi/lo.
* genopinit.c (optabs): Initialize the new optabs.
* expr.c (expand_expr_real_2): Handle
VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
* gimple-pretty-print.c (dump_binary_rhs): Likewise.
* tree-vectorizer.h (NUM_PATTERNS): Increase to 8.
* tree.def (WIDEN_LSHIFT_EXPR, VEC_WIDEN_LSHIFT_HI_EXPR,
VEC_WIDEN_LSHIFT_LO_EXPR): New.
* cfgexpand.c (expand_debug_expr): Handle new tree codes.
* tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
vect_recog_widen_shift_pattern.
(vect_handle_widen_mult_by_const): Rename...
(vect_handle_widen_op_by_const): ...to this. Handle shifts.
Add a new argument, update documentation.
(vect_recog_widen_mult_pattern): Assume that only second
operand can be constant. Update call to
vect_handle_widen_op_by_const.
(vect_recog_over_widening_pattern): Fix typo.
(vect_recog_widen_shift_pattern): New.
* tree-vect-stmts.c (vectorizable_type_promotion): Handle
widening shifts.
(supportable_widening_operation): Likewise.
* tree-inline.c (estimate_operator_cost): Handle new tree codes.
* tree-vect-generic.c (expand_vector_operations_1): Likewise.
* tree-cfg.c (verify_gimple_assign_binary): Likewise.
* config/arm/neon.md (neon_vec_<US>shiftl_<mode>): New.
(vec_widen_<US>shiftl_lo_<mode>, neon_vec_<US>shiftl_hi_<mode>,
vec_widen_<US>shiftl_hi_<mode>, neon_vec_<US>shift_left_<mode>):
Likewise.
* config/arm/predicates.md (const_neon_scalar_shift_amount_operand):
New.
* config/arm/iterators.md (V_innermode): New.
* tree-vect-slp.c (vect_build_slp_tree): Require same shift operand
for widening shift.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180128
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Tue, 18 Oct 2011 09:04:54 +0000 (09:04 +0000)]
2011-10-18 Richard Guenther <rguenther@suse.de>
* tree-ssa-alias.h (struct pt_solution): Remove
vars_contains_restrict member.
(pt_solutions_same_restrict_base): Remove.
(pt_solution_set): Adjust.
* tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Remove
vars_contains_restrict handling.
(dump_points_to_solution): Likewise.
(ptr_derefs_may_alias_p): Do not call pt_solutions_same_restrict_base.
* tree-ssa-structalias.c (struct variable_info): Remove is_restrict_var
field.
(new_var_info): Do not initialize it.
(ipa_escaped_pt): Adjust.
(make_constraint_from_restrict): Make the tag global.
(make_constraint_from_global_restrict): New function.
(make_constraint_from_heapvar): Remove.
(create_variable_info_for): Do not make restrict vars point
to NONLOCAL.
(intra_create_variable_infos): Likewise.
(find_what_var_points_to): Remove vars_contains_restrict handling.
(pt_solution_set): Adjust.
(pt_solution_ior_into): Likewise.
(pt_solutions_same_restrict_base): Remove.
(compute_points_to_sets): Do not test is_restrict_var.
* cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
* gimple-pretty-print.c (pp_points_to_solution): Likewise.
* gcc.dg/torture/restrict-1.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180127
138bc75d-0d04-0410-961f-
82ee72b054a4
vries [Tue, 18 Oct 2011 08:57:39 +0000 (08:57 +0000)]
2011-10-18 Tom de Vries <tom@codesourcery.com>
PR tree-optimization/50672
* tree-ssa-dce.c (mark_virtual_operand_for_renaming): New function,
factored out of ...
(mark_virtual_phi_result_for_renaming): Use
mark_virtual_operand_for_renaming.
* tree-flow.h (mark_virtual_operand_for_renaming): Declare.
* tree-ssa-tail-merge.c (release_last_vdef): New function.
(purge_bbs): Add update_vops parameter. Call release_last_vdef for each
deleted basic block.
(tail_merge_optimize): Add argument to call to purge_bbs.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180126
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Tue, 18 Oct 2011 08:46:00 +0000 (08:46 +0000)]
2011-10-18 Richard Guenther <rguenther@suse.de>
PR middle-end/50716
* expr.c (get_object_or_type_alignment): New function.
(expand_assignment): Use it.
(expand_expr_real_1): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180125
138bc75d-0d04-0410-961f-
82ee72b054a4
dodji [Tue, 18 Oct 2011 08:44:49 +0000 (08:44 +0000)]
Fix bootstrap on !NO_IMPLICIT_EXTERN_C and ia32 targets
libcpp/
* include/line-map.h (struct linemap_stats): Change the type of
the members from size_t to long.
* macro.c (macro_arg_token_iter_init): Unconditionally initialize
iter->location_ptr.
gcc/c-family/
* c-lex.c (fe_file_change): Use LINEMAP_SYSP when
!NO_IMPLICIT_EXTERN_C.
gcc/
* input.c (dump_line_table_statistics): Use long, not size_t.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180124
138bc75d-0d04-0410-961f-
82ee72b054a4
ebotcazou [Tue, 18 Oct 2011 07:24:51 +0000 (07:24 +0000)]
Remove bogus line
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180123
138bc75d-0d04-0410-961f-
82ee72b054a4
ebotcazou [Tue, 18 Oct 2011 07:20:38 +0000 (07:20 +0000)]
* config/sparc/sparc.md (in_call_delay): Fix formatting issues.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180122
138bc75d-0d04-0410-961f-
82ee72b054a4
bkoz [Tue, 18 Oct 2011 02:58:06 +0000 (02:58 +0000)]
2011-10-17 Michael Spertus <mike_spertus@symantec.com>
* gcc/c-family/c-common.c (c_common_reswords): Add __bases,
__direct_bases.
* gcc/c-family/c-common.h: Add RID_BASES and RID_DIRECT_BASES.
2011-10-17 Michael Spertus <mike_spertus@symantec.com>
* cp-tree.def: Add BASES as a new tree code.
* cp-tree.h (enum cp_trait_kind): Add CPTK_BASES, CPTK_DIRECT_BASES.
(BASES_TYPE, BASES_DIRECT): Define.
(calculate_bases, finish_bases, calculate_direct_bases): Declare.
* parser.c (cp_parser_trait_expr, cp_parser_template_argument_list,
(cp_parser_simple_type_specifier, cp_parser_save_nsdmi): Use them.
* pt.c (find_parameter_packs_r, tsubst_pack_expansion): Likewise.
* semantics.c (calculate_bases, finish_bases, calculate_direct_bases,
dfs_calculate_bases_pre, dfs_calculate_bases_post,
calculate_bases_helper): Define.
2011-10-17 Michael Spertus <mike_spertus@symantec.com>
* g++.dg/ext/bases.C: New test.
2011-10-17 Michael Spertus <mike_spertus@symantec.com>
* include/tr2/type_traits (bases, direct_bases, typelist): New.
2011-10-17 Benjamin Kosnik <bkoz@redhat.com>
* libstdc++-v3/include/Makefile.am: Add tr2 directory and includes.
* libstdc++-v3/include/Makefile.in: Regenerate.
* scripts/create_testsuite_files: Search tr2 directory.
* testsuite/libstdc++-dg/conformance.exp: Same.
* testsuite/tr2/bases/requirements/explicit_instantiation.cc: New.
* testsuite/tr2/bases/requirements/typedefs.cc: New.
* testsuite/tr2/bases/value.cc: New.
* testsuite/tr2/direct_bases/requirements/
explicit_instantiation.cc: New.
* testsuite/tr2/direct_bases/requirements/typedefs.cc: New.
* testsuite/tr2/direct_bases/value.cc: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180121
138bc75d-0d04-0410-961f-
82ee72b054a4
davem [Tue, 18 Oct 2011 00:25:30 +0000 (00:25 +0000)]
Add sparc vec_perm patterns when VIS2.
* config/sparc/sparc.md (vec_perm_constv8qi, vec_perm<mode>): New
patterns.
* config/sparc/sparc.c (sparc_expand_vec_perm_bmask): New function.
* config/sparc/sparc-protos.h (sparc_expand_vec_perm_bmask): Declare.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180119
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Tue, 18 Oct 2011 00:18:39 +0000 (00:18 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180118
138bc75d-0d04-0410-961f-
82ee72b054a4
ian [Mon, 17 Oct 2011 23:31:25 +0000 (23:31 +0000)]
* configure.ac: Add --with-native-system-header-dir. Set and
substitute NATIVE_SYSTEM_HEADER_DIR. Use native_system_header
when setting target_header_dir.
* config.gcc: Always set native_system_header_dir.
(*-*-gnu*): Set native_system_header_dir. Don't use t-gnu.
(i[34567]86-pc-msdosdjgpp*): Set native_system_header_dir. Don't
use i386/t-djgpp.
(i[34567]86-*-mingw* | x86_64-*-mingw*): Set
native_system_header_dir.
(spu-*-elf*): Set native_system_header_dir.
* Makefile.in (NATIVE_SYSTEM_HEADER_DIR): Set to
@NATIVE_SYSTEM_HEADER_DIR@.
(PREPROCESSOR_DEFINES): Define NATIVE_SYSTEM_HEADER_DIR.
* cppdefault.c (STANDARD_INCLUDE_DIR): Don't define.
(NATIVE_SYSTEM_HEADER_COMPONENT): Rename from
STANDARD_INCLUDE_COMPONENT.
(cpp_include_defaults): Don't use SYSTEM_INCLUDE_DIR. Rename
STANDARD_INCLUDE_DIR to NATIVE_SYSTEM_HEADER_DIR.
* system.h: Poison SYSTEM_INCLUDE_DIR, STANDARD_INCLUDE_DIR, and
STANDARD_INCLUDE_COMPONENT.
* config/i386/t-mingw32 (NATIVE_SYSTEM_HEADER_DIR): Remove.
* config/i386/t-mingw-w32: Likewise.
* config/i386/t-mingw-w64: Likewise.
* config/spu/t-spu-elf: Likewise.
* config/i386/t-djgpp: Remove.
* config/t-gnu: Remove.
* config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Don't define.
(NATIVE_SYSTEM_HEADER_COMPONENT): Rename from
STANDARD_INCLUDE_COMPONENT.
* config/i386/djgpp.h (STANDARD_INCLUDE_DIR): Don't define.
* config/spu/spu-elf.h: Likewise.
* config/vms/xm-vms.h: Likewise.
* config/gnu.h: Likewise.
* config/openbsd.h (INCLUDE_DEFAULTS): Change STANDARD_INCLUDE_DIR
and STANDARD_INCLUDE_COMPONENT to NATIVE_SYSTEM_HEADER_DIR and
NATIVE_SYSTME_HEADER_COMPONENT.
* doc/install.texi (Configuration): Document
--with-native-system-header-dir. Mention it in the documentation
for --with-sysroot and --with-build-sysroot.
* doc/tm.texi.in (Driver): Don't document SYSTEM_INCLUDE_DIR or
STANDARD_INCLUDE_DIR. Rename STANDARD_INCLUDE_COMPONENT to
NATIVE_SYSTEM_HEADER_COMPONENT. Rename uses of
STANDARD_INCLUDE_DIR to NATIVE_SYSTEM_HEADER_DIR.
* doc/fragments.texi (Target Fragment): Don't document
NATIVE_SYSTEM_HEADER_DIR.
* configure, doc/tm.texi: Rebuild.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180114
138bc75d-0d04-0410-961f-
82ee72b054a4
davem [Mon, 17 Oct 2011 23:04:48 +0000 (23:04 +0000)]
Fix predicates used in sparc VIS edge instructions.
* config/sparc/sparc.md: Use register_or_zero_operand where rJ
is the constraint.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180113
138bc75d-0d04-0410-961f-
82ee72b054a4
davem [Mon, 17 Oct 2011 22:50:29 +0000 (22:50 +0000)]
Segregate sparc's handling of vector vs. non-vector modes.
gcc/
* config/sparc/sparc-modes.def: Add single entry vector modes for
DImode and SImode.
* config/sparc/sparc/sparc.md (V32, V32I, V64, V64I, V64N8): Delete
mode iterators.
(mov<V32:mode>): Revert back to plain SFmode pattern.
(*movsf_insn): Likewise.
(mov<V64:mode>): Revert back to plain DFmode pattern.
(*movdf_insn_sp32): Likewise.
(*movdf_insn_sp32_v9): Likewise.
(*movdf_insn_sp64): Likewise.
(V64 mode splitters) Likewise.
(addsi3): Remove VIS alternatives.
(subsi3): Likewise.
(and<V64I:mode>3): Revert to DImode only pattern.
(and<V64I:mode>3_sp32): Likewise.
(*and<V64I:mode>3_sp64): Likewise.
(and<V32I:mode>3): Likewise.
(*and_not_<V64I:mode>_sp32): Likewise.
(*and_not_<V64I:mode>_sp64): Likewise.
(*and_not_<V32I:mode>): Likewise.
(ior<V64I:mode>3): Likewise.
(*ior<V64I:mode>3_sp32): Likewise.
(*ior<V64I:mode>3_sp64): Likewise.
(ior<V32I:mode>3): Likewise.
(*or_not_<V64I:mode>_sp32): Likewise.
(*or_not_<V64I:mode>_sp64): Likewise.
(*or_not_<V32I:mode>): Likewise.
(xor<V64I:mode>3): Likewise.
(*xor<V64I:mode>3_sp32): Likewise.
(*xor<V64I:mode>3_sp64): Likewise.
(xor<V32I:mode>3): Likewise.
(V64I mode splitters): Likewise.
(*xor_not_<V64I:mode>_sp32): Likewise.
(*xor_not_<V64I:mode>_sp64): Likewise.
(*xor_not_<V32I:mode>): Likewise.
(one_cmpl<V64I:mode>2): Likewise.
(*one_cmpl<V64I:mode>2_sp32): Likewise.
(*one_cmpl<V64I:mode>2_sp64): Likewise.
(one_cmpl<V32I:mode>2): Likewise.
(VM32, VM64, VMALL): New mode iterators.
(vbits, vconstr, vfptype): New mode attributes.
(mov<VMALL:mode>): New expander.
(*mov<VM32:mode>_insn): New insn.
(*mov<VM64:mode>_insn_sp64): New insn.
(*mov<VM64:mode>_insn_sp32): New insn, and associated splitter
specifically for the register to memory case.
(vec_init<mode>): New expander.
(VADDSUB): New mode iterator.
(<plusminus_insn>v2si3, <plusminus_insn>v2hi3): Remove and replace
with...
(<plusminus_insn><mode>3): New consolidated pattern.
(VL): New mode iterator for logical operations.
(vlsuf): New more attribute.
(vlop): New code iterator.
(vlinsn, vlninsn): New code attributes.
(<code><mode>3): New insn to non-negated vector logical ops.
(*not_<code><mode>3): Likewise for negated variants.
(*nand<mode>_vis): New insn.
(vlnotop): New code iterator.
(*<code>_not1<mode>_vis, *<code>_not2<mode>_vis): New insns.
(one_cmpl<mode>2): New insn.
(faligndata<V64I:mode>_vis): Rewrite to use VM64 iterator.
(bshuffle<VM64:mode>_vis): Likewise.
(v<vis3_shift_patname><mode>3): Use GCM mode iterator.
(fp<plusminus_insn>64_vis): Use V1DI mode.
(VASS mode iterator): Use V1SI not SI mode.
* config/sparc/sparc.c (sparc_vis_init_builtins): Account for
single-entry vector mode changes.
(sparc_expand_builtin): Likewise.
(sparc_expand_vector_init): New function.
* config/sparc/sparc-protos.h (sparc_expand_vector_init): Declare.
gcc/testsuite/
* gcc.target/sparc/fand.c: Remove __LP64__ ifdefs and expect
all operations to emit VIS instructions.
* gcc.target/sparc/fandnot.c: Likewise.
* gcc.target/sparc/fnot.c: Likewise.
* gcc.target/sparc/for.c: Likewise.
* gcc.target/sparc/fornot.c: Likewise.
* gcc.target/sparc/fxnor.c: Likewise.
* gcc.target/sparc/fxor.c: Likewise.
* gcc.target/sparc/combined-1.c: Revert change to use -O2, no longer
needed.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180112
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Mon, 17 Oct 2011 20:22:39 +0000 (20:22 +0000)]
* gcc.c-torture/execute/vshuf-v16hi.c: New test.
* gcc.dg/torture/vshuf-16.inc: New file.
* gcc.dg/torture/vshuf-2.inc: New file.
* gcc.dg/torture/vshuf-32.inc: New file.
* gcc.dg/torture/vshuf-4.inc: New file.
* gcc.dg/torture/vshuf-8.inc: New file.
* gcc.dg/torture/vshuf-main.inc: New file.
* gcc.dg/torture/vshuf-v16hi.c: New test.
* gcc.dg/torture/vshuf-v16qi.c: New test.
* gcc.dg/torture/vshuf-v2df.c: New test.
* gcc.dg/torture/vshuf-v2di.c: New test.
* gcc.dg/torture/vshuf-v2sf.c: New test.
* gcc.dg/torture/vshuf-v2si.c: New test.
* gcc.dg/torture/vshuf-v32qi.c: New test.
* gcc.dg/torture/vshuf-v4df.c: New test.
* gcc.dg/torture/vshuf-v4di.c: New test.
* gcc.dg/torture/vshuf-v4hi.c: New test.
* gcc.dg/torture/vshuf-v4sf.c: New test.
* gcc.dg/torture/vshuf-v4si.c: New test.
* gcc.dg/torture/vshuf-v8hi.c: New test.
* gcc.dg/torture/vshuf-v8qi.c: New test.
* gcc.dg/torture/vshuf-v8sf.c: New test.
* gcc.dg/torture/vshuf-v8si.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180110
138bc75d-0d04-0410-961f-
82ee72b054a4
ktietz [Mon, 17 Oct 2011 20:18:31 +0000 (20:18 +0000)]
* fold-const.c (simple_operand_p_2): New function.
(fold_truthop): Rename to
(fold_truth_andor_1): function name.
Additionally remove branching creation for logical and/or.
(fold_truth_andor): Handle branching creation for logical and/or here.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180109
138bc75d-0d04-0410-961f-
82ee72b054a4
ak [Mon, 17 Oct 2011 19:47:12 +0000 (19:47 +0000)]
2011-10-17 Andi Kleen <ak@linux.intel.com>
* ggc-page.c (USING_MADVISE): Adjust ifdef to check for
USING_MMAP.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180107
138bc75d-0d04-0410-961f-
82ee72b054a4
irar [Mon, 17 Oct 2011 19:03:02 +0000 (19:03 +0000)]
PR tree-optimization/50746
* gcc.dg/vect/vect-114.c: Remove vect_hw_misalign.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180106
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Mon, 17 Oct 2011 18:59:41 +0000 (18:59 +0000)]
PR c++/50736
* parser.c (cp_parser_lambda_introducer): Check for more
invalid captures.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180105
138bc75d-0d04-0410-961f-
82ee72b054a4
gjl [Mon, 17 Oct 2011 17:53:07 +0000 (17:53 +0000)]
* config/avr/avr.h (ASSEMBLER_DIALECT): Remove.
* config/avr/avr.md (mcu_have_movw, mcu_mega): Remove attributes.
(adjust_len): Add alternative "call".
(isa, enabled): New insn attributes.
(length): Use match_test with AVR_HAVE_JMP_CALL instead of
mcu_mega attribute.
(*sbrx_branch<mode>): Ditto.
(*sbrx_and_branch<mode>): Ditto.
(*sbix_branch): Ditto.
(*sbix_branch_bit7): Ditto.
(*sbix_branch_tmp): Ditto.
(*sbix_branch_tmp_bit7): Ditto.
(jump): Ditto.
(negsi2): Use attribute "isa" instead of assembler dialect.
(extendhisi2): Ditto.
(call_insn, call_value_insn): Set adjust_len attribute.
(indirect_jump): Indent to coding rules.
(call_prologue_saves): Use isa attribute instead of mcu_mega.
(epilogue_restores): Ditto. Fix setting of SP as described in the
RTX pattern.
(*indirect_jump): Fusion of *jcindirect_jump, *njcindirect_jump
and *indirect_jump_avr6.
(*tablejump): Fusion of *tablejump_rjmp and *tablejump_lib.
(*jcindirect_jump, *njcindirect_jump, *indirect_jump_avr6): Remove.
(*tablejump_rjmp, *tablejump_lib): Remove.
* config/avr/avr.c (adjust_insn_length): Handle ADJUST_LEN_CALL.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180104
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Mon, 17 Oct 2011 17:51:00 +0000 (17:51 +0000)]
/cp
2011-10-17 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/44524
* typeck.c (build_class_member_access_expr): Provide a better error
message for X.Y where X is a pointer to class type.
(finish_class_member_access_expr): Likewise.
/testsuite
2011-10-17 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/44524
* g++.dg/parse/error41.C: New.
* g++.dg/parse/error20.C: Adjust.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180103
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Mon, 17 Oct 2011 17:49:06 +0000 (17:49 +0000)]
/gcc
2011-10-17 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/50757
* c-family/c.opt ([Wnonnull]): Add C++ and Objective-C++.
* doc/invoke.texi: Update.
/testsuite
2011-10-17 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/50757
* g++.dg/warn/format7.C: New.
* obj-c++.dg/warn7.mm: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180102
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Mon, 17 Oct 2011 17:44:42 +0000 (17:44 +0000)]
/gcc
2011-10-17 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/50757
* c-family/c.opt ([Wnonnull]): Add C++ and Objective-C++.
* doc/invoke.texi: Update.
/testsuite
2011-10-17 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/50757
* g++.dg/warn/format7.C: New.
* obj-c++.dg/warn7.mm: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180101
138bc75d-0d04-0410-961f-
82ee72b054a4
rth [Mon, 17 Oct 2011 17:02:05 +0000 (17:02 +0000)]
PR 50746
* optabs.c (expand_vec_perm_expr): Fix indexing error.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180100
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Mon, 17 Oct 2011 15:36:28 +0000 (15:36 +0000)]
libgcc/ChangeLog:
2011-10-16 Uros Bizjak <ubizjak@gmail.com>
Eric Botcazou <ebotcazou@adacore.com>
PR target/50737
* config/alpha/linux-unwind.h (alpha_fallback_frame_state): Set
fs->signal_frame to 1.
libjava/ChangeLog:
2011-10-16 Uros Bizjak <ubizjak@gmail.com>
Eric Botcazou <ebotcazou@adacore.com>
PR target/50737
* include/dwarf2-signal.h [__alpha__]: Remove MAKE_THROW_FRAME
definition.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180098
138bc75d-0d04-0410-961f-
82ee72b054a4
ro [Mon, 17 Oct 2011 15:14:54 +0000 (15:14 +0000)]
Remove duplicate symbol in gnu.ver (PR bootstrap/50715)
PR bootstrap/50715
* config/abi/pre/gnu.ver (CXXABI_1.3.6): Remove duplicate
__cxa_get_exception_ptr.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180097
138bc75d-0d04-0410-961f-
82ee72b054a4
tromey [Mon, 17 Oct 2011 14:47:01 +0000 (14:47 +0000)]
2011-10-17 Sergio Durigan Junior <sergiodj@redhat.com>
* configure.ac: Display `yes' if the SystemTap header has been
found.
* configure: Regenerate.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180095
138bc75d-0d04-0410-961f-
82ee72b054a4
ak [Mon, 17 Oct 2011 14:43:37 +0000 (14:43 +0000)]
Use MADV_DONTNEED for freeing in garbage collector
Use the Linux MADV_DONTNEED call to unmap free pages in the garbage
collector.Then keep the unmapped pages in the free list. This avoid
excessive memory fragmentation on large LTO bulds, which can lead
to gcc bumping into the Linux vm_max_map limit per process.
gcc/:
2011-10-08 Andi Kleen <ak@linux.intel.com>
PR other/50636
* config.in, configure: Regenerate.
* configure.ac (madvise): Add to AC_CHECK_FUNCS.
* ggc-page.c (USING_MADVISE): Add.
(page_entry): Add discarded field.
(alloc_page): Check for discarded pages.
(release_pages): Add USING_MADVISE branch.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180093
138bc75d-0d04-0410-961f-
82ee72b054a4
dodji [Mon, 17 Oct 2011 14:01:37 +0000 (14:01 +0000)]
Fix bootstrapping with --disable-checking
libcpp/ChangeLog
* line-map.c (linemap_macro_map_loc_to_exp_point): Avoid setting a
variable without using it if ENABLE_CHECKING is not defined. Mark
the LOCATION parameter as being unused.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180090
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Mon, 17 Oct 2011 12:22:54 +0000 (12:22 +0000)]
2011-10-17 Richard Guenther <rguenther@suse.de>
PR tree-optimization/50729
* tree-vrp.c (extract_range_from_unary_expr_1): Remove
redundant test.
(simplify_conversion_using_ranges): Properly test the
intermediate result.
* gcc.dg/torture/pr50729.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180087
138bc75d-0d04-0410-961f-
82ee72b054a4
dodji [Mon, 17 Oct 2011 10:00:07 +0000 (10:00 +0000)]
Reduce memory waste due to non-power-of-2 allocs
This patch basically arranges for the allocation size of line_map
buffers to be as close as possible to a power of two. This
*significantly* decreases peak memory consumption as (macro) maps are
numerous and stay live during all the compilation.
The patch adds a new ggc_round_alloc_size interface to the ggc
allocator. In each of the two main allocator implementations ('page'
and 'zone') the function has been extracted from the main allocation
function code and returns the actual size of the allocated memory
region, thus giving a chance to the caller to maximize the amount of
memory it actually uses from the allocated memory region. In the
'none' allocator implementation (that uses xmalloc) the
ggc_round_alloc_size just returns the requested allocation size.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180086
138bc75d-0d04-0410-961f-
82ee72b054a4
dodji [Mon, 17 Oct 2011 09:59:52 +0000 (09:59 +0000)]
Add line map statistics to -fmem-report output
This patch adds statistics about line maps' memory consumption and
macro expansion to the output of -fmem-report. It has been useful in
trying to reduce the memory consumption of the macro maps support.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180085
138bc75d-0d04-0410-961f-
82ee72b054a4
dodji [Mon, 17 Oct 2011 09:59:40 +0000 (09:59 +0000)]
Support -fdebug-cpp option
This patch adds -fdebug-cpp option. When used with -E this dumps the
relevant macro map before every single token. This clutters the output
a lot but has proved to be invaluable in tracking some bugs during the
development of the virtual location support.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180084
138bc75d-0d04-0410-961f-
82ee72b054a4
dodji [Mon, 17 Oct 2011 09:59:27 +0000 (09:59 +0000)]
Emit macro expansion related diagnostics
In this third instalment the diagnostic machinery -- when faced with
the virtual location of a token resulting from macro expansion -- uses
the new linemap APIs to unwind the stack of macro expansions that led
to that token and emits a [hopefully] more useful message than what we
have today.
diagnostic_report_current_module has been slightly changed to use the
location given by client code instead of the global input_location
variable. This results in more precise diagnostic locations in
general but then the patch adjusts some C++ tests which output changed
as a result of this.
Three new regression tests have been added.
The mandatory screenshot goes like this:
[dodji@adjoa gcc]$ cat -n test.c
1 #define OPERATE(OPRD1, OPRT, OPRD2) \
2 OPRD1 OPRT OPRD2;
3
4 #define SHIFTL(A,B) \
5 OPERATE (A,<<,B)
6
7 #define MULT(A) \
8 SHIFTL (A,1)
9
10 void
11 g ()
12 {
13 MULT (1.0);/* 1.0 << 1; <-- so this is an error. */
14 }
[dodji@adjoa gcc]$ ./cc1 -quiet -ftrack-macro-expansion test.c
test.c: In function 'g':
test.c:5:14: erreur: invalid operands to binary << (have 'double' and 'int')
test.c:2:9: note: in expansion of macro 'OPERATE'
test.c:5:3: note: expanded from here
test.c:5:14: note: in expansion of macro 'SHIFTL'
test.c:8:3: note: expanded from here
test.c:8:3: note: in expansion of macro 'MULT2'
test.c:13:3: note: expanded from here
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180083
138bc75d-0d04-0410-961f-
82ee72b054a4
dodji [Mon, 17 Oct 2011 09:59:12 +0000 (09:59 +0000)]
Generate virtual locations for tokens
This second instalment uses the infrastructure of the previous patch
to allocate a macro map for each macro expansion and assign a virtual
location to each token resulting from the expansion.
To date when cpp_get_token comes across a token that happens to be a
macro, the macro expander kicks in, expands the macro, pushes the
resulting tokens onto a "token context" and returns a dummy padding
token. The next call to cpp_get_token goes look into the token context
for the next token [which is going to result from the previous macro
expansion] and returns it. If the token is a macro, the macro expander
kicks in and you know the story.
This patch piggy-backs on that macro expansion process, so to speak.
First it modifies the macro expander to make it create a macro map for
each macro expansion. It then allocates a virtual location for each
resulting token. Virtual locations of tokens resulting from macro
expansions are then stored on a special kind of context called an
"expanded tokens context". In other words, in an expanded tokens
context, there are tokens resulting from macro expansion and their
associated virtual locations. cpp_get_token_with_location is modified
to return the virtual location of tokens resulting from macro
expansion. Note that once all tokens from an expanded token context have
been consumed and the context and is freed, the memory used to store the
virtual locations of the tokens held in that context is freed as well.
This helps reducing the overall peak memory consumption.
The client code that was getting macro expansion point location from
cpp_get_token_with_location now gets virtual location from it. Those
virtual locations can in turn be resolved into the different
interesting physical locations thanks to the linemap API exposed by
the previous patch.
Expensive progress. Possibly. So this whole virtual location
allocation business is switched off by default. So by default no
extended token is created. No extended token context is created
either. One has to use -ftrack-macro-expansion to switch this on. This
complicates the code but I believe it can be useful as some of our
friends found out at http://llvm.org/bugs/show_bug.cgi?id=5610
The patch tries to reduce the memory consumption by freeing some token
context memory that was being reused before. I didn't notice any
compilation slow down due to this immediate freeing on my GNU/Linux
system.
As no client code tries to resolve virtual locations to anything but
what was being done before, no new test case has been added.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180082
138bc75d-0d04-0410-961f-
82ee72b054a4
dodji [Mon, 17 Oct 2011 09:58:56 +0000 (09:58 +0000)]
Linemap infrastructure for virtual locations
This is the first instalment of a set which goal is to track locations
of tokens across macro expansions. Tom Tromey did the original work
and attached the patch to PR preprocessor/7263. This opus is a
derivative of that original work.
This patch modifies the linemap module of libcpp to add virtual
locations support.
A virtual location is a mapped location that can resolve to several
different physical locations. It can always resolve to the spelling
location of a token. For tokens resulting from macro expansion it can
resolve to:
- either the location of the expansion point of the macro.
- or the location of the token in the definition of the
macro
- or, if the token is an argument of a function-like macro,
the location of the use of the matching macro parameter in
the definition of the macro
The patch creates a new type of line map called a macro map. For every
single macro expansion, there is a macro map that generates a virtual
location for every single resulting token of the expansion.
The good old type of line map we all know is now called an ordinary
map. That one still encodes spelling locations as it has always had.
As a result linemap_lookup as been extended to return a macro map when
given a virtual location resulting from a macro expansion. The layout
of structs line_map has changed to support this new type of map. So
did the layout of struct line_maps. Accessor macros have been
introduced to avoid messing with the implementation details of these
datastructures directly. This helped already as we have been testing
different ways of arranging these datastructure. Having to constantly
adjust client code that is too tied with the internals of line_map and
line_maps would have been even more painful.
Of course, many new public functions have been added to the linemap
module to handle the resolution of virtual locations.
This patch introduces the infrastructure but no part of the compiler
uses virtual locations yet.
However the client code of the linemap data structures has been
adjusted as per the changes. E.g, it's not anymore reliable for a
client code to manipulate struct line_map directly if it just wants to
deal with spelling locations, because struct line_map can now
represent a macro map as well. In that case, it's better to use the
convenient API to resolve the initial (possibly virtual) location to a
spelling location (or to an ordinary map) and use that.
This is the reason why the patch adjusts the Java, Ada and Fortran
front ends.
Also, note that virtual locations are not supposed to be ordered for
relations '<' and '>' anymore. To test if a virtual location appears
"before" another one, one has to use a new operator exposed by the
line map interface. The patch updates the only spot (in the
diagnostics module) I have found that was making the assumption that
locations were ordered for these relations. This is the only change
that introduces a use of the new line map API in this patch, so I am
adding a regression test for it only.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180081
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Mon, 17 Oct 2011 09:48:02 +0000 (09:48 +0000)]
/cp
2011-10-17 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/48489
* typeck.c (finish_class_member_access_expr): Fix error call
for TREE_CODE (access_path) == TREE_BINFO.
/testsuite
2011-10-17 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/48489
* g++.dg/inherit/error5.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180080
138bc75d-0d04-0410-961f-
82ee72b054a4
janus [Mon, 17 Oct 2011 09:46:30 +0000 (09:46 +0000)]
2011-10-17 Janus Weil <janus@gcc.gnu.org>
PR fortran/47023
PR fortran/50752
* primary.c (match_kind_param): Avoid segfault.
2011-10-17 Janus Weil <janus@gcc.gnu.org>
PR fortran/47023
PR fortran/50752
* gfortran.dg/kind_tests_4.f90: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180079
138bc75d-0d04-0410-961f-
82ee72b054a4
irar [Mon, 17 Oct 2011 08:40:14 +0000 (08:40 +0000)]
* gcc.dg/vect/vect-21.c: Expect the loops to get vectorized on
targets that support vector condition.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180076
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Mon, 17 Oct 2011 00:18:35 +0000 (00:18 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180071
138bc75d-0d04-0410-961f-
82ee72b054a4
ak [Sun, 16 Oct 2011 23:24:12 +0000 (23:24 +0000)]
Increase the GGC quire size to 2MB
gcc/:
2011-10-08 Andi Kleen <ak@linux.intel.com>
* ggc-page.c (GGC_QUIRE_SIZE): Increase to 512
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180066
138bc75d-0d04-0410-961f-
82ee72b054a4
ak [Sun, 16 Oct 2011 23:22:32 +0000 (23:22 +0000)]
Add error checking to lto_section_read
gcc/lto/:
2011-10-09 Andi Kleen <ak@linux.intel.com>
* lto.c (lto_section_read): Call fatal_error on IO or mmap errors.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180065
138bc75d-0d04-0410-961f-
82ee72b054a4
ak [Sun, 16 Oct 2011 23:10:47 +0000 (23:10 +0000)]
Rename __gnu_slim_lto to __gnu_lto_slim
gcc/:
2011-10-13 Andi Kleen <ak@linux.intel.com>
* toplev.c (compile_file): Rename __gnu_slim_lto to __gnu_lto_slim.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180064
138bc75d-0d04-0410-961f-
82ee72b054a4
tkoenig [Sun, 16 Oct 2011 22:06:19 +0000 (22:06 +0000)]
2011-10-16 Thomas Koenig <tkoenig@gcc.gnu.org>
* frontend-passes.c (current_ns): Make static.
(create_var): Note parent of newly created namespace.
(optimize_namespace): Don't wak sibling namespaces
if they are EXEC_BLOCK because this is handled...
(gfc_code_walker): ... here. Also walk ASSOCIATE lists.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180063
138bc75d-0d04-0410-961f-
82ee72b054a4
janus [Sun, 16 Oct 2011 19:42:48 +0000 (19:42 +0000)]
2011-10-16 Janus Weil <janus@gcc.gnu.org>
PR fortran/47023
* primary.c (match_kind_param): Detect ISO_C_BINDING kinds.
(get_kind): Pass on 'is_iso_c' flag.
(match_integer_constant,match_real_constant,match_logical_constant):
Set 'ts.is_c_interop'.
2011-10-16 Janus Weil <janus@gcc.gnu.org>
PR fortran/47023
* gfortran.dg/c_kind_tests_3.f03: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180062
138bc75d-0d04-0410-961f-
82ee72b054a4
janus [Sun, 16 Oct 2011 19:16:59 +0000 (19:16 +0000)]
2011-10-16 Janus Weil <janus@gcc.gnu.org>
PR fortran/50547
* resolve.c (resolve_formal_arglist): Remove unneeded error message.
Some reshuffling.
2011-10-16 Janus Weil <janus@gcc.gnu.org>
PR fortran/50547
* gfortran.dg/elemental_args_check_4.f90: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180061
138bc75d-0d04-0410-961f-
82ee72b054a4
irar [Sun, 16 Oct 2011 13:47:54 +0000 (13:47 +0000)]
PR tree-optimization/50727
* tree-vect-patterns.c (vect_operation_fits_smaller_type): Add
DEF_STMT to the list of statements to be replaced by the
pattern statements.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180060
138bc75d-0d04-0410-961f-
82ee72b054a4
ebotcazou [Sun, 16 Oct 2011 13:17:29 +0000 (13:17 +0000)]
Move testsuite entries to proper file
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180059
138bc75d-0d04-0410-961f-
82ee72b054a4
ebotcazou [Sun, 16 Oct 2011 13:14:34 +0000 (13:14 +0000)]
PR rtl-optimization/50615
* combine.c (distribute_notes) <REG_ARGS_SIZE>: Skip if I3 is a no-op.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180058
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Sun, 16 Oct 2011 13:10:20 +0000 (13:10 +0000)]
PR tree-optimization/50596
* tree-vectorizer.h (NUM_PATTERNS): Increase to 7.
* tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
vect_recog_bool_pattern.
(check_bool_pattern, adjust_bool_pattern_cast,
adjust_bool_pattern, vect_recog_bool_pattern): New functions.
* gcc.dg/vect/vect-cond-9.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180057
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Sun, 16 Oct 2011 12:12:11 +0000 (12:12 +0000)]
2011-10-16 Tristan Gingold <gingold@adacore.com>
* link.c (_AIX): Add support for GNU ld.
2011-10-16 Fedor Rybin <frybin@adacore.com>
* gnat_ugn.texi: Fixing gnattest example names in the doc.
Adding explanation to additional tests usage.
2011-10-16 Robert Dewar <dewar@adacore.com>
* exp_ch6.adb, sem_ch6.adb: Minor reformatting.
2011-10-16 Eric Botcazou <ebotcazou@adacore.com>
* a-convec.adb: Fix minor inconsistencies.
2011-10-16 Matthew Heaney <heaney@adacore.com>
* a-cusyqu.ads, a-cbsyqu.ads, a-cuprqu.ads, a-cbprqu.ads (package
Implementation): Specify pragma Implementation_Defined.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180056
138bc75d-0d04-0410-961f-
82ee72b054a4
irar [Sun, 16 Oct 2011 10:47:12 +0000 (10:47 +0000)]
* tree-vect-stmts.c (vectorizable_load): For SLP without
permutation treat the first load of the node as the first
element in its interleaving chain.
* tree-vect-slp.c (vect_get_and_check_slp_defs): Swap the
operands if necessary and possible.
(vect_build_slp_tree): Add new argument. Allow load groups of
any size in basic blocks. Keep all the loads for further
permutation check. Use the new argument to determine if there
is a permutation. Update the recursive calls.
(vect_supported_load_permutation_p): Allow subchains of
interleaving chains in basic block vectorization.
(vect_analyze_slp_instance): Update the call to
vect_build_slp_tree. Check load permutation based on the new
parameter.
(vect_schedule_slp_instance): Don't start from the first element
in interleaving chain unless the loads are permuted.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180055
138bc75d-0d04-0410-961f-
82ee72b054a4
hubicka [Sun, 16 Oct 2011 09:02:33 +0000 (09:02 +0000)]
PR target/48668
PR target/50689
* cgraphunit.c (cgraph_expand_function): Expand thunks and alises
after function body.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180053
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Sun, 16 Oct 2011 00:17:57 +0000 (00:17 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180052
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Sat, 15 Oct 2011 19:49:33 +0000 (19:49 +0000)]
/cp
2011-10-15 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/50732
* semantics.c (finish_trait_expr): Do not try to instantiate the
the base type of an __is_base_of trait.
(check_trait_type): Return a tree; use complete_type_or_else.
/testsuite
2011-10-15 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/50732
* g++.dg/ext/is_base_of_incomplete.C: New.
* g++.dg/ext/is_base_of_diagnostic.C: Adjust dg-errors.
* g++.dg/ext/unary_trait_incomplete.C: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180048
138bc75d-0d04-0410-961f-
82ee72b054a4
rth [Sat, 15 Oct 2011 19:36:50 +0000 (19:36 +0000)]
Use VEC_PERM_EXPR in the vectorizer.
* tree-vect-slp.c: Include langhooks.h.
(vect_create_mask_and_perm): Emit VEC_PERM_EXPR, not a builtin.
(vect_transform_slp_perm_load): Use can_vec_perm_expr_p. Simplify
mask creation for VEC_PERM_EXPR.
* tree-vect-stmts.c (perm_mask_for_reverse): Return the mask,
not the builtin.
(reverse_vec_elements): Emit VEC_PERM_EXPR not a builtin.
* Makefile.in (tree-vect-slp.o): Update dependency.
* optabs.c (can_vec_perm_expr_p): Allow NULL as unknown constant.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180047
138bc75d-0d04-0410-961f-
82ee72b054a4
ebotcazou [Sat, 15 Oct 2011 14:48:37 +0000 (14:48 +0000)]
* gcc.target/sparc/combined-1.c: Compile at -O2.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180040
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Sat, 15 Oct 2011 14:31:16 +0000 (14:31 +0000)]
* ChangeLog: Fix whitespace.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180039
138bc75d-0d04-0410-961f-
82ee72b054a4
amodra [Sat, 15 Oct 2011 13:39:58 +0000 (13:39 +0000)]
PR bootstrap/50738
* ifcvt.c (dead_or_predicable): Revert accidental commit with
HAVE_simple_return test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180038
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Sat, 15 Oct 2011 11:04:38 +0000 (11:04 +0000)]
* gcc.target/i386/fma_float_?.c (dg-prune_output): Remove.
(dg-options): Add -Wno-attributes.
* gcc.target/i386/fma_double_?.c: Ditto.
* gcc.target/i386/fma_run_float_?.c: Ditto.
* gcc.target/i386/fma_run_double_?.c: Ditto.
* gcc.target/i386/l_fma_float_?.c: Dtto.
* gcc.target/i386/l_fma_double_?.c: Ditto.
* gcc.target/i386/l_fma_run_float_?.c: Ditto.
* gcc.target/i386/l_fma_run_double_?.c: Ditto.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180029
138bc75d-0d04-0410-961f-
82ee72b054a4
amodra [Sat, 15 Oct 2011 10:36:00 +0000 (10:36 +0000)]
* ifcvt.c (dead_or_predicable): Disable if-conversion when
doing so is likely to kill a shrink-wrapping opportunity.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180028
138bc75d-0d04-0410-961f-
82ee72b054a4
amodra [Sat, 15 Oct 2011 10:32:33 +0000 (10:32 +0000)]
PR rtl-optimization/49941
* jump.c (mark_jump_label_1): Set JUMP_LABEL for simple_return jumps.
* rtl.h (set_return_jump_label): Declare.
* function.c (set_return_jump_label): New function, extracted..
(thread_prologue_and_epilogue_insns): ..from here. Use it in
another instance to set return jump_label.
* cfgrtl.c (force_nonfallthru_and_redirect): Use set_return_jump_label.
* reorg.c (find_end_label): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180027
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Sat, 15 Oct 2011 09:24:32 +0000 (09:24 +0000)]
2011-10-15 Nicolas Roche <roche@adacore.com>
* gcc-interface/lang-specs.h: Ensure -mrtp switch is passed when using
either rtp-smp or ravenscar-cert-rtp runtimes.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180026
138bc75d-0d04-0410-961f-
82ee72b054a4
charlet [Sat, 15 Oct 2011 09:22:01 +0000 (09:22 +0000)]
2011-10-15 Bob Duff <duff@adacore.com>
* exp_ch6.adb (Add_Unconstrained_Actuals_To_Build_In_Place_Call):
Do not create a pool formal on unless RE_Root_Storage_Pool_Ptr
is available.
(Expand_N_Extended_Return_Statement): Do not create a renaming of the
build-in-place pool parameter unless RE_Root_Storage_Pool_Ptr is
available.
(Make_Build_In_Place_Call_In_Allocator): Add the user-defined
pool only if RE_Root_Storage_Pool_Ptr is available.
(Make_Build_In_Place_Call_In_Object_Declaration): Do not add a
pool actual unless RE_Root_Storage_Pool_Ptr is available.
* sem_ch6.adb (Create_Extra_Formals): Add build-in-place pool
formal only if RE_Root_Storage_Pool_Ptr is available.
2011-10-15 Matthew Heaney <heaney@adacore.com>
* a-cusyqu.ads, a-cbsyqu.ads, a-cuprqu.ads, a-cbprqu.ads (Queue
type): Specify Priority aspect for protected type.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180025
138bc75d-0d04-0410-961f-
82ee72b054a4
burnus [Sat, 15 Oct 2011 08:34:36 +0000 (08:34 +0000)]
2011-10-15 Tobias Burnus <burnus@net-b.de>
* gfortran.texi (Fortran 2008 status, TS 29113 status,
Further Interoperability of Fortran with C): Update implementation
status, change references from TR 29113 to TS 29113.
* intrinsic.texi (RANK): Change TR 29113 to TS 29113.
* invoke.text (-std=): Ditto, change -std=f2008tr to
* -std=f2008ts.
* lang.opt (std=): Ditto.
* options.c (gfc_handle_option, set_default_std_flags): Ditto
* and
change GFC_STD_F2008_TR to GFC_STD_F2008_TS.
* libgfortran.h: Ditto.
* intrinsic.c (add_functions, gfc_check_intrinsic_standard):
* Ditto.
* decl.c (verify_c_interop_param): Ditto.
2011-10-15 Tobias Burnus <burnus@net-b.de>
* gfortran.dg/bind_c_usage_23.f90: Change TR 29113 to TS 29113
* in
the comments.
* gfortran.dg/bind_c_usage_24.f90: Ditto.
* gfortran.dg/rank_3.f90: Ditto.
* gfortran.dg/bind_c_usage_22.f90: Ditto, change -std=f2008tr to
-std=f2008ts in dg-options.
* gfortran.dg/rank_4.f90: Ditto.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180024
138bc75d-0d04-0410-961f-
82ee72b054a4
davem [Sat, 15 Oct 2011 03:46:59 +0000 (03:46 +0000)]
Fix mv8plus, allow targetting Linux or Solaris from other sparc host.
* config/sparc/sol2.h: Protect -m{cpu,tune}=native handling
with a more complete cpp test.
* config/sparc/linux64.h: Likewise.
* config/sparc/linux.h: Likewise.
* config/sparc/sparc.opt (sparc_debug): New target variable.
(mdebug): New target option.
* config/sparc/sparc.h (MASK_DEBUG_OPTIONS, MASK_DEBUG_ALL,
TARGET_DEBUG_OPTIONS): New defines.
* config/sparc/sparc.c (debug_target_flag_bits,
debug_target_flags): New functions.
(sparc_option_override): Add name strings back to cpu_table[].
Parse -mdebug string. When TARGET_DEBUG_OPTIONS is true, print
out the target flags before and after override processing as well
as the selected cpu. If MASK_V8PLUS, make sure that the selected
cpu is at least v9.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180021
138bc75d-0d04-0410-961f-
82ee72b054a4
kkojima [Sat, 15 Oct 2011 02:32:53 +0000 (02:32 +0000)]
PR target/49263
* config/sh/sh.h (ZERO_EXTRACT_ANDMASK): New macro.
* config/sh/sh.c (sh_rtx_costs): Add test instruction case.
* config/sh/sh.md (tstsi_t): Name existing insn. Make inner
and instruction commutative.
(tsthi_t, tstqi_t, tstqi_t_zero, tstsi_t_and_not,
tstsi_t_zero_extract_eq, tstsi_t_zero_extract_xor,
tstsi_t_zero_extract_subreg_xor_little,
tstsi_t_zero_extract_subreg_xor_big): New insns.
(*movsicc_t_false, *movsicc_t_true): Replace space with tab in
asm output.
(*andsi_compact): Reorder alternatives so that K08 is considered
first.
* gcc.target/sh/pr49263.c: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180020
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Sat, 15 Oct 2011 00:19:01 +0000 (00:19 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180019
138bc75d-0d04-0410-961f-
82ee72b054a4
ebotcazou [Fri, 14 Oct 2011 23:24:36 +0000 (23:24 +0000)]
* gnat.dg/specs/debug1.ads: Tweak.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180015
138bc75d-0d04-0410-961f-
82ee72b054a4
ebotcazou [Fri, 14 Oct 2011 23:02:40 +0000 (23:02 +0000)]
PR target/50354
* config/sparc/linux64.h (TARGET_DEFAULT): Only override if the default
processor is at least V9 and TARGET_64BIT_DEFAULT is defined.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180013
138bc75d-0d04-0410-961f-
82ee72b054a4
gerald [Fri, 14 Oct 2011 20:22:15 +0000 (20:22 +0000)]
* invoke.texi (AVR Options): Avoid \leq{}.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180007
138bc75d-0d04-0410-961f-
82ee72b054a4
ktietz [Fri, 14 Oct 2011 19:30:42 +0000 (19:30 +0000)]
* gimplify.c (gimplify_expr): Take care that for bitwise-binary
transformation the operands have compatible types.
* gfortran.fortran-torture/compile/logical-2.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180006
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Fri, 14 Oct 2011 19:25:07 +0000 (19:25 +0000)]
* config/i386/sse.md (vec_widen_smult_hi_v8hi,
vec_widen_smult_lo_v8hi, vec_widen_umult_hi_v8hi,
vec_widen_umult_lo_v8hi): Macroize using VI2_AVX2
mode iterator and any_extend code iterator.
(vec_widen_<s>mult_hi_v8si, vec_widen_<s>mult_lo_v8si): New
expanders.
(vec_widen_smult_hi_v4si, vec_widen_smult_lo_v4si): Enable
also for TARGET_SSE4_1 using pmuldq insn.
(sdot_prodv8hi): Macroize using VI2_AVX2 iterator.
(sse2_sse4_1): New code attr.
(udot_prodv4si): Macroize using any_extend code iterator.
(<s>dot_prodv8si): New expander.
* gcc.target/i386/sse2-mul-1.c: New test.
* gcc.target/i386/sse4_1-mul-1.c: New test.
* gcc.target/i386/avx-mul-1.c: New test.
* gcc.target/i386/xop-mul-1.c: New test.
* gcc.target/i386/avx2-mul-1.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180005
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Fri, 14 Oct 2011 19:22:59 +0000 (19:22 +0000)]
fix PR tag
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180004
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Fri, 14 Oct 2011 19:12:57 +0000 (19:12 +0000)]
PR c++/50563
* parser.c (cp_parser_cache_group): Handle end==CPP_COMMA.
(cp_parser_save_nsdmi): Pass it.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180003
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Fri, 14 Oct 2011 19:12:45 +0000 (19:12 +0000)]
PR c++/50507
* method.c (walk_field_subobs): Check for NSDMI before
complaining about uninitialized fields.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180002
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Fri, 14 Oct 2011 19:12:33 +0000 (19:12 +0000)]
* pt.c (tsubst_decl) [FIELD_DECL]: Use void_zero_node
instead of error_mark_node as a placeholder.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180001
138bc75d-0d04-0410-961f-
82ee72b054a4
janus [Fri, 14 Oct 2011 17:59:29 +0000 (17:59 +0000)]
2011-10-14 Janus Weil <janus@gcc.gnu.org>
PR fortran/50570
* expr.c (gfc_check_vardef_context): Don't throw an error on
non-pointer assignments involving an intent(in) pointer dummy.
2011-10-14 Janus Weil <janus@gcc.gnu.org>
PR fortran/50570
* gfortran.dg/pointer_intent_5.f90: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180000
138bc75d-0d04-0410-961f-
82ee72b054a4