Mercurial > hg > CbC > CbC_llvm
diff lib/Target/NVPTX/NVPTXLowerArgs.cpp @ 121:803732b1fca8
LLVM 5.0
author | kono |
---|---|
date | Fri, 27 Oct 2017 17:07:41 +0900 |
parents | 1172e4bd9c6f |
children | c2174574ed3a |
line wrap: on
line diff
--- a/lib/Target/NVPTX/NVPTXLowerArgs.cpp Fri Nov 25 19:14:25 2016 +0900 +++ b/lib/Target/NVPTX/NVPTXLowerArgs.cpp Fri Oct 27 17:07:41 2017 +0900 @@ -90,8 +90,8 @@ //===----------------------------------------------------------------------===// #include "NVPTX.h" +#include "NVPTXTargetMachine.h" #include "NVPTXUtilities.h" -#include "NVPTXTargetMachine.h" #include "llvm/Analysis/ValueTracking.h" #include "llvm/IR/Function.h" #include "llvm/IR/Instructions.h" @@ -159,11 +159,12 @@ assert(PType && "Expecting pointer type in handleByValParam"); Type *StructType = PType->getElementType(); - AllocaInst *AllocA = new AllocaInst(StructType, Arg->getName(), FirstInst); + unsigned AS = Func->getParent()->getDataLayout().getAllocaAddrSpace(); + AllocaInst *AllocA = new AllocaInst(StructType, AS, Arg->getName(), FirstInst); // Set the alignment to alignment of the byval parameter. This is because, // later load/stores assume that alignment, and we are going to replace // the use of the byval parameter with this alloca instruction. - AllocA->setAlignment(Func->getParamAlignment(Arg->getArgNo() + 1)); + AllocA->setAlignment(Func->getParamAlignment(Arg->getArgNo())); Arg->replaceAllUsesWith(AllocA); Value *ArgInParam = new AddrSpaceCastInst(