mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-28 03:25:23 +00:00
Start inferring side effect information more aggressively, and fix many bugs in the
x86 backend where instructions were not marked maystore/mayload, and perf issues where instructions were not marked neverHasSideEffects. It would be really nice if we could write patterns for copy instructions. I have audited all the x86 instructions down to MOVDQAmr. The flags on others and on other targets are probably not right in all cases, but no clients currently use this info that are enabled by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45829 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -340,6 +340,12 @@ ComplexPattern::ComplexPattern(Record *R) {
|
||||
Properties |= 1 << SDNPHasChain;
|
||||
} else if (PropList[i]->getName() == "SDNPOptInFlag") {
|
||||
Properties |= 1 << SDNPOptInFlag;
|
||||
} else if (PropList[i]->getName() == "SDNPMayStore") {
|
||||
Properties |= 1 << SDNPMayStore;
|
||||
} else if (PropList[i]->getName() == "SDNPMayLoad") {
|
||||
Properties |= 1 << SDNPMayLoad;
|
||||
} else if (PropList[i]->getName() == "SDNPSideEffect") {
|
||||
Properties |= 1 << SDNPSideEffect;
|
||||
} else {
|
||||
cerr << "Unsupported SD Node property '" << PropList[i]->getName()
|
||||
<< "' on ComplexPattern '" << R->getName() << "'!\n";
|
||||
|
Reference in New Issue
Block a user