repair x86 performance, dejagnu problems from previous change

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35245 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Dale Johannesen 2007-03-21 21:51:52 +00:00
parent 3070cd7e80
commit fa4bce2b76
6 changed files with 36 additions and 6 deletions

View File

@ -883,7 +883,8 @@ public:
/// isLegalAddressScaleAndImm - Return true if S works for IsLegalAddressScale
/// and GV works for isLegalAddressImmediate _and_ both can be applied
/// simultaneously to the same instruction.
virtual bool isLegalAddressScaleAndImm(int64_t S, GlobalValue *GV) const;
virtual bool isLegalAddressScaleAndImm(int64_t S, GlobalValue *GV,
const Type* Ty) const;
//===--------------------------------------------------------------------===//
// Div utility functions

View File

@ -1969,8 +1969,8 @@ bool TargetLowering::isLegalAddressScaleAndImm(int64_t S, int64_t V,
/// isLegalAddressScaleAndImm - Return true if S works for IsLegalAddressScale
/// and GV works for isLegalAddressImmediate _and_ both can be applied
/// simultaneously to the same instruction.
bool TargetLowering::isLegalAddressScaleAndImm(int64_t S,
GlobalValue *GV) const {
bool TargetLowering::isLegalAddressScaleAndImm(int64_t S, GlobalValue *GV,
const Type* Ty) const {
return false;
}

View File

@ -1392,8 +1392,8 @@ bool ARMTargetLowering::isLegalAddressScaleAndImm(int64_t S, int64_t V,
/// isLegalAddressScaleAndImm - Return true if S works for IsLegalAddressScale
/// and GV works for isLegalAddressImmediate _and_ both can be applied
/// simultaneously to the same instruction.
bool ARMTargetLowering::isLegalAddressScaleAndImm(int64_t S,
GlobalValue *GV) const {
bool ARMTargetLowering::isLegalAddressScaleAndImm(int64_t S, GlobalValue *GV,
const Type* Ty) const {
return false;
}

View File

@ -109,7 +109,8 @@ namespace llvm {
/// isLegalAddressScaleAndImm - Return true if S works for
/// IsLegalAddressScale and GV works for isLegalAddressImmediate _and_
/// both can be applied simultaneously to the same instruction.
virtual bool isLegalAddressScaleAndImm(int64_t S, GlobalValue *GV) const;
virtual bool isLegalAddressScaleAndImm(int64_t S, GlobalValue *GV,
const Type *Ty) const;
/// getPreIndexedAddressParts - returns true by value, base pointer and
/// offset pointer and addressing mode by reference if the node's address

View File

@ -4064,6 +4064,22 @@ bool X86TargetLowering::isLegalAddressScale(int64_t S, const Type *Ty) const {
}
}
/// isLegalAddressScaleAndImm - Return true if S works for IsLegalAddressScale
/// and V works for isLegalAddressImmediate _and_ both can be applied
/// simultaneously to the same instruction.
bool X86TargetLowering::isLegalAddressScaleAndImm(int64_t S, int64_t V,
const Type* Ty) const {
return isLegalAddressScale(S, Ty) && isLegalAddressImmediate(V, Ty);
}
/// isLegalAddressScaleAndImm - Return true if S works for IsLegalAddressScale
/// and GV works for isLegalAddressImmediate _and_ both can be applied
/// simultaneously to the same instruction.
bool X86TargetLowering::isLegalAddressScaleAndImm(int64_t S, GlobalValue *GV,
const Type* Ty) const {
return isLegalAddressScale(S, Ty) && isLegalAddressImmediate(GV);
}
/// isShuffleMaskLegal - Targets can use this to indicate that they only
/// support *some* VECTOR_SHUFFLE operations, those with specific masks.
/// By default, if a target supports the VECTOR_SHUFFLE node, all mask values

View File

@ -349,6 +349,18 @@ namespace llvm {
/// type.
virtual bool isLegalAddressScale(int64_t S, const Type *Ty) const;
/// isLegalAddressScaleAndImm - Return true if S works for
/// IsLegalAddressScale and V works for isLegalAddressImmediate _and_
/// both can be applied simultaneously to the same instruction.
virtual bool isLegalAddressScaleAndImm(int64_t S, int64_t V,
const Type *Ty) const;
/// isLegalAddressScaleAndImm - Return true if S works for
/// IsLegalAddressScale and GV works for isLegalAddressImmediate _and_
/// both can be applied simultaneously to the same instruction.
virtual bool isLegalAddressScaleAndImm(int64_t S, GlobalValue *GV,
const Type *Ty) const;
/// isShuffleMaskLegal - Targets can use this to indicate that they only
/// support *some* VECTOR_SHUFFLE operations, those with specific masks.
/// By default, if a target supports the VECTOR_SHUFFLE node, all mask