Menu

- Learn
- Documentation
  - Language Reference
  - Library Reference
  - Command-line Reference
  - Feature Overview
  - Articles
- Packages
- Community
  - Blog
  - Orgs using D
  - Twitter
  - Forums
  - IRC
  - Wiki
  - GitHub
  - Issues
  - Foundation
  - Donate
- Resources
  - Books
  - Tutorials
  - Tools
  - Editors
  - IDEs
  - Visual D
  - Acknowledgments
  - D Style
  - Glossary
  - Sitemap

Search
Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using a local clone.

# ddmd.e2ir

Compiler implementation of the D programming language.
Authors:
Walter Bright
License:
Boost License 1.0

Source: e2ir.d

elem* `useOPstrpar`(elem* `e`);
  If argument to a function should use OPstrpar, fix it so it does and return it.
elem* `callfunc`(Loc `loc`, IRState* `irs`, int `directcall`, Type `tret`, elem* `ec`, Type `ectype`, FuncDeclaration `fd`, Type `t`, elem* `ehidden`, Expressions* `arguments`, elem* `esel` = null);
  Call a function.
elem* `addressElem`(elem* `e`, Type `t`, bool `alwaysCopy` = false);
  Take address of an elem.
elem* `array_toPtr`(Type `t`, elem* `e`);
  Convert array to a pointer to the data.
elem* `array_toDarray`(Type `t`, elem* `e`);
  Convert array to a dynamic array.
elem* `sarray_toDarray`(Loc `loc`, Type `tfrom`, Type `tto`, elem* `e`);
elem* `getTypeInfo`(Type `t`, IRState* `irs`);
StructDeclaration `needsPostblit`(Type `t`);
  Determine if `t` is a struct that has postblit.
StructDeclaration `needsDtor`(Type `t`);
  Determine if `t` is a struct that has destructor.
elem* `setArray`(elem* `eptr`, elem* `edim`, Type `tb`, elem* `evalue`, IRState* `irs`, int `op`);
  Set an array pointed to by `eptr` to `evalue`: `eptr`[0..`edim`] = `evalue`;

  Input: `eptr` where to write the data to `evalue` value to write `edim` number of times to write `evalue` to `eptr`[] `tb` type of `evalue`

void `clearStringTab`();
  Reset stringTab[] between object files being emitted, because the symbols are local.
elem* `fillHole`(Symbol* `stmp`, size_t* `poffset`, size_t `offset2`, size_t `maxoff`);
  Generate elem to zero fill contents of Symbol `stmp` from *`poffset`..`offset2`. May store anywhere from 0..`maxoff`, as this function tries to use aligned int stores whereever possible. Update *`poffset` to end of initialized hole; *`poffset` will be >= `offset2`.
elem* `appendDtors`(IRState* `irs`, elem* `er`, size_t `starti`, size_t `endi`);
  Add destructors
elem* `toElemDtor`(Expression `e`, IRState* `irs`);
  Evaluate Expression, then call destructors on any temporaries in it.
Symbol* `toStringSymbol`(const(char)* `str`, size_t `len`, size_t `sz`);
  Write read-only string to object file, create a local symbol for it. Makes a copy of `str`'s contents, does not keep a reference to it.
  Parameters:

  const(char)* `str` | string
  size_t `len` | number of code units in string
  size_t `sz` | number of bytes per code unit
  comdat | emit string in its own comdat (default is read-only segment). Comdats are useful when linker does not coalesce redundant strings.

  Returns:
  Symbol
Symbol* `toStringSymbol`(StringExp `se`);
  Turn StringExp into Symbol.
elem* `filelinefunction`(IRState* `irs`, Loc* `loc`);
  Return an elem that is the file, line, and function suitable for insertion into the parameter list.
elem* `buildArrayBoundsError`(IRState* `irs`, ref const Loc `loc`);
  Construct elem to run when an array bounds check fails.
  Returns:
  elem generated
void `toTraceGC`(IRState* `irs`, elem* `e`, Loc* `loc`);
  Replace call to GC allocator with call to tracing GC allocator.
  Parameters:

  IRState* `irs` | to get function from
  elem* `e` | elem to modify
  eloc | to get file/line from

Copyright © 1999-2017 by the D Language Foundation | Page generated by Ddoc on Mon Apr 10 10:54:58 2017