mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-24 21:14:56 +00:00
Reuse earlier variables to make it clear the types involved in the cast.
No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204732 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
33ffbdf057
commit
902c799d96
@ -521,15 +521,14 @@ static Instruction *InstCombineStoreToCast(InstCombiner &IC, StoreInst &SI) {
|
||||
// the same size. Instead of casting the pointer before
|
||||
// the store, cast the value to be stored.
|
||||
Value *NewCast;
|
||||
Value *SIOp0 = SI.getOperand(0);
|
||||
Instruction::CastOps opcode = Instruction::BitCast;
|
||||
Type* CastSrcTy = SIOp0->getType();
|
||||
Type* CastSrcTy = DestPTy;
|
||||
Type* CastDstTy = SrcPTy;
|
||||
if (CastDstTy->isPointerTy()) {
|
||||
if (CastSrcTy->isIntegerTy())
|
||||
opcode = Instruction::IntToPtr;
|
||||
} else if (CastDstTy->isIntegerTy()) {
|
||||
if (SIOp0->getType()->isPointerTy())
|
||||
if (CastSrcTy->isPointerTy())
|
||||
opcode = Instruction::PtrToInt;
|
||||
}
|
||||
|
||||
@ -538,6 +537,7 @@ static Instruction *InstCombineStoreToCast(InstCombiner &IC, StoreInst &SI) {
|
||||
if (!NewGEPIndices.empty())
|
||||
CastOp = IC.Builder->CreateInBoundsGEP(CastOp, NewGEPIndices);
|
||||
|
||||
Value *SIOp0 = SI.getOperand(0);
|
||||
NewCast = IC.Builder->CreateCast(opcode, SIOp0, CastDstTy,
|
||||
SIOp0->getName()+".c");
|
||||
SI.setOperand(0, NewCast);
|
||||
|
Loading…
Reference in New Issue
Block a user