SystemZISelLowering.cpp revision 4403b930f867f61b48304a23a6843026b0b9a32a
1//===-- SystemZISelLowering.cpp - SystemZ DAG Lowering Implementation  -----==//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10// This file implements the SystemZTargetLowering class.
11//
12//===----------------------------------------------------------------------===//
13
14#define DEBUG_TYPE "systemz-lower"
15
16#include "SystemZISelLowering.h"
17#include "SystemZ.h"
18#include "SystemZTargetMachine.h"
19#include "SystemZSubtarget.h"
20#include "llvm/DerivedTypes.h"
21#include "llvm/Function.h"
22#include "llvm/Intrinsics.h"
23#include "llvm/CallingConv.h"
24#include "llvm/GlobalVariable.h"
25#include "llvm/GlobalAlias.h"
26#include "llvm/CodeGen/CallingConvLower.h"
27#include "llvm/CodeGen/MachineFrameInfo.h"
28#include "llvm/CodeGen/MachineFunction.h"
29#include "llvm/CodeGen/MachineInstrBuilder.h"
30#include "llvm/CodeGen/MachineRegisterInfo.h"
31#include "llvm/CodeGen/PseudoSourceValue.h"
32#include "llvm/CodeGen/SelectionDAGISel.h"
33#include "llvm/CodeGen/ValueTypes.h"
34#include "llvm/Support/Debug.h"
35#include "llvm/ADT/VectorExtras.h"
36using namespace llvm;
37
38SystemZTargetLowering::SystemZTargetLowering(SystemZTargetMachine &tm) :
39  TargetLowering(tm), Subtarget(*tm.getSubtargetImpl()), TM(tm) {
40
41  // Set up the register classes.
42  addRegisterClass(MVT::i64, SystemZ::GR64RegisterClass);
43
44  // Compute derived properties from the register classes
45  computeRegisterProperties();
46
47  // Provide all sorts of operation actions
48
49  setStackPointerRegisterToSaveRestore(SystemZ::R15);
50  setSchedulingPreference(SchedulingForLatency);
51}
52
53SDValue SystemZTargetLowering::LowerOperation(SDValue Op, SelectionDAG &DAG) {
54  switch (Op.getOpcode()) {
55  default:
56    assert(0 && "unimplemented operand");
57    return SDValue();
58  }
59}
60
61//===----------------------------------------------------------------------===//
62//                      Calling Convention Implementation
63//===----------------------------------------------------------------------===//
64
65#include "SystemZGenCallingConv.inc"
66
67const char *SystemZTargetLowering::getTargetNodeName(unsigned Opcode) const {
68  switch (Opcode) {
69  default: return NULL;
70  }
71}
72
73