[
Top
]
[
Contents
]
[Index]
[
?
]
Table of Contents
1. General
1.1 Introduction
1.2 Legal
1.3 Installation
1.3.1 Installing for Unix
1.3.2 Installing for DOS/Windows
1.3.3 Installing for AmigaOS
1.4 Tutorial
2. The Frontend
2.1 Usage
2.2 Configuration
3. The Compiler
3.1 General Compiler Options
3.2 Errors and Warnings
3.3 Data Types
3.4 Optimizations
3.4.1 Register Allocation
3.4.2 Flow Optimizations
3.4.3 Common Subexpression Elimination
3.4.4 Copy Propagation
3.4.5 Constant Propagation
3.4.6 Dead Code Elimination
3.4.7 Loop-Invariant Code Motion
3.4.8 Strength Reduction
3.4.9 Induction Variable Elimination
3.4.10 Loop Unrolling
3.4.11 Function Inlining
3.4.12 Intrinsic Functions
3.4.13 Unused Object Elimination
3.4.14 Alias Analysis
3.4.15 Inter-Procedural Analysis
3.4.16 Cross-Module Optimizations
3.4.17 Instruction Scheduling
3.4.18 Target-Specific Optimizations
3.4.19 Debugging Optimized Code
3.5 Extensions
3.5.1 Pragmas
3.5.2 Register Parameters
3.5.3 Inline-Assembly Functions
3.5.4 Variable Attributes
3.5.5 Type Attributes
3.5.6
__typeof
3.5.7
__alignof
3.5.8
__offsetof
3.5.9 Specifying side-effects
3.6 Known Problems
3.7 Credits
4. M68k/Coldfire Backend
4.1 Additional options
4.2 ABI
4.3 Small data
4.4 Small code
4.5 CPUs
4.6 FPUs
4.7 Math
4.8 Target-Specific Variable Attributes
4.9 Predefined Macros
4.10 Stack
4.11 Stdarg
4.12 Known problems
5. PowerPC Backend
5.1 Additional options for this version
5.2 ABI
5.3 Target-specific variable-attributes
5.4 Target-specific pragmas
5.5 Predefined Macros
5.6 Stack
5.7 Stdarg
5.8 Known problems
6. DEC Alpha Backend
6.1 Additional options for this version
6.2 ABI
6.3 Predefined Macros
6.4 Stdarg
6.5 Known problems
7. i386 Backend
7.1 Additional options for this version
7.2 ABI
7.3 Predefined Macros
7.4 Stdarg
7.5 Known Problems
8. c16x Backend
8.1 Additional options for this version
8.2 ABI
8.3 Target-specific variable-attributes
8.4 Target-specific type-attributes
8.5 Target-specific types
8.6 Predefined Macros
8.7 Stack
8.8 Stdarg
8.9 Known Problems
9. 68hc12 Backend
9.1 Additional options for this version
9.2 ABI
9.3 Target-specific variable-attributes
9.4 Predefined Macros
9.5 Stack
9.6 Stdarg
9.7 Known Problems
10. Instruction Scheduler
10.1 Introduction
10.2 Usage
10.3 Known problems
11. C Library
11.1 Introduction
11.2 Legal
11.3 Embedded Systems
11.3.1 Startup
11.3.2 Heap
11.3.3 Input/Output
11.3.4 Floating Point
11.3.5 Useless Functions
11.3.6 Linking/Locating
11.4 AmigaOS/68k
11.4.1 Startup
11.4.2 Floating point
11.4.3 Stack
11.4.4 Small data model
11.4.5 Restrictions
11.4.6 Minimal startup
11.4.7 amiga.lib
11.4.8 auto.lib
11.4.9 ixemul
11.4.9.1 Introduction
11.4.9.2 Legal
11.4.9.3 Usage
11.5 PowerUp/PPC
11.5.1 Startup
11.5.2 Floating point
11.5.3 Stack
11.5.4 Small data model
11.5.5 Restrictions
11.5.6 Minimal startup
11.5.7 libamiga.a
11.5.8 libauto.a
11.6 WarpOS/PPC
11.6.1 Startup
11.6.2 Floating point
11.6.3 Stack
11.6.4 Restrictions
11.6.5 amiga.lib
11.6.6 auto.lib
11.7 MorphOS/PPC
11.7.1 Startup
11.7.2 Floating point
11.7.3 Stack
11.7.4 Small data model
11.7.5 Restrictions
11.7.6 libamiga.a
11.7.7 libauto.a
11.8 AmigaOS4/PPC
11.8.1 Startup
11.8.2 Floating point
11.8.3 Stack
11.8.4 Small data model
11.8.5 Restrictions
11.8.6 libamiga.a
11.8.7 libauto.a
11.8.8 newlib
11.8.8.1 Introduction
11.8.8.2 Usage
12. List of Errors
13. Backend Interface
13.1 Introduction
13.2 Building vbcc
13.2.1 Directory Structure
13.2.2 Adapting the Makefile
13.2.3 Building vc
13.2.4 Building vsc
13.2.5 Building vbcc
13.2.6 Configuring
13.2.7 Building Cross-Compilers
13.3 The Intermediate Code
13.3.1 General Format
13.3.2 Operands
13.3.3 Variables
13.3.4 Composite Types
13.3.5 Operations
13.4 Type System
13.4.1 Target Data Types
13.4.2 Target Arithmetic
13.5
`machine.h'
13.6
`machine.c'
13.6.1 Name and Copyright
13.6.2 Command Line Options
13.6.3 Data Types
13.6.4 Register Set
13.6.5 Functions
13.7 Available Support Functions, Macros and Variables
13.8 Hints for common Optimizations
13.8.1 Instruction Combining
13.8.2 Adressing Modes
13.8.3 Implicit setting of Condition Codes
13.8.4 Register Parameters
13.8.5 Register Pairs
13.8.6 Elimination of Frame-Pointer
13.8.7 Delayed popping of Stack-Slots
13.8.8 Optimized Return
13.8.9 Jump Tables
13.8.10 Context-sensitive Register-Allocation
13.8.11 Inter-procedural Register-Allocation
13.8.12 Conditional Instructions
13.8.13 Extended ICs
13.8.14 Peephole Optimizations on Assembly Output
13.8.15 Marking of efficient ICs
13.8.16 Function entry/exit Code
13.8.17 Multiplication/division with Constants
13.8.18 Block copying
13.8.19 Optimized Library Functions
13.8.20 Instruction Scheduler
13.9 Hints for common Extensions
13.9.1 Inline Assembly
13.9.2 -speed/-size
13.9.3 Target-specific Macros
13.9.4 stdarg.h
13.9.5 Section Specifiers
13.9.6 Target-specific Attributes
13.9.7 Target-specific
#pragma
s
13.9.8 Target-specific extended Types
13.9.9 Target-specific
printval
13.9.10 Debug Information
13.9.10.1 DWARF2
13.9.11 Interrupt Handlers
13.9.12 Stack checking
13.9.13 Profiling
13.10 Changes from 0.7 Interface
This document was generated by
Frank Wille
on
June, 5 2006
using
texi2html