Esempio n. 1
0
        private void RemoveDataflowAstNode(IDataflowAstNode dataflowAstNode)
        {
            var tupleBasicBlock = _astToBasicBlockMapping[dataflowAstNode];

            _astToBasicBlockMapping.Remove(dataflowAstNode);

            var tupleProvider = _tupleProviderManager[dataflowAstNode];

            tupleBasicBlock.Remove(tupleProvider.InlineTupleSequence);
            _prologueBasicBlock.Remove(tupleProvider.PrologueTupleSequence);
            _epilogueBasicBlock.Remove(tupleProvider.EpilogueTupleSequence);
        }
Esempio n. 2
0
        private void AddDataflowAstNode(IDataflowAstNode dataflowAstNode, BasicBlock <TupleSequence> tupleBasicBlock, bool preventMappingEmission)
        {
            _astToBasicBlockMapping[dataflowAstNode] = tupleBasicBlock;
            var tupleProvider = _tupleProviderManager[dataflowAstNode];

            var singleMappedInputTupleProvider = tupleProvider as SingleMappedInputTupleProvider;

            if (singleMappedInputTupleProvider != null)
            {
                singleMappedInputTupleProvider.PreventMappedInputTupleEmission = preventMappingEmission;
            }

            // TODO: Do I have to account for inserts here or can we canonicalize on add-to-the-end?
            tupleBasicBlock.Add(tupleProvider.InlineTupleSequence);
            _prologueBasicBlock.Add(tupleProvider.PrologueTupleSequence);
            _epilogueBasicBlock.Add(tupleProvider.EpilogueTupleSequence);
        }
Esempio n. 3
0
 private void AddDataflowAstNode(IDataflowAstNode dataflowAstNode, BasicBlock <TupleSequence> tupleBasicBlock)
 {
     AddDataflowAstNode(dataflowAstNode, tupleBasicBlock, false);
 }