X87: Refactor bailout reasons and disable optimization in more cases.

port r24161.

original commit message:
  Refactor bailout reasons and disable optimization in more cases.

BUG=
R=weiliang.lin@intel.com

Review URL: https://codereview.chromium.org/597913002

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24190 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 8e6e09c1
......@@ -472,12 +472,6 @@ LPlatformChunk* LChunkBuilder::Build() {
}
void LChunkBuilder::Abort(BailoutReason reason) {
info()->set_bailout_reason(reason);
status_ = ABORTED;
}
LUnallocated* LChunkBuilder::ToUnallocated(Register reg) {
return new(zone()) LUnallocated(LUnallocated::FIXED_REGISTER,
Register::ToAllocationIndex(reg));
......@@ -2534,7 +2528,7 @@ LInstruction* LChunkBuilder::DoUnknownOSRValue(HUnknownOSRValue* instr) {
} else {
spill_index = env_index - instr->environment()->first_local_index();
if (spill_index > LUnallocated::kMaxFixedSlotIndex) {
Abort(kNotEnoughSpillSlotsForOsr);
Retry(kNotEnoughSpillSlotsForOsr);
spill_index = 0;
}
if (spill_index == 0) {
......
......@@ -2760,17 +2760,11 @@ class LPlatformChunk FINAL : public LChunk {
class LChunkBuilder FINAL : public LChunkBuilderBase {
public:
LChunkBuilder(CompilationInfo* info, HGraph* graph, LAllocator* allocator)
: LChunkBuilderBase(graph->zone()),
chunk_(NULL),
info_(info),
graph_(graph),
status_(UNUSED),
: LChunkBuilderBase(info, graph),
current_instruction_(NULL),
current_block_(NULL),
next_block_(NULL),
allocator_(allocator) { }
Isolate* isolate() const { return graph_->isolate(); }
allocator_(allocator) {}
// Build the sequence for the graph.
LPlatformChunk* Build();
......@@ -2800,24 +2794,6 @@ class LChunkBuilder FINAL : public LChunkBuilderBase {
LInstruction* DoFlooringDivI(HMathFloorOfDiv* instr);
private:
enum Status {
UNUSED,
BUILDING,
DONE,
ABORTED
};
LPlatformChunk* chunk() const { return chunk_; }
CompilationInfo* info() const { return info_; }
HGraph* graph() const { return graph_; }
bool is_unused() const { return status_ == UNUSED; }
bool is_building() const { return status_ == BUILDING; }
bool is_done() const { return status_ == DONE; }
bool is_aborted() const { return status_ == ABORTED; }
void Abort(BailoutReason reason);
// Methods for getting operands for Use / Define / Temp.
LUnallocated* ToUnallocated(Register reg);
LUnallocated* ToUnallocated(X87Register reg);
......@@ -2911,10 +2887,6 @@ class LChunkBuilder FINAL : public LChunkBuilderBase {
LOperand* GetStoreKeyedValueOperand(HStoreKeyed* instr);
LPlatformChunk* chunk_;
CompilationInfo* info_;
HGraph* const graph_;
Status status_;
HInstruction* current_instruction_;
HBasicBlock* current_block_;
HBasicBlock* next_block_;
......
......@@ -6,6 +6,7 @@
#define V8_X87_MACRO_ASSEMBLER_X87_H_
#include "src/assembler.h"
#include "src/bailout-reason.h"
#include "src/frames.h"
#include "src/globals.h"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment