diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-01-01 03:05:55 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-01-01 03:05:55 +0000 |
commit | 18748d168059353e909c7e53407735c37548737b (patch) | |
tree | 16103c4b159ea61a5729614590e3d0bb2590b471 | |
parent | 9c63aecfa75d94efb2f5d86d12023ef6ef85af85 (diff) | |
download | ruby-18748d168059353e909c7e53407735c37548737b.tar.gz |
compile.c: remove unreferred label
* compile.c (remove_unreachable_chunk): remove unreferred label
to optimize away unreachable chunk.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53402 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | compile.c | 3 |
2 files changed, 8 insertions, 0 deletions
@@ -1,3 +1,8 @@ +Fri Jan 1 12:05:53 2016 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * compile.c (remove_unreachable_chunk): remove unreferred label + to optimize away unreachable chunk. + Fri Jan 1 11:42:57 2016 James Edward Gray II <james@graysoftinc.com> * lib/csv.rb (CSV): Add a liberal_parsing option. @@ -1968,6 +1968,9 @@ remove_unreachable_chunk(LINK_ELEMENT *i) break; } } + else if (i->type == ISEQ_ELEMENT_LABEL) { + if (((LABEL *)i)->refcnt > 0) break; + } else break; REMOVE_ELEM(i); removed = 1; |