summaryrefslogtreecommitdiff
path: root/include/llvm/Operator.h
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2009-07-20 17:43:30 +0000
committerDan Gohman <gohman@apple.com>2009-07-20 17:43:30 +0000
commitf2411744214dad8c71044aac2977ca77e9ebf028 (patch)
treeab9b1cf7ba93de491166ef4b814f9b673ad8f2ae /include/llvm/Operator.h
parent8f4e22ff9a17b750fef179ed1572e9bfd01ed9a2 (diff)
downloadllvm-f2411744214dad8c71044aac2977ca77e9ebf028.tar.gz
llvm-f2411744214dad8c71044aac2977ca77e9ebf028.tar.bz2
llvm-f2411744214dad8c71044aac2977ca77e9ebf028.tar.xz
Revert the addition of hasNoPointerOverflow to GEPOperator.
Getelementptrs that are defined to wrap are virtually useless to optimization, and getelementptrs that are undefined on any kind of overflow are too restrictive -- it's difficult to ensure that all intermediate addresses are within bounds. I'm going to take a different approach. Remove a few optimizations that depended on this flag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76437 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Operator.h')
-rw-r--r--include/llvm/Operator.h18
1 files changed, 0 insertions, 18 deletions
diff --git a/include/llvm/Operator.h b/include/llvm/Operator.h
index 2f9f9ca12c..a26d940079 100644
--- a/include/llvm/Operator.h
+++ b/include/llvm/Operator.h
@@ -171,24 +171,6 @@ public:
return true;
}
- /// hasNoPointerOverflow - Return true if this GetElementPtr is known to
- /// never have overflow in the pointer addition portions of its effective
- /// computation. GetElementPtr computation involves several phases;
- /// overflow can be considered to occur in index typecasting, array index
- /// scaling, and the addition of the base pointer with offsets. This flag
- /// only applies to the last of these. The operands are added to the base
- /// pointer one at a time from left to right. This function returns false
- /// if any of these additions results in an address value which is not
- /// known to be within the allocated address space that the base pointer
- /// points into, or within one element (of the original allocation) past
- /// the end.
- bool hasNoPointerOverflow() const {
- return SubclassOptionalData & (1 << 0);
- }
- void setHasNoPointerOverflow(bool B) {
- SubclassOptionalData = (SubclassOptionalData & ~(1 << 0)) | (B << 0);
- }
-
// Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const GEPOperator *) { return true; }
static inline bool classof(const GetElementPtrInst *) { return true; }