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

Side by Side Diff: src/x64/lithium-x64.h

Issue 9491004: Pass zone explicitly to zone-allocation on x64 and ARM. (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 8 years, 9 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
« no previous file with comments | « src/ia32/lithium-ia32.h ('k') | src/x64/lithium-x64.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 2163 matching lines...) Expand 10 before | Expand all | Expand 10 after
2174 ZoneList<Handle<JSFunction> > inlined_closures_; 2174 ZoneList<Handle<JSFunction> > inlined_closures_;
2175 }; 2175 };
2176 2176
2177 2177
2178 class LChunkBuilder BASE_EMBEDDED { 2178 class LChunkBuilder BASE_EMBEDDED {
2179 public: 2179 public:
2180 LChunkBuilder(CompilationInfo* info, HGraph* graph, LAllocator* allocator) 2180 LChunkBuilder(CompilationInfo* info, HGraph* graph, LAllocator* allocator)
2181 : chunk_(NULL), 2181 : chunk_(NULL),
2182 info_(info), 2182 info_(info),
2183 graph_(graph), 2183 graph_(graph),
2184 zone_(graph->isolate()->zone()),
2184 status_(UNUSED), 2185 status_(UNUSED),
2185 current_instruction_(NULL), 2186 current_instruction_(NULL),
2186 current_block_(NULL), 2187 current_block_(NULL),
2187 next_block_(NULL), 2188 next_block_(NULL),
2188 argument_count_(0), 2189 argument_count_(0),
2189 allocator_(allocator), 2190 allocator_(allocator),
2190 position_(RelocInfo::kNoPosition), 2191 position_(RelocInfo::kNoPosition),
2191 instruction_pending_deoptimization_environment_(NULL), 2192 instruction_pending_deoptimization_environment_(NULL),
2192 pending_deoptimization_ast_id_(AstNode::kNoNumber) { } 2193 pending_deoptimization_ast_id_(AstNode::kNoNumber) { }
2193 2194
2194 // Build the sequence for the graph. 2195 // Build the sequence for the graph.
2195 LChunk* Build(); 2196 LChunk* Build();
2196 2197
2197 // Declare methods that deal with the individual node types. 2198 // Declare methods that deal with the individual node types.
2198 #define DECLARE_DO(type) LInstruction* Do##type(H##type* node); 2199 #define DECLARE_DO(type) LInstruction* Do##type(H##type* node);
2199 HYDROGEN_CONCRETE_INSTRUCTION_LIST(DECLARE_DO) 2200 HYDROGEN_CONCRETE_INSTRUCTION_LIST(DECLARE_DO)
2200 #undef DECLARE_DO 2201 #undef DECLARE_DO
2201 2202
2202 private: 2203 private:
2203 enum Status { 2204 enum Status {
2204 UNUSED, 2205 UNUSED,
2205 BUILDING, 2206 BUILDING,
2206 DONE, 2207 DONE,
2207 ABORTED 2208 ABORTED
2208 }; 2209 };
2209 2210
2210 LChunk* chunk() const { return chunk_; } 2211 LChunk* chunk() const { return chunk_; }
2211 CompilationInfo* info() const { return info_; } 2212 CompilationInfo* info() const { return info_; }
2212 HGraph* graph() const { return graph_; } 2213 HGraph* graph() const { return graph_; }
2214 Zone* zone() const { return zone_; }
2213 2215
2214 bool is_unused() const { return status_ == UNUSED; } 2216 bool is_unused() const { return status_ == UNUSED; }
2215 bool is_building() const { return status_ == BUILDING; } 2217 bool is_building() const { return status_ == BUILDING; }
2216 bool is_done() const { return status_ == DONE; } 2218 bool is_done() const { return status_ == DONE; }
2217 bool is_aborted() const { return status_ == ABORTED; } 2219 bool is_aborted() const { return status_ == ABORTED; }
2218 2220
2219 void Abort(const char* format, ...); 2221 void Abort(const char* format, ...);
2220 2222
2221 // Methods for getting operands for Use / Define / Temp. 2223 // Methods for getting operands for Use / Define / Temp.
2222 LUnallocated* ToUnallocated(Register reg); 2224 LUnallocated* ToUnallocated(Register reg);
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
2311 void DoBasicBlock(HBasicBlock* block, HBasicBlock* next_block); 2313 void DoBasicBlock(HBasicBlock* block, HBasicBlock* next_block);
2312 LInstruction* DoShift(Token::Value op, HBitwiseBinaryOperation* instr); 2314 LInstruction* DoShift(Token::Value op, HBitwiseBinaryOperation* instr);
2313 LInstruction* DoArithmeticD(Token::Value op, 2315 LInstruction* DoArithmeticD(Token::Value op,
2314 HArithmeticBinaryOperation* instr); 2316 HArithmeticBinaryOperation* instr);
2315 LInstruction* DoArithmeticT(Token::Value op, 2317 LInstruction* DoArithmeticT(Token::Value op,
2316 HArithmeticBinaryOperation* instr); 2318 HArithmeticBinaryOperation* instr);
2317 2319
2318 LChunk* chunk_; 2320 LChunk* chunk_;
2319 CompilationInfo* info_; 2321 CompilationInfo* info_;
2320 HGraph* const graph_; 2322 HGraph* const graph_;
2323 Zone* zone_;
2321 Status status_; 2324 Status status_;
2322 HInstruction* current_instruction_; 2325 HInstruction* current_instruction_;
2323 HBasicBlock* current_block_; 2326 HBasicBlock* current_block_;
2324 HBasicBlock* next_block_; 2327 HBasicBlock* next_block_;
2325 int argument_count_; 2328 int argument_count_;
2326 LAllocator* allocator_; 2329 LAllocator* allocator_;
2327 int position_; 2330 int position_;
2328 LInstruction* instruction_pending_deoptimization_environment_; 2331 LInstruction* instruction_pending_deoptimization_environment_;
2329 int pending_deoptimization_ast_id_; 2332 int pending_deoptimization_ast_id_;
2330 2333
2331 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 2334 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
2332 }; 2335 };
2333 2336
2334 #undef DECLARE_HYDROGEN_ACCESSOR 2337 #undef DECLARE_HYDROGEN_ACCESSOR
2335 #undef DECLARE_CONCRETE_INSTRUCTION 2338 #undef DECLARE_CONCRETE_INSTRUCTION
2336 2339
2337 } } // namespace v8::int 2340 } } // namespace v8::int
2338 2341
2339 #endif // V8_X64_LITHIUM_X64_H_ 2342 #endif // V8_X64_LITHIUM_X64_H_
OLDNEW
« no previous file with comments | « src/ia32/lithium-ia32.h ('k') | src/x64/lithium-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698