aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/CodeGen/SelectionDAG/TargetLowering.cpp2
-rw-r--r--lib/Target/X86/X86ISelPattern.cpp5
2 files changed, 7 insertions, 0 deletions
diff --git a/lib/CodeGen/SelectionDAG/TargetLowering.cpp b/lib/CodeGen/SelectionDAG/TargetLowering.cpp
index 7d720f149f..46ac8e9633 100644
--- a/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+++ b/lib/CodeGen/SelectionDAG/TargetLowering.cpp
@@ -27,6 +27,8 @@ TargetLowering::TargetLowering(TargetMachine &tm)
ShiftAmountTy = SetCCResultTy = PointerTy = getValueType(TD.getIntPtrType());
ShiftAmtHandling = Undefined;
memset(RegClassForVT, 0,MVT::LAST_VALUETYPE*sizeof(TargetRegisterClass*));
+ maxStoresPerMemSet = maxStoresPerMemCpy = maxStoresPerMemMove = 0;
+ allowUnalignedStores = false;
}
TargetLowering::~TargetLowering() {}
diff --git a/lib/Target/X86/X86ISelPattern.cpp b/lib/Target/X86/X86ISelPattern.cpp
index 999f089395..29e088ef76 100644
--- a/lib/Target/X86/X86ISelPattern.cpp
+++ b/lib/Target/X86/X86ISelPattern.cpp
@@ -189,6 +189,11 @@ namespace {
addLegalFPImmediate(-1.0); // FLD1/FCHS
}
computeRegisterProperties();
+
+ maxStoresPerMemSet = 8; // For %llvm.memset -> sequence of stores
+ maxStoresPerMemCpy = 8; // For %llvm.memcpy -> sequence of stores
+ maxStoresPerMemMove = 8; // For %llvm.memmove -> sequence of stores
+ allowUnalignedStores = true; // x86 supports it!
}
// Return the number of bytes that a function should pop when it returns (in