Mercurial > octave-nkf
diff libinterp/interp-core/jit-typeinfo.cc @ 15334:8125773322d4
Error on undefined an unused variables in JIT
* jit-typeinfo.cc (jit_typeinfo::jit_typeinfo): Support grab_fn for all types
except any and remove copy_fn initialization.
* jit-typeinfo.h (jit_typeinfo::copy): Removed function.
* pt-jit.cc (jit_convert::visit_identifier): Grab identifier on visit.
(jit_convert::visit_index_expression): Update resolve signature.
(jit_convert::resolve): Change parameters.
(jit_convert::do_assign): Update resolve call.
(jit_convert_llvm::visit): Remove now dead case.
* pt-jit.h (jit_convert::resolve): Change resolve signature.
author | Max Brister <max@2bass.com> |
---|---|
date | Sat, 08 Sep 2012 17:20:05 -0600 |
parents | de9bfcf637df |
children | 3f43e9d6d86e |
line wrap: on
line diff
--- a/libinterp/interp-core/jit-typeinfo.cc Fri Sep 07 12:24:15 2012 +0100 +++ b/libinterp/interp-core/jit-typeinfo.cc Sat Sep 08 17:20:05 2012 -0600 @@ -1123,19 +1123,19 @@ binary_ops[op].add_overload (fn); } - // grab any - fn = create_function (jit_convention::external, "octave_jit_grab_any", any, - any); - fn.add_mapping (engine, &octave_jit_grab_any); - grab_fn.add_overload (fn); - grab_fn.stash_name ("grab"); - // grab matrix fn = create_function (jit_convention::external, "octave_jit_grab_matrix", matrix, matrix); fn.add_mapping (engine, &octave_jit_grab_matrix); grab_fn.add_overload (fn); + grab_fn.add_overload (create_identity (scalar)); + grab_fn.add_overload (create_identity (scalar_ptr)); + grab_fn.add_overload (create_identity (any_ptr)); + grab_fn.add_overload (create_identity (boolean)); + grab_fn.add_overload (create_identity (complex)); + grab_fn.add_overload (create_identity (index)); + // release any fn = create_function (jit_convention::external, "octave_jit_release_any", 0, any); @@ -1149,10 +1149,6 @@ fn.add_mapping (engine, &octave_jit_release_matrix); release_fn.add_overload (fn); - // copy - copy_fn.stash_name ("copy"); - copy_fn.add_overload (create_identity (scalar)); - // now for binary scalar operations add_binary_op (scalar, octave_value::op_add, llvm::Instruction::FAdd); add_binary_op (scalar, octave_value::op_sub, llvm::Instruction::FSub); @@ -1836,6 +1832,9 @@ casts.resize (next_id + 1); jit_function any_id = create_identity (any); + jit_function grab_any = create_function (jit_convention::external, + "octave_jit_grab_any", any, any); + grab_any.add_mapping (engine, &octave_jit_grab_any); jit_function release_any = get_release (any); std::vector<jit_type *> args; args.resize (1); @@ -1846,6 +1845,7 @@ jit_type *btype = iter->second; args[0] = btype; + grab_fn.add_overload (jit_function (grab_any, btype, args)); release_fn.add_overload (jit_function (release_any, 0, args)); casts[any->type_id ()].add_overload (jit_function (any_id, any, args));