mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-27 00:21:03 +00:00
For PR950:
The long awaited CAST patch. This introduces 12 new instructions into LLVM to replace the cast instruction. Corresponding changes throughout LLVM are provided. This passes llvm-test, llvm/test, and SPEC CPUINT2000 with the exception of 175.vpr which fails only on a slight floating point output difference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31931 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -113,8 +113,10 @@ void BVNImpl::visitCastInst(CastInst &CI) {
|
||||
for (Value::use_iterator UI = Op->use_begin(), UE = Op->use_end();
|
||||
UI != UE; ++UI)
|
||||
if (CastInst *Other = dyn_cast<CastInst>(*UI))
|
||||
// Check that the types are the same, since this code handles casts...
|
||||
if (Other->getType() == I.getType() &&
|
||||
// Check that the opcode is the same
|
||||
if (Other->getOpcode() == Instruction::CastOps(I.getOpcode()) &&
|
||||
// Check that the destination types are the same
|
||||
Other->getType() == I.getType() &&
|
||||
// Is it embedded in the same function? (This could be false if LHS
|
||||
// is a constant or global!)
|
||||
Other->getParent()->getParent() == F &&
|
||||
|
Reference in New Issue
Block a user