1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-12-26 18:29:54 +00:00

Merged master into branch.

Rolled back main mem only coalesce.
This commit is contained in:
jespergravgaard 2023-04-24 07:52:42 +02:00
parent 153ab54f10
commit ccf880e617
2 changed files with 2 additions and 4 deletions

View File

@ -96,9 +96,6 @@ public class KickC implements Callable<Integer> {
@CommandLine.Option(names = {"-Ocoalesce"}, description = "Optimization Option. Enables zero-page coalesce pass which limits zero-page usage significantly, but takes a lot of compile time.") @CommandLine.Option(names = {"-Ocoalesce"}, description = "Optimization Option. Enables zero-page coalesce pass which limits zero-page usage significantly, but takes a lot of compile time.")
private boolean optimizeZeroPageCoalesce = false; private boolean optimizeZeroPageCoalesce = false;
@CommandLine.Option(names = {"-Ofastcoalesce"}, description = "Optimization Option. Enables zero-page only coalesce, which reduces compile time significantly, but with less coalesce optimimzation.")
private boolean optimizeFastCoalesce = false;
@CommandLine.Option(names = {"-Onocoalesce"}, description = "Optimization Option. Disables coalesce completely, which reduces compile time significantly.") @CommandLine.Option(names = {"-Onocoalesce"}, description = "Optimization Option. Disables coalesce completely, which reduces compile time significantly.")
private boolean optimizeNoCoalesce = false; private boolean optimizeNoCoalesce = false;

View File

@ -156,7 +156,8 @@ public abstract class Pass4MemoryCoalesce extends Pass2Base {
// Check the both registers are in memory // Check the both registers are in memory
if(!register1.isMem() || !register2.isMem()) if(!register1.isMem() || !register2.isMem())
return false; return false;
if(register1.getType() == Registers.RegisterType.MAIN_MEM) // Check the both registers have the same type
if(!register1.getType().equals(register2.getType()))
return false; return false;
// Check the both registers have the same size // Check the both registers have the same size
if(register1.getBytes() != register2.getBytes()) if(register1.getBytes() != register2.getBytes())