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

Side by Side Diff: src/ia32/virtual-frame-ia32.h

Issue 113400: Bypass an expensive computation of a basic block's entry frame for a... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 11 years, 7 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 2009 the V8 project authors. All rights reserved. 1 // Copyright 2009 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 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 // Spill all values from the frame to memory. 108 // Spill all values from the frame to memory.
109 void SpillAll(); 109 void SpillAll();
110 110
111 // Spill all occurrences of a specific register from the frame. 111 // Spill all occurrences of a specific register from the frame.
112 void Spill(Register reg); 112 void Spill(Register reg);
113 113
114 // Spill all occurrences of an arbitrary register if possible. Return the 114 // Spill all occurrences of an arbitrary register if possible. Return the
115 // register spilled or no_reg if it was not possible to free any register 115 // register spilled or no_reg if it was not possible to free any register
116 // (ie, they all have frame-external references). 116 // (ie, they all have frame-external references).
117 Register SpillAnyRegister(); 117 Register SpillAnyRegister();
118 118
William Hesse 2009/05/15 07:45:51 How about: // Remove copies and constants from the
Kevin Millikin (Chromium) 2009/05/15 08:03:35 Seems misleading. The arbitrary frame could diffe
119 // Make this frame so that an arbitrary frame of the same height can
120 // be merged to it. Copies and constants are removed from the
121 // topmost mergable_elements elements of the frame. A
122 // mergable_elements of JumpTarget::kAllElements indicates constants
123 // and copies are not allowed anywhere in the frame.
124 void MakeMergable(int mergable_elements);
125
119 // Prepare this virtual frame for merging to an expected frame by 126 // Prepare this virtual frame for merging to an expected frame by
120 // performing some state changes that do not require generating 127 // performing some state changes that do not require generating
121 // code. It is guaranteed that no code will be generated. 128 // code. It is guaranteed that no code will be generated.
122 void PrepareMergeTo(VirtualFrame* expected); 129 void PrepareMergeTo(VirtualFrame* expected);
123 130
124 // Make this virtual frame have a state identical to an expected virtual 131 // Make this virtual frame have a state identical to an expected virtual
125 // frame. As a side effect, code may be emitted to make this frame match 132 // frame. As a side effect, code may be emitted to make this frame match
126 // the expected one. 133 // the expected one.
127 void MergeTo(VirtualFrame* expected); 134 void MergeTo(VirtualFrame* expected);
128 135
(...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after
484 Result RawCallCodeObject(Handle<Code> code, RelocInfo::Mode rmode); 491 Result RawCallCodeObject(Handle<Code> code, RelocInfo::Mode rmode);
485 492
486 bool Equals(VirtualFrame* other); 493 bool Equals(VirtualFrame* other);
487 494
488 friend class JumpTarget; 495 friend class JumpTarget;
489 }; 496 };
490 497
491 } } // namespace v8::internal 498 } } // namespace v8::internal
492 499
493 #endif // V8_IA32_VIRTUAL_FRAME_IA32_H_ 500 #endif // V8_IA32_VIRTUAL_FRAME_IA32_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698