mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-21 23:17:16 +00:00
Add bundle aware API for querying instruction properties and switch the code
generator to it. For non-bundle instructions, these behave exactly the same as the MC layer API. For properties like mayLoad / mayStore, look into the bundle and if any of the bundled instructions has the property it would return true. For properties like isPredicable, only return true if *all* of the bundled instructions have the property. For properties like canFoldAsLoad, isCompare, conservatively return false for bundles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146026 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -129,7 +129,7 @@ bool LiveRangeEdit::canRematerializeAt(Remat &RM,
|
||||
}
|
||||
|
||||
// If only cheap remats were requested, bail out early.
|
||||
if (cheapAsAMove && !RM.OrigMI->getDesc().isAsCheapAsAMove())
|
||||
if (cheapAsAMove && !RM.OrigMI->isAsCheapAsAMove())
|
||||
return false;
|
||||
|
||||
// Verify that all used registers are available with the same values.
|
||||
@@ -174,7 +174,7 @@ bool LiveRangeEdit::foldAsLoad(LiveInterval *LI,
|
||||
if (MO.isDef()) {
|
||||
if (DefMI && DefMI != MI)
|
||||
return false;
|
||||
if (!MI->getDesc().canFoldAsLoad())
|
||||
if (!MI->canFoldAsLoad())
|
||||
return false;
|
||||
DefMI = MI;
|
||||
} else if (!MO.isUndef()) {
|
||||
|
||||
Reference in New Issue
Block a user