chromium/v8/src/compiler/backend/move-optimizer.cc

// Copyright 2014 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "src/compiler/backend/move-optimizer.h"

#include "src/codegen/register-configuration.h"

namespace v8 {
namespace internal {
namespace compiler {

namespace {

struct MoveKey {};

class OperandSet {};

int FindFirstNonEmptySlot(const Instruction* instr) {}

}  // namespace

MoveOptimizer::MoveOptimizer(Zone* local_zone, InstructionSequence* code)
    :{}

void MoveOptimizer::Run() {}

void MoveOptimizer::RemoveClobberedDestinations(Instruction* instruction) {}

void MoveOptimizer::MigrateMoves(Instruction* to, Instruction* from) {}

void MoveOptimizer::CompressMoves(ParallelMove* left, MoveOpVector* right) {}

void MoveOptimizer::CompressGaps(Instruction* instruction) {}

void MoveOptimizer::CompressBlock(InstructionBlock* block) {}

const Instruction* MoveOptimizer::LastInstruction(
    const InstructionBlock* block) const {}

void MoveOptimizer::OptimizeMerge(InstructionBlock* block) {}

namespace {

bool IsSlot(const InstructionOperand& op) {}

bool Is64BitsWide(const InstructionOperand& op) {}

bool LoadCompare(const MoveOperands* a, const MoveOperands* b) {}

}  // namespace

// Split multiple loads of the same constant or stack slot off into the second
// slot and keep remaining moves in the first slot.
void MoveOptimizer::FinalizeMoves(Instruction* instr) {}

}  // namespace compiler
}  // namespace internal
}  // namespace v8