-
svenpanne@chromium.org authored
To do this, the Branch instruction needs to carry around a temporary register, but only when the crankshafted code will make a map access. When the crankshafted code sees an object of a type it hasn't encountered before, it will always trigger a deopt. Another option in theses cases would be calling a ToBooleanStub which can handle all types, but then one has to be careful to *not* trigger a GC (which is currently a bit tricky to achieve). Const-corrected ToBoolean::Types. Moved the NeedsMap logic into ToBoolean::Types itself, where it belongs. This patch improves a lot of benchmarks, crypto-orig even by 16.7%, but slows down others. The slowdown has to be investigated, but I'd like to get this patch out first to fix the flakiness problems we currently have due to the previous crankshafted ToBoolean. Review URL: http://codereview.chromium.org/7461107 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8758 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
e48ec1c4