mirror of
https://github.com/KarolS/millfork.git
synced 2025-02-08 00:30:38 +00:00
Tail-call optimization shouldn't move discard pseudoinstructions
This commit is contained in:
parent
7e04312462
commit
430051635d
@ -277,7 +277,7 @@ object AlwaysGoodOptimizations {
|
||||
|
||||
val TailCallOptimization = new RuleBasedAssemblyOptimization("Tail call optimization",
|
||||
needsFlowInfo = FlowInfoRequirement.NoRequirement,
|
||||
(Elidable & HasOpcode(JSR)) ~ HasOpcodeIn(NoopDiscardsFlags).* ~ (Elidable & HasOpcode(RTS)) ~~> (c => c.tail.init :+ c.head.copy(opcode = JMP)),
|
||||
(Elidable & HasOpcode(JSR)) ~ HasOpcodeIn(NoopDiscardsFlags).* ~ (Elidable & HasOpcode(RTS)) ~~> (c => c.head.copy(opcode = JMP) :: Nil),
|
||||
(Elidable & HasOpcode(JSR)) ~
|
||||
HasOpcode(LABEL).* ~
|
||||
HasOpcodeIn(NoopDiscardsFlags).*.capture(0) ~
|
||||
|
Loading…
x
Reference in New Issue
Block a user