Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(142)

Side by Side Diff: src/hydrogen.h

Issue 11343011: Simplified HCheckMaps handling a bit. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Rebased and polished Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | src/hydrogen.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 1146 matching lines...) Expand 10 before | Expand all | Expand 10 after
1157 HValue* key, 1157 HValue* key,
1158 HValue* val, 1158 HValue* val,
1159 Expression* expr, 1159 Expression* expr,
1160 BailoutId ast_id, 1160 BailoutId ast_id,
1161 int position, 1161 int position,
1162 bool is_store, 1162 bool is_store,
1163 bool* has_side_effects); 1163 bool* has_side_effects);
1164 1164
1165 HLoadNamedField* BuildLoadNamedField(HValue* object, 1165 HLoadNamedField* BuildLoadNamedField(HValue* object,
1166 Handle<Map> map, 1166 Handle<Map> map,
1167 LookupResult* result, 1167 LookupResult* result);
1168 bool smi_and_map_check);
1169 HInstruction* BuildLoadNamedGeneric(HValue* object, 1168 HInstruction* BuildLoadNamedGeneric(HValue* object,
1170 Handle<String> name, 1169 Handle<String> name,
1171 Property* expr); 1170 Property* expr);
1172 HInstruction* BuildCallGetter(HValue* object, 1171 HInstruction* BuildCallGetter(HValue* object,
1173 Handle<Map> map, 1172 Handle<Map> map,
1174 Handle<JSFunction> getter, 1173 Handle<JSFunction> getter,
1175 Handle<JSObject> holder); 1174 Handle<JSObject> holder);
1176 HInstruction* BuildLoadNamedMonomorphic(HValue* object, 1175 HInstruction* BuildLoadNamedMonomorphic(HValue* object,
1177 Handle<String> name, 1176 Handle<String> name,
1178 Property* expr, 1177 Property* expr,
1179 Handle<Map> map); 1178 Handle<Map> map);
1180 HInstruction* BuildLoadKeyedGeneric(HValue* object, HValue* key); 1179 HInstruction* BuildLoadKeyedGeneric(HValue* object, HValue* key);
1181 HInstruction* BuildExternalArrayElementAccess( 1180 HInstruction* BuildExternalArrayElementAccess(
1182 HValue* external_elements, 1181 HValue* external_elements,
1183 HValue* checked_key, 1182 HValue* checked_key,
1184 HValue* val, 1183 HValue* val,
1185 HValue* dependency, 1184 HValue* dependency,
1186 ElementsKind elements_kind, 1185 ElementsKind elements_kind,
1187 bool is_store); 1186 bool is_store);
1188 1187
1188 void AddCheckMapsWithTransitions(HValue* object,
1189 Handle<Map> map);
1190
1189 HInstruction* BuildStoreNamedField(HValue* object, 1191 HInstruction* BuildStoreNamedField(HValue* object,
1190 Handle<String> name, 1192 Handle<String> name,
1191 HValue* value, 1193 HValue* value,
1192 Handle<Map> map, 1194 Handle<Map> map,
1193 LookupResult* lookup, 1195 LookupResult* lookup);
1194 bool smi_and_map_check);
1195 HInstruction* BuildStoreNamedGeneric(HValue* object, 1196 HInstruction* BuildStoreNamedGeneric(HValue* object,
1196 Handle<String> name, 1197 Handle<String> name,
1197 HValue* value); 1198 HValue* value);
1198 HInstruction* BuildCallSetter(HValue* object, 1199 HInstruction* BuildCallSetter(HValue* object,
1199 HValue* value, 1200 HValue* value,
1200 Handle<Map> map, 1201 Handle<Map> map,
1201 Handle<JSFunction> setter, 1202 Handle<JSFunction> setter,
1202 Handle<JSObject> holder); 1203 Handle<JSObject> holder);
1203 HInstruction* BuildStoreNamedMonomorphic(HValue* object, 1204 HInstruction* BuildStoreNamedMonomorphic(HValue* object,
1204 Handle<String> name, 1205 Handle<String> name,
1205 HValue* value, 1206 HValue* value,
1206 Handle<Map> map); 1207 Handle<Map> map);
1207 HInstruction* BuildStoreKeyedGeneric(HValue* object, 1208 HInstruction* BuildStoreKeyedGeneric(HValue* object,
1208 HValue* key, 1209 HValue* key,
1209 HValue* value); 1210 HValue* value);
1210 1211
1211 HValue* BuildContextChainWalk(Variable* var); 1212 HValue* BuildContextChainWalk(Variable* var);
1212 1213
1213 HInstruction* BuildThisFunction(); 1214 HInstruction* BuildThisFunction();
1214 1215
1216 void AddCheckPrototypeMaps(Handle<JSObject> holder,
1217 Handle<Map> receiver_map);
1218
1215 void AddCheckConstantFunction(Handle<JSObject> holder, 1219 void AddCheckConstantFunction(Handle<JSObject> holder,
1216 HValue* receiver, 1220 HValue* receiver,
1217 Handle<Map> receiver_map, 1221 Handle<Map> receiver_map);
1218 bool smi_and_map_check);
1219 1222
1220 Zone* zone() const { return zone_; } 1223 Zone* zone() const { return zone_; }
1221 1224
1222 // The translation state of the currently-being-translated function. 1225 // The translation state of the currently-being-translated function.
1223 FunctionState* function_state_; 1226 FunctionState* function_state_;
1224 1227
1225 // The base of the function state stack. 1228 // The base of the function state stack.
1226 FunctionState initial_function_state_; 1229 FunctionState initial_function_state_;
1227 1230
1228 // Expression context of the currently visited subexpression. NULL when 1231 // Expression context of the currently visited subexpression. NULL when
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
1487 const char* filename_; 1490 const char* filename_;
1488 HeapStringAllocator string_allocator_; 1491 HeapStringAllocator string_allocator_;
1489 StringStream trace_; 1492 StringStream trace_;
1490 int indent_; 1493 int indent_;
1491 }; 1494 };
1492 1495
1493 1496
1494 } } // namespace v8::internal 1497 } } // namespace v8::internal
1495 1498
1496 #endif // V8_HYDROGEN_H_ 1499 #endif // V8_HYDROGEN_H_
OLDNEW
« no previous file with comments | « no previous file | src/hydrogen.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698