[llvm-commits] [llvm] r107670 - /llvm/trunk/lib/CodeGen/StackProtector.cpp

Chris Lattner sabre at nondot.org
Tue Jul 6 08:59:27 PDT 2010


Author: lattner
Date: Tue Jul  6 10:59:27 2010
New Revision: 107670

URL: http://llvm.org/viewvc/llvm-project?rev=107670&view=rev
Log:
tighten up this code.

Modified:
    llvm/trunk/lib/CodeGen/StackProtector.cpp

Modified: llvm/trunk/lib/CodeGen/StackProtector.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/StackProtector.cpp?rev=107670&r1=107669&r2=107670&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/StackProtector.cpp (original)
+++ llvm/trunk/lib/CodeGen/StackProtector.cpp Tue Jul  6 10:59:27 2010
@@ -153,21 +153,16 @@
       //     StackGuard = load __stack_chk_guard
       //     call void @llvm.stackprotect.create(StackGuard, StackGuardSlot)
       // 
-      PointerType *PtrTy = PointerType::getUnqual(
-          Type::getInt8Ty(RI->getContext()));
-
+      const PointerType *PtrTy = Type::getInt8PtrTy(RI->getContext());
       unsigned AddressSpace, Offset;
       if (TLI->getStackCookieLocation(AddressSpace, Offset)) {
-        Constant *ASPtr = Constant::getNullValue(
-            PointerType::get(Type::getInt8Ty(RI->getContext()), AddressSpace));
-        APInt OffsetInt(32, Offset);
-        Constant *OffsetVal = Constant::getIntegerValue(
-            Type::getInt32Ty(RI->getContext()), OffsetInt);
-        StackGuardVar = ConstantExpr::getPointerCast(
-            ConstantExpr::getGetElementPtr(ASPtr, &OffsetVal, 1),
-            PointerType::get(PtrTy, AddressSpace));
+        Constant *OffsetVal =
+          ConstantInt::get(Type::getInt32Ty(RI->getContext()), Offset);
+        
+        StackGuardVar = ConstantExpr::getIntToPtr(OffsetVal,
+                                      PointerType::get(PtrTy, AddressSpace));
       } else {
-          StackGuardVar = M->getOrInsertGlobal("__stack_chk_guard", PtrTy); 
+        StackGuardVar = M->getOrInsertGlobal("__stack_chk_guard", PtrTy); 
       }
 
       BasicBlock &Entry = F->getEntryBlock();





More information about the llvm-commits mailing list