- Timestamp:
- Aug 30, 2014, 10:42:34 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
proto/s2k/trunk/framework/src/toolchain/s2k/transformer/visitors/S2K2S2K/TempifyCarrySetBuiltinCalls.java
r4020 r4101 1 1 /* 2 * Converts carry generating builtins expressions to compiled form.2 * Converts carry generating builtins expressions to a compiled form. 3 3 * Applied before carry variable insertion. 4 4 * … … 53 53 import toolchain.s2k.ast.Generators; 54 54 import toolchain.s2k.lang.builtin.S2KBuiltinsUtil; 55 import toolchain.s2k.lang.builtin.S2KBuiltins.CarryType; 55 56 import toolchain.util.Labeller; 56 57 import toolchain.util.Pair; 58 import static toolchain.s2k.lang.signatures.SignatureShorthand.sig_II_S; 59 import static toolchain.s2k.lang.signatures.SignatureShorthand.sig_ST_V; 60 import static toolchain.s2k.lang.signatures.SignatureShorthand.sig_S_S; 57 61 import static toolchain.util.MapUtil.*; 58 62 … … 132 136 133 137 134 if(S2KBuiltinsUtil.isCarry(node)) { 138 if(S2KBuiltinsUtil.isCarry(node)) { // KH: bug to fix 135 139 136 140 if(!(node.getParent() instanceof AssignNode)) { … … 151 155 } 152 156 157 public void visitLeave(IdisaFuncCallNode node) { 158 if(!(node.getParent() instanceof AssignNode)) { 159 160 BlockStmtNode blockStmt = Accessors.getEnclosingBlockStmt(node); 161 Locator locator = blockStmt; 162 IdentifierNode name = Generators.makeIdentifierNode(locator, labeller.newLabel()); 163 StreamTypeNode type = Generators.makeStreamType(locator); 164 VarDeclNode varDecl = Generators.makeVarDeclNode(locator, type, name.deepCopy()); 165 AssignNode assignStmt = Generators.makeAssignNode(locator, name.deepCopy(), node.deepCopy()); 166 167 addValueToList(enclBlockStmtTempDecls, blockStmt, varDecl); 168 addValueToList(enclBlockStmtTempAssigns, blockStmt, assignStmt); 169 170 node.updateSelf(name); 171 } 172 } 173 153 174 ////////////////////////////////////////////////////////////// 154 175 // helpers
Note: See TracChangeset
for help on using the changeset viewer.