Lines Matching refs:HValue
406 void HBasicBlock::AddLeaveInlined(HValue* return_value, FunctionState* state, in AddLeaveInlined()
839 constant->ClearFlag(HValue::kIsDead); in ReinsertConstantIfNecessary()
1116 void HGraphBuilder::IfBuilder::Return(HValue* value) { in Return()
1117 HValue* parameter_count = builder()->graph()->GetConstantMinus1(); in Return()
1227 HGraphBuilder::LoopBuilder::LoopBuilder(HGraphBuilder* builder, HValue* context, in LoopBuilder()
1233 HGraphBuilder::LoopBuilder::LoopBuilder(HGraphBuilder* builder, HValue* context, in LoopBuilder()
1235 HValue* increment_amount) { in LoopBuilder()
1242 HValue* context, in Initialize()
1244 HValue* increment_amount) { in Initialize()
1258 HValue* HGraphBuilder::LoopBuilder::BeginBody( in BeginBody()
1259 HValue* initial, in BeginBody()
1260 HValue* terminating, in BeginBody()
1285 HValue* one = builder_->graph()->GetConstant1(); in BeginBody()
1291 increment_->ClearFlag(HValue::kCanOverflow); in BeginBody()
1339 increment_->ClearFlag(HValue::kCanOverflow); in EndBody()
1429 instr->SetFlag(HValue::kHasNoObservableSideEffects); in AddInstruction()
1458 HValue* reference = Add<HConstant>(ExternalReference(counter)); in AddIncrementCounter()
1459 HValue* old_value = in AddIncrementCounter()
1461 HValue* new_value = AddUncasted<HAdd>(old_value, graph()->GetConstant1()); in AddIncrementCounter()
1462 new_value->ClearFlag(HValue::kCanOverflow); // Ignore counter overflow in AddIncrementCounter()
1493 HValue* HGraphBuilder::BuildGetElementsKind(HValue* object) { in BuildGetElementsKind()
1494 HValue* map = Add<HLoadNamedField>(object, nullptr, HObjectAccess::ForMap()); in BuildGetElementsKind()
1496 HValue* bit_field2 = in BuildGetElementsKind()
1502 HValue* HGraphBuilder::BuildEnumLength(HValue* map) { in BuildEnumLength()
1504 HValue* bit_field3 = in BuildEnumLength()
1510 HValue* HGraphBuilder::BuildCheckHeapObject(HValue* obj) { in BuildCheckHeapObject()
1523 HValue* HGraphBuilder::BuildCheckString(HValue* string) { in BuildCheckString()
1533 HValue* HGraphBuilder::BuildWrapReceiver(HValue* object, HValue* checked) { in BuildWrapReceiver()
1535 HValue* function = checked->ActualValue(); in BuildWrapReceiver()
1547 HValue* HGraphBuilder::BuildCheckAndGrowElementsCapacity( in BuildCheckAndGrowElementsCapacity()
1548 HValue* object, HValue* elements, ElementsKind kind, HValue* length, in BuildCheckAndGrowElementsCapacity()
1549 HValue* capacity, HValue* key) { in BuildCheckAndGrowElementsCapacity()
1550 HValue* max_gap = Add<HConstant>(static_cast<int32_t>(JSObject::kMaxGap)); in BuildCheckAndGrowElementsCapacity()
1551 HValue* max_capacity = AddUncasted<HAdd>(capacity, max_gap); in BuildCheckAndGrowElementsCapacity()
1554 HValue* new_capacity = BuildNewElementsCapacity(key); in BuildCheckAndGrowElementsCapacity()
1555 HValue* new_elements = BuildGrowElementsCapacity(object, elements, kind, kind, in BuildCheckAndGrowElementsCapacity()
1561 HValue* HGraphBuilder::BuildCheckForCapacityGrow( in BuildCheckForCapacityGrow()
1562 HValue* object, in BuildCheckForCapacityGrow()
1563 HValue* elements, in BuildCheckForCapacityGrow()
1565 HValue* length, in BuildCheckForCapacityGrow()
1566 HValue* key, in BuildCheckForCapacityGrow()
1576 HValue* current_capacity = AddLoadFixedArrayLength(elements); in BuildCheckForCapacityGrow()
1583 HValue* new_elements = BuildCheckAndGrowElementsCapacity( in BuildCheckForCapacityGrow()
1590 HValue* result = Add<HMaybeGrowElements>( in BuildCheckForCapacityGrow()
1596 HValue* new_length = AddUncasted<HAdd>(key, graph_->GetConstant1()); in BuildCheckForCapacityGrow()
1597 new_length->ClearFlag(HValue::kCanOverflow); in BuildCheckForCapacityGrow()
1604 HValue* checked_elements = environment()->Top(); in BuildCheckForCapacityGrow()
1621 HValue* HGraphBuilder::BuildCopyElementsOnWrite(HValue* object, in BuildCopyElementsOnWrite()
1622 HValue* elements, in BuildCopyElementsOnWrite()
1624 HValue* length) { in BuildCopyElementsOnWrite()
1632 HValue* capacity = AddLoadFixedArrayLength(elements); in BuildCopyElementsOnWrite()
1634 HValue* new_elements = BuildGrowElementsCapacity(object, elements, kind, in BuildCopyElementsOnWrite()
1649 void HGraphBuilder::BuildTransitionElementsKind(HValue* object, in BuildTransitionElementsKind()
1650 HValue* map, in BuildTransitionElementsKind()
1691 void HGraphBuilder::BuildJSObjectCheck(HValue* receiver, in BuildJSObjectCheck()
1697 HValue* map = in BuildJSObjectCheck()
1703 HValue* instance_type_and_bit_field = in BuildJSObjectCheck()
1706 HValue* mask = Add<HConstant>(0x00FF | (bit_field_mask << 8)); in BuildJSObjectCheck()
1707 HValue* and_result = AddUncasted<HBitwise>(Token::BIT_AND, in BuildJSObjectCheck()
1710 HValue* sub_result = AddUncasted<HSub>(and_result, in BuildJSObjectCheck()
1717 void HGraphBuilder::BuildKeyedIndexCheck(HValue* key, in BuildKeyedIndexCheck()
1733 HValue* map = Add<HLoadNamedField>(key, nullptr, HObjectAccess::ForMap()); in BuildKeyedIndexCheck()
1734 HValue* instance_type = in BuildKeyedIndexCheck()
1767 HValue* hash = Add<HLoadNamedField>(key, nullptr, in BuildKeyedIndexCheck()
1769 HValue* not_index_mask = Add<HConstant>(static_cast<int>( in BuildKeyedIndexCheck()
1772 HValue* not_index_test = AddUncasted<HBitwise>( in BuildKeyedIndexCheck()
1788 HValue* not_internalized_bit = AddUncasted<HBitwise>( in BuildKeyedIndexCheck()
1802 HValue* intern_key = Add<HCallRuntime>( in BuildKeyedIndexCheck()
1823 void HGraphBuilder::BuildNonGlobalObjectCheck(HValue* receiver) { in BuildNonGlobalObjectCheck()
1826 HValue* map = in BuildNonGlobalObjectCheck()
1828 HValue* instance_type = in BuildNonGlobalObjectCheck()
1830 HValue* global_type = Add<HConstant>(JS_GLOBAL_OBJECT_TYPE); in BuildNonGlobalObjectCheck()
1841 HValue* object, in BuildTestForDictionaryProperties()
1843 HValue* properties = Add<HLoadNamedField>( in BuildTestForDictionaryProperties()
1845 HValue* properties_map = in BuildTestForDictionaryProperties()
1847 HValue* hash_map = Add<HLoadRoot>(Heap::kHashTableMapRootIndex); in BuildTestForDictionaryProperties()
1854 HValue* HGraphBuilder::BuildKeyedLookupCacheHash(HValue* object, in BuildKeyedLookupCacheHash()
1855 HValue* key) { in BuildKeyedLookupCacheHash()
1858 HValue* object_map = in BuildKeyedLookupCacheHash()
1860 HValue* shifted_map = AddUncasted<HShr>( in BuildKeyedLookupCacheHash()
1862 HValue* string_hash = in BuildKeyedLookupCacheHash()
1864 HValue* shifted_hash = AddUncasted<HShr>( in BuildKeyedLookupCacheHash()
1866 HValue* xor_result = AddUncasted<HBitwise>(Token::BIT_XOR, shifted_map, in BuildKeyedLookupCacheHash()
1874 HValue* HGraphBuilder::BuildElementIndexHash(HValue* index) { in BuildElementIndexHash()
1876 HValue* seed = Add<HConstant>(seed_value); in BuildElementIndexHash()
1877 HValue* hash = AddUncasted<HBitwise>(Token::BIT_XOR, index, seed); in BuildElementIndexHash()
1880 HValue* shifted_hash = AddUncasted<HShl>(hash, Add<HConstant>(15)); in BuildElementIndexHash()
1881 HValue* not_hash = AddUncasted<HBitwise>(Token::BIT_XOR, hash, in BuildElementIndexHash()
1899 hash->ClearFlag(HValue::kCanOverflow); in BuildElementIndexHash()
1906 HValue* HGraphBuilder::BuildUncheckedDictionaryElementLoad(HValue* receiver, in BuildUncheckedDictionaryElementLoad()
1907 HValue* elements, in BuildUncheckedDictionaryElementLoad()
1908 HValue* key, in BuildUncheckedDictionaryElementLoad()
1909 HValue* hash) { in BuildUncheckedDictionaryElementLoad()
1910 HValue* capacity = in BuildUncheckedDictionaryElementLoad()
1914 HValue* mask = AddUncasted<HSub>(capacity, graph()->GetConstant1()); in BuildUncheckedDictionaryElementLoad()
1916 mask->ClearFlag(HValue::kCanOverflow); in BuildUncheckedDictionaryElementLoad()
1918 HValue* entry = hash; in BuildUncheckedDictionaryElementLoad()
1919 HValue* count = graph()->GetConstant1(); in BuildUncheckedDictionaryElementLoad()
1935 HValue* base_index = AddUncasted<HMul>(entry, Add<HConstant>(entry_size)); in BuildUncheckedDictionaryElementLoad()
1936 base_index->ClearFlag(HValue::kCanOverflow); in BuildUncheckedDictionaryElementLoad()
1938 HValue* key_index = in BuildUncheckedDictionaryElementLoad()
1940 key_index->ClearFlag(HValue::kCanOverflow); in BuildUncheckedDictionaryElementLoad()
1942 HValue* candidate_key = in BuildUncheckedDictionaryElementLoad()
1964 HValue* smi_check = in BuildUncheckedDictionaryElementLoad()
1967 HValue* map = AddLoadMap(candidate_key, smi_check); in BuildUncheckedDictionaryElementLoad()
1968 HValue* instance_type = in BuildUncheckedDictionaryElementLoad()
1970 HValue* not_internalized_bit = AddUncasted<HBitwise>( in BuildUncheckedDictionaryElementLoad()
1993 HValue* details_index = in BuildUncheckedDictionaryElementLoad()
1995 details_index->ClearFlag(HValue::kCanOverflow); in BuildUncheckedDictionaryElementLoad()
1996 HValue* details = Add<HLoadKeyed>(elements, details_index, nullptr, nullptr, in BuildUncheckedDictionaryElementLoad()
2005 HValue* result_index = in BuildUncheckedDictionaryElementLoad()
2007 result_index->ClearFlag(HValue::kCanOverflow); in BuildUncheckedDictionaryElementLoad()
2027 entry->ClearFlag(HValue::kCanOverflow); in BuildUncheckedDictionaryElementLoad()
2029 count->ClearFlag(HValue::kCanOverflow); in BuildUncheckedDictionaryElementLoad()
2041 HValue* HGraphBuilder::BuildCreateIterResultObject(HValue* value, in BuildCreateIterResultObject()
2042 HValue* done) { in BuildCreateIterResultObject()
2046 HValue* result = in BuildCreateIterResultObject()
2051 HValue* native_context = BuildGetNativeContext(); in BuildCreateIterResultObject()
2052 HValue* map = Add<HLoadNamedField>( in BuildCreateIterResultObject()
2056 HValue* empty_fixed_array = Add<HLoadRoot>(Heap::kEmptyFixedArrayRootIndex); in BuildCreateIterResultObject()
2072 HValue* HGraphBuilder::BuildRegExpConstructResult(HValue* length, in BuildRegExpConstructResult()
2073 HValue* index, in BuildRegExpConstructResult()
2074 HValue* input) { in BuildRegExpConstructResult()
2082 HValue* size = BuildCalculateElementsSize(elements_kind, length); in BuildRegExpConstructResult()
2085 HValue* result = in BuildRegExpConstructResult()
2090 HValue* native_context = Add<HLoadNamedField>( in BuildRegExpConstructResult()
2134 HValue* HGraphBuilder::BuildNumberToString(HValue* object, Type* type) { in BuildNumberToString()
2149 HValue* number_string_cache = in BuildNumberToString()
2154 HValue* mask = AddLoadFixedArrayLength(number_string_cache); in BuildNumberToString()
2165 HValue* hash = AddUncasted<HBitwise>(Token::BIT_AND, object, mask); in BuildNumberToString()
2168 HValue* key_index = AddUncasted<HShl>(hash, graph()->GetConstant1()); in BuildNumberToString()
2169 HValue* key = Add<HLoadKeyed>(number_string_cache, key_index, nullptr, in BuildNumberToString()
2189 HValue* objectisnumber = if_objectisnumber.If<HCompareMap>( in BuildNumberToString()
2194 HValue* low = Add<HLoadNamedField>( in BuildNumberToString()
2197 HValue* high = Add<HLoadNamedField>( in BuildNumberToString()
2200 HValue* hash = AddUncasted<HBitwise>(Token::BIT_XOR, low, high); in BuildNumberToString()
2204 HValue* key_index = AddUncasted<HShl>(hash, graph()->GetConstant1()); in BuildNumberToString()
2205 HValue* key = in BuildNumberToString()
2211 HValue* keyisnotsmi = if_keyisnotsmi.IfNot<HIsSmiAndBranch>(key); in BuildNumberToString()
2257 HValue* key_index = Pop(); in BuildNumberToString()
2258 HValue* value_index = AddUncasted<HAdd>(key_index, graph()->GetConstant1()); in BuildNumberToString()
2275 HValue* HGraphBuilder::BuildToNumber(HValue* input) { in BuildToNumber()
2280 HValue* stub = Add<HConstant>(callable.code()); in BuildToNumber()
2281 HValue* values[] = {context(), input}; in BuildToNumber()
2289 HValue* HGraphBuilder::BuildToObject(HValue* receiver) { in BuildToObject()
2310 HValue* receiver_map = in BuildToObject()
2312 HValue* receiver_instance_type = Add<HLoadNamedField>( in BuildToObject()
2323 HValue* constructor_function_index = Add<HLoadNamedField>( in BuildToObject()
2349 HValue* constructor_index = Pop(); in BuildToObject()
2352 HValue* native_context = BuildGetNativeContext(); in BuildToObject()
2355 HValue* constructor = Add<HLoadKeyed>(native_context, constructor_index, in BuildToObject()
2357 HValue* constructor_initial_map = Add<HLoadNamedField>( in BuildToObject()
2360 HValue* value = in BuildToObject()
2365 HValue* empty_fixed_array = Add<HLoadRoot>(Heap::kEmptyFixedArrayRootIndex); in BuildToObject()
2383 HValue* object_size, in BuildAllocate()
2388 HValue* size = object_size; in BuildAllocate()
2391 size->ClearFlag(HValue::kCanOverflow); in BuildAllocate()
2409 HValue* HGraphBuilder::BuildAddStringLengths(HValue* left_length, in BuildAddStringLengths()
2410 HValue* right_length) { in BuildAddStringLengths()
2412 HValue* length = AddUncasted<HAdd>(left_length, right_length); in BuildAddStringLengths()
2414 HValue* max_length = Add<HConstant>(String::kMaxLength + 1); in BuildAddStringLengths()
2420 HValue* HGraphBuilder::BuildCreateConsString( in BuildCreateConsString()
2421 HValue* length, in BuildCreateConsString()
2422 HValue* left, in BuildCreateConsString()
2423 HValue* right, in BuildCreateConsString()
2440 HValue* anded_instance_types = AddUncasted<HBitwise>( in BuildCreateConsString()
2442 HValue* xored_instance_types = AddUncasted<HBitwise>( in BuildCreateConsString()
2504 void HGraphBuilder::BuildCopySeqStringChars(HValue* src, in BuildCopySeqStringChars()
2505 HValue* src_offset, in BuildCopySeqStringChars()
2507 HValue* dst, in BuildCopySeqStringChars()
2508 HValue* dst_offset, in BuildCopySeqStringChars()
2510 HValue* length) { in BuildCopySeqStringChars()
2514 HValue* index = loop.BeginBody(graph()->GetConstant0(), length, Token::LT); in BuildCopySeqStringChars()
2516 HValue* src_index = AddUncasted<HAdd>(src_offset, index); in BuildCopySeqStringChars()
2517 HValue* value = in BuildCopySeqStringChars()
2519 HValue* dst_index = AddUncasted<HAdd>(dst_offset, index); in BuildCopySeqStringChars()
2526 HValue* HGraphBuilder::BuildObjectSizeAlignment( in BuildObjectSizeAlignment()
2527 HValue* unaligned_size, int header_size) { in BuildObjectSizeAlignment()
2529 HValue* size = AddUncasted<HAdd>( in BuildObjectSizeAlignment()
2532 size->ClearFlag(HValue::kCanOverflow); in BuildObjectSizeAlignment()
2539 HValue* HGraphBuilder::BuildUncheckedStringAdd( in BuildUncheckedStringAdd()
2540 HValue* left, in BuildUncheckedStringAdd()
2541 HValue* right, in BuildUncheckedStringAdd()
2544 HValue* left_length = AddLoadStringLength(left); in BuildUncheckedStringAdd()
2545 HValue* right_length = AddLoadStringLength(right); in BuildUncheckedStringAdd()
2548 HValue* length = BuildAddStringLengths(left_length, right_length); in BuildUncheckedStringAdd()
2579 HValue* left_instance_type = AddLoadStringInstanceType(left); in BuildUncheckedStringAdd()
2580 HValue* right_instance_type = AddLoadStringInstanceType(right); in BuildUncheckedStringAdd()
2583 HValue* ored_instance_types = AddUncasted<HBitwise>( in BuildUncheckedStringAdd()
2585 HValue* xored_instance_types = AddUncasted<HBitwise>( in BuildUncheckedStringAdd()
2627 HValue* size = AddUncasted<HShl>(length, graph()->GetConstant1()); in BuildUncheckedStringAdd()
2628 size->ClearFlag(HValue::kCanOverflow); in BuildUncheckedStringAdd()
2629 size->SetFlag(HValue::kUint32); in BuildUncheckedStringAdd()
2634 HValue* map = Pop(); in BuildUncheckedStringAdd()
2639 HValue* size = BuildObjectSizeAlignment(Pop(), SeqString::kHeaderSize); in BuildUncheckedStringAdd()
2715 HValue* HGraphBuilder::BuildStringAdd( in BuildStringAdd()
2716 HValue* left, in BuildStringAdd()
2717 HValue* right, in BuildStringAdd()
2722 HValue* left_length = AddLoadStringLength(left); in BuildStringAdd()
2723 HValue* right_length = AddLoadStringLength(right); in BuildStringAdd()
2765 HValue* checked_object, in BuildUncheckedMonomorphicElementAccess()
2766 HValue* key, in BuildUncheckedMonomorphicElementAccess()
2767 HValue* val, in BuildUncheckedMonomorphicElementAccess()
2789 HValue* elements = AddLoadElements(checked_object); in BuildUncheckedMonomorphicElementAccess()
2805 HValue* checked_key = NULL; in BuildUncheckedMonomorphicElementAccess()
2809 HValue* external_pointer = Add<HLoadNamedField>( in BuildUncheckedMonomorphicElementAccess()
2812 HValue* base_pointer = Add<HLoadNamedField>( in BuildUncheckedMonomorphicElementAccess()
2814 HValue* backing_store = AddUncasted<HAdd>(external_pointer, base_pointer, in BuildUncheckedMonomorphicElementAccess()
2823 HValue* bounds_check = negative_checker.If<HCompareNumericAndBranch>( in BuildUncheckedMonomorphicElementAccess()
2882 HValue* HGraphBuilder::BuildAllocateArrayFromLength( in BuildAllocateArrayFromLength()
2884 HValue* length_argument) { in BuildAllocateArrayFromLength()
2896 HValue* constant_zero = graph()->GetConstant0(); in BuildAllocateArrayFromLength()
2922 HValue* length = Pop(); in BuildAllocateArrayFromLength()
2923 HValue* capacity = Pop(); in BuildAllocateArrayFromLength()
2928 HValue* HGraphBuilder::BuildCalculateElementsSize(ElementsKind kind, in BuildCalculateElementsSize()
2929 HValue* capacity) { in BuildCalculateElementsSize()
2939 mul->ClearFlag(HValue::kCanOverflow); in BuildCalculateElementsSize()
2944 HValue* total_size = AddUncasted<HAdd>(mul, header_size); in BuildCalculateElementsSize()
2945 total_size->ClearFlag(HValue::kCanOverflow); in BuildCalculateElementsSize()
2973 HValue* size_in_bytes) { in BuildAllocateElements()
2983 void HGraphBuilder::BuildInitializeElementsHeader(HValue* elements, in BuildInitializeElementsHeader()
2985 HValue* capacity) { in BuildInitializeElementsHeader()
2997 HValue* HGraphBuilder::BuildAllocateAndInitializeArray(ElementsKind kind, in BuildAllocateAndInitializeArray()
2998 HValue* capacity) { in BuildAllocateAndInitializeArray()
3002 HValue* size_in_bytes = BuildCalculateElementsSize(kind, capacity); in BuildAllocateAndInitializeArray()
3003 HValue* new_array = BuildAllocateElements(kind, size_in_bytes); in BuildAllocateAndInitializeArray()
3009 void HGraphBuilder::BuildJSArrayHeader(HValue* array, in BuildJSArrayHeader()
3010 HValue* array_map, in BuildJSArrayHeader()
3011 HValue* elements, in BuildJSArrayHeader()
3014 HValue* allocation_site_payload, in BuildJSArrayHeader()
3015 HValue* length_field) { in BuildJSArrayHeader()
3039 HValue* elements, HValue* checked_key, HValue* val, HValue* dependency, in AddElementAccess()
3040 HValue* backing_store_owner, ElementsKind elements_kind, in AddElementAccess()
3063 HLoadNamedField* HGraphBuilder::AddLoadMap(HValue* object, in AddLoadMap()
3064 HValue* dependency) { in AddLoadMap()
3069 HLoadNamedField* HGraphBuilder::AddLoadElements(HValue* object, in AddLoadElements()
3070 HValue* dependency) { in AddLoadElements()
3077 HValue* array, in AddLoadFixedArrayLength()
3078 HValue* dependency) { in AddLoadFixedArrayLength()
3084 HLoadNamedField* HGraphBuilder::AddLoadArrayLength(HValue* array, in AddLoadArrayLength()
3086 HValue* dependency) { in AddLoadArrayLength()
3092 HValue* HGraphBuilder::BuildNewElementsCapacity(HValue* old_capacity) { in BuildNewElementsCapacity()
3093 HValue* half_old_capacity = AddUncasted<HShr>(old_capacity, in BuildNewElementsCapacity()
3096 HValue* new_capacity = AddUncasted<HAdd>(half_old_capacity, old_capacity); in BuildNewElementsCapacity()
3097 new_capacity->ClearFlag(HValue::kCanOverflow); in BuildNewElementsCapacity()
3099 HValue* min_growth = Add<HConstant>(16); in BuildNewElementsCapacity()
3102 new_capacity->ClearFlag(HValue::kCanOverflow); in BuildNewElementsCapacity()
3108 HValue* HGraphBuilder::BuildGrowElementsCapacity(HValue* object, in BuildGrowElementsCapacity()
3109 HValue* elements, in BuildGrowElementsCapacity()
3112 HValue* length, in BuildGrowElementsCapacity()
3113 HValue* new_capacity) { in BuildGrowElementsCapacity()
3118 HValue* new_elements = in BuildGrowElementsCapacity()
3131 void HGraphBuilder::BuildFillElementsWithValue(HValue* elements, in BuildFillElementsWithValue()
3133 HValue* from, in BuildFillElementsWithValue()
3134 HValue* to, in BuildFillElementsWithValue()
3135 HValue* value) { in BuildFillElementsWithValue()
3165 HValue* key = builder.BeginBody(to, from, Token::GT); in BuildFillElementsWithValue()
3167 HValue* adjusted_key = AddUncasted<HSub>(key, graph()->GetConstant1()); in BuildFillElementsWithValue()
3168 adjusted_key->ClearFlag(HValue::kCanOverflow); in BuildFillElementsWithValue()
3177 void HGraphBuilder::BuildFillElementsWithHole(HValue* elements, in BuildFillElementsWithHole()
3179 HValue* from, in BuildFillElementsWithHole()
3180 HValue* to) { in BuildFillElementsWithHole()
3184 HValue* hole = IsFastSmiOrObjectElementsKind(elements_kind) in BuildFillElementsWithHole()
3198 void HGraphBuilder::BuildCopyProperties(HValue* from_properties, in BuildCopyProperties()
3199 HValue* to_properties, HValue* length, in BuildCopyProperties()
3200 HValue* capacity) { in BuildCopyProperties()
3208 HValue* key = builder.BeginBody(length, graph()->GetConstant0(), Token::GT); in BuildCopyProperties()
3211 key->ClearFlag(HValue::kCanOverflow); in BuildCopyProperties()
3213 HValue* element = in BuildCopyProperties()
3222 void HGraphBuilder::BuildCopyElements(HValue* from_elements, in BuildCopyElements()
3224 HValue* to_elements, in BuildCopyElements()
3226 HValue* length, in BuildCopyElements()
3227 HValue* capacity) { in BuildCopyElements()
3252 HValue* key_constant = Add<HConstant>(i); in BuildCopyElements()
3267 HValue* key = builder.BeginBody(length, graph()->GetConstant0(), in BuildCopyElements()
3271 key->ClearFlag(HValue::kCanOverflow); in BuildCopyElements()
3273 HValue* element = Add<HLoadKeyed>(from_elements, key, nullptr, nullptr, in BuildCopyElements()
3292 store->SetFlag(HValue::kAllowUndefinedAsNaN); in BuildCopyElements()
3297 store->SetFlag(HValue::kAllowUndefinedAsNaN); in BuildCopyElements()
3308 HValue* HGraphBuilder::BuildCloneShallowArrayCow(HValue* boilerplate, in BuildCloneShallowArrayCow()
3309 HValue* allocation_site, in BuildCloneShallowArrayCow()
3314 HValue* map = AddLoadMap(boilerplate); in BuildCloneShallowArrayCow()
3315 HValue* elements = AddLoadElements(boilerplate); in BuildCloneShallowArrayCow()
3316 HValue* length = AddLoadArrayLength(boilerplate, kind); in BuildCloneShallowArrayCow()
3329 HValue* HGraphBuilder::BuildCloneShallowArrayEmpty(HValue* boilerplate, in BuildCloneShallowArrayEmpty()
3330 HValue* allocation_site, in BuildCloneShallowArrayEmpty()
3334 HValue* map = AddLoadMap(boilerplate); in BuildCloneShallowArrayEmpty()
3347 HValue* HGraphBuilder::BuildCloneShallowArrayNonEmpty(HValue* boilerplate, in BuildCloneShallowArrayNonEmpty()
3348 HValue* allocation_site, in BuildCloneShallowArrayNonEmpty()
3351 HValue* boilerplate_elements = AddLoadElements(boilerplate); in BuildCloneShallowArrayNonEmpty()
3352 HValue* capacity = AddLoadFixedArrayLength(boilerplate_elements); in BuildCloneShallowArrayNonEmpty()
3356 HValue* elements_size = BuildCalculateElementsSize(kind, capacity); in BuildCloneShallowArrayNonEmpty()
3362 HValue* result = BuildCloneShallowArrayEmpty( in BuildCloneShallowArrayNonEmpty()
3374 boilerplate_elements->SetFlag(HValue::kCantBeReplaced); in BuildCloneShallowArrayNonEmpty()
3385 HValue* length = AddLoadArrayLength(boilerplate, kind); in BuildCloneShallowArrayNonEmpty()
3395 HValue* previous_object, in BuildCreateAllocationMemento()
3396 HValue* previous_object_size, in BuildCreateAllocationMemento()
3397 HValue* allocation_site) { in BuildCreateAllocationMemento()
3408 HValue* memento_create_count = in BuildCreateAllocationMemento()
3416 memento_create_count->ClearFlag(HValue::kCanOverflow); in BuildCreateAllocationMemento()
3431 HInstruction* HGraphBuilder::BuildGetNativeContext(HValue* closure) { in BuildGetNativeContext()
3442 HValue* native_context = BuildGetNativeContext(); in BuildGetScriptContext()
3443 HValue* script_context_table = Add<HLoadNamedField>( in BuildGetScriptContext()
3451 HValue* HGraphBuilder::BuildGetParentContext(HValue* depth, int depth_value) { in BuildGetParentContext()
3452 HValue* script_context = context(); in BuildGetParentContext()
3454 HValue* zero = graph()->GetConstant0(); in BuildGetParentContext()
3469 depth->ClearFlag(HValue::kCanOverflow); in BuildGetParentContext()
3472 if_break.If<HCompareNumericAndBranch, HValue*>(depth, zero, Token::EQ); in BuildGetParentContext()
3508 HValue* HGraphBuilder::BuildArrayBufferViewFieldAccessor(HValue* object, in BuildArrayBufferViewFieldAccessor()
3509 HValue* checked_object, in BuildArrayBufferViewFieldAccessor()
3520 HValue* was_neutered_mask = in BuildArrayBufferViewFieldAccessor()
3522 HValue* was_neutered_test = in BuildArrayBufferViewFieldAccessor()
3540 HValue* allocation_site_payload, in JSArrayBuilder()
3541 HValue* constructor_function, in JSArrayBuilder()
3558 HValue* constructor_function) : in JSArrayBuilder()
3567 HValue* HGraphBuilder::JSArrayBuilder::EmitMapCode() { in EmitMapCode()
3595 HValue* HGraphBuilder::JSArrayBuilder::EmitInternalMapCode() { in EmitInternalMapCode()
3611 HValue* capacity, in AllocateArray()
3612 HValue* length_field, in AllocateArray()
3626 HValue* elements_size = in AllocateArray()
3630 HValue* max_regular_heap_object_size = in AllocateArray()
3638 HValue* map; in AllocateArray()
3671 HValue* HGraphBuilder::AddLoadJSBuiltin(int context_index) { in AddLoadJSBuiltin()
3672 HValue* native_context = BuildGetNativeContext(); in AddLoadJSBuiltin()
4185 if (phi->CheckFlag(HValue::kIsArguments)) return false; in CheckArgumentsPhiUses()
4320 void EffectContext::ReturnValue(HValue* value) { in ReturnValue()
4325 void ValueContext::ReturnValue(HValue* value) { in ReturnValue()
4328 if (value->CheckFlag(HValue::kIsArguments)) { in ReturnValue()
4339 void TestContext::ReturnValue(HValue* value) { in ReturnValue()
4384 if (!arguments_allowed() && instr->CheckFlag(HValue::kIsArguments)) { in ReturnInstruction()
4397 if (!arguments_allowed() && instr->CheckFlag(HValue::kIsArguments)) { in ReturnControl()
4481 void TestContext::BuildBranch(HValue* value) { in BuildBranch()
4487 if (value != NULL && value->CheckFlag(HValue::kIsArguments)) { in BuildBranch()
4740 if (instruction->CheckFlag(HValue::kIsDead)) { in RestoreActualValues()
4759 ZoneList<HValue*> arguments(count, zone()); in PushArgumentsFromEnvironment()
4782 ZoneList<HValue*> parameters(parameter_count, zone()); in SetUpScope()
4813 HValue* parameter = parameters.at(i); in SetUpScope()
4867 HValue* outer_context = environment()->context(); in VisitBlock()
4878 HValue* scope_info = Add<HConstant>(scope->GetScopeInfo(isolate())); in VisitBlock()
4882 inner_context->SetFlag(HValue::kHasNoObservableSideEffects); in VisitBlock()
4894 HValue* inner_context = environment()->context(); in VisitBlock()
4895 HValue* outer_context = Add<HLoadNamedField>( in VisitBlock()
5029 HValue* context = environment()->context(); in VisitContinueStatement()
5062 HValue* context = environment()->context(); in VisitBreakStatement()
5088 HValue* result = environment()->Pop(); in VisitReturnStatement()
5103 HValue* return_value = Pop(); in VisitReturnStatement()
5104 HValue* receiver = environment()->arguments_environment()->Lookup(0); in VisitReturnStatement()
5122 HValue* rhs = environment()->arguments_environment()->Lookup(1); in VisitReturnStatement()
5128 HValue* rhs = environment()->arguments_environment()->Lookup(1); in VisitReturnStatement()
5174 HValue* tag_value = Top(); in VisitSwitchStatement()
5190 HValue* label_value = Pop(); in VisitSwitchStatement()
5435 HValue* enumerable = Top(); // Leave enumerable at the top. in VisitForInStatement()
5451 HValue* enumerable) { in BuildForInBody()
5466 HValue* enum_length = BuildEnumLength(map); in BuildForInBody()
5489 HValue* cache_map = array; in BuildForInBody()
5492 HValue* enum_length = BuildEnumLength(cache_map); in BuildForInBody()
5514 HValue* index = environment()->ExpressionStackAt(0); in BuildForInBody()
5515 HValue* limit = environment()->ExpressionStackAt(1); in BuildForInBody()
5516 HValue* array = environment()->ExpressionStackAt(2); in BuildForInBody()
5517 HValue* type = environment()->ExpressionStackAt(3); in BuildForInBody()
5539 HValue* key = Add<HLoadKeyed>(array, index, index, nullptr, FAST_ELEMENTS); in BuildForInBody()
5561 HValue* enumerable_map = in BuildForInBody()
5610 HValue* current_index = Pop(); in BuildForInBody()
5611 HValue* increment = in BuildForInBody()
5613 increment->ClearFlag(HValue::kCanOverflow); in BuildForInBody()
5682 HValue* values[] = {context(), shared_info_value}; in VisitFunctionLiteral()
5788 HValue* HOptimizedGraphBuilder::BuildContextChainWalk(Variable* var) { in BuildContextChainWalk()
5790 HValue* context = environment()->context(); in BuildContextChainWalk()
5911 HValue* value = LookupAndMakeLive(variable); in VisitVariableProxy()
5921 HValue* context = BuildContextChainWalk(variable); in VisitVariableProxy()
5957 HValue* values[] = { in VisitRegExpLiteral()
6106 HValue* value = Pop(); in VisitObjectLiteral()
6110 HValue* store; in VisitObjectLiteral()
6119 HValue* checked_literal = Add<HCheckMaps>(literal, map); in VisitObjectLiteral()
6226 HValue* value = Pop(); in VisitArrayLiteral()
6231 HValue* key = Add<HConstant>(i); in VisitArrayLiteral()
6264 HCheckMaps* HOptimizedGraphBuilder::AddCheckMap(HValue* object, in AddCheckMap()
6273 HValue* checked_object) { in BuildLoadNamedField()
6316 HValue* checked_object, in BuildStoreNamedField()
6317 HValue* value) { in BuildStoreNamedField()
6655 HValue* HOptimizedGraphBuilder::BuildMonomorphicAccess( in BuildMonomorphicAccess()
6656 PropertyAccessInfo* info, HValue* object, HValue* checked_object, in BuildMonomorphicAccess()
6657 HValue* value, BailoutId ast_id, BailoutId return_id, in BuildMonomorphicAccess()
6671 HValue* checked_holder = checked_object; in BuildMonomorphicAccess()
6705 HValue* function = Add<HConstant>(info->accessor()); in BuildMonomorphicAccess()
6739 BailoutId ast_id, BailoutId return_id, HValue* object, HValue* value, in HandlePolymorphicNamedFieldAccess()
6802 HValue* dependency; in HandlePolymorphicNamedFieldAccess()
6823 HValue* access = in HandlePolymorphicNamedFieldAccess()
6827 HValue* result = NULL; in HandlePolymorphicNamedFieldAccess()
6882 static bool ComputeReceiverTypes(Expression* expr, HValue* receiver, in ComputeReceiverTypes()
6942 HValue* value = Pop(); in BuildStore()
6943 HValue* key = Pop(); in BuildStore()
6944 HValue* object = Pop(); in BuildStore()
6946 HValue* result = in BuildStore()
6959 HValue* value = Pop(); in BuildStore()
6960 HValue* object = Pop(); in BuildStore()
6966 HValue* access = BuildNamedAccess(STORE, ast_id, return_id, expr, slot, in BuildStore()
6997 Variable* var, HValue* value, FeedbackVectorSlot slot, BailoutId ast_id) { in HandleGlobalVariableAssignment()
7047 HValue* c_constant = Add<HConstant>(constant); in HandleGlobalVariableAssignment()
7086 HValue* global_object = Add<HLoadNamedField>( in HandleGlobalVariableAssignment()
7171 HValue* context = BuildContextChainWalk(var); in HandleCompoundAssignment()
7187 HValue* object = Top(); in HandleCompoundAssignment()
7188 HValue* key = NULL; in HandleCompoundAssignment()
7197 HValue* right = Pop(); in HandleCompoundAssignment()
7198 HValue* left = Pop(); in HandleCompoundAssignment()
7248 HValue* old_value = environment()->Lookup(var); in VisitAssignment()
7269 HValue* env_value = environment()->Lookup(var); in VisitAssignment()
7278 HValue* value = Pop(); in VisitAssignment()
7319 HValue* context = BuildContextChainWalk(var); in VisitAssignment()
7355 HValue* value = environment()->Pop(); in VisitThrow()
7370 HInstruction* HGraphBuilder::AddLoadStringInstanceType(HValue* string) { in AddLoadStringInstanceType()
7383 HInstruction* HGraphBuilder::AddLoadStringLength(HValue* string) { in AddLoadStringLength()
7388 HInstruction* HGraphBuilder::BuildLoadStringLength(HValue* string) { in BuildLoadStringLength()
7402 HValue* object, Handle<Name> name, HValue* value, bool is_uninitialized) { in BuildNamedGeneric()
7451 HValue* object, HValue* key, HValue* value) { in BuildKeyedGeneric()
7490 HValue* object, in BuildMonomorphicElementAccess()
7491 HValue* key, in BuildMonomorphicElementAccess()
7492 HValue* val, in BuildMonomorphicElementAccess()
7493 HValue* dependency, in BuildMonomorphicElementAccess()
7534 HValue* object, in TryBuildConsolidatedElementLoad()
7535 HValue* key, in TryBuildConsolidatedElementLoad()
7536 HValue* val, in TryBuildConsolidatedElementLoad()
7633 HValue* HOptimizedGraphBuilder::HandlePolymorphicElementAccess( in HandlePolymorphicElementAccess()
7634 Expression* expr, FeedbackVectorSlot slot, HValue* object, HValue* key, in HandlePolymorphicElementAccess()
7635 HValue* val, SmallMapList* maps, PropertyAccessType access_type, in HandlePolymorphicElementAccess()
7746 access->SetFlag(HValue::kHasNoObservableSideEffects); in HandlePolymorphicElementAccess()
7769 HValue* HOptimizedGraphBuilder::HandleKeyedElementAccess( in HandleKeyedElementAccess()
7770 HValue* obj, HValue* key, HValue* val, Expression* expr, in HandleKeyedElementAccess()
7776 HValue* expected_key = key; in HandleKeyedElementAccess()
7806 HValue* access = in HandleKeyedElementAccess()
7909 const ZoneList<HValue*>* arguments_values = arguments->arguments_values(); in EnsureArgumentsArePushedForAccess()
7913 HValue* argument = arguments_values->at(i); in EnsureArgumentsArePushedForAccess()
7920 arguments_elements->ClearFlag(HValue::kUseGVN); in EnsureArgumentsArePushedForAccess()
7930 if (!environment()->Lookup(proxy->var())->CheckFlag(HValue::kIsArguments)) { in TryArgumentsAccess()
7958 HValue* key = Pop(); in TryArgumentsAccess()
7982 HValue* HOptimizedGraphBuilder::BuildNamedAccess( in BuildNamedAccess()
7984 Expression* expr, FeedbackVectorSlot slot, HValue* object, in BuildNamedAccess()
7985 Handle<Name> name, HValue* value, bool is_uninitialized) { in BuildNamedAccess()
7998 HValue* checked_object; in BuildNamedAccess()
8018 HValue* object, in PushLoad()
8019 HValue* key) { in PushLoad()
8031 HValue* index = Pop(); in BuildLoad()
8032 HValue* string = Pop(); in BuildLoad()
8039 HValue* object = Pop(); in BuildLoad()
8041 HValue* value = BuildNamedAccess(LOAD, ast_id, expr->LoadId(), expr, in BuildLoad()
8050 HValue* key = Pop(); in BuildLoad()
8051 HValue* obj = Pop(); in BuildLoad()
8054 HValue* load = HandleKeyedElementAccess( in BuildLoad()
8120 void HOptimizedGraphBuilder::BuildEnsureCallable(HValue* object) { in BuildEnsureCallable()
8126 HValue* smi_check = is_not_function.If<HIsSmiAndBranch>(object); in BuildEnsureCallable()
8128 HValue* map = AddLoadMap(object, smi_check); in BuildEnsureCallable()
8129 HValue* bit_field = in BuildEnsureCallable()
8131 HValue* bit_field_masked = AddUncasted<HBitwise>( in BuildEnsureCallable()
8144 HValue* function, int argument_count, TailCallMode syntactic_tail_call_mode, in NewCallFunction()
8151 HValue* arity = Add<HConstant>(argument_count - 1); in NewCallFunction()
8153 HValue* op_vals[] = {context(), function, arity}; in NewCallFunction()
8165 HValue* function, int argument_count, TailCallMode syntactic_tail_call_mode, in NewCallFunctionViaIC()
8175 HValue* index_val = Add<HConstant>(vector->GetIndex(slot)); in NewCallFunctionViaIC()
8176 HValue* vector_val = Add<HConstant>(vector); in NewCallFunctionViaIC()
8178 HValue* op_vals[] = {context(), function, index_val, vector_val}; in NewCallFunctionViaIC()
8192 HValue* target = Add<HConstant>(function); in NewCallConstantFunction()
8222 HValue* receiver, in HandlePolymorphicCallNamed()
8320 HValue* function = Add<HConstant>(expr->target()); in HandlePolymorphicCallNamed()
8480 HValue* implicit_return_value, in TryInline()
8810 HValue* implicit_return_value) { in TryInlineConstruct()
8834 HValue* implicit_return_value) { in TryInlineSetter()
8868 HValue* argument = Pop(); in TryInlineBuiltinFunctionCall()
8877 HValue* right = Pop(); in TryInlineBuiltinFunctionCall()
8878 HValue* left = Pop(); in TryInlineBuiltinFunctionCall()
8931 HValue* object = Pop(); // receiver in TryInlineBuiltinGetterCall()
8943 HValue* object = Pop(); // receiver in TryInlineBuiltinGetterCall()
8944 HValue* checked_object = Add<HCheckArrayBufferNotNeutered>(object); in TryInlineBuiltinGetterCall()
8961 HValue* object = Pop(); // receiver in TryInlineBuiltinGetterCall()
8962 HValue* checked_object = Add<HCheckArrayBufferNotNeutered>(object); in TryInlineBuiltinGetterCall()
8981 HValue* receiver = environment()->ExpressionStackAt(args_count_no_receiver); in TryInlineBuiltinMethodCall()
8996 HValue* key = Top(); in TryInlineBuiltinMethodCall()
8998 HValue* elements = HLoadKeyed::cast(key)->elements(); in TryInlineBuiltinMethodCall()
9002 HValue* receiver = environment()->ExpressionStackAt(1); in TryInlineBuiltinMethodCall()
9013 HValue* index = Pop(); in TryInlineBuiltinMethodCall()
9014 HValue* string = Pop(); in TryInlineBuiltinMethodCall()
9030 HValue* argument = Pop(); in TryInlineBuiltinMethodCall()
9034 argument->SetFlag(HValue::kTruncatingToInt32); in TryInlineBuiltinMethodCall()
9051 HValue* argument = Pop(); in TryInlineBuiltinMethodCall()
9060 HValue* right = Pop(); in TryInlineBuiltinMethodCall()
9061 HValue* left = Pop(); in TryInlineBuiltinMethodCall()
9070 HValue* one = graph()->GetConstant1(); in TryInlineBuiltinMethodCall()
9092 HValue* right = Pop(); in TryInlineBuiltinMethodCall()
9093 HValue* left = Pop(); in TryInlineBuiltinMethodCall()
9104 HValue* right = Pop(); in TryInlineBuiltinMethodCall()
9105 HValue* left = Pop(); in TryInlineBuiltinMethodCall()
9118 HValue* result; in TryInlineBuiltinMethodCall()
9119 HValue* reduced_length; in TryInlineBuiltinMethodCall()
9120 HValue* receiver = Pop(); in TryInlineBuiltinMethodCall()
9122 HValue* checked_object = AddCheckMap(receiver, receiver_map); in TryInlineBuiltinMethodCall()
9123 HValue* length = in TryInlineBuiltinMethodCall()
9132 HValue* bounds_check = length_checker.If<HCompareNumericAndBranch>( in TryInlineBuiltinMethodCall()
9139 HValue* elements = AddLoadElements(checked_object); in TryInlineBuiltinMethodCall()
9148 HValue* hole = IsFastSmiOrObjectElementsKind(elements_kind) in TryInlineBuiltinMethodCall()
9196 HValue* value_to_push = Pop(); in TryInlineBuiltinMethodCall()
9197 HValue* array = Pop(); in TryInlineBuiltinMethodCall()
9201 HValue* length = NULL; in TryInlineBuiltinMethodCall()
9212 HValue* checked_array = Add<HCheckMaps>(array, receiver_map); in TryInlineBuiltinMethodCall()
9246 HValue* receiver = Pop(); in TryInlineBuiltinMethodCall()
9248 HValue* result; in TryInlineBuiltinMethodCall()
9253 HValue* length = Add<HLoadNamedField>( in TryInlineBuiltinMethodCall()
9257 HValue* lengthiszero = if_lengthiszero.If<HCompareNumericAndBranch>( in TryInlineBuiltinMethodCall()
9265 HValue* elements = AddLoadElements(receiver); in TryInlineBuiltinMethodCall()
9285 HValue* new_length = AddUncasted<HSub>( in TryInlineBuiltinMethodCall()
9287 new_length->ClearFlag(HValue::kCanOverflow); in TryInlineBuiltinMethodCall()
9292 HValue* new_key = loop.BeginBody( in TryInlineBuiltinMethodCall()
9294 HValue* key = AddUncasted<HAdd>(new_key, graph()->GetConstant1()); in TryInlineBuiltinMethodCall()
9295 key->ClearFlag(HValue::kCanOverflow); in TryInlineBuiltinMethodCall()
9298 HValue* element = in TryInlineBuiltinMethodCall()
9303 store->SetFlag(HValue::kAllowUndefinedAsNaN); in TryInlineBuiltinMethodCall()
9308 HValue* hole = IsFastSmiOrObjectElementsKind(kind) in TryInlineBuiltinMethodCall()
9360 HValue* search_element = Pop(); in TryInlineBuiltinMethodCall()
9361 HValue* receiver = Pop(); in TryInlineBuiltinMethodCall()
9366 HValue* index = BuildArrayIndexOf(receiver, search_element, kind, mode); in TryInlineBuiltinMethodCall()
9383 HValue* receiver) { in TryInlineApiFunctionCall()
9394 HValue* receiver, in TryInlineApiMethodCall()
9425 Handle<Object> function, HValue* receiver, SmallMapList* receiver_maps, in TryInlineApiCall()
9499 HValue* value = Pop(); in TryInlineApiCall()
9506 HValue* holder = NULL; in TryInlineApiCall()
9521 HValue* call_data = Add<HConstant>(call_data_obj); in TryInlineApiCall()
9526 HValue* api_function_address = Add<HConstant>(ExternalReference(ref)); in TryInlineApiCall()
9528 HValue* op_vals[] = {context(), Add<HConstant>(function), call_data, holder, in TryInlineApiCall()
9540 Vector<HValue*>(op_vals, arraysize(op_vals) - 1), in TryInlineApiCall()
9548 Vector<HValue*>(op_vals, arraysize(op_vals) - 1), in TryInlineApiCall()
9558 void HOptimizedGraphBuilder::HandleIndirectCall(Call* expr, HValue* function, in HandleIndirectCall()
9632 HValue* receiver = Pop(); // receiver in BuildFunctionApply()
9633 HValue* function = Pop(); // f in BuildFunctionApply()
9637 HValue* checked_function = AddCheckMap(function, function_map); in BuildFunctionApply()
9646 HValue* wrapped_receiver = BuildWrapReceiver(receiver, checked_function); in BuildFunctionApply()
9656 const ZoneList<HValue*>* arguments_values = args->arguments_values(); in BuildFunctionApply()
9670 HValue* function = Top(); // f in BuildFunctionCall()
9672 HValue* checked_function = AddCheckMap(function, function_map); in BuildFunctionCall()
9681 HValue* receiver = BuildWrapReceiver( in BuildFunctionCall()
9693 HValue* HOptimizedGraphBuilder::ImplicitReceiverFor(HValue* function, in ImplicitReceiverFor()
9709 HValue* function, in BuildArrayCall()
9727 HValue* HOptimizedGraphBuilder::BuildArrayIndexOf(HValue* receiver, in BuildArrayIndexOf()
9728 HValue* search_element, in BuildArrayIndexOf()
9735 HValue* elements = AddLoadElements(receiver); in BuildArrayIndexOf()
9736 HValue* length = AddLoadArrayLength(receiver, kind); in BuildArrayIndexOf()
9738 HValue* initial; in BuildArrayIndexOf()
9739 HValue* terminating; in BuildArrayIndexOf()
9765 HValue* index = loop.BeginBody(initial, terminating, token); in BuildArrayIndexOf()
9766 HValue* element = AddUncasted<HLoadKeyed>( in BuildArrayIndexOf()
9787 HValue* index = loop.BeginBody(initial, terminating, token); in BuildArrayIndexOf()
9788 HValue* element = AddUncasted<HLoadKeyed>( in BuildArrayIndexOf()
9812 HValue* search_number = in BuildArrayIndexOf()
9817 HValue* index = loop.BeginBody(initial, terminating, token); in BuildArrayIndexOf()
9818 HValue* element = AddUncasted<HLoadKeyed>( in BuildArrayIndexOf()
9827 HValue* number = in BuildArrayIndexOf()
9849 HValue* index = loop.BeginBody(initial, terminating, token); in BuildArrayIndexOf()
9850 HValue* element = AddUncasted<HLoadKeyed>( in BuildArrayIndexOf()
9874 bool HOptimizedGraphBuilder::TryHandleArrayCall(Call* expr, HValue* function) { in TryHandleArrayCall()
9891 HValue* function) { in TryHandleArrayCallNew()
9909 HValue* arg_two_value = LookupAndMakeLive(arg_two->var()); in CanBeFunctionApplyArguments()
9910 if (!arg_two_value->CheckFlag(HValue::kIsArguments)) return false; in CanBeFunctionApplyArguments()
9931 HValue* receiver = Top(); in VisitCall()
9944 HValue* key = NULL; in VisitCall()
9951 HValue* function = Pop(); in VisitCall()
10027 HValue* function = Top(); in VisitCall()
10044 HValue* receiver = ImplicitReceiverFor(function, expr->target()); in VisitCall()
10095 HValue* constructor = environment()->ExpressionStackAt(argument_count); in BuildInlinedCallArray()
10105 HValue* argument = environment()->Top(); in BuildInlinedCallArray()
10122 HValue* new_object = argument_count == 0 in BuildInlinedCallArray()
10155 HValue* argument = Top(); in IsCallArrayInlineable()
10199 HValue* function = Top(); in VisitCallNew()
10217 HValue* check = Add<HCheckValue>(function, constructor); in VisitCallNew()
10229 HValue* size_in_bytes = Add<HConstant>(instance_size); in VisitCallNew()
10241 HValue* empty_fixed_array = Add<HConstant>(factory->empty_fixed_array()); in VisitCallNew()
10284 HValue* arity = Add<HConstant>(argument_count - 1); in VisitCallNew()
10285 HValue* op_vals[] = {context(), function, function, arity}; in VisitCallNew()
10296 HValue* receiver, Handle<Map> initial_map) { in BuildInitializeInobjectProperties()
10309 HValue* HGraphBuilder::BuildAllocateEmptyArrayBuffer(HValue* byte_length) { in BuildAllocateEmptyArrayBuffer()
10320 HValue* native_context = BuildGetNativeContext(); in BuildAllocateEmptyArrayBuffer()
10361 HValue* obj, in BuildArrayBufferViewInitialization()
10362 HValue* buffer, in BuildArrayBufferViewInitialization()
10363 HValue* byte_offset, in BuildArrayBufferViewInitialization()
10364 HValue* byte_length) { in BuildArrayBufferViewInitialization()
10387 HValue* HOptimizedGraphBuilder::BuildAllocateExternalElements( in BuildAllocateExternalElements()
10390 HValue* buffer, HValue* byte_offset, HValue* length) { in BuildAllocateExternalElements()
10397 HValue* elements = Add<HAllocate>( in BuildAllocateExternalElements()
10406 HValue* backing_store = Add<HLoadNamedField>( in BuildAllocateExternalElements()
10409 HValue* typed_array_start; in BuildAllocateExternalElements()
10417 external_pointer->ClearFlag(HValue::kCanOverflow); in BuildAllocateExternalElements()
10432 HValue* HOptimizedGraphBuilder::BuildAllocateFixedTypedArray( in BuildAllocateFixedTypedArray()
10434 ElementsKind fixed_elements_kind, HValue* byte_length, HValue* length, in BuildAllocateFixedTypedArray()
10438 HValue* total_size; in BuildAllocateFixedTypedArray()
10448 total_size->ClearFlag(HValue::kCanOverflow); in BuildAllocateFixedTypedArray()
10478 HValue* filler = Add<HConstant>(static_cast<int32_t>(0)); in BuildAllocateFixedTypedArray()
10483 HValue* backing_store = AddUncasted<HAdd>( in BuildAllocateFixedTypedArray()
10487 HValue* key = builder.BeginBody( in BuildAllocateFixedTypedArray()
10513 HValue* obj = Pop(); in GenerateTypedArrayInitialize()
10531 HValue* buffer; in GenerateTypedArrayInitialize()
10539 HValue* byte_offset; in GenerateTypedArrayInitialize()
10555 HValue* byte_length = Pop(); in GenerateTypedArrayInitialize()
10582 HValue* allocated_buffer = buffer; in GenerateTypedArrayInitialize()
10597 HValue* elements; in GenerateTypedArrayInitialize()
10648 HValue* buffer = Pop(); in GenerateArrayBufferGetByteLength()
10660 HValue* view = Pop(); in GenerateArrayBufferViewGetByteLength()
10673 HValue* view = Pop(); in GenerateArrayBufferViewGetByteOffset()
10686 HValue* view = Pop(); in GenerateTypedArrayGetLength()
10710 HValue* receiver = ImplicitReceiverFor(function, known_function); in VisitCallRuntime()
10764 HValue* key = Pop(); in VisitDelete()
10765 HValue* obj = Pop(); in VisitDelete()
10781 HValue* value = var->HasThisName(isolate()) ? graph()->GetConstantTrue() in VisitDelete()
10804 HValue* value = Pop(); in VisitTypeof()
10906 BailoutId return_id, HValue* object, HValue* key, HValue* value) { in BuildStoreForEffect()
10932 HValue* input = NULL; // ToNumber(original_input). in VisitCountOperation()
10933 HValue* after = NULL; // The result after incrementing or decrementing. in VisitCountOperation()
10979 HValue* context = BuildContextChainWalk(var); in VisitCountOperation()
11003 HValue* object = Top(); in VisitCountOperation()
11005 HValue* key = NULL; in VisitCountOperation()
11032 HValue* string, in BuildStringCharCodeAt()
11033 HValue* index) { in BuildStringCharCodeAt()
11054 static bool ShiftAmountsAllowReplaceByRotate(HValue* sa, in ShiftAmountsAllowReplaceByRotate()
11055 HValue* const32_minus_sa) { in ShiftAmountsAllowReplaceByRotate()
11072 bool HGraphBuilder::MatchRotateRight(HValue* left, in MatchRotateRight()
11073 HValue* right, in MatchRotateRight()
11074 HValue** operand, in MatchRotateRight()
11075 HValue** shift_amount) { in MatchRotateRight()
11099 bool CanBeZero(HValue* right) { in CanBeZero()
11111 HValue* HGraphBuilder::EnforceNumberType(HValue* number, in EnforceNumberType()
11124 HValue* HGraphBuilder::TruncateToNumber(HValue* value, Type** expected) { in TruncateToNumber()
11165 HValue* HOptimizedGraphBuilder::BuildBinaryOperation( in BuildBinaryOperation()
11167 HValue* left, in BuildBinaryOperation()
11168 HValue* right, in BuildBinaryOperation()
11180 HValue* result = HGraphBuilder::BuildBinaryOperation( in BuildBinaryOperation()
11198 HValue* HGraphBuilder::BuildBinaryOperation(Token::Value op, HValue* left, in BuildBinaryOperation()
11199 HValue* right, Type* left_type, in BuildBinaryOperation()
11357 HValue* values[] = {context(), left, right}; in BuildBinaryOperation()
11361 HValue* stub = Add<HConstant>(callable.code()); \ in BuildBinaryOperation()
11437 HValue *operand, *shift_amount; in BuildBinaryOperation()
11471 instr->SetFlag(HValue::kCannotBeTagged); in BuildBinaryOperation()
11474 left->CopyFlag(HValue::kTruncatingToSmi, instr); in BuildBinaryOperation()
11475 left->CopyFlag(HValue::kTruncatingToInt32, instr); in BuildBinaryOperation()
11478 right->CopyFlag(HValue::kTruncatingToSmi, instr); in BuildBinaryOperation()
11479 right->CopyFlag(HValue::kTruncatingToInt32, instr); in BuildBinaryOperation()
11553 HValue* left_value = Top(); in VisitLogicalExpression()
11635 HValue* right = Pop(); in VisitArithmeticExpression()
11636 HValue* left = Pop(); in VisitArithmeticExpression()
11637 HValue* result = in VisitArithmeticExpression()
11656 HValue* value = Pop(); in HandleLiteralCompareTypeof()
11663 bool IsLiteralCompareStrict(Isolate* isolate, HValue* left, Token::Value op, in IsLiteralCompareStrict()
11664 HValue* right) { in IsLiteralCompareStrict()
11704 HValue* value = Pop(); in VisitCompareOperation()
11718 HValue* right = Pop(); in VisitCompareOperation()
11719 HValue* left = Pop(); in VisitCompareOperation()
11756 HValue* stub = Add<HConstant>(callable.code()); in VisitCompareOperation()
11757 HValue* values[] = {context(), left, right}; in VisitCompareOperation()
11765 HValue* stub = Add<HConstant>(callable.code()); in VisitCompareOperation()
11766 HValue* values[] = {context(), left, right}; in VisitCompareOperation()
11769 Vector<HValue*>(values, arraysize(values))); in VisitCompareOperation()
11787 Token::Value op, HValue* left, HValue* right, Type* left_type, in BuildCompareInstruction()
11818 HValue* operand_to_check = in BuildCompareInstruction()
11985 HValue* value = Pop(); in HandleLiteralCompareNil()
12008 HValue* HOptimizedGraphBuilder::AddThisFunction() { in AddThisFunction()
12035 HValue* object_size_constant = Add<HConstant>(initial_map->instance_size()); in BuildFastLiteral()
12089 HValue* object_elements_size = Add<HConstant>(elements_size); in BuildFastLiteral()
12194 HValue* heap_number_constant = Add<HConstant>(HeapNumber::kSize); in BuildEmitInObjectProperties()
12201 HValue* double_value = in BuildEmitInObjectProperties()
12236 HValue* object_elements, in BuildEmitElements()
12240 HValue* object_elements_length = Add<HConstant>(elements_length); in BuildEmitElements()
12258 HValue* object_elements) { in BuildEmitFixedDoubleArray()
12262 HValue* key_constant = Add<HConstant>(i); in BuildEmitFixedDoubleArray()
12268 store->SetFlag(HValue::kAllowUndefinedAsNaN); in BuildEmitFixedDoubleArray()
12276 HValue* object_elements, in BuildEmitFixedArray()
12283 HValue* key_constant = Add<HConstant>(i); in BuildEmitFixedArray()
12361 HValue* value = graph()->GetConstantHole(); in VisitVariableDeclaration()
12367 HValue* value = graph()->GetConstantHole(); in VisitVariableDeclaration()
12368 HValue* context = environment()->context(); in VisitVariableDeclaration()
12400 HValue* value = Pop(); in VisitFunctionDeclaration()
12406 HValue* value = Pop(); in VisitFunctionDeclaration()
12407 HValue* context = environment()->context(); in VisitFunctionDeclaration()
12444 HValue* value = Pop(); in GenerateIsSmi()
12453 HValue* value = Pop(); in GenerateIsJSReceiver()
12465 HValue* value = Pop(); in GenerateHasCachedArrayIndex()
12475 HValue* value = Pop(); in GenerateIsArray()
12485 HValue* value = Pop(); in GenerateIsTypedArray()
12495 HValue* value = Pop(); in GenerateIsRegExp()
12505 HValue* input = Pop(); in GenerateToInteger()
12510 HValue* stub = Add<HConstant>(callable.code()); in GenerateToInteger()
12511 HValue* values[] = {context(), input}; in GenerateToInteger()
12522 HValue* input = Pop(); in GenerateToName()
12524 HValue* result = BuildNumberToString(input, Type::SignedSmall()); in GenerateToName()
12527 HValue* result = BuildNumberToString(input, Type::Number()); in GenerateToName()
12533 HValue* stub = Add<HConstant>(callable.code()); in GenerateToName()
12534 HValue* values[] = {context(), input}; in GenerateToName()
12545 HValue* value = Pop(); in GenerateToObject()
12546 HValue* result = BuildToObject(value); in GenerateToObject()
12554 HValue* input = Pop(); in GenerateToString()
12559 HValue* stub = Add<HConstant>(callable.code()); in GenerateToString()
12560 HValue* values[] = {context(), input}; in GenerateToString()
12572 HValue* input = Pop(); in GenerateToLength()
12573 HValue* stub = Add<HConstant>(callable.code()); in GenerateToLength()
12574 HValue* values[] = {context(), input}; in GenerateToLength()
12585 HValue* input = Pop(); in GenerateToNumber()
12586 HValue* result = BuildToNumber(input); in GenerateToNumber()
12599 HValue* value = Pop(); in GenerateIsJSProxy()
12603 HValue* smicheck = if_proxy.IfNot<HIsSmiAndBranch>(value); in GenerateIsJSProxy()
12605 HValue* map = Add<HLoadNamedField>(value, smicheck, HObjectAccess::ForMap()); in GenerateIsJSProxy()
12606 HValue* instance_type = in GenerateIsJSProxy()
12619 HValue* object = Pop(); in GenerateHasFastPackedElements()
12629 HValue* elements_kind = BuildGetElementsKind(object); in GenerateHasFastPackedElements()
12648 HValue* object = Pop(); in GenerateValueOf()
12651 HValue* objectisvalue = if_objectisvalue.If<HHasInstanceTypeAndBranch>( in GenerateValueOf()
12678 HValue* index = Pop(); in GenerateStringCharCodeAt()
12679 HValue* string = Pop(); in GenerateStringCharCodeAt()
12689 HValue* char_code = Pop(); in GenerateStringCharFromCode()
12701 HValue* stub = Add<HConstant>(callable.code()); in GenerateSubString()
12702 HValue* values[] = {context()}; in GenerateSubString()
12716 HValue* values[] = {context(), Pop(), Pop()}; in GenerateNewObject()
12729 HValue* stub = Add<HConstant>(callable.code()); in GenerateRegExpExec()
12730 HValue* values[] = {context()}; in GenerateRegExpExec()
12741 HValue* regexp = Pop(); in GenerateRegExpFlags()
12751 HValue* regexp = Pop(); in GenerateRegExpSource()
12761 HValue* value = Pop(); in GenerateDoubleLo()
12770 HValue* value = Pop(); in GenerateDoubleHi()
12782 HValue* input = Pop(); in GenerateRegExpConstructResult()
12783 HValue* index = Pop(); in GenerateRegExpConstructResult()
12784 HValue* length = Pop(); in GenerateRegExpConstructResult()
12785 HValue* result = BuildRegExpConstructResult(length, index, input); in GenerateRegExpConstructResult()
12794 HValue* number = Pop(); in GenerateNumberToString()
12795 HValue* result = BuildNumberToString(number, Type::Any()); in GenerateNumberToString()
12806 HValue* trampoline = Add<HConstant>(isolate()->builtins()->Call()); in GenerateCall()
12807 HValue* target = Pop(); in GenerateCall()
12808 HValue* values[] = {context(), target, in GenerateCall()
12822 HValue* right = Pop(); in GenerateMathPow()
12823 HValue* left = Pop(); in GenerateMathPow()
12833 HValue* index = Pop(); in GenerateFixedArrayGet()
12834 HValue* object = Pop(); in GenerateFixedArrayGet()
12846 HValue* value = Pop(); in GenerateFixedArraySet()
12847 HValue* index = Pop(); in GenerateFixedArraySet()
12848 HValue* object = Pop(); in GenerateFixedArraySet()
12865 HValue* done = Pop(); in GenerateCreateIterResultObject()
12866 HValue* value = Pop(); in GenerateCreateIterResultObject()
12867 HValue* result = BuildCreateIterResultObject(value, done); in GenerateCreateIterResultObject()
12875 HValue* receiver = Pop(); in GenerateJSCollectionGetTable()
12885 HValue* object = Pop(); in GenerateStringGetRawHashField()
12893 HValue* HOptimizedGraphBuilder::BuildAllocateOrderedHashTable() { in BuildAllocateOrderedHashTable()
12903 HValue* table = in BuildAllocateOrderedHashTable()
12909 HValue* length = Add<HConstant>(kFixedArrayLength); in BuildAllocateOrderedHashTable()
12927 HValue* not_found = Add<HConstant>(CollectionType::kNotFound); in BuildAllocateOrderedHashTable()
12935 HValue* undefined = graph()->GetConstantUndefined(); in BuildAllocateOrderedHashTable()
12950 HValue* receiver = Pop(); in GenerateSetInitialize()
12953 HValue* table = BuildAllocateOrderedHashTable<OrderedHashSet>(); in GenerateSetInitialize()
12962 HValue* receiver = Pop(); in GenerateMapInitialize()
12965 HValue* table = BuildAllocateOrderedHashTable<OrderedHashMap>(); in GenerateMapInitialize()
12972 void HOptimizedGraphBuilder::BuildOrderedHashTableClear(HValue* receiver) { in BuildOrderedHashTableClear()
12973 HValue* old_table = Add<HLoadNamedField>( in BuildOrderedHashTableClear()
12975 HValue* new_table = BuildAllocateOrderedHashTable<CollectionType>(); in BuildOrderedHashTableClear()
12991 HValue* receiver = Pop(); in GenerateSetClear()
13002 HValue* receiver = Pop(); in GenerateMapClear()
13013 HValue* value = Pop(); in GenerateGetCachedArrayIndex()
13028 HValue* ref = in GenerateDebugIsActive()
13030 HValue* value = in GenerateDebugIsActive()
13148 HValue* value = values_[i]; in AddIncomingEdge()
13160 HValue* old_value = values_[i]; in AddIncomingEdge()
13171 void HEnvironment::Bind(int index, HValue* value) { in Bind()
13189 void HEnvironment::SetExpressionStackAt(int index_from_top, HValue* value) { in SetExpressionStackAt()
13204 HValue* HEnvironment::RemoveExpressionStackAt(int index_from_top) { in RemoveExpressionStackAt()
13319 HValue* push = (i <= arguments) ? in CopyForInlining()
13341 HValue* val = env.values()->at(i); in operator <<()