mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-13 08:25:27 +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:
@@ -410,7 +410,7 @@ static bool ElementTypesAreCompatible(const Type *T1, const Type *T2,
|
||||
|
||||
const Type *T1 = T1W.getCurrentType();
|
||||
const Type *T2 = T2W.getCurrentType();
|
||||
if (T1 != T2 && !T1->isLosslesslyConvertibleTo(T2))
|
||||
if (T1 != T2 && !T1->canLosslesslyBitCastTo(T2))
|
||||
return false;
|
||||
|
||||
T1W.StepToNextType();
|
||||
@@ -701,7 +701,7 @@ bool DSNode::mergeTypeInfo(const Type *NewTy, unsigned Offset,
|
||||
// Check to see if we have a compatible, but different type...
|
||||
if (NewTySize == SubTypeSize) {
|
||||
// Check to see if this type is obviously convertible... int -> uint f.e.
|
||||
if (NewTy->isLosslesslyConvertibleTo(SubType))
|
||||
if (NewTy->canLosslesslyBitCastTo(SubType))
|
||||
return false;
|
||||
|
||||
// Check to see if we have a pointer & integer mismatch going on here,
|
||||
|
Reference in New Issue
Block a user