Make GetElementPtr ConstantExprs default to having no pointer overflow.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76280 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Dan Gohman 2009-07-18 01:49:22 +00:00
parent 3837b64f41
commit 5a206ee7ed

View File

@ -18,6 +18,7 @@
#include "llvm/Instructions.h"
#include "llvm/MDNode.h"
#include "llvm/Module.h"
#include "llvm/Operator.h"
#include "llvm/ADT/FoldingSet.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringMap.h"
@ -474,8 +475,11 @@ public:
static GetElementPtrConstantExpr *Create(Constant *C,
const std::vector<Constant*>&IdxList,
const Type *DestTy) {
return new(IdxList.size() + 1)
GetElementPtrConstantExpr *Result = new(IdxList.size() + 1)
GetElementPtrConstantExpr(C, IdxList, DestTy);
// Getelementptr defaults to having no pointer overflow.
cast<GEPOperator>(Result)->setHasNoPointerOverflow(true);
return Result;
}
/// Transparently provide more efficient getOperand methods.
DECLARE_TRANSPARENT_OPERAND_ACCESSORS(Value);