Skip to content

Commit

Permalink
Fix incorrect IR generation for built-in arrays
Browse files Browse the repository at this point in the history
  • Loading branch information
MatwayBurkow committed Jun 18, 2020
1 parent e00c6f7 commit a150a50
Showing 1 changed file with 15 additions and 8 deletions.
23 changes: 15 additions & 8 deletions irWriter.mpl
Original file line number Diff line number Diff line change
Expand Up @@ -303,16 +303,16 @@ createGEPInsteadOfAlloc: [
];

createStoreFromRegisterToRegister: [
regName: destRegName: regType: processor: block: ;;;;;
(" store " regType @processor getNameById " " @regName @processor getNameById ", " regType @processor getNameById "* " destRegName @processor getNameById) @block appendInstruction
regNameId: destRegNameId: regType: processor: block: ;;;;;
(" store " regType @processor getNameById " " @regNameId @processor getNameById ", " regType @processor getNameById "* " destRegNameId @processor getNameById) @block appendInstruction

regName @[email protected].@irName1 set
destRegName @[email protected].@irName2 set
regNameId @[email protected].@irName1 set
destRegNameId @[email protected].@irName2 set
];

createStoreFromRegister: [
regName: destRefToVar: processor: block: ;;;;
regName destRefToVar getVar.irNameId destRefToVar @processor getMplSchema.irTypeId @processor @block createStoreFromRegisterToRegister
regNameId: destRefToVar: processor: block: ;;;;
regNameId destRefToVar getVar.irNameId destRefToVar @processor getMplSchema.irTypeId @processor @block createStoreFromRegisterToRegister
];

getValueOrDeref: [
Expand Down Expand Up @@ -427,8 +427,15 @@ createCheckedCopyToNewWith: [
] if
doDie [dstRef @[email protected]] when
] [
loadReg: srcRef @processor @block createDerefToRegister;
loadReg dstRef @processor @block createStoreFromRegister
srcRef isPlain [srcRef staticityOfVar Dynamic >] && [
srcRef dstRef @processor @block createStoreConstant
] [
@srcRef @processor @block makeVarRealCaptured
loadReg: srcRef @processor @block createDerefToRegister;
loadReg dstRef @processor @block createStoreFromRegister
] if

@dstRef makeVarPtrCaptured
] if
];

Expand Down

0 comments on commit a150a50

Please sign in to comment.