Mercurial > octave-nkf
comparison 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 |
comparison
equal
deleted
inserted
replaced
15333:7d2eb4a01798 | 15334:8125773322d4 |
---|---|
1121 fn.argument (builder, 1)); | 1121 fn.argument (builder, 1)); |
1122 fn.do_return (builder, ret); | 1122 fn.do_return (builder, ret); |
1123 binary_ops[op].add_overload (fn); | 1123 binary_ops[op].add_overload (fn); |
1124 } | 1124 } |
1125 | 1125 |
1126 // grab any | |
1127 fn = create_function (jit_convention::external, "octave_jit_grab_any", any, | |
1128 any); | |
1129 fn.add_mapping (engine, &octave_jit_grab_any); | |
1130 grab_fn.add_overload (fn); | |
1131 grab_fn.stash_name ("grab"); | |
1132 | |
1133 // grab matrix | 1126 // grab matrix |
1134 fn = create_function (jit_convention::external, "octave_jit_grab_matrix", | 1127 fn = create_function (jit_convention::external, "octave_jit_grab_matrix", |
1135 matrix, matrix); | 1128 matrix, matrix); |
1136 fn.add_mapping (engine, &octave_jit_grab_matrix); | 1129 fn.add_mapping (engine, &octave_jit_grab_matrix); |
1137 grab_fn.add_overload (fn); | 1130 grab_fn.add_overload (fn); |
1131 | |
1132 grab_fn.add_overload (create_identity (scalar)); | |
1133 grab_fn.add_overload (create_identity (scalar_ptr)); | |
1134 grab_fn.add_overload (create_identity (any_ptr)); | |
1135 grab_fn.add_overload (create_identity (boolean)); | |
1136 grab_fn.add_overload (create_identity (complex)); | |
1137 grab_fn.add_overload (create_identity (index)); | |
1138 | 1138 |
1139 // release any | 1139 // release any |
1140 fn = create_function (jit_convention::external, "octave_jit_release_any", 0, | 1140 fn = create_function (jit_convention::external, "octave_jit_release_any", 0, |
1141 any); | 1141 any); |
1142 fn.add_mapping (engine, &octave_jit_release_any); | 1142 fn.add_mapping (engine, &octave_jit_release_any); |
1146 // release matrix | 1146 // release matrix |
1147 fn = create_function (jit_convention::external, "octave_jit_release_matrix", | 1147 fn = create_function (jit_convention::external, "octave_jit_release_matrix", |
1148 0, matrix); | 1148 0, matrix); |
1149 fn.add_mapping (engine, &octave_jit_release_matrix); | 1149 fn.add_mapping (engine, &octave_jit_release_matrix); |
1150 release_fn.add_overload (fn); | 1150 release_fn.add_overload (fn); |
1151 | |
1152 // copy | |
1153 copy_fn.stash_name ("copy"); | |
1154 copy_fn.add_overload (create_identity (scalar)); | |
1155 | 1151 |
1156 // now for binary scalar operations | 1152 // now for binary scalar operations |
1157 add_binary_op (scalar, octave_value::op_add, llvm::Instruction::FAdd); | 1153 add_binary_op (scalar, octave_value::op_add, llvm::Instruction::FAdd); |
1158 add_binary_op (scalar, octave_value::op_sub, llvm::Instruction::FSub); | 1154 add_binary_op (scalar, octave_value::op_sub, llvm::Instruction::FSub); |
1159 add_binary_op (scalar, octave_value::op_mul, llvm::Instruction::FMul); | 1155 add_binary_op (scalar, octave_value::op_mul, llvm::Instruction::FMul); |
1834 add_builtin ("mod"); | 1830 add_builtin ("mod"); |
1835 register_generic ("mod", scalar, std::vector<jit_type *> (2, scalar)); | 1831 register_generic ("mod", scalar, std::vector<jit_type *> (2, scalar)); |
1836 | 1832 |
1837 casts.resize (next_id + 1); | 1833 casts.resize (next_id + 1); |
1838 jit_function any_id = create_identity (any); | 1834 jit_function any_id = create_identity (any); |
1835 jit_function grab_any = create_function (jit_convention::external, | |
1836 "octave_jit_grab_any", any, any); | |
1837 grab_any.add_mapping (engine, &octave_jit_grab_any); | |
1839 jit_function release_any = get_release (any); | 1838 jit_function release_any = get_release (any); |
1840 std::vector<jit_type *> args; | 1839 std::vector<jit_type *> args; |
1841 args.resize (1); | 1840 args.resize (1); |
1842 | 1841 |
1843 for (std::map<std::string, jit_type *>::iterator iter = builtins.begin (); | 1842 for (std::map<std::string, jit_type *>::iterator iter = builtins.begin (); |
1844 iter != builtins.end (); ++iter) | 1843 iter != builtins.end (); ++iter) |
1845 { | 1844 { |
1846 jit_type *btype = iter->second; | 1845 jit_type *btype = iter->second; |
1847 args[0] = btype; | 1846 args[0] = btype; |
1848 | 1847 |
1848 grab_fn.add_overload (jit_function (grab_any, btype, args)); | |
1849 release_fn.add_overload (jit_function (release_any, 0, args)); | 1849 release_fn.add_overload (jit_function (release_any, 0, args)); |
1850 casts[any->type_id ()].add_overload (jit_function (any_id, any, args)); | 1850 casts[any->type_id ()].add_overload (jit_function (any_id, any, args)); |
1851 | 1851 |
1852 args[0] = any; | 1852 args[0] = any; |
1853 casts[btype->type_id ()].add_overload (jit_function (any_id, btype, | 1853 casts[btype->type_id ()].add_overload (jit_function (any_id, btype, |