
vbcc compiler system Volker Barthelmann i Table of Contents 1 General :::::::::::::::::::::::::::::::::::::::::: 1 1.1 Introduction ::::::::::::::::::::::::::::::::::::::::::::::::::: 1 1.2 Legal :::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 1 1.3 Installation :::::::::::::::::::::::::::::::::::::::::::::::::::: 2 1.3.1 Installing for Unix::::::::::::::::::::::::::::::::::::::::: 3 1.3.2 Installing for DOS/Windows::::::::::::::::::::::::::::::: 3 1.3.3 Installing for AmigaOS :::::::::::::::::::::::::::::::::::: 3 1.4 Tutorial :::::::::::::::::::::::::::::::::::::::::::::::::::::::: 5 2 The Frontend ::::::::::::::::::::::::::::::::::: 7 2.1 Usage :::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 7 2.2 Configuration :::::::::::::::::::::::::::::::::::::::::::::::::: 8 3 The Compiler :::::::::::::::::::::::::::::::::: 11 3.1 General Compiler Options::::::::::::::::::::::::::::::::::::: 11 3.2 Errors and Warnings :::::::::::::::::::::::::::::::::::::::::: 15 3.3 Data Types ::::::::::::::::::::::::::::::::::::::::::::::::::: 15 3.4 Optimizations::::::::::::::::::::::::::::::::::::::::::::::::: 16 3.4.1 Register Allocation ::::::::::::::::::::::::::::::::::::::: 18 3.4.2 Flow Optimizations :::::::::::::::::::::::::::::::::::::: 18 3.4.3 Common Subexpression Elimination :::::::::::::::::::::: 19 3.4.4 Copy Propagation :::::::::::::::::::::::::::::::::::::::: 20 3.4.5 Constant Propagation :::::::::::::::::::::::::::::::::::: 20 3.4.6 Dead Code Elimination::::::::::::::::::::::::::::::::::: 21 3.4.7 Loop-Invariant Code Motion ::::::::::::::::::::::::::::: 21 3.4.8 Strength Reduction :::::::::::::::::::::::::::::::::::::: 22 3.4.9 Induction Variable Elimination ::::::::::::::::::::::::::: 22 3.4.10 Loop Unrolling:::::::::::::::::::::::::::::::::::::::::: 23 3.4.11 Function Inlining:::::::::::::::::::::::::::::::::::::::: 25 3.4.12 Intrinsic Functions :::::::::::::::::::::::::::::::::::::: 27 3.4.13 Unused Object Elimination:::::::::::::::::::::::::::::: 27 3.4.14 Alias Analysis::::::::::::::::::::::::::::::::::::::::::: 28 3.4.15 Inter-Procedural Analysis ::::::::::::::::::::::::::::::: 29 3.4.16 Cross-Module Optimizations :::::::::::::::::::::::::::: 30 3.4.17 Instruction Scheduling :::::::::::::::::::::::::::::::::: 30 3.4.18 Target-Specific Optimizations ::::::::::::::::::::::::::: 31 3.4.19 Debugging Optimized Code ::::::::::::::::::::::::::::: 31 3.5 Extensions :::::::::::::::::::::::::::::::::::::::::::::::::::: 32 3.5.1 Pragmas ::::::::::::::::::::::::::::::::::::::::::::::::: 32 3.5.2 Register Parameters :::::::::::::::::::::::::::::::::::::: 33 3.5.3 Inline-Assembly Functions :::::::::::::::::::::::::::::::: 33 3.5.4 Variable Attributes::::::::::::::::::::::::::::::::::::::: 34 ii vbcc manual 3.5.5 Type Attributes :::::::::::::::::::::::::::::::::::::::::: 34 3.5.6 __typeof :::::::::::::::::::::::::::::::::::::::::::::::: 35 3.5.7 __alignof ::::::::::::::::::::::::::::::::::::::::::::::: 35 3.5.8 __offsetof :::::::::::::::::::::::::::::::::::::::::::::: 35 3.5.9 Specifying side-effects :::::::::::::::::::::::::::::::::::: 35 3.5.10 Automatic constructor/destructor functions ::::::::::::: 36 3.5.10.1 Predefined macros:::::::::::::::::::::::::::::::::: 36 3.6 Known Problems:::::::::::::::::::::::::::::::::::::::::::::: 36 3.7 Credits ::::::::::::::::::::::::::::::::::::::::::::::::::::::: 37 4 M68k/Coldfire Backend::::::::::::::::::::::: 39 4.1 Additional options :::::::::::::::::::::::::::::::::::::::::::: 39 4.2 ABI :::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 40 4.3 Small data :::::::::::::::::::::::::::::::::::::::::::::::::::: 41 4.4 Small code :::::::::::::::::::::::::::::::::::::::::::::::::::: 41 4.5 CPUs ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 42 4.6 FPUs ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 42 4.7 Math ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 42 4.8 Target-Specific Variable Attributes :::::::::::::::::::::::::::: 43 4.9 Predefined Macros :::::::::::::::::::::::::::::::::::::::::::: 43 4.10 Stack :::::::::::::::::::::::::::::::::::::::::::::::::::::::: 43 4.11 Stdarg ::::::::::::::::::::::::::::::::::::::::::::::::::::::: 44 4.12 Known problems ::::::::::::::::::::::::::::::::::::::::::::: 44 5 PowerPC Backend::::::::::::::::::::::::::::: 45 5.1 Additional options for this version ::::::::::::::::::::::::::::: 45 5.2 ABI :::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 46 5.3 Target-specific variable-attributes ::::::::::::::::::::::::::::: 47 5.4 Target-specific pragmas ::::::::::::::::::::::::::::::::::::::: 48 5.5 Predefined Macros :::::::::::::::::::::::::::::::::::::::::::: 48 5.6 Stack ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 48 5.7 Stdarg :::::::::::::::::::::::::::::::::::::::::::::::::::::::: 48 5.8 Known problems :::::::::::::::::::::::::::::::::::::::::::::: 50 6 DEC Alpha Backend :::::::::::::::::::::::::: 51 6.1 Additional options for this version ::::::::::::::::::::::::::::: 51 6.2 ABI :::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 51 6.3 Predefined Macros :::::::::::::::::::::::::::::::::::::::::::: 52 6.4 Stdarg :::::::::::::::::::::::::::::::::::::::::::::::::::::::: 52 6.5 Known problems :::::::::::::::::::::::::::::::::::::::::::::: 52 7 i386 Backend::::::::::::::::::::::::::::::::::: 55 7.1 Additional options for this version ::::::::::::::::::::::::::::: 55 7.2 ABI :::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 55 7.3 Predefined Macros :::::::::::::::::::::::::::::::::::::::::::: 56 7.4 Stdarg :::::::::::::::::::::::::::::::::::::::::::::::::::::::: 56 7.5 Known Problems:::::::::::::::::::::::::::::::::::::::::::::: 56 iii 8 c16x Backend :::::::::::::::::::::::::::::::::: 57 8.1 Additional options for this version ::::::::::::::::::::::::::::: 57 8.2 ABI :::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 57 8.3 Target-specific variable-attributes ::::::::::::::::::::::::::::: 58 8.4 Target-specific type-attributes ::::::::::::::::::::::::::::::::: 59 8.5 Target-specific types :::::::::::::::::::::::::::::::::::::::::: 59 8.6 Predefined Macros :::::::::::::::::::::::::::::::::::::::::::: 59 8.7 Stack ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 60 8.8 Stdarg :::::::::::::::::::::::::::::::::::::::::::::::::::::::: 60 8.9 Known Problems:::::::::::::::::::::::::::::::::::::::::::::: 60 9 68hc12 Backend ::::::::::::::::::::::::::::::: 61 9.1 Additional options for this version ::::::::::::::::::::::::::::: 61 9.2 ABI :::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 61 9.3 Target-specific variable-attributes ::::::::::::::::::::::::::::: 62 9.4 Predefined Macros :::::::::::::::::::::::::::::::::::::::::::: 62 9.5 Stack ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 62 9.6 Stdarg :::::::::::::::::::::::::::::::::::::::::::::::::::::::: 62 9.7 Known Problems:::::::::::::::::::::::::::::::::::::::::::::: 62 10 VideoCore IV Backend :::::::::::::::::::::: 63 10.1 Additional options for this version:::::::::::::::::::::::::::: 63 10.2 ABI ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 63 10.3 Target-specific variable-attributes :::::::::::::::::::::::::::: 64 10.4 Target-specific pragmas :::::::::::::::::::::::::::::::::::::: 64 10.5 Predefined Macros ::::::::::::::::::::::::::::::::::::::::::: 64 10.6 Stdarg ::::::::::::::::::::::::::::::::::::::::::::::::::::::: 64 10.7 Known problems ::::::::::::::::::::::::::::::::::::::::::::: 64 11 Instruction Scheduler :::::::::::::::::::::::: 67 11.1 Introduction ::::::::::::::::::::::::::::::::::::::::::::::::: 67 11.2 Usage:::::::::::::::::::::::::::::::::::::::::::::::::::::::: 67 11.3 Known problems ::::::::::::::::::::::::::::::::::::::::::::: 67 12 C Library ::::::::::::::::::::::::::::::::::::: 69 12.1 Introduction ::::::::::::::::::::::::::::::::::::::::::::::::: 69 12.2 Legal :::::::::::::::::::::::::::::::::::::::::::::::::::::::: 69 12.3 Embedded Systems :::::::::::::::::::::::::::::::::::::::::: 70 12.3.1 Startup ::::::::::::::::::::::::::::::::::::::::::::::::: 70 12.3.2 Heap:::::::::::::::::::::::::::::::::::::::::::::::::::: 71 12.3.3 Input/Output ::::::::::::::::::::::::::::::::::::::::::: 71 12.3.4 Floating Point :::::::::::::::::::::::::::::::::::::::::: 71 12.3.5 Useless Functions ::::::::::::::::::::::::::::::::::::::: 72 12.3.6 Linking/Locating ::::::::::::::::::::::::::::::::::::::: 72 12.4 AmigaOS/68k ::::::::::::::::::::::::::::::::::::::::::::::: 72 12.4.1 Startup ::::::::::::::::::::::::::::::::::::::::::::::::: 73 iv vbcc manual 12.4.2 Floating point :::::::::::::::::::::::::::::::::::::::::: 73 12.4.3 Stack ::::::::::::::::::::::::::::::::::::::::::::::::::: 73 12.4.4 Small data model ::::::::::::::::::::::::::::::::::::::: 74 12.4.5 Restrictions ::::::::::::::::::::::::::::::::::::::::::::: 74 12.4.6 Minimal Startup :::::::::::::::::::::::::::::::::::::::: 74 12.4.7 Minimal Startup for resident programs :::::::::::::::::: 75 12.4.8 amiga.lib:::::::::::::::::::::::::::::::::::::::::::::::: 76 12.4.9 auto.lib ::::::::::::::::::::::::::::::::::::::::::::::::: 76 12.5 Kickstart1.x/68k ::::::::::::::::::::::::::::::::::::::::::::: 76 12.5.1 Startup ::::::::::::::::::::::::::::::::::::::::::::::::: 77 12.5.2 Floating point :::::::::::::::::::::::::::::::::::::::::: 77 12.5.3 Stack ::::::::::::::::::::::::::::::::::::::::::::::::::: 77 12.5.4 Small data model ::::::::::::::::::::::::::::::::::::::: 77 12.5.5 Restrictions ::::::::::::::::::::::::::::::::::::::::::::: 77 12.5.6 amiga.lib:::::::::::::::::::::::::::::::::::::::::::::::: 77 12.5.7 auto.lib
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages160 Page
-
File Size-