llvm/llvm/unittests/CodeGen/InstrRefLDVTest.cpp

//===------------- llvm/unittest/CodeGen/InstrRefLDVTest.cpp --------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//

#include "llvm/CodeGen/MIRParser/MIRParser.h"
#include "llvm/CodeGen/MachineDominators.h"
#include "llvm/CodeGen/MachineModuleInfo.h"
#include "llvm/CodeGen/TargetFrameLowering.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "llvm/CodeGen/TargetLowering.h"
#include "llvm/CodeGen/TargetRegisterInfo.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/IR/DIBuilder.h"
#include "llvm/IR/DebugInfoMetadata.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/Module.h"
#include "llvm/MC/TargetRegistry.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/TargetSelect.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/Target/TargetOptions.h"

#include "../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h"

#include "gtest/gtest.h"

usingnamespacellvm;
usingnamespaceLiveDebugValues;

// Include helper functions to ease the manipulation of MachineFunctions
#include "MFCommon.inc"

class InstrRefLDVTest : public testing::Test {};

TEST_F(InstrRefLDVTest, MTransferDefs) {}

TEST_F(InstrRefLDVTest, MTransferMeta) {}

TEST_F(InstrRefLDVTest, MTransferCopies) {}

TEST_F(InstrRefLDVTest, MTransferSubregSpills) {}

TEST_F(InstrRefLDVTest, MLocSingleBlock) {}

TEST_F(InstrRefLDVTest, MLocDiamondBlocks) {}

TEST_F(InstrRefLDVTest, MLocDiamondSpills) {}

TEST_F(InstrRefLDVTest, MLocSimpleLoop) {}

TEST_F(InstrRefLDVTest, MLocNestedLoop) {}

TEST_F(InstrRefLDVTest, MLocNoDominatingLoop) {}

TEST_F(InstrRefLDVTest, MLocBadlyNestedLoops) {}

TEST_F(InstrRefLDVTest, pickVPHILocDiamond) {}

TEST_F(InstrRefLDVTest, pickVPHILocLoops) {}

TEST_F(InstrRefLDVTest, pickVPHILocBadlyNestedLoops) {}

TEST_F(InstrRefLDVTest, vlocJoinDiamond) {}

TEST_F(InstrRefLDVTest, vlocJoinLoops) {}

TEST_F(InstrRefLDVTest, vlocJoinBadlyNestedLoops) {}

// Above are tests for picking VPHI locations, and eliminating VPHIs. No
// unit-tests are written for evaluating the transfer function as that's
// pretty straight forwards, or applying VPHI-location-picking to live-ins.
// Instead, pre-set some machine locations and apply buildVLocValueMap to the
// existing CFG patterns.
TEST_F(InstrRefLDVTest, VLocSingleBlock) {}

TEST_F(InstrRefLDVTest, VLocDiamondBlocks) {}

TEST_F(InstrRefLDVTest, VLocSimpleLoop) {}

// test phi elimination with the nested situation
TEST_F(InstrRefLDVTest, VLocNestedLoop) {}