NVPTX: Stop leaking memory by using a managed constant instead of a new Argument.
authorBenjamin Kramer <benny.kra@googlemail.com>
Wed, 23 Jan 2013 15:21:44 +0000 (15:21 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Wed, 23 Jan 2013 15:21:44 +0000 (15:21 +0000)
This is still an egregious hack since we don't have a nice interface for this
kind of thing but should help the valgrind leak check buildbot to become green.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173267 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/NVPTX/NVPTXISelLowering.cpp

index b3ab9fc9d02a4c2bbb15ea16e77307b802c9d20e..2699cea8f66797537a9913589a8148d15ec4800b 100644 (file)
@@ -1027,9 +1027,11 @@ NVPTXTargetLowering::LowerFormalArguments(SDValue Chain,
       if (isABI || isKernel) {
         // If ABI, load from the param symbol
         SDValue Arg = getParamSymbol(DAG, idx);
-        Value *srcValue = new Argument(PointerType::get(ObjectVT.getTypeForEVT(
-            F->getContext()),
-            llvm::ADDRESS_SPACE_PARAM));
+        // Conjure up a value that we can get the address space from.
+        // FIXME: Using a constant here is a hack.
+        Value *srcValue = Constant::getNullValue(PointerType::get(
+                              ObjectVT.getTypeForEVT(F->getContext()),
+                              llvm::ADDRESS_SPACE_PARAM));
         SDValue p = DAG.getLoad(ObjectVT, dl, Root, Arg,
                                 MachinePointerInfo(srcValue), false, false,
                                 false,