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_node * | new_node3 (slang_ir_opcode op, slang_ir_node *c0, slang_ir_node *c1, slang_ir_node *c2) |
| static slang_ir_node * | new_node2 (slang_ir_opcode op, slang_ir_node *c0, slang_ir_node *c1) |
| static slang_ir_node * | new_node1 (slang_ir_opcode op, slang_ir_node *c0) |
| static slang_ir_node * | new_node0 (slang_ir_opcode op) |
| static slang_ir_node * | new_seq (slang_ir_node *left, slang_ir_node *right) |
| static slang_ir_node * | new_label (slang_label *label) |
| static slang_ir_node * | new_float_literal (const float v[4], GLuint size) |
| static slang_ir_node * | new_not (slang_ir_node *n) |
| static slang_ir_node * | new_function_call (slang_ir_node *code, slang_label *name) |
| static slang_ir_node * | new_return (slang_label *dest) |
| static slang_ir_node * | new_loop (slang_ir_node *body) |
| static slang_ir_node * | new_break (slang_ir_node *loopNode) |
| static slang_ir_node * | new_break_if_true (slang_ir_node *loopNode, slang_ir_node *cond) |
| static slang_ir_node * | new_cont_if_true (slang_ir_node *loopNode, slang_ir_node *cond) |
| static slang_ir_node * | new_cond (slang_ir_node *n) |
| static slang_ir_node * | new_if (slang_ir_node *cond, slang_ir_node *ifPart, slang_ir_node *elsePart) |
| static slang_ir_node * | new_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_operation * | slang_inline_asm_function (slang_assemble_ctx *A, slang_function *fun, slang_operation *oper) |
| static slang_operation * | slang_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_info * | slang_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 [] |
Generate IR tree from AST.
- Author:
- Brian Paul
Definition in file slang_codegen.c.