Mercurial > octave
comparison libinterp/octave.h @ 29949:f254c302bb9c
remove JIT compiler from Octave sources
As stated in the NEWS file entry added with this changeset, no one
has ever seriously taken on further development of the JIT compiler in
Octave since it was first added as part of a Google Summer of Code
project in 2012 and it still does nothing significant. It is out of
date with the default interpreter that walks the parse tree. Even
though we have fixed the configure script to disable it by default,
people still ask questions about how to build it, but it doesn’t seem
that they are doing that to work on it but because they think it will
make Octave code run faster (it never did, except for some extremely
simple bits of code as examples for demonstration purposes only).
* NEWS: Note change.
* configure.ac, acinclude.m4: Eliminate checks and macros related to
the JIT compiler and LLVM.
* basics.txi, install.txi, octave.texi, vectorize.txi: Remove mention
of JIT compiler and LLVM.
* jit-ir.cc, jit-ir.h, jit-typeinfo.cc, jit-typeinfo.h, jit-util.cc,
jit-util.h, pt-jit.cc, pt-jit.h: Delete.
* libinterp/parse-tree/module.mk: Update.
* Array-jit.cc: Delete.
* libinterp/template-inst/module.mk: Update.
* test/jit.tst: Delete.
* test/module.mk: Update.
* interpreter.cc (interpreter::interpreter): Don't check options for
debug_jit or jit_compiler.
* toplev.cc (F__octave_config_info__): Remove JIT compiler and LLVM
info from struct.
* ov-base.h (octave_base_value::grab, octave_base_value::release):
Delete.
* ov-builtin.h, ov-builtin.cc (octave_builtin::to_jit,
octave_builtin::stash_jit): Delete.
(octave_builtin::m_jtype): Delete data member and all uses.
* ov-usr-fcn.h, ov-usr-fcn.cc (octave_user_function::m_jit_info):
Delete data member and all uses.
(octave_user_function::get_info, octave_user_function::stash_info): Delete.
* options.h (DEBUG_JIT_OPTION, JIT_COMPILER_OPTION): Delete macro
definitions and all uses.
* octave.h, octave.cc (cmdline_options::cmdline_options): Don't handle
DEBUG_JIT_OPTION, JIT_COMPILER_OPTION): Delete.
(cmdline_options::debug_jit, cmdline_options::jit_compiler): Delete
functions and all uses.
(cmdline_options::m_debug_jit, cmdline_options::m_jit_compiler): Delete
data members and all uses.
(octave_getopt_options long_opts): Remove "debug-jit" and
"jit-compiler" from the list.
* pt-eval.cc (tree_evaluator::visit_simple_for_command,
tree_evaluator::visit_complex_for_command,
tree_evaluator::visit_while_command,
tree_evaluator::execute_user_function): Eliminate JIT compiler code.
* pt-loop.h, pt-loop.cc (tree_while_command::get_info,
tree_while_command::stash_info, tree_simple_for_command::get_info,
tree_simple_for_command::stash_info): Delete functions and all uses.
(tree_while_command::m_compiled, tree_simple_for_command::m_compiled):
Delete member variable and all uses.
* usage.h (usage_string, octave_print_verbose_usage_and_exit): Remove
[--debug-jit] and [--jit-compiler] from the message.
* Array.h (Array<T>::Array): Remove constructor that was only intended
to be used by the JIT compiler.
(Array<T>::jit_ref_count, Array<T>::jit_slice_data,
Array<T>::jit_dimensions, Array<T>::jit_array_rep): Delete.
* Marray.h (MArray<T>::MArray): Remove constructor that was only
intended to be used by the JIT compiler.
* NDArray.h (NDArray::NDarray): Remove constructor that was only
intended to be used by the JIT compiler.
* dim-vector.h (dim_vector::to_jit): Delete.
(dim_vector::dim_vector): Remove constructor that was only intended to
be used by the JIT compiler.
* codeql-analysis.yaml, make.yaml: Don't require llvm-dev.
* subst-config-vals.in.sh, subst-cross-config-vals.in.sh: Don't
substitute OCTAVE_CONF_LLVM_CPPFLAGS, OCTAVE_CONF_LLVM_LDFLAGS, or
OCTAVE_CONF_LLVM_LIBS.
* Doxyfile.in: Don't define HAVE_LLVM.
* aspell-octave.en.pws: Eliminate jit, JIT, and LLVM from the list of
spelling exceptions.
* build-env.h, build-env.in.cc (LLVM_CPPFLAGS, LLVM_LDFLAGS,
LLVM_LIBS): Delete variables and all uses.
* libinterp/corefcn/module.mk (%canon_reldir%_libcorefcn_la_CPPFLAGS):
Remove $(LLVM_CPPFLAGS) from the list.
* libinterp/parse-tree/module.mk (%canon_reldir%_libparse_tree_la_CPPFLAGS):
Remove $(LLVM_CPPFLAGS) from the list.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Tue, 10 Aug 2021 16:42:29 -0400 |
parents | 853e4b7ae0d5 |
children | 939bef0b66e0 |
comparison
equal
deleted
inserted
replaced
29948:c92a4ebaa777 | 29949:f254c302bb9c |
---|---|
53 cmdline_options& operator = (const cmdline_options&) = default; | 53 cmdline_options& operator = (const cmdline_options&) = default; |
54 | 54 |
55 int sys_argc (void) const { return m_all_args.numel (); } | 55 int sys_argc (void) const { return m_all_args.numel (); } |
56 char **sys_argv (void) const { return m_all_args.c_str_vec (); } | 56 char **sys_argv (void) const { return m_all_args.c_str_vec (); } |
57 | 57 |
58 bool debug_jit (void) const { return m_debug_jit; } | |
59 bool echo_commands (void) const { return m_echo_commands; } | 58 bool echo_commands (void) const { return m_echo_commands; } |
60 | 59 |
61 bool experimental_terminal_widget (void) const { return m_experimental_terminal_widget; } | 60 bool experimental_terminal_widget (void) const { return m_experimental_terminal_widget; } |
62 bool forced_interactive (void) const { return m_forced_interactive; } | 61 bool forced_interactive (void) const { return m_forced_interactive; } |
63 bool forced_line_editing (void) const { return m_forced_line_editing; } | 62 bool forced_line_editing (void) const { return m_forced_line_editing; } |
64 bool gui (void) const { return m_gui; } | 63 bool gui (void) const { return m_gui; } |
65 bool inhibit_startup_message (void) const { return m_inhibit_startup_message; } | 64 bool inhibit_startup_message (void) const { return m_inhibit_startup_message; } |
66 bool jit_compiler (void) const { return m_jit_compiler; } | |
67 bool line_editing (void) const { return m_line_editing; } | 65 bool line_editing (void) const { return m_line_editing; } |
68 | 66 |
69 bool no_window_system (void) const { return m_no_window_system; } | 67 bool no_window_system (void) const { return m_no_window_system; } |
70 bool persist (void) const { return m_persist; } | 68 bool persist (void) const { return m_persist; } |
71 bool read_history_file (void) const { return m_read_history_file; } | 69 bool read_history_file (void) const { return m_read_history_file; } |
85 std::string info_program (void) const { return m_info_program; } | 83 std::string info_program (void) const { return m_info_program; } |
86 std::string texi_macros_file (void) const {return m_texi_macros_file; } | 84 std::string texi_macros_file (void) const {return m_texi_macros_file; } |
87 string_vector all_args (void) const { return m_all_args; } | 85 string_vector all_args (void) const { return m_all_args; } |
88 string_vector remaining_args (void) const { return m_remaining_args; } | 86 string_vector remaining_args (void) const { return m_remaining_args; } |
89 | 87 |
90 void debug_jit (bool arg) { m_debug_jit = arg; } | |
91 void echo_commands (bool arg) { m_echo_commands = arg; } | 88 void echo_commands (bool arg) { m_echo_commands = arg; } |
92 | 89 |
93 void experimental_terminal_widget (bool arg) { m_experimental_terminal_widget = arg; } | 90 void experimental_terminal_widget (bool arg) { m_experimental_terminal_widget = arg; } |
94 void forced_line_editing (bool arg) { m_forced_line_editing = arg; } | 91 void forced_line_editing (bool arg) { m_forced_line_editing = arg; } |
95 void forced_interactive (bool arg) { m_forced_interactive = arg; } | 92 void forced_interactive (bool arg) { m_forced_interactive = arg; } |
96 void gui (bool arg) { m_gui = arg; } | 93 void gui (bool arg) { m_gui = arg; } |
97 void inhibit_startup_message (bool arg) { m_inhibit_startup_message = arg; } | 94 void inhibit_startup_message (bool arg) { m_inhibit_startup_message = arg; } |
98 void jit_compiler (bool arg) { m_jit_compiler = arg; } | |
99 void line_editing (bool arg) { m_line_editing = arg; } | 95 void line_editing (bool arg) { m_line_editing = arg; } |
100 | 96 |
101 void no_window_system (bool arg) { m_no_window_system = arg; } | 97 void no_window_system (bool arg) { m_no_window_system = arg; } |
102 void persist (bool arg) { m_persist = arg; } | 98 void persist (bool arg) { m_persist = arg; } |
103 void read_history_file (bool arg) { m_read_history_file = arg; } | 99 void read_history_file (bool arg) { m_read_history_file = arg; } |
121 | 117 |
122 octave_value as_octave_value (void) const; | 118 octave_value as_octave_value (void) const; |
123 | 119 |
124 private: | 120 private: |
125 | 121 |
126 // TRUE means enable debug tracing for the JIT compiler. | |
127 // (--debug-jit) | |
128 bool m_debug_jit = false; | |
129 | |
130 // If TRUE, echo commands as they are read and executed. | 122 // If TRUE, echo commands as they are read and executed. |
131 // (--echo-commands, -x) | 123 // (--echo-commands, -x) |
132 bool m_echo_commands = false; | 124 bool m_echo_commands = false; |
133 | 125 |
134 // If TRUE, use new experimental terminal widget in the GUI. | 126 // If TRUE, use new experimental terminal widget in the GUI. |
148 bool m_forced_line_editing = false; | 140 bool m_forced_line_editing = false; |
149 | 141 |
150 // TRUE means we don't print the usual startup message. | 142 // TRUE means we don't print the usual startup message. |
151 // (--quiet; --silent; -q) | 143 // (--quiet; --silent; -q) |
152 bool m_inhibit_startup_message = false; | 144 bool m_inhibit_startup_message = false; |
153 | |
154 // TRUE means enable the JIT compiler. | |
155 // (--jit-compiler) | |
156 bool m_jit_compiler = false; | |
157 | 145 |
158 // TRUE means we are using readline. | 146 // TRUE means we are using readline. |
159 // (--no-line-editing) | 147 // (--no-line-editing) |
160 bool m_line_editing = true; | 148 bool m_line_editing = true; |
161 | 149 |