Arnaud Charlet [Thu, 12 Nov 2015 11:52:59 +0000 (12:52 +0100)]
[multiple changes]
2015-11-12 Ed Schonberg <schonberg@adacore.com>
* sem_ch8.adb (Find_Selected_Component): In a synchronized
body, a reference to an operation of an object of the same
synchronized type was always interpreted as a reference to the
current instance. This is not always the case, as the prefix of
the reference may designate an object of the same type declared
in the enclosing context prior to the body.
2015-11-12 Arnaud Charlet <charlet@adacore.com>
* impunit.ads, impunit.adb (Get_Kind_Of_File): New. Cleaned up
implementation from previous Get_Kind_Of_Unit.
(Get_Kind_Of_Unit): Reimplemented using Get_Kind_Of_File.
* debug.adb: Remove d.4 switch, no longer used.
* opt.ads: Update doc on Debugger_Level.
* gnat1drv.adb: Code clean ups.
* sinput.ads: minor fix in comment
2015-11-12 Bob Duff <duff@adacore.com>
* sinfo.adb, sinfo.ads, sem_ch6.adb, atree.ads: Add
Was_Expression_Function flag, which is set in sem_ch6.adb when
converting an Expression_Function into a Subprogram_Body.
Arnaud Charlet [Thu, 12 Nov 2015 11:46:35 +0000 (12:46 +0100)]
[multiple changes]
2015-11-12 Tristan Gingold <gingold@adacore.com>
* snames.ads-tmpl: Name_Gnat_Extended_Ravenscar: New identifier.
* s-rident.ads (Profile_Name): Add GNAT_Extended_Ravenscar.
(Profile_Info): Add new entry for GNAT_Extended_Ravenscar.
* sem_prag.adb (Set_Ravenscar_Profile): Add Profile parameter
to handle various ravenscar profiles. Adjust error messages.
(Analyze_Pragma): Handle GNAT_Extended_Ravenscar profile.
* targparm.adb (Get_Target_Parameters): Handle
GNAT_Extended_Ravenscar profile.
2015-11-12 Ed Schonberg <schonberg@adacore.com>
* sem_warn.adb (Warn_On_Unreferenced_Entity): If the entity is an
Out_Parameter the front-end does not emit any warning on it, so
do not suppress warnings on the entity because the backend might
be able to determine an uninitialized path and warn accordingly.
2015-11-12 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.adb (Analyze_Selected_Component): Diagnose an attempt
to reference an internal entity from a synchronized type from
within the body of that type, when the prefix of the selected
component is not the current instance.
2015-11-12 Ed Falis <falis@adacore.com>
* s-stchop-vxworks.adb: Clean up in stack checking code.
2015-11-12 Gary Dismukes <dismukes@adacore.com>
* exp_ch6.adb (Is_Build_In_Place_Function_Call):
Test Expression (N) in N_Type_Conversion cases as well,
since conversions can occur in actual parameter contexts.
(Make_Build_In_Place_Call_In_Anonymous_Context): Retrieve
function call from Expression (Func_Call) when Nkind (Func_Call)
is N_Type_Conversion, since conversions are allowed in "anonymous"
contexts (specifically, as actual parameters).
Arnaud Charlet [Thu, 12 Nov 2015 11:42:00 +0000 (12:42 +0100)]
sem_ch4.adb (analyze_If_Expression): Reject IF-expression where THEN-expression is overloaded and none of its...
2015-11-12 Thomas Quinot <quinot@adacore.com>
* sem_ch4.adb (analyze_If_Expression): Reject IF-expression where
THEN-expression is overloaded and none of its interpretation is
compatible with the ELSE-expression.
Arnaud Charlet [Thu, 12 Nov 2015 11:40:26 +0000 (12:40 +0100)]
[multiple changes]
2015-11-12 Jerome Lambourg <lambourg@adacore.com>
* init.c: Do not try to mess with the MSR values in RTP mode:
not needed and forbidden.
2015-11-12 Ed Schonberg <schonberg@adacore.com>
* exp_attr.adb (Compile_Stream_Body_In_Scope): Do not install
full view of a type that has pragma Stream_Convert, because
this indicates special processing for the stream operations of
the type.
Arnaud Charlet [Thu, 12 Nov 2015 11:38:28 +0000 (12:38 +0100)]
[multiple changes]
2015-11-12 Gary Dismukes <dismukes@adacore.com>
* exp_ch5.adb, sem_ch3.adb, exp_util.ads, inline.adb, freeze.adb,
sem_util.adb, sem_util.ads, par-ch6.adb, sem_elab.adb: Minor
reformatting and a typo fix.
2015-11-12 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Preanalyze_Actuals): Add guard on use of
Incomplete_Actuals, which are only stored for a package
instantiation, in order to place the instance in the body of
the enclosing unit.
2015-11-12 Ed Schonberg <schonberg@adacore.com>
* exp_intr.adb: Add legality checks on calls to a
Generic_Dispatching_Constructor: the given tag must be defined,
it cannot be the tag of an abstract type, and its accessibility
level must not be greater than that of the constructor.
2015-11-12 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.adb (Try_Container_Indexing, Constant_Indexing_OK): If
the context is an overloaded call, assume that Constant_Indexing
is not OK if an interpretation has an assignable parameter
corresponding to the indexing expression.
2015-11-12 Jerome Lambourg <lambourg@adacore.com>
* init.c (__gnat_error_handler): Force the SPE bit of the MSR
when executing on e500v2 CPU.
* sem_elab.adb (Check_A_Call): Add new variable
Is_DIC_Proc. Report elaboration issue in SPARK concerning calls
to source subprograms or nontrivial Default_Initial_Condition
procedures. Add specialized error message to avoid outputting
the internal name of the Default_Initial_Condition procedure.
* sem_util.ads, sem_util.adb
(Is_Non_Trivial_Default_Init_Cond_Procedure): New routine.
* contracts.adb (Analyze_Entry_Or_Subprogram_Body_Contract):
Remove the guard concerning entry bodies as it is spurious.
(Analyze_Entry_Or_Subprogram_Contract): Skip the analysis of
Contract_Cases when not annotating the tree.
* einfo.adb: Node25 is now used as Contract_Wrapper.
(Contract_Wrapper): New routine.
(PPC_Wrapper): Removed.
(Set_Contract_Wrapper): New routine.
(Set_PPC_Wrapper): Removed.
(Write_Field25_Name): Add output for Contract_Wrapper. Remove
output for PPC_Wrapper.
* einfo.ads: New attribute Contract_Wrapper along with usage
in entities. Remove attribute PPC_Wrapper along with usage in nodes.
(Contract_Wrapper): New routine along with pragma Inline.
(PPC_Wrapper): Removed along with pragma Inline.
(Set_Contract_Wrapper): New routine along with pragma Inline.
(Set_PPC_Wrapper): Removed along with pragma Inline.
* exp_ch9.adb (Build_Contract_Wrapper): New routine.
(Build_PPC_Wrapper): Removed.
(Build_Protected_Entry): Code cleanup.
(Expand_Entry_Declaration): Create a contract wrapper
which now verifies Contract_Cases along with pre/postconditions.
(Expand_N_Task_Type_Declaration): There is no need to check
whether an entry has pre/postconditions as this is now done
in Build_Contract_Wrapper.
* sem_ch13.adb (Analyze_Aspect_Specifications): Pragma
Refined_Post is now properly inserted in entry bodies.
(Insert_Pragma): Add circuitry to insert in an entry body. Redo
the instance "header" circuitry. Remove the now obsolete special
case of inserting pre- conditions.
* sem_prag.adb (Analyze_Pragma): Pragma Contract_Cases now
applies to entries.
* sem_res.adb (Resolve_Entry_Call): Update the calls to
PPC_Wrapper.
Ed Schonberg [Thu, 12 Nov 2015 11:09:59 +0000 (11:09 +0000)]
exp_attr.adb (Compile_Stream_Body_In_Scope): When compiling a stream operation for an array type...
2015-11-12 Ed Schonberg <schonberg@adacore.com>
* exp_attr.adb (Compile_Stream_Body_In_Scope): When compiling
a stream operation for an array type, install the scope of the
component type if it is private and not in scope, to prevent
spurious errors if the full view of the component type has
defaulted discriminants.
Eric Botcazou [Thu, 12 Nov 2015 11:06:34 +0000 (11:06 +0000)]
sem_ch13.adb (Analyze_Attribute_Definition_Clause): For a variable, if this is not an overlay, set on Treat_As_Volatile on it.
2015-11-12 Eric Botcazou <ebotcazou@adacore.com>
* sem_ch13.adb (Analyze_Attribute_Definition_Clause): For a
variable, if this is not an overlay, set on Treat_As_Volatile on it.
* gcc-interface/decl.c (E_Variable): Do not force the type to volatile
for address clauses. Tweak and adjust various RM references.
Eric Botcazou [Thu, 12 Nov 2015 10:59:25 +0000 (10:59 +0000)]
einfo.ads (Overlays_Constant): Document usage for E_Constant.
2015-11-12 Eric Botcazou <ebotcazou@adacore.com>
* einfo.ads (Overlays_Constant): Document usage for E_Constant.
* freeze.adb (Warn_Overlay): Small reformatting.
(Check_Address_Clause): Deal specifically with deferred
constants. For a variable or a non-imported constant
overlaying a constant object and with initialization value,
either remove the initialization or issue a warning. Fix a
couple of typos.
* sem_util.adb (Note_Possible_Modification): Overhaul the condition for
the warning on modified constants and use Find_Overlaid_Entity instead
of doing it manually.
* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Compute and
set Overlays_Constant once on entry. Do not treat the overlaid
entity as volatile. Do not issue the warning on modified
constants here.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Remove
over-restrictive condition for the special treatment of deferred
constants.
<E_Variable>: Remove obsolete associated code.
Arnaud Charlet [Thu, 12 Nov 2015 10:55:37 +0000 (11:55 +0100)]
decl.c (gnat_to_gnu_entity): Create IMPORTED_DECL nodes to describe the subprogram renamings which are...
2015-11-12 Pierre-Marie de Rodat <derodat@adacore.com>
* gcc-interface/decl.c (gnat_to_gnu_entity): Create
IMPORTED_DECL nodes to describe the subprogram renamings which
are relevant at debug time.
* gcc-interface/gigi.h (get_debug_scope): Add declaration.
* gcc-interface/trans.c (Identifier_to_gnu): Consider
N_Defining_Operator_Symbol as valid entities.
(gnat_to_gnu): Handle N_Defining_Operator_Symbol the same way as
other entities. Introduce a specific handling for
N_Subprogram_Renaming_Declaration: call gnat_to_gnu_entity on
the entity defined for relevant ones.
(process_decls): Process subprogram renaming declarations during
the second pass only.
* gcc-interface/utils.c (get_debug_scope): Make it external.
Consider N_Defining_Operator_Symbol as valid entities.
(gnat_write_global_declarations): Output debugging information
for top-level imported declarations.
* gcc-interface/Makefile.in: Fix typo.
Arnaud Charlet [Thu, 12 Nov 2015 10:49:07 +0000 (11:49 +0100)]
[multiple changes]
2015-11-12 Emmanuel Briot <briot@adacore.com>
* s-os_lib.ads: Documentation update.
2015-11-12 Arnaud Charlet <charlet@adacore.com>
* s-taprop-vxworks.adb, s-osinte-vxworks.ads: Use a single import of
taskDelay to avoid confusion.
2015-11-12 Ed Schonberg <schonberg@adacore.com>
* exp_ch6.adb (Expand_Simple_Function_Return): If the return
type is class-wide and the expression is a view conversion,
remove the conversion to prevent overriding of the tag, which
must be that of the object being returned.
* sem_ch3.adb (Analyze_Incomplete_Type_Decl): small optimization.
(Analyze_Subtype_Declaration): For floating point types,
inherit dimensions.
(OK_For_Limited_Init_In_05): Handle properly a conditional
expression whose condition is static, and is rewritten as the
branch that will be executed.
2015-11-12 Ed Schonberg <schonberg@adacore.com>
* sem_attr.adb (Resolve_Attribute, case 'Access): If the context
type is an access constant type, do not mark the attribute
reference as a possible modification of the prefix.
Steve Baird [Thu, 12 Nov 2015 10:44:37 +0000 (10:44 +0000)]
2015-11-12 Steve Baird <baird@adacore.com>
* sem_ch6.adb (Analyze_Procedure_Call) If CodePeer_Mode is True,
do not analyze the expression of a machine code insertion.
* sem_ch13.adb (Analyze_Code_Statement) If CodePeer_Mode is True,
mark the N_Code_Statement node as analyzed and do nothing else.
Arnaud Charlet [Thu, 12 Nov 2015 10:43:33 +0000 (11:43 +0100)]
[multiple changes]
2015-11-12 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Check_Limited_Return): Make global to package
for use elsewhere.
(Analyze_Expression_Function): Remove duplicated code, pre-analyze
expression to capture names and call Check_Limited_Return so
that semantic checks are identical to those for regular functions
returning limited types.
2015-11-12 Gary Dismukes <dismukes@adacore.com>
* bindgen.adb: Fix typo.
* sem_ch6.adb: Minor reformatting.
2015-11-12 Emmanuel Briot <briot@adacore.com>
* s-os_lib.adb (Argument_String_To_List): fix handling of
windows separators
* fold-const.c (fold_binary_loc) : Move Convert A/B/C to A/(B*C)
to match.pd.
Move Convert A/(B/C) to (A/B)*C to match.pd.
Move Convert C1/(X*C2) into (C1/C2)/X to match.pd.
Move Optimize (X & (-A)) / A where A is a power of 2, to
X >> log2(A) to match.pd.
* match.pd (rdiv (rdiv:s @0 @1) @2): New simplifier.
(rdiv @0 (rdiv:s @1 @2)): New simplifier.
(div (convert? (bit_and @0 INTEGER_CST@1)) INTEGER_CST@2):
New simplifier.
(rdiv REAL_CST@0 (mult @1 REAL_CST@2)): New simplifier.
Aditya Kumar [Thu, 12 Nov 2015 00:37:47 +0000 (00:37 +0000)]
Preserve the original program while using graphite.
Earlier, graphite used to translate portions of the original program after
scop-detection in order to represent the SCoP into polyhedral model. This was
required because each basic block was represented as independent basic block in
the polyhedral model. So all the cross-basic-block dependencies were translated
out-of-ssa.
With this patch those dependencies are also exposed to the ISL, so there is no
need to modify the original structure of the program.
After this patch we should be able to enable graphite at some default
optimization level.
Highlights:
Remove cross bb scalar to array translation
For reductions, add support for more than just INT_CST
Early bailout on codegen.
Verify loop-closed ssa structure during copy of renames
The uses of exprs should come from bb which dominates the bb
Collect the init value of close phi in loop-guard
Do not follow vuses for close-phi, postpone loop-close phi until the
corresponding loop-phi is processed
Bail out if no bb found to place cond/loop -phis
Move insertion of liveouts at the end of codegen
Insert loop-phis in the loop-header.
This patch passes regtest and bootstrap with BOOT_CFLAGS='-O2 -fgraphite-identity -floop-nest-optimize'
2015-11-11 Aditya Kumar <aditya.k7@samsung.com>
Sebastian Pop <s.pop@samsung.com>
* graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
New member codegen_error
(translate_isl_ast_for_loop): Remove call to single_succ_edge and early return.
(translate_isl_ast_node_user): Early return in case of error.
(translate_isl_ast_to_gimple::translate_isl_ast): Same.
(translate_isl_ast_to_gimple::translate_pending_phi_nodes): New.
(add_parameters_to_ivs_params): Remove macro.
(graphite_regenerate_ast_isl): Add if_region pointer to region.
* graphite-poly.c (new_poly_dr): Remove macro.
(print_pdr): Same.
(new_gimple_poly_bb): Same.
(free_gimple_poly_bb): Same.
(print_scop_params): Same.
* graphite-poly.h (struct poly_dr): Same.
(struct poly_bb): Add new_bb.
(gbb_from_bb): Remove dead code.
(pbb_from_bb): Same.
* graphite-scop-detection.c (parameter_index_in_region_1): Same.
(parameter_index_in_region): Same.
(find_scop_parameters): Same.
(build_cross_bb_scalars_def): New.
(build_cross_bb_scalars_use): New.
(graphite_find_cross_bb_scalar_vars): New
(try_generate_gimple_bb): Reads and Writes.
(build_alias_set): Move.
(gather_bbs::before_dom_children): Gather bbs visited.
(build_scops): call build_alias_set.
* graphite-sese-to-poly.c (phi_arg_in_outermost_loop): Delete.
(remove_simple_copy_phi): Delete.
(remove_invariant_phi): Delete.
(simple_copy_phi_p): Delete.
(reduction_phi_p): Delete.
(isl_id_for_dr): Remove unused param.
(parameter_index_in_region_1): Remove macro usage.
(set_scop_parameter_dim): Same.
(add_param_constraints): Same.
(add_conditions_to_constraints): Same
(build_scop_iteration_domain): Same.
(pdr_add_alias_set): Comment.
(add_scalar_version_numbers): New.
(build_poly_dr): ISL id.
(build_scop_drs): Move.
(build_poly_sr_1): Same.
(insert_stmts): Remove.
(build_poly_sr): New.
(new_pbb_from_pbb): Delete.
(insert_out_of_ssa_copy_on_edge): Delete.
(create_zero_dim_array): Delete.
(scalar_close_phi_node_p): Delete.
(propagate_expr_outside_region): Delete.
(rewrite_close_phi_out_of_ssa): Delete.
(rewrite_phi_out_of_ssa): Delete.
(rewrite_degenerate_phi): Delete.
(rewrite_reductions_out_of_ssa): Delete.
(rewrite_cross_bb_scalar_dependence): Delete.
(handle_scalar_deps_crossing_scop_limits):
(rewrite_cross_bb_scalar_deps): Delete.
(build_poly_scop): Remove calls to out-of-ssa functions.
* graphite.c (graphite_transform_loops): Early return in case of codegen error.
* sese.c (debug_rename_map_1): Delete.
(debug_rename_map): Delete.
(sese_record_loop): Remove macro.
(build_sese_loop_nests): Same.
(new_sese_info): Same.
(free_sese_info): Same.
(sese_insert_phis_for_liveouts):
(is_loop_closed_ssa_use): New.
(number_of_phi_nodes): New.
(bb_contains_loop_close_phi_nodes): New.
(bb_contains_loop_phi_nodes): New.
(phi_uses_name): New.
(is_valid_rename):
(get_rename): Add old_bb and loop_phi for more precise matching of
exprs.
(set_rename): Pass region.
(later_of_the_two): New.
(gsi_insert_earliest): New.
(collect_all_ssa_names): New.
(substitute_ssa_name): New.
(rename_all_uses): New.
(get_rename_from_scev): New.
(rename_uses): Pass old_bb for more precise matching of exprs.
(get_def_bb_for_const): New.
(get_new_name): New.
(get_loc): New.
(get_edges): New.
(copy_loop_phi_args): New.
(copy_loop_phi_nodes): New.
(get_loop_init_value): New.
(find_init_value): New.
(find_init_value_close_phi): New.
(copy_loop_close_phi_args): New.
(copy_loop_close_phi_nodes): New.
(add_phi_arg_for_new_expr): New.
(copy_cond_phi_args): New.
(copy_cond_phi_nodes): New.
(copy_phi_nodes): New.
(should_copy_to_new_region): New.
(set_rename_for_each_def): New.
(graphite_copy_stmts_from_block): Early return in case of error.
(copy_bb_and_scalar_dependences): Same.
* sese.h (vec_find): New.
(SESE_PARAMS): Delete.
(SESE_LOOPS): Delete.
(SESE_LOOP_NEST): Delete.
(sese_contains_loop): Remove macro usage.
(sese_nb_params): Same.
(struct gimple_poly_bb): Added read_scalar_refs, write_scalar_refs.
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r230200
Jonathan Wakely [Wed, 11 Nov 2015 17:08:51 +0000 (17:08 +0000)]
Loop in std::this_thread sleep functions
PR libstdc++/60421
* include/std/thread (this_thread::sleep_for): Retry on EINTR.
(this_thread::sleep_until): Retry if time not reached.
* src/c++11/thread.cc (__sleep_for): Retry on EINTR.
* testsuite/30_threads/this_thread/60421.cc: Test interruption and
non-steady clocks.
* tree-vectorizer.h (vect_slp_analyze_and_verify_instance_alignment):
Declare.
(vect_analyze_data_refs_alignment): Make loop vect specific.
(vect_verify_datarefs_alignment): Likewise.
* tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependences):
Add missing continue.
(vect_compute_data_ref_alignment): Export.
(vect_compute_data_refs_alignment): Merge into...
(vect_analyze_data_refs_alignment): ... this.
(verify_data_ref_alignment): Split out from ...
(vect_verify_datarefs_alignment): ... here.
(vect_slp_analyze_and_verify_node_alignment): New function.
(vect_slp_analyze_and_verify_instance_alignment): Likewise.
* tree-vect-slp.c (vect_supported_load_permutation_p): Remove
misplaced checks on alignment.
(vect_slp_analyze_bb_1): Add fatal output parameter. Do
alignment analysis after SLP discovery and do it per instance.
(vect_slp_bb): When vect_slp_analyze_bb_1 fatally failed do not
bother to re-try using different vector sizes.
Eric Botcazou [Wed, 11 Nov 2015 14:22:43 +0000 (14:22 +0000)]
re PR target/67265 ([x86] 'asm' operand has impossible constraints with -fstack-check)
PR target/67265
* ira.c (ira_setup_eliminable_regset): Do not necessarily create the
frame pointer for stack checking if non-call exceptions aren't used.
* config/i386/i386.c (ix86_finalize_stack_realign_flags): Likewise.
(if that is valid, of course), which has smaller modes for the
binary ops, and the truncate can often simplify further (if "x"
is a register, for example).
* gcc/simplify-rtx.c (simplify_truncation): Simplify TRUNCATE
of AND of [LA]SHIFTRT.
Simon Dardis [Wed, 11 Nov 2015 13:40:08 +0000 (13:40 +0000)]
Undo delay slot filling and use compact branches in selected cases.
gcc/
* config/mips/mips.c (mips_breakable_sequence_p): New function.
(mips_break_sequence): New function.
(mips_reorg_process_insns) Use them. Use compact branches in selected
situations.
gcc/testsuite/
* gcc.target/mips/split-ds-sequence.c: New test.
Martin Liska [Wed, 11 Nov 2015 11:21:44 +0000 (12:21 +0100)]
Fix various memory leaks
* gimple-ssa-strength-reduction.c (create_phi_basis):
Use auto_vec.
* passes.c (release_dump_file_name): New function.
(pass_init_dump_file): Used from this function.
(pass_fini_dump_file): Likewise.
* tree-sra.c (convert_callers_for_node): Use xstrdup_for_dump.
* var-tracking.c (vt_initialize): Use pool_allocator.
Richard Biener [Wed, 11 Nov 2015 10:51:31 +0000 (10:51 +0000)]
[Patch] PR tree-optimization/68234 Improve range info for loop Phi node
2015-11-11 Richard Biener <rguenth@gcc.gnu.org>
Jiong Wang <jiong.wang@arm.com>
gcc/
PR tree-optimization/68234
* tree-vrp.c (vrp_visit_phi_node): Extend SCEV check to those loop PHI
node which estimiated to be VR_VARYING initially.
gcc/testsuite/
* gcc.dg/tree-ssa/pr68234.c: New testcase.
Co-Authored-By: Jiong Wang <jiong.wang@arm.com>
From-SVN: r230150
Robert Suchanek [Wed, 11 Nov 2015 10:36:00 +0000 (10:36 +0000)]
Tighten up checks when tying chains.
gcc/
* regname.c (scan_rtx_reg): Check the matching number of consecutive
registers when tying chains.
(build_def_use): Move terminated_this_insn earlier in the function.
Ian Lance Taylor [Tue, 10 Nov 2015 20:31:11 +0000 (20:31 +0000)]
re PR go/68255 (cgo-generated constructor not being called)
PR go/68255
cmd/go: always use --whole-archive for gccgo packages
This is a backport of https://golang.org/cl/16775.
This is, in effect, what the gc toolchain does. It fixes cases where Go
code refers to a C global variable; without this, if the global variable
was the only thing visible in the C code, the generated cgo file might
not get pulled in from the archive, leaving the Go variable
uninitialized.
This was reported against gccgo as https://gcc.gnu.org/PR68255 .
Uros Bizjak [Tue, 10 Nov 2015 17:48:31 +0000 (18:48 +0100)]
i386.c (ix86_print_operand): Remove dead code that tried to avoid (%rip) for call operands.
* config/i386/i386.c (ix86_print_operand): Remove dead code that
tried to avoid (%rip) for call operands.
* config/i386/i386.c (ix86_print_operand_address_as): Add no_rip
argument. Do not use RIP relative addressing when no_rip is set.
(ix86_print_operand): Update call to ix86_print_operand_address_as.
(ix86_print_operand_address): Ditto.
* config/i386/i386.md (*movabs<mode>_1): Use %P modifier for
absolute movabs operand 0. Add square braces for -masm=intel.
(*movabs<mode>_2): Ditto for operand 1.
Ilya Enkovich [Tue, 10 Nov 2015 12:17:30 +0000 (12:17 +0000)]
optabs.c (expand_binop_directly): Allow scalar mode for vec_pack_trunc_optab.
gcc/
* optabs.c (expand_binop_directly): Allow scalar mode for
vec_pack_trunc_optab.
* tree-vect-loop.c (vect_determine_vectorization_factor): Skip
boolean vector producers from pattern sequence when computing VF.
* tree-vect-patterns.c (vect_vect_recog_func_ptrs) Add
vect_recog_mask_conversion_pattern.
(search_type_for_mask): Choose the smallest
type if different size types are mixed.
(build_mask_conversion): New.
(vect_recog_mask_conversion_pattern): New.
(vect_pattern_recog_1): Allow scalar mode for boolean vectype.
* tree-vect-stmts.c (vectorizable_mask_load_store): Support masked
load with pattern.
(vectorizable_conversion): Support boolean vectors.
(free_stmt_vec_info): Allow patterns for statements with no lhs.
* tree-vectorizer.h (NUM_PATTERNS): Increase to 14.