blob: cee736bd716809b2cc7316c2997de9fdcba26cf9 [file] [log] [blame]
Nadav Rotemcbd9a192012-10-18 23:22:48 +00001// llvm/Target/TargetTransformImpl.cpp - Target Loop Trans Info ---*- C++ -*-=//
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#include "llvm/Target/TargetTransformImpl.h"
11#include "llvm/Target/TargetLowering.h"
12
13using namespace llvm;
14
Nadav Rotem27048342012-10-24 17:22:41 +000015//===----------------------------------------------------------------------===//
16//
17// Calls used by scalar transformations.
18//
19//===----------------------------------------------------------------------===//
20
Nadav Rotemcbd9a192012-10-18 23:22:48 +000021bool ScalarTargetTransformImpl::isLegalAddImmediate(int64_t imm) const {
22 return TLI->isLegalAddImmediate(imm);
23}
24
25bool ScalarTargetTransformImpl::isLegalICmpImmediate(int64_t imm) const {
26 return TLI->isLegalICmpImmediate(imm);
27}
28
29bool ScalarTargetTransformImpl::isLegalAddressingMode(const AddrMode &AM,
30 Type *Ty) const {
31 return TLI->isLegalAddressingMode(AM, Ty);
32}
33
34bool ScalarTargetTransformImpl::isTruncateFree(Type *Ty1, Type *Ty2) const {
35 return TLI->isTruncateFree(Ty1, Ty2);
36}
37
38bool ScalarTargetTransformImpl::isTypeLegal(Type *Ty) const {
39 EVT T = TLI->getValueType(Ty);
40 return TLI->isTypeLegal(T);
41}
42
43unsigned ScalarTargetTransformImpl::getJumpBufAlignment() const {
44 return TLI->getJumpBufAlignment();
45}
46
47unsigned ScalarTargetTransformImpl::getJumpBufSize() const {
48 return TLI->getJumpBufSize();
49}
Nadav Rotem27048342012-10-24 17:22:41 +000050
51//===----------------------------------------------------------------------===//
52//
53// Calls used by the vectorizers.
54//
55//===----------------------------------------------------------------------===//
56
57unsigned
58VectorTargetTransformImpl::getInstrCost(unsigned Opcode, Type *Ty1,
59 Type *Ty2) const {
60 return 1;
61}
62
63unsigned
64VectorTargetTransformImpl::getBroadcastCost(Type *Tp) const {
65 return 1;
66}
67
68unsigned
69VectorTargetTransformImpl::getMemoryOpCost(unsigned Opcode, Type *Src,
70 unsigned Alignment,
71 unsigned AddressSpace) const {
72 return 1;
73}