Target Language Compiler

Define block code generation behavior using Target Language Compiler

Target Language Compiler (TLC) is an integral part of the code generator. Use TLC to customize generated code. Through customization, you can produce platform-specific code and incorporate your own algorithmic changes for performance, code size, or compatibility with existing methods.

With the Target Language Compiler, you can :

  • Customize the set of options specified by your system target file.

  • Inline the code for S-Function blocks.

  • Generate additional or different types of files.

To learn about the basics of TLC, see Target Language Compiler Basics.

Topics

Getting Started

Target Language Compiler Basics

Use the Target Language Compiler to produce platform-specific code and incorporate your own algorithmic changes for performance, code size, or compatibility with existing methods that you prefer to maintain.

Why Use the Target Language Compiler?

Use the Target Language Compiler to customize the set of options specified by your system target file, inline the code for S-Function blocks, or generate additional or different types of files.

The Advantages of Inlining S-Functions

Determine when, how, and why to inline S-functions.

Code Architecture

Learn what information a block object captures.

Target Language Compiler Process

Learn how the Target Language Compiler interprets model.rtw files.

Inlining S-Functions

Apply techniques for inlining S-functions.

Target Language Compiler Tutorials

Advice About TLC Tutorials

The TLC tutorials describe why and how to use TLC.

Read Record Files with TLC

Learn how TLC accesses record files and interprets their contents.

Inline S-Functions with TLC

TLC inlines S-functions, resulting in faster, optimized code.

Explore Variable Names and Loop Rolling

Understand how and when TLC outputs loops and variable names.

Debug Your TLC Code

Invoke TLC debugger commands, set breakpoints, and trace code execution.

TLC Code Coverage to Aid Debugging

Use TLC coverage statistics to help identify bugs in TLC code.

Wrap User Code with TLC

Use TLC to integrate legacy and proprietary code into compiled models.

Code Generation Architecture

Build Process

Create and use target language files.

Configure TLC

Customize builds by passing configuration data to the set_param command.

Configure Generated Code with TLC

Use the Target Language Compiler to generate source code in specific ways or to give the code-specific characteristics.

Code Generation Concepts

Understand TLC variables and file and record handling.

TLC Files

Learn about the roles and varieties of system and block target files.

Data Handling with TLC

TLC library functions can transform data into data structures.

model.rtw File

model.rtw File and Scopes

The model.rtw file is a partial representation of a model generated by the build process for use by the Target Language Compiler.

Data Object Information in model.rtw File

Access information about data objects in the model.rtw file.

Data References in the model.rtw File

Simulink® uses data references to optimize data access during code generation.

Exception to Using the Library Functions that Access model.rtw

Access parameter settings for a block in the model.rtw records.

Access Memory in Generated Code Using Global Data Map

Generate TLC global data map record in model.rtw file.

Directives and Built-in Functions

Target Language Compiler Directives

Learn the syntax and formats of directives, built-in functions, signal and parameter values, expressions, and comments.

Command-Line Arguments

Specify TLC calling arguments, filenames, and search paths.

S-Function Inlining

Inline S-Functions

Write S-functions to be used for code generation.

Inline C MEX S-Functions

Handle calls made by C MEX S-functions.

TLC Coding Conventions

Observe case conventions and use library functions to make your TLC code more robust.

Block Target File Methods

Use polymorphic block functions combined with the Target Language Compiler library functions to write a block target file.

Loop Rolling

Use the %roll directive to indicate whether the code generator unrolls for loops.

TLC Library Reference

Target Language Compiler Library Functions Overview

Use library functions to access many of the parameter name/parameter values pairs in the block record.

Target Language Compiler Function Conventions

Apply proper TLC function syntax and conventions.

Input Signal Functions

These TLC Functions process and report on input signals.

Output Signal Functions

These TLC functions process and report on output signals.

Parameter Functions

These functions process model parameters.

Block State and Work Vector Functions

These functions handle storage and states.

Block Compatibility Functions

These TLC functions are for specifying block compatibility with code generation features.

Block Path and Error Reporting Functions

These functions navigate paths and handle error conditions.

Code Configuration Functions

These functions are for tailoring code elements and comments.

Sample Time Functions

These functions are for handling continuous and discrete time.

Miscellaneous Functions

These functions are not elsewhere classified.

Advanced Functions

These functions are generally required only for special situations.

Debugging and Error Handling

Using the TLC Debugger

Use the TLC debugger to execute TLC code line-by-line, analyze and/or change variables in a specified block scope, and view the TLC call stack.

TLC Coverage

Determine what TLC statements are executed.

TLC Profiler

Measure the execution time of each TLC function.

TLC Error Handling

Use this alphabetical list of error messages to detect and address error conditions in your TLC code.