Changeset 5a801444


Ignore:
Timestamp:
Apr 11, 2019, 9:48:23 PM (6 years ago)
Author:
Aaron Moss <a3moss@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
Children:
0e54654
Parents:
ab3a69c
Message:

thesis: fix C layout citation

Location:
doc
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • doc/bibliography/pl.bib

    rab3a69c r5a801444  
    73047304}
    73057305
     7306@article{SysVABI,
     7307  keywords = {System V ABI},
     7308  contributer = {a3moss@uwaterloo.ca},
     7309  title={System {V} application binary interface},
     7310  author={Matz, Michael and Hubicka, Jan and Jaeger, Andreas and Mitchell, Mark},
     7311  journal={AMD64 Architecture Processor Supplement, Draft v0},
     7312  volume={99},
     7313  year={2013}
     7314}
     7315
    73067316% T
    73077317
  • doc/theses/aaron_moss_PhD/phd/generic-types.tex

    rab3a69c r5a801444  
    350350Similarly, the layout function can only safely be called from a context where the generic type definition is visible, because otherwise the caller does not know how large to allocate the array of member offsets.
    351351
    352 The C standard does not specify a memory layout for structs, but the POSIX ABI for x86 \cite{POSIX08} does; this memory layout is common for C implementations, but is a platform-specific issue for porting \CFA{}.
     352The C standard does not specify a memory layout for structs, but the System V ABI \cite{SysVABI} does; this memory layout is common for C implementations, but is a platform-specific issue for porting \CFA{}.
    353353This algorithm, sketched below in pseudo-\CFA{}, is a straightforward mapping of consecutive fields into the first properly-aligned offset in the !struct! layout; layout functions for !union! types omit the offset array and simply calculate the maximum size and alignment over all union variants.
    354354Since \CFACC{} generates a distinct layout function for each type, constant-folding and loop unrolling are applied.
Note: See TracChangeset for help on using the changeset viewer.