]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/optimize.h
Move unique name generation to syntax.cpp
[libs/gl.git] / source / glsl / optimize.h
index 5448ea7c4e8771b8008ec0a6b786349f9386cc90..ab954b58a471431feab1d6da0f75e9a2abe3bbaa 100644 (file)
@@ -55,8 +55,6 @@ public:
        const std::string &apply(Stage &, FunctionDeclaration &, Block &, const NodeList<Statement>::iterator &, FunctionDeclaration &);
 
 private:
-       std::string create_unused_name(const std::string &, bool);
-
        virtual void visit(VariableReference &);
        virtual void visit(InterfaceBlockReference &);
        virtual void visit(FunctionCall &);
@@ -101,9 +99,6 @@ private:
                Expression *expression;
                Block *assign_scope;
                RefPtr<Expression> *inline_point;
-               const Operator *inner_oper;
-               const Operator *outer_oper;
-               bool inline_on_rhs;
                bool trivial;
                bool available;
 
@@ -125,8 +120,7 @@ public:
        bool apply(Stage &);
 
 private:
-       void visit_and_record(RefPtr<Expression> &, const Operator *, bool);
-       void inline_expression(Expression &, RefPtr<Expression> &, const Operator *, const Operator *, bool);
+       void inline_expression(Expression &, RefPtr<Expression> &);
        virtual void visit(Block &);
        virtual void visit(RefPtr<Expression> &);
        virtual void visit(VariableReference &);
@@ -135,6 +129,7 @@ private:
        virtual void visit(UnaryExpression &);
        virtual void visit(BinaryExpression &);
        virtual void visit(Assignment &);
+       virtual void visit(TernaryExpression &);
        virtual void visit(FunctionCall &);
        virtual void visit(VariableDeclaration &);
        virtual void visit(Iteration &);
@@ -170,6 +165,7 @@ private:
        virtual void visit(Literal &);
        virtual void visit(UnaryExpression &);
        virtual void visit(BinaryExpression &);
+       virtual void visit(TernaryExpression &);
        virtual void visit(FunctionCall &);
        virtual void visit(BasicTypeDeclaration &);
        virtual void visit(ImageTypeDeclaration &);
@@ -227,15 +223,15 @@ private:
        virtual void visit(UnaryExpression &);
        virtual void visit(BinaryExpression &);
        virtual void visit(Assignment &);
-       void record_assignment(const Assignment::Target &, Node &);
        virtual void visit(FunctionCall &);
+       void record_assignment(const Assignment::Target &, Node &);
        virtual void visit(ExpressionStatement &);
        // Ignore structs because their members can't be accessed directly.
        virtual void visit(StructDeclaration &) { }
        virtual void visit(VariableDeclaration &);
        virtual void visit(InterfaceBlock &);
-       virtual void visit(FunctionDeclaration &);
        void merge_variables(const BlockVariableMap &);
+       virtual void visit(FunctionDeclaration &);
        virtual void visit(Conditional &);
        virtual void visit(Iteration &);
 };