ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

slang_codegen.c File Reference
#include "main/imports.h"
#include "main/macros.h"
#include "main/mtypes.h"
#include "shader/program.h"
#include "shader/prog_instruction.h"
#include "shader/prog_parameter.h"
#include "shader/prog_print.h"
#include "shader/prog_statevars.h"
#include "slang_typeinfo.h"
#include "slang_codegen.h"
#include "slang_compile.h"
#include "slang_label.h"
#include "slang_mem.h"
#include "slang_simplify.h"
#include "slang_emit.h"
#include "slang_vartable.h"
#include "slang_ir.h"
#include "slang_print.h"

Go to the source code of this file.

Data Structures

struct  slang_asm_info

Defines

#define SWIZZLE_ZWWW   MAKE_SWIZZLE4(SWIZZLE_Z, SWIZZLE_W, SWIZZLE_W, SWIZZLE_W)

Functions

static slang_ir_node_slang_gen_operation (slang_assemble_ctx *A, slang_operation *oper)
static GLboolean typeof_operation (const struct slang_assemble_ctx_ *A, slang_operation *op, slang_typeinfo *ti)
static GLboolean is_sampler_type (const slang_fully_specified_type *t)
static GLint _slang_field_offset (const slang_type_specifier *spec, slang_atom field)
GLuint _slang_sizeof_type_specifier (const slang_type_specifier *spec)
static GLint _slang_array_length (const slang_variable *var)
static GLint _slang_array_size (GLint elemSize, GLint arrayLen)
static void _slang_attach_storage (slang_ir_node *n, slang_variable *var)
static GLint sampler_to_texture_index (const slang_type_specifier_type type)
static GLint _slang_input_index (const char *name, GLenum target, GLuint *swizzleOut)
static GLint _slang_output_index (const char *name, GLenum target)
static slang_ir_nodenew_node3 (slang_ir_opcode op, slang_ir_node *c0, slang_ir_node *c1, slang_ir_node *c2)
static slang_ir_nodenew_node2 (slang_ir_opcode op, slang_ir_node *c0, slang_ir_node *c1)
static slang_ir_nodenew_node1 (slang_ir_opcode op, slang_ir_node *c0)
static slang_ir_nodenew_node0 (slang_ir_opcode op)
static slang_ir_nodenew_seq (slang_ir_node *left, slang_ir_node *right)
static slang_ir_nodenew_label (slang_label *label)
static slang_ir_nodenew_float_literal (const float v[4], GLuint size)
static slang_ir_nodenew_not (slang_ir_node *n)
static slang_ir_nodenew_function_call (slang_ir_node *code, slang_label *name)
static slang_ir_nodenew_return (slang_label *dest)
static slang_ir_nodenew_loop (slang_ir_node *body)
static slang_ir_nodenew_break (slang_ir_node *loopNode)
static slang_ir_nodenew_break_if_true (slang_ir_node *loopNode, slang_ir_node *cond)
static slang_ir_nodenew_cont_if_true (slang_ir_node *loopNode, slang_ir_node *cond)
static slang_ir_nodenew_cond (slang_ir_node *n)
static slang_ir_nodenew_if (slang_ir_node *cond, slang_ir_node *ifPart, slang_ir_node *elsePart)
static slang_ir_nodenew_var (slang_assemble_ctx *A, slang_variable *var)
static GLboolean slang_is_asm_function (const slang_function *fun)
static GLboolean _slang_is_noop (const slang_operation *oper)
static slang_operation_slang_find_node_type (slang_operation *oper, slang_operation_type type)
static GLuint _slang_count_node_type (slang_operation *oper, slang_operation_type type)
static GLboolean _slang_is_tail_return (const slang_operation *oper)
static void slang_resolve_variable (slang_operation *oper)
static void slang_substitute (slang_assemble_ctx *A, slang_operation *oper, GLuint substCount, slang_variable **substOld, slang_operation **substNew, GLboolean isLHS)
static slang_operationslang_inline_asm_function (slang_assemble_ctx *A, slang_function *fun, slang_operation *oper)
static slang_operationslang_inline_function_call (slang_assemble_ctx *A, slang_function *fun, slang_operation *oper, slang_operation *returnOper)
static slang_ir_node_slang_gen_function_call (slang_assemble_ctx *A, slang_function *fun, slang_operation *oper, slang_operation *dest)
static slang_asm_infoslang_find_asm_info (const char *name)
static GLboolean _slang_simple_writemask (GLuint writemask, GLuint swizzle)
static GLboolean swizzle_to_writemask (slang_assemble_ctx *A, GLuint swizzle, GLuint *writemaskOut, GLuint *swizzleOut)
static slang_ir_node_slang_gen_asm (slang_assemble_ctx *A, slang_operation *oper, slang_operation *dest)
static slang_function_slang_find_function_by_argc (slang_function_scope *scope, const char *name, int numArgs)
static slang_function_slang_find_function_by_max_argc (slang_function_scope *scope, const char *name)
static slang_function_slang_make_struct_constructor (slang_assemble_ctx *A, slang_struct *str)
static slang_function_slang_locate_struct_constructor (slang_assemble_ctx *A, const char *name)
static slang_function_slang_make_array_constructor (slang_assemble_ctx *A, slang_operation *oper)
static GLboolean _slang_is_vec_mat_type (const char *name)
static slang_ir_node_slang_gen_function_call_name (slang_assemble_ctx *A, const char *name, slang_operation *oper, slang_operation *dest)
static slang_ir_node_slang_gen_method_call (slang_assemble_ctx *A, slang_operation *oper)
static GLboolean _slang_is_constant_cond (const slang_operation *oper, GLboolean *value)
static GLboolean _slang_is_scalar_or_boolean (slang_assemble_ctx *A, slang_operation *oper)
static GLboolean _slang_is_boolean (slang_assemble_ctx *A, slang_operation *oper)
static slang_ir_node_slang_gen_while (slang_assemble_ctx *A, const slang_operation *oper)
static slang_ir_node_slang_gen_do (slang_assemble_ctx *A, const slang_operation *oper)
static GLuint sizeof_operation (const slang_operation *oper)
static GLboolean _slang_can_unroll_for_loop (slang_assemble_ctx *A, const slang_operation *oper)
static slang_ir_node_slang_unroll_for_loop (slang_assemble_ctx *A, const slang_operation *oper)
static slang_ir_node_slang_gen_for (slang_assemble_ctx *A, const slang_operation *oper)
static slang_ir_node_slang_gen_continue (slang_assemble_ctx *A, const slang_operation *oper)
static GLboolean is_operation_type (const slang_operation *oper, slang_operation_type type)
static slang_ir_node_slang_gen_if (slang_assemble_ctx *A, const slang_operation *oper)
static slang_ir_node_slang_gen_not (slang_assemble_ctx *A, const slang_operation *oper)
static slang_ir_node_slang_gen_xor (slang_assemble_ctx *A, const slang_operation *oper)
static slang_ir_node_slang_gen_temporary (GLint size)
static GLboolean make_constant_array (slang_assemble_ctx *A, slang_variable *var, slang_operation *initializer)
static slang_ir_node_slang_gen_var_decl (slang_assemble_ctx *A, slang_variable *var, slang_operation *initializer)
static slang_ir_node_slang_gen_select (slang_assemble_ctx *A, slang_operation *oper)
static slang_ir_node_slang_gen_logical_and (slang_assemble_ctx *A, slang_operation *oper)
static slang_ir_node_slang_gen_logical_or (slang_assemble_ctx *A, slang_operation *oper)
static slang_ir_node_slang_gen_return (slang_assemble_ctx *A, slang_operation *oper)
static GLboolean _slang_assignment_compatible (slang_assemble_ctx *A, slang_operation *op0, slang_operation *op1)
static slang_ir_node_slang_gen_declaration (slang_assemble_ctx *A, slang_operation *oper)
static slang_ir_node_slang_gen_variable (slang_assemble_ctx *A, slang_operation *oper)
static GLuint swizzle_size (GLuint swizzle)
static slang_ir_node_slang_gen_swizzle (slang_ir_node *child, GLuint swizzle)
static GLboolean is_store_writable (const slang_assemble_ctx *A, const slang_ir_storage *store)
static GLuint root_swizzle (const slang_ir_storage *st)
static slang_ir_node_slang_gen_assignment (slang_assemble_ctx *A, slang_operation *oper)
static slang_ir_node_slang_gen_struct_field (slang_assemble_ctx *A, slang_operation *oper)
static slang_ir_node_slang_gen_array_element (slang_assemble_ctx *A, slang_operation *oper)
static slang_ir_node_slang_gen_compare (slang_assemble_ctx *A, slang_operation *oper, slang_ir_opcode opcode)
static GLboolean is_rect_sampler_spec (const slang_type_specifier *spec)
GLboolean _slang_codegen_global_variable (slang_assemble_ctx *A, slang_variable *var, slang_unit_type type)
GLboolean _slang_codegen_function (slang_assemble_ctx *A, slang_function *fun)

Variables

const GLuint MAX_FOR_LOOP_UNROLL_ITERATIONS = 32
const GLuint MAX_FOR_LOOP_UNROLL_BODY_SIZE = 50
const GLuint MAX_FOR_LOOP_UNROLL_COMPLEXITY = 256
static slang_asm_info AsmInfo []

Detailed Description

Generate IR tree from AST.

Author:
Brian Paul

Definition in file slang_codegen.c.


Generated on Sat May 26 2012 04:58:04 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.