When running with --always-opt, don't deoptimize named loads with uninitialized type feedback.

This avoids tests taking too long because of repeated deoptimizations.
Review URL: https://chromiumcodereview.appspot.com/9812004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11100 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
fschneider@chromium.org 2012-03-21 09:23:09 +00:00
parent b49dd13c90
commit 30a2f2c4ef
2 changed files with 2 additions and 4 deletions

View File

@ -4523,7 +4523,7 @@ HLoadNamedField* HGraphBuilder::BuildLoadNamedField(HValue* object,
HInstruction* HGraphBuilder::BuildLoadNamedGeneric(HValue* obj, HInstruction* HGraphBuilder::BuildLoadNamedGeneric(HValue* obj,
Property* expr) { Property* expr) {
if (expr->IsUninitialized()) { if (expr->IsUninitialized() && !FLAG_always_opt) {
AddInstruction(new(zone()) HSoftDeoptimize); AddInstruction(new(zone()) HSoftDeoptimize);
current_block()->MarkAsDeoptimizing(); current_block()->MarkAsDeoptimizing();
} }

View File

@ -277,9 +277,7 @@ static void CreateTraceCallerFunction(const char* func_name,
TEST(CFromJSStackTrace) { TEST(CFromJSStackTrace) {
// BUG(1303) Inlining of JSFuncDoTrace() in JSTrace below breaks this test. // BUG(1303) Inlining of JSFuncDoTrace() in JSTrace below breaks this test.
i::FLAG_use_inlining = false; i::FLAG_use_inlining = false;
// This test does not work with --always-opt because we don't replace the code
// in the JSFunction at deoptimization in that case.
i::FLAG_always_opt = false;
TickSample sample; TickSample sample;
InitTraceEnv(&sample); InitTraceEnv(&sample);