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