From c289faf01559584be1ead2574631d54940a4dd4f Mon Sep 17 00:00:00 2001 From: Evan Cheng Date: Mon, 12 Mar 2007 23:37:10 +0000 Subject: [PATCH] More flexible TargetLowering LSR hooks for testing whether an immediate is a legal target address immediate or scale. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35076 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/SelectionDAG/TargetLowering.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/lib/CodeGen/SelectionDAG/TargetLowering.cpp b/lib/CodeGen/SelectionDAG/TargetLowering.cpp index 39f6fe79a97..faa50295690 100644 --- a/lib/CodeGen/SelectionDAG/TargetLowering.cpp +++ b/lib/CodeGen/SelectionDAG/TargetLowering.cpp @@ -1931,15 +1931,25 @@ getRegForInlineAsmConstraint(const std::string &Constraint, // Loop Strength Reduction hooks //===----------------------------------------------------------------------===// -/// isLegalAddressImmediate - Return true if the integer value or -/// GlobalValue can be used as the offset of the target addressing mode. -bool TargetLowering::isLegalAddressImmediate(int64_t V) const { +/// isLegalAddressImmediate - Return true if the integer value can be used as +/// the offset of the target addressing mode for load / store of the given +/// type. +bool TargetLowering::isLegalAddressImmediate(int64_t V, const Type *Ty) const { return false; } + +/// isLegalAddressImmediate - Return true if the GlobalValue can be used as +/// the offset of the target addressing mode. bool TargetLowering::isLegalAddressImmediate(GlobalValue *GV) const { return false; } +/// isLegalAddressScale - Return true if the integer value can be used as the +/// scale of the target addressing mode for load / store of the given type. +bool TargetLowering::isLegalAddressScale(int64_t S, const Type *Ty) const { + return false; +} + // Magic for divide replacement