summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: dcac152)
raw | patch | inline | side by side (parent: dcac152)
author | Rafael Espindola <rafael.espindola@gmail.com> | |
Wed, 4 Jun 2014 19:01:48 +0000 (19:01 +0000) | ||
committer | Rafael Espindola <rafael.espindola@gmail.com> | |
Wed, 4 Jun 2014 19:01:48 +0000 (19:01 +0000) |
Thanks to rnk for the suggestion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210205 91177308-0d34-0410-b5e6-96231b3b80d8
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210205 91177308-0d34-0410-b5e6-96231b3b80d8
index f03e3dd455370800233f874500cd30c1928d4235..39c7c37dafd5f9739ff0359d44294d3baa2916ce 100644 (file)
/// that want to check to see if a global is unused, but don't want to deal
/// with potentially dead constants hanging off of the globals.
void removeDeadConstantUsers() const;
+
+ Constant *stripPointerCasts() {
+ return cast<Constant>(Value::stripPointerCasts());
+ }
+
+ const Constant *stripPointerCasts() const {
+ return const_cast<Constant*>(this)->stripPointerCasts();
+ }
};
} // End llvm namespace
index 0ac1cb56aa2f745b11801978c2e31acad94aced2..f1294dea97877fac5a6458e299e37198cf9db1cb 100644 (file)
static Constant* StripPtrCastKeepAS(Constant* Ptr) {
assert(Ptr->getType()->isPointerTy() && "Not a pointer type");
PointerType *OldPtrTy = cast<PointerType>(Ptr->getType());
- Ptr = cast<Constant>(Ptr->stripPointerCasts());
+ Ptr = Ptr->stripPointerCasts();
PointerType *NewPtrTy = cast<PointerType>(Ptr->getType());
// Preserve the address space number of the pointer.
index f1c3bb274e8604fd0a2f73c427e7621e26ec1deb..748705519040d750cd8cdc1888accaa87f0b6824 100644 (file)
//
static GlobalObject *getSimpleAliasee(Constant *C) {
- C = cast<Constant>(C->stripPointerCasts());
+ C = C->stripPointerCasts();
return dyn_cast<GlobalObject>(C);
}
diff --git a/lib/Transforms/InstCombine/InstructionCombining.cpp b/lib/Transforms/InstCombine/InstructionCombining.cpp
index 0fffc5a154815131eeb0cacea5d8e2ea660723a2..991ad796a7e3b95b406519d1808f7f79f54015f4 100644 (file)
if (LI.isCatch(i)) {
// A catch clause.
Constant *CatchClause = LI.getClause(i);
- Constant *TypeInfo = cast<Constant>(CatchClause->stripPointerCasts());
+ Constant *TypeInfo = CatchClause->stripPointerCasts();
// If we already saw this clause, there is no point in having a second
// copy of it.
// catch-alls. If so, the filter can be discarded.
bool SawCatchAll = false;
for (unsigned j = 0; j != NumTypeInfos; ++j) {
- Value *Elt = Filter->getOperand(j);
- Constant *TypeInfo = cast<Constant>(Elt->stripPointerCasts());
+ Constant *Elt = Filter->getOperand(j);
+ Constant *TypeInfo = Elt->stripPointerCasts();
if (isCatchAll(Personality, TypeInfo)) {
// This element is a catch-all. Bail out, noting this fact.
SawCatchAll = true;