Started 3 mo 27 days ago
Took 21 min on green-dragon-17

Success Build rL:366728 - C:366719 - #63413 (Jul 22, 2019 12:50:03 PM)

Revisions
  • http://llvm.org/svn/llvm-project/llvm/trunk : 366728
  • http://llvm.org/svn/llvm-project/cfe/trunk : 366719
Changes
  1. [Attributor] NoAlias on return values.

    Porting function return value attribute noalias to attributor.
    This will be followed with a patch for callsite and function argumets.

    Reviewers: jdoerfert

    Subscribers: lebedev.ri, hiraditya, llvm-commits

    Differential Revision: https://reviews.llvm.org/D63067 (detail/ViewSVN)
    by sstefan
  2. Stubs out TLOF for AIX and add support for common vars in assembly output.

    Stubs out a TargetLoweringObjectFileXCOFF class, implementing only
    SelectSectionForGlobal for common symbols. Also adds an override of
    EmitGlobalVariable in PPCAIXAsmPrinter which adds a number of defensive errors
    and adds support for emitting common globals. (detail/ViewSVN)
    by sfertile
  3. [SafeStack] Insert the deref after the offset

    While debugging code that uses SafeStack, we've noticed that LLVM
    produces an invalid DWARF. Concretely, in the following example:

      int main(int argc, char* argv[]) {
        std::string value = "";
        printf("%s\n", value.c_str());
        return 0;
      }

    DWARF would describe the value variable as being located at:

      DW_OP_breg14 R14+0, DW_OP_deref, DW_OP_constu 0x20, DW_OP_minus

    The assembly to get this variable is:

      leaq    -32(%r14), %rbx

    The order of operations in the DWARF symbols is incorrect in this case.
    Specifically, the deref is incorrect; this appears to be incorrectly
    re-inserted in repalceOneDbgValueForAlloca.

    With this change which inserts the deref after the offset instead of
    before it, LLVM produces correct DWARF:

      DW_OP_breg14 R14-32

    Differential Revision: https://reviews.llvm.org/D64971 (detail/ViewSVN)
    by phosek
  4. WholeProgramDevirt: Teach the pass to respect the global's alignment.

    The bytes inserted before an overaligned global need to be padded according
    to the alignment set on the original global in order for the initializer
    to meet the global's alignment requirements. The previous implementation
    that padded to the pointer width happened to be correct for vtables on most
    platforms but may do the wrong thing if the vtable has a larger alignment.

    This issue is visible with a prototype implementation of HWASAN for globals,
    which will overalign all globals including vtables to 16 bytes.

    There is also no padding requirement for the bytes inserted after the global
    because they are never read from nor are they significant for alignment
    purposes, so stop inserting padding there.

    Differential Revision: https://reviews.llvm.org/D65031 (detail/ViewSVN)
    by pcc
  5. [PowerPC] Fix comment on MO_PLT Target Operand Flag. [NFC]

    Patch by Xiangling Liao. (detail/ViewSVN)
    by sfertile
  6. [Object][XCOFF] Remove extra includes from XCOFF related files. [NFC]

    Differential Revision: https://reviews.llvm.org/D60885 (detail/ViewSVN)
    by sfertile
  7. LowerTypeTests: Teach the pass to respect global alignments.

    We were previously ignoring alignment entirely when combining globals
    together in this pass. There are two main things that we need to do here:
    add additional padding before each global to meet the alignment requirements,
    and set the combined global's alignment to the maximum of all of the original
    globals' alignments.

    Since we now need to calculate layout as we go anyway, use the calculated
    layout to produce GlobalLayout instead of using StructLayout.

    Differential Revision: https://reviews.llvm.org/D65033 (detail/ViewSVN)
    by pcc

Started by an SCM change (5 times)

This run spent:

  • 1 hr 0 min waiting;
  • 21 min build duration;
  • 1 hr 21 min total from scheduled to completion.
LLVM/Clang Warnings: 0 warnings.
  • No warnings since build 63,411.
  • Still 22 days before reaching the previous zero warnings highscore.
Test Result (no failures)