mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-17 00:27:31 +00:00
While lowering dbg_declare, emit DBG_VALUE machine instruction if alloca matching llvm.dbg.declare intrinsic is missing.
llvm-svn: 102513
This commit is contained in:
parent
bf2915f891
commit
181c86e4e7
@ -342,17 +342,17 @@ bool FastISel::SelectCall(const User *I) {
|
||||
// Don't handle byval struct arguments or VLAs, for example.
|
||||
// Note that if we have a byval struct argument, fast ISel is turned off;
|
||||
// those are handled in SelectionDAGBuilder.
|
||||
if (!AI) break;
|
||||
DenseMap<const AllocaInst*, int>::iterator SI =
|
||||
StaticAllocaMap.find(AI);
|
||||
if (SI == StaticAllocaMap.end()) break; // VLAs.
|
||||
int FI = SI->second;
|
||||
if (!DI->getDebugLoc().isUnknown())
|
||||
MF.getMMI().setVariableDbgInfo(DI->getVariable(), FI, DI->getDebugLoc());
|
||||
|
||||
// Building the map above is target independent. Generating DBG_VALUE
|
||||
// inline is target dependent; do this now.
|
||||
(void)TargetSelectInstruction(cast<Instruction>(I));
|
||||
if (AI) {
|
||||
DenseMap<const AllocaInst*, int>::iterator SI =
|
||||
StaticAllocaMap.find(AI);
|
||||
if (SI == StaticAllocaMap.end()) break; // VLAs.
|
||||
int FI = SI->second;
|
||||
if (!DI->getDebugLoc().isUnknown())
|
||||
MF.getMMI().setVariableDbgInfo(DI->getVariable(), FI, DI->getDebugLoc());
|
||||
} else
|
||||
// Building the map above is target independent. Generating DBG_VALUE
|
||||
// inline is target dependent; do this now.
|
||||
(void)TargetSelectInstruction(cast<Instruction>(I));
|
||||
return true;
|
||||
}
|
||||
case Intrinsic::dbg_value: {
|
||||
|
Loading…
Reference in New Issue
Block a user