ATL AM64/128A manuals

Owner’s manuals and user’s guides for Networking ATL AM64/128A.
We providing 2 pdf manuals ATL AM64/128A for download free by document types: User Manual


Atl AM64/128A User Manual (144 pages)


Brand: Atl | Category: Networking | Size: 0.67 MB |

 

Table of contents

Optimizing software in C++

1

1 Introduction

3

Graphics accelerators

5

Programmable logic devices

5

2.2 Choice of microprocessor

5

2.5 Choice of compiler

9

Microsoft Visual Studio

9

Intel C++ compiler

9

PathScale

10

Digital Mars

10

Open Watcom

10

Codeplay VectorC

11

Comments

11

Portability

14

Development time

14

Security

14

3.3 Program installation

18

3.4 Program loading

18

3.6 File access

20

3.7 System database

21

3.9 Network access

21

3.10 Memory access

21

3.11 Context switches

22

3.12 Dependency chains

22

4 Performance and usability

23

Storage on the stack

25

Global or static storage

25

Register storage

26

Volatile

27

Thread-local storage

27

Dynamic memory allocation

27

Integer sizes

28

Integer operators

29

6.4 Enums

32

6.5 Booleans

32

Boolean vector operations

34

6.6 Pointers and references

34

Pointers versus references

34

Efficiency

35

Pointer arithmetic

35

6.7 Function pointers

35

6.8 Member pointers

36

6.9 Arrays

36

6.10 Type conversions

38

Signed / unsigned conversion

38

Integer size conversion

38

Integer to float conversion

39

Float to integer conversion

39

Pointer type conversion

40

Const cast

40

Static cast

40

Reinterpret cast

40

Dynamic cast

41

Converting class objects

41

6.12 Loops

42

Loop unrolling

43

The loop control condition

44

Copying or clearing arrays

44

6.13 Functions

45

Avoid unnecessary functions

45

Use inline functions

46

Use fastcall functions

46

Make functions static

47

Use 64-bit mode

47

6.14 Structures and classes

47

6.19 Inheritance

50

6.21 Unions

51

6.22 Bitfields

51

6.23 Overloaded functions

52

6.24 Overloaded operators

52

6.25 Templates

52

6.26 Threads

55

6.27 Exception handling

56

6.30 Namespaces

59

7.1 How compilers optimize

60

Function inlining

60

Pointer elimination

61

Register variables

61

Live range analysis

62

Join identical branches

62

Eliminate jumps

63

Loop invariant code motion

64

Induction variables

65

Scheduling

66

Algebraic reductions

66

Devirtualization

67

Pointer aliasing

71

Pure functions

72

Algebraic reduction

73

7.6 Optimization directives

76

Compiler-specific keywords

77

8 Optimizing memory access

81

8.5 Alignment of data

84

8.7 Container classes

87

8.8 Strings

89

8.9 Access data sequentially

89

8.11 Explicit cache control

92

Prefetching data

93

Uncached memory store

93

9 Using multiple CPU cores

94

10 Out of order execution

96

11 Using vector operations

98

11.1 Automatic vectorization

99

11.2 Explicit vectorization

101

Using intrinsic functions

101

Using vector classes

103

Redefining a vector class

104

Mixed vector types

107

Defining missing operators

107

Vectorized table lookup

113

CPU's

117

Disclaimer

122

13.1 Use lookup tables

123

13.2 Bounds checking

125

13.4 Integer multiplication

127

13.5 Integer division

128

13.6 Floating point division

130

14 Testing speed

136

_MSC_VER and not

141

__GNUC__ and not

141

16 Literature

143

Internet forums

144