@@ -336,10 +336,6 @@ Address HexagonABIInfo::EmitVAArgForHexagonLinux(CodeGenFunction &CGF,
336
336
// Implement the block where argument is in register saved area
337
337
CGF.EmitBlock (InRegBlock);
338
338
339
- llvm::Type *PTy = CGF.ConvertType (Ty);
340
- llvm::Value *__saved_reg_area_p = CGF.Builder .CreateBitCast (
341
- __current_saved_reg_area_pointer, llvm::PointerType::getUnqual (PTy));
342
-
343
339
CGF.Builder .CreateStore (__new_saved_reg_area_pointer,
344
340
__current_saved_reg_area_pointer_p);
345
341
@@ -388,22 +384,16 @@ Address HexagonABIInfo::EmitVAArgForHexagonLinux(CodeGenFunction &CGF,
388
384
CGF.Builder .CreateStore (__new_overflow_area_pointer,
389
385
__current_saved_reg_area_pointer_p);
390
386
391
- // Bitcast the overflow area pointer to the type of argument.
392
- llvm::Type *OverflowPTy = CGF.ConvertTypeForMem (Ty);
393
- llvm::Value *__overflow_area_p = CGF.Builder .CreateBitCast (
394
- __overflow_area_pointer, llvm::PointerType::getUnqual (OverflowPTy));
395
-
396
387
CGF.EmitBranch (ContBlock);
397
-
398
388
// Get the correct pointer to load the variable argument
399
389
// Implement the ContBlock
400
390
CGF.EmitBlock (ContBlock);
401
391
402
392
llvm::Type *MemTy = CGF.ConvertTypeForMem (Ty);
403
- llvm::Type *MemPTy = llvm::PointerType::getUnqual (MemTy);
404
- llvm::PHINode *ArgAddr = CGF. Builder . CreatePHI (MemPTy , 2 , " vaarg.addr" );
405
- ArgAddr->addIncoming (__saved_reg_area_p , InRegBlock);
406
- ArgAddr->addIncoming (__overflow_area_p , OnStackBlock);
393
+ llvm::PHINode *ArgAddr = CGF. Builder . CreatePHI (
394
+ llvm::PointerType::getUnqual (MemTy-> getContext ()) , 2 , " vaarg.addr" );
395
+ ArgAddr->addIncoming (__current_saved_reg_area_pointer , InRegBlock);
396
+ ArgAddr->addIncoming (__overflow_area_pointer , OnStackBlock);
407
397
408
398
return Address (ArgAddr, MemTy, CharUnits::fromQuantity (ArgAlign));
409
399
}
0 commit comments