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

Side by Side Diff: src/objects.h

Issue 23480031: Enable preaging of code objects when --optimize-for-size. (Closed) Base URL: https://v8.googlecode.com/svn/trunk
Patch Set: Rebase and add MIPS support Created 7 years, 2 months 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
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 5178 matching lines...) Expand 10 before | Expand all | Expand 10 after
5189 DECLARE_PRINTER(Code) 5189 DECLARE_PRINTER(Code)
5190 DECLARE_VERIFIER(Code) 5190 DECLARE_VERIFIER(Code)
5191 5191
5192 void ClearInlineCaches(); 5192 void ClearInlineCaches();
5193 void ClearTypeFeedbackCells(Heap* heap); 5193 void ClearTypeFeedbackCells(Heap* heap);
5194 5194
5195 BailoutId TranslatePcOffsetToAstId(uint32_t pc_offset); 5195 BailoutId TranslatePcOffsetToAstId(uint32_t pc_offset);
5196 5196
5197 #define DECLARE_CODE_AGE_ENUM(X) k##X##CodeAge, 5197 #define DECLARE_CODE_AGE_ENUM(X) k##X##CodeAge,
5198 enum Age { 5198 enum Age {
5199 kNotExecutedCodeAge = -2,
5200 kExecutedOnceCodeAge = -1,
5199 kNoAge = 0, 5201 kNoAge = 0,
5200 CODE_AGE_LIST(DECLARE_CODE_AGE_ENUM) 5202 CODE_AGE_LIST(DECLARE_CODE_AGE_ENUM)
5201 kAfterLastCodeAge, 5203 kAfterLastCodeAge,
5202 kLastCodeAge = kAfterLastCodeAge - 1, 5204 kLastCodeAge = kAfterLastCodeAge - 1,
5203 kCodeAgeCount = kAfterLastCodeAge - 1 5205 kCodeAgeCount = kAfterLastCodeAge - 1,
5206 kIsOldCodeAge = kSexagenarianCodeAge,
5207 kPreAgedCodeAge = kIsOldCodeAge - 1
5204 }; 5208 };
5205 #undef DECLARE_CODE_AGE_ENUM 5209 #undef DECLARE_CODE_AGE_ENUM
5206 5210
5207 // Code aging. Indicates how many full GCs this code has survived without 5211 // Code aging. Indicates how many full GCs this code has survived without
5208 // being entered through the prologue. Used to determine when it is 5212 // being entered through the prologue. Used to determine when it is
5209 // relatively safe to flush this code object and replace it with the lazy 5213 // relatively safe to flush this code object and replace it with the lazy
5210 // compilation stub. 5214 // compilation stub.
5211 static void MakeCodeAgeSequenceYoung(byte* sequence, Isolate* isolate); 5215 static void MakeCodeAgeSequenceYoung(byte* sequence, Isolate* isolate);
5216 static void MarkCodeAsExecuted(byte* sequence, Isolate* isolate);
5212 void MakeOlder(MarkingParity); 5217 void MakeOlder(MarkingParity);
5213 static bool IsYoungSequence(byte* sequence); 5218 static bool IsYoungSequence(byte* sequence);
5214 bool IsOld(); 5219 bool IsOld();
5215 int GetAge(); 5220 Age GetAge();
5221 static inline Code* GetPreAgedCodeAgeStub(Isolate* isolate) {
5222 return GetCodeAgeStub(isolate, kNotExecutedCodeAge, NO_MARKING_PARITY);
5223 }
5216 5224
5217 void PrintDeoptLocation(int bailout_id); 5225 void PrintDeoptLocation(int bailout_id);
5218 bool CanDeoptAt(Address pc); 5226 bool CanDeoptAt(Address pc);
5219 5227
5220 #ifdef VERIFY_HEAP 5228 #ifdef VERIFY_HEAP
5221 void VerifyEmbeddedObjectsDependency(); 5229 void VerifyEmbeddedObjectsDependency();
5222 #endif 5230 #endif
5223 5231
5224 static bool IsWeakEmbeddedObject(Kind kind, Object* object); 5232 static bool IsWeakEmbeddedObject(Kind kind, Object* object);
5225 5233
(...skipping 5084 matching lines...) Expand 10 before | Expand all | Expand 10 after
10310 } else { 10318 } else {
10311 value &= ~(1 << bit_position); 10319 value &= ~(1 << bit_position);
10312 } 10320 }
10313 return value; 10321 return value;
10314 } 10322 }
10315 }; 10323 };
10316 10324
10317 } } // namespace v8::internal 10325 } } // namespace v8::internal
10318 10326
10319 #endif // V8_OBJECTS_H_ 10327 #endif // V8_OBJECTS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698