X-Git-Url: https://scm.cri.ensmp.fr/git/Faustine.git/blobdiff_plain/c7f552fd8888da2f0d8cfb228fe0f28d3df3a12c..b4b6f2ea75b9f0f3ca918f5b84016610bf7a4d4f:/interpretor/faust-0.9.47mr3/compiler/generator/compile_scal.hh diff --git a/interpretor/faust-0.9.47mr3/compiler/generator/compile_scal.hh b/interpretor/faust-0.9.47mr3/compiler/generator/compile_scal.hh deleted file mode 100644 index 8ca2361..0000000 --- a/interpretor/faust-0.9.47mr3/compiler/generator/compile_scal.hh +++ /dev/null @@ -1,160 +0,0 @@ -/************************************************************************ - ************************************************************************ - FAUST compiler - Copyright (C) 2003-2004 GRAME, Centre National de Creation Musicale - --------------------------------------------------------------------- - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - ************************************************************************ - ************************************************************************/ - - - -#ifndef _COMPILE_SCAL_ -#define _COMPILE_SCAL_ - -#include -#include "compile.hh" -#include "sigtyperules.hh" -#include "sigraterules.hh" -#include "occurences.hh" -#include "property.hh" - -//////////////////////////////////////////////////////////////////////// -/** - * Compile a list of FAUST signals into a scalar C++ class - */ -/////////////////////////////////////////////////////////////////////// - -class ScalarCompiler : public Compiler -{ - protected: - property fCompileProperty; - property fVectorProperty; - property > fStaticInitProperty; // property added to solve 20101208 kjetil bug - property > fInstanceInitProperty; // property added to solve 20101208 kjetil bug - - static map fIDCounters; - Tree fSharingKey; - OccMarkup fOccMarkup; - bool fHasIota; - - RateInferrer* fRates; - - public: - - ScalarCompiler ( const string& name, const string& super, int numInputs, int numOutputs) : - Compiler(name,super,numInputs,numOutputs,false), - fHasIota(false), - fRates(0) - {} - - ScalarCompiler ( Klass* k) : - Compiler(k), - fHasIota(false) - {} - - virtual void compileMultiSignal (Tree lsig); - virtual void compileSingleSignal (Tree lsig); - - - protected: - - virtual string CS (Tree sig); - virtual string generateCode (Tree sig); - virtual string generateCacheCode(Tree sig, const string& exp) ; - - virtual string generateVariableStore(Tree sig, const string& exp); - - string getFreshID (const string& prefix); - - void compilePreparedSignalList (Tree lsig); - Tree prepare(Tree L0); - Tree prepare2 (Tree L0); - - - bool getCompiledExpression(Tree sig, string& name); - string setCompiledExpression(Tree sig, const string& name); - - void setVectorNameProperty(Tree sig, const string& vecname); - bool getVectorNameProperty(Tree sig, string& vecname); - - int getSharingCount(Tree t); - void setSharingCount(Tree t, int count); - void sharingAnalysis(Tree t); - void sharingAnnotation(int vctxt, Tree t); - - - // generation du code - - string generateXtended (Tree sig); - virtual string generateFixDelay (Tree sig, Tree arg, Tree size); - string generatePrefix (Tree sig, Tree x, Tree e); - string generateIota (Tree sig, Tree arg); - string generateBinOp (Tree sig, int opcode, Tree arg1, Tree arg2); - - string generateFFun (Tree sig, Tree ff, Tree largs); - - string generateInput (Tree sig, const string& idx); - string generateOutput (Tree sig, const string& idx, const string& arg1); - - string generateTable (Tree sig, Tree tsize, Tree content); - string generateStaticTable (Tree sig, Tree tsize, Tree content); - string generateWRTbl (Tree sig, Tree tbl, Tree idx, Tree data); - string generateRDTbl (Tree sig, Tree tbl, Tree idx); - string generateSigGen (Tree sig, Tree content); - string generateStaticSigGen(Tree sig, Tree content); - - string generateSelect2 (Tree sig, Tree sel, Tree s1, Tree s2); - string generateSelect3 (Tree sig, Tree sel, Tree s1, Tree s2, Tree s3); - - string generateRecProj (Tree sig, Tree exp, int i); - void generateRec (Tree sig, Tree var, Tree le); - - string generateIntCast (Tree sig, Tree x); - string generateFloatCast (Tree sig, Tree x); - - string generateButton (Tree sig, Tree label); - string generateCheckbox (Tree sig, Tree label); - string generateVSlider (Tree sig, Tree label, Tree cur, Tree min, Tree max, Tree step); - string generateHSlider (Tree sig, Tree label, Tree cur, Tree min, Tree max, Tree step); - string generateNumEntry (Tree sig, Tree label, Tree cur, Tree min, Tree max, Tree step); - - string generateVBargraph (Tree sig, Tree label, Tree min, Tree max, const string& exp); - string generateHBargraph (Tree sig, Tree label, Tree min, Tree max, const string& exp); - - string generateNumber(Tree sig, const string& exp); - string generateFConst (Tree sig, const string& file, const string& name); - string generateFVar (Tree sig, const string& file, const string& name); - - virtual string generateDelayVec(Tree sig, const string& exp, const string& ctype, const string& vname, int mxd); - string generateDelayVecNoTemp(Tree sig, const string& exp, const string& ctype, const string& vname, int mxd); - //string generateDelayVecWithTemp(Tree sig, const string& exp, const string& ctype, const string& vname, int mxd); - virtual void generateDelayLine(const string& ctype, const string& vname, int mxd, const string& exp); - - // up et down sampling - virtual string generateUpSample (Tree sig, Tree arg, Tree size); - virtual string generateDownSample (Tree sig, Tree arg, Tree size); - - - - void getTypedNames(Type t, const string& prefix, string& ctype, string& vname); - void ensureIotaCode(); - int pow2limit(int x); - - - -}; - -#endif