Mercurial > octave-nkf
diff src/pt-jit.h @ 14966:b7b647bc4b90
Place releases for temporaries on error
* src/pt-jit.cc (jit_block::maybe_split): Improve algorithm for placing splits.
(jit_convert::jit_convert): Relabel final block before debug printing.
(jit_convert::place_releases): Release temporaries.
(jit_convert::release_temp, jit_convert::release_dead_phi): New function.
(jit_convert::compute_temp::compute_temp): Correctly detect temporaries used
in error checks.
(jit_convert::convert_llvm::visit): Remove pointless comment and stash grab.
(octave_jit_binary_any_any): Grab lhs and rhs.
(jit_print): New overload.
* src/pt-jit.h (jit_print): New overload.
(jit_convert::release_temp, jit_convert::release_dead_phi): New declarations.
author | Max Brister <max@2bass.com> |
---|---|
date | Fri, 22 Jun 2012 11:43:30 -0500 |
parents | f2117a963c54 |
children | 0cfe0cf55a02 |
line wrap: on
line diff
--- a/src/pt-jit.h Thu Jun 21 17:37:36 2012 -0500 +++ b/src/pt-jit.h Fri Jun 22 11:43:30 2012 -0500 @@ -850,6 +850,7 @@ }; std::ostream& operator<< (std::ostream& os, const jit_value& value); +std::ostream& jit_print (std::ostream& os, jit_value *avalue); class jit_use : public jit_internal_node<jit_value, jit_use> @@ -2248,8 +2249,14 @@ void remove_dead (); + typedef std::set<jit_instruction *> instr_set; + void place_releases (void); + void release_temp (jit_block& ablock, const instr_set& temp); + + void release_dead_phi (jit_block& ablock); + void simplify_phi (void); void simplify_phi (jit_phi& phi); @@ -2284,8 +2291,6 @@ void finish_breaks (jit_block *dest, const block_list& lst); - typedef std::set<jit_instruction *> instr_set; - // compute per block information about temporaries class compute_temp