Forums
New posts
Search forums
Members
Current visitors
Log in
Register
What's new
Search
Search
Search titles only
By:
New posts
Search forums
Menu
Log in
Register
Install the app
Install
Forums
Archive
Archive
C Programming
sizeof
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
Reply to thread
Message
[QUOTE="Walter Roberson, post: 2475302"] Counter-examples from SGI C: 1) -ivpad Improves cache behavior by causing the linker to perform intervariable padding of some large variables. This is in effect by default. (C, C++, F77, F90) 2) -LD_LAYOUT: multigot This is for internal use. Usually, the linker attempts to link everything, generating a single GOT. If this fails, it reruns the layout phase and possibly creates multiple GOT regions. This option causes the first layout pass to fail. This is used in conjunction with the mgot_threshold option described previously. (GOT is Global Offset Table, and the relevance here is that when procedure variables are large enough that they cannot all be completely addressed by a single address register together with a standard-width relative offset, then the linker will split the space to use multiple address registers, in which case syntactically adjacent variables will not necessarily be adjacent in addresses.) 3) -LD_LAYOUT: reorder_file=feedback_file Names a feedback file. When specified, function layout in the text section is optimized to minimize page faults and I-cache misses based upon the frequency information in feedback_file. This file is usually produced by prof(1)/cvperf(1) or sscord(1)/ssorder(1), but a user can also construct or modify this ASCII file. 4) initialized static or extern variables are not usually placed adjacent to uninitialized static or extern variables, because the uninitialized globals and statics are handled through a "demand-zero page" (a hardware mechanism that automatically initializes a memory page to 0 when it is allocated and given to a process.) Initialized variables have to have their initial value read from the object file (which might not happen until the first reference to the virtual memory page, as SGI IRIX can postpone loading in code, constants, and globals and statics, reading them from the object file when needed [and for code and constants, instead of copying them to a disk swap file, IRIX can just drop the virtual descriptor, leading the values to be reloaded from the object file if they turn out to be needed later.] [/QUOTE]
Verification
Post reply
Forums
Archive
Archive
C Programming
sizeof
Top