Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: ldc-developers/ldc
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: jkrempus/ldc
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: inlining
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 8 commits
  • 16 files changed
  • 2 contributors

Commits on Jan 7, 2014

  1. Add UDAs for LDC attributes.

    Introduces an attribute @ldc.attribute which can be used to annotate functions.
    Examples:
    @ldc.attribute("alwaysinline") void foo() {}
    
    Valid attribute names can be found in the LLVM manual at
    http://www.llvm.org/docs/LangRef.html#function-attributes.
    
    This fixes issue #561 and creates a base for issue #547.
    redstar authored and jkrempus committed Jan 7, 2014
    Configuration menu
    Copy the full SHA
    e694270 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b061123 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    540f7ac View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    9d71e91 View commit details
    Browse the repository at this point in the history
  5. Read ldc attributes in FuncDecl::semantic and

    store them in FuncDecl::ldcAttributes. Check for presence of
    alwaysinline and run extra semantic passes on any module that
    contains alwaysinline functions.
    jkrempus committed Jan 7, 2014
    Configuration menu
    Copy the full SHA
    16baab8 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    e4e0d94 View commit details
    Browse the repository at this point in the history
  7. Define alwaysinline functions at the end of

    DtoDeclareFunction even if they are not externallyAvailable.
    This way, those functions are inlined even if they are
    defined in a module that we are not currently generating code
    for, but was also given on the command line,
    and the -singleobj flag was not used. Also made alwaysInline
    functions have private linkage, so that they don't appear in
    the object file. This avoids linker errors in the case
    described above.
    jkrempus committed Jan 7, 2014
    Configuration menu
    Copy the full SHA
    0f6d6cc View commit details
    Browse the repository at this point in the history
  8. Made function literal names, anonymous class names

    and critical section names independent of the order
    in which modules are compiled and templates
    are instantiated. Also removed isAutoGeneratedField
    from Identifier and made availableExternally symbols
    always have available_externally linkage.
    jkrempus committed Jan 7, 2014
    Configuration menu
    Copy the full SHA
    5d4012a View commit details
    Browse the repository at this point in the history
Loading