1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 03:23:01 +02:00

repair x86 performance, dejagnu problems from previous change

llvm-svn: 35245
This commit is contained in:
Dale Johannesen 2007-03-21 21:51:52 +00:00
parent c0842af02d
commit 44c0a5d545
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