<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class="">Sorry for getting back to this so late. I didn’t see this until now.</div><div class=""><br class=""></div>Is the output YAML from this bot lying around anywhere? Also, what’s the configuration for this bot? Just x86 linux? The test passes on my Apple machine, so this is kind of curious, considering it’s failing on the YAML.<div class=""><br class=""></div><div class="">Thanks!</div><div class=""><br class=""></div><div class="">- Jessica</div><div><br class=""><blockquote type="cite" class=""><div class="">On Aug 30, 2017, at 11:23 PM, Daniel Jasper <<a href="mailto:djasper@google.com" class="">djasper@google.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Reverted in r312219.</div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Thu, Aug 31, 2017 at 1:38 AM, Hans Wennborg via llvm-commits <span dir="ltr" class=""><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank" class="">llvm-commits@lists.llvm.org</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Sad buildbot: <a href="http://bb.pgr.jp/builders/test-llvm-i686-linux-RA/builds/6026/steps/test_llvm/logs/LLVM%20%3A%3A%20CodeGen__AArch64__machine-outliner-remarks.ll" rel="noreferrer" target="_blank" class="">http://bb.pgr.jp/builders/<wbr class="">test-llvm-i686-linux-RA/<wbr class="">builds/6026/steps/test_llvm/<wbr class="">logs/LLVM%20%3A%3A%20CodeGen__<wbr class="">AArch64__machine-outliner-<wbr class="">remarks.ll</a><br class="">
<div class="HOEnZb"><div class="h5"><br class="">
On Wed, Aug 30, 2017 at 4:31 PM, Jessica Paquette via llvm-commits<br class="">
<<a href="mailto:llvm-commits@lists.llvm.org" class="">llvm-commits@lists.llvm.org</a>> wrote:<br class="">
> Author: paquette<br class="">
> Date: Wed Aug 30 16:31:49 2017<br class="">
> New Revision: 312194<br class="">
><br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=312194&view=rev" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-<wbr class="">project?rev=312194&view=rev</a><br class="">
> Log:<br class="">
> [MachineOutliner] Add missed optimization remarks for the outliner.<br class="">
><br class="">
> This adds missed optimization remarks which report viable candidates that<br class="">
> were not outlined because they would increase code size.<br class="">
><br class="">
> Other remarks will come in separate commits.<br class="">
><br class="">
> This will help to diagnose code size regressions and changes in outliner<br class="">
> behaviour in projects using the outliner.<br class="">
><br class="">
> <a href="https://reviews.llvm.org/D37085" rel="noreferrer" target="_blank" class="">https://reviews.llvm.org/<wbr class="">D37085</a><br class="">
><br class="">
> Added:<br class="">
>     llvm/trunk/test/CodeGen/<wbr class="">AArch64/machine-outliner-<wbr class="">remarks.ll<br class="">
> Modified:<br class="">
>     llvm/trunk/lib/CodeGen/<wbr class="">MachineOutliner.cpp<br class="">
><br class="">
> Modified: llvm/trunk/lib/CodeGen/<wbr class="">MachineOutliner.cpp<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MachineOutliner.cpp?rev=312194&r1=312193&r2=312194&view=diff" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-<wbr class="">project/llvm/trunk/lib/<wbr class="">CodeGen/MachineOutliner.cpp?<wbr class="">rev=312194&r1=312193&r2=<wbr class="">312194&view=diff</a><br class="">
> ==============================<wbr class="">==============================<wbr class="">==================<br class="">
> --- llvm/trunk/lib/CodeGen/<wbr class="">MachineOutliner.cpp (original)<br class="">
> +++ llvm/trunk/lib/CodeGen/<wbr class="">MachineOutliner.cpp Wed Aug 30 16:31:49 2017<br class="">
> @@ -46,6 +46,7 @@<br class="">
>  #include "llvm/CodeGen/MachineFunction.<wbr class="">h"<br class="">
>  #include "llvm/CodeGen/<wbr class="">MachineInstrBuilder.h"<br class="">
>  #include "llvm/CodeGen/<wbr class="">MachineModuleInfo.h"<br class="">
> +#include "llvm/CodeGen/<wbr class="">MachineOptimizationRemarkEmitt<wbr class="">er.h"<br class="">
>  #include "llvm/CodeGen/Passes.h"<br class="">
>  #include "llvm/IR/IRBuilder.h"<br class="">
>  #include "llvm/Support/Allocator.h"<br class="">
> @@ -64,6 +65,7 @@<br class="">
>  #define DEBUG_TYPE "machine-outliner"<br class="">
><br class="">
>  using namespace llvm;<br class="">
> +using namespace ore;<br class="">
><br class="">
>  STATISTIC(NumOutlined, "Number of candidates outlined");<br class="">
>  STATISTIC(FunctionsCreated, "Number of functions created");<br class="">
> @@ -895,8 +897,41 @@ MachineOutliner::<wbr class="">findCandidates(SuffixTr<br class="">
>      size_t OutliningCost = CallOverhead + FrameOverhead + SequenceOverhead;<br class="">
>      size_t NotOutliningCost = SequenceOverhead * Parent.OccurrenceCount;<br class="">
><br class="">
> -    if (NotOutliningCost <= OutliningCost)<br class="">
> +    // Is it better to outline this candidate than not?<br class="">
> +    if (NotOutliningCost <= OutliningCost) {<br class="">
> +      // Outlining this candidate would take more instructions than not<br class="">
> +      // outlining.<br class="">
> +      // Emit a remark explaining why we didn't outline this candidate.<br class="">
> +      std::pair<MachineBasicBlock::<wbr class="">iterator, MachineBasicBlock::iterator> C =<br class="">
> +          CandidateClass[0];<br class="">
> +      MachineOptimizationRemarkEmitt<wbr class="">er MORE(<br class="">
> +          *(C.first->getParent()-><wbr class="">getParent()), nullptr);<br class="">
> +      MachineOptimizationRemarkMisse<wbr class="">d R(DEBUG_TYPE, "NotOutliningCheaper",<br class="">
> +                                        C.first->getDebugLoc(),<br class="">
> +                                        C.first->getParent());<br class="">
> +      R << "Did not outline " << NV("Length", StringLen) << " instructions"<br class="">
> +        << " from " << NV("NumOccurrences", CandidateClass.size())<br class="">
> +        << " locations."<br class="">
> +        << " Instructions from outlining all occurrences ("<br class="">
> +        << NV("OutliningCost", OutliningCost) << ")"<br class="">
> +        << " >= Unoutlined instruction count ("<br class="">
> +        << NV("NotOutliningCost", NotOutliningCost) << ")"<br class="">
> +        << " (Also found at: ";<br class="">
> +<br class="">
> +      // Tell the user the other places the candidate was found.<br class="">
> +      for (size_t i = 1, e = CandidateClass.size(); i < e; i++) {<br class="">
> +        R << NV((Twine("OtherStartLoc") + Twine(i)).str(),<br class="">
> +                CandidateClass[i].first-><wbr class="">getDebugLoc());<br class="">
> +        if (i != e - 1)<br class="">
> +          R << ", ";<br class="">
> +      }<br class="">
> +<br class="">
> +      R << ")";<br class="">
> +      MORE.emit(R);<br class="">
> +<br class="">
> +      // Move to the next candidate.<br class="">
>        continue;<br class="">
> +    }<br class="">
><br class="">
>      size_t Benefit = NotOutliningCost - OutliningCost;<br class="">
><br class="">
><br class="">
> Added: llvm/trunk/test/CodeGen/<wbr class="">AArch64/machine-outliner-<wbr class="">remarks.ll<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/machine-outliner-remarks.ll?rev=312194&view=auto" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-<wbr class="">project/llvm/trunk/test/<wbr class="">CodeGen/AArch64/machine-<wbr class="">outliner-remarks.ll?rev=<wbr class="">312194&view=auto</a><br class="">
> ==============================<wbr class="">==============================<wbr class="">==================<br class="">
> --- llvm/trunk/test/CodeGen/<wbr class="">AArch64/machine-outliner-<wbr class="">remarks.ll (added)<br class="">
> +++ llvm/trunk/test/CodeGen/<wbr class="">AArch64/machine-outliner-<wbr class="">remarks.ll Wed Aug 30 16:31:49 2017<br class="">
> @@ -0,0 +1,73 @@<br class="">
> +; RUN: llc %s -enable-machine-outliner -mtriple=aarch64-unknown-<wbr class="">unknown -pass-remarks-missed=machine-<wbr class="">outliner -o /dev/null 2>&1 | FileCheck %s<br class="">
> +; CHECK: machine-outliner-remarks.ll:5:<wbr class="">9:<br class="">
> +; CHECK-SAME: Did not outline 2 instructions from 2 locations.<br class="">
> +; CHECK-SAME: Instructions from outlining all occurrences (9) >=<br class="">
> +; CHECK-SAME: Unoutlined instruction count (4)<br class="">
> +; CHECK-SAME: (Also found at: machine-outliner-remarks.ll:<wbr class="">13:9)<br class="">
> +; RUN: llc %s -enable-machine-outliner -mtriple=aarch64-unknown-<wbr class="">unknown -o /dev/null -pass-remarks-missed=machine-<wbr class="">outliner -pass-remarks-output=%t.yaml<br class="">
> +; RUN: cat %t.yaml | FileCheck %s -check-prefix=YAML<br class="">
> +; YAML: --- !Missed<br class="">
> +; YAML-NEXT: Pass:            machine-outliner<br class="">
> +; YAML-NEXT: Name:            NotOutliningCheaper<br class="">
> +; YAML-NEXT: DebugLoc:        { File: machine-outliner-remarks.ll, Line: 5, Column: 9 }<br class="">
> +; YAML-NEXT: Function:        dog<br class="">
> +; YAML-NEXT: Args:<br class="">
> +; YAML-NEXT:   - String:          'Did not outline '<br class="">
> +; YAML-NEXT:   - Length:          '2'<br class="">
> +; YAML-NEXT:   - String:          ' instructions'<br class="">
> +; YAML-NEXT:   - String:          ' from '<br class="">
> +; YAML-NEXT:   - NumOccurrences:  '2'<br class="">
> +; YAML-NEXT:   - String:          ' locations.'<br class="">
> +; YAML-NEXT:   - String:          ' Instructions from outlining all occurrences ('<br class="">
> +; YAML-NEXT:   - OutliningCost:   '9'<br class="">
> +; YAML-NEXT:   - String:          ')'<br class="">
> +; YAML-NEXT:   - String:          ' >= Unoutlined instruction count ('<br class="">
> +; YAML-NEXT:   - NotOutliningCost: '4'<br class="">
> +; YAML-NEXT:   - String:          ')'<br class="">
> +; YAML-NEXT:   - String:          ' (Also found at: '<br class="">
> +; YAML-NEXT:   - OtherStartLoc1:  'machine-outliner-remarks.ll:<wbr class="">13:9'<br class="">
> +; YAML-NEXT:     DebugLoc:        { File: machine-outliner-remarks.ll, Line: 13, Column: 9 }<br class="">
> +; YAML-NEXT:   - String:          ')'<br class="">
> +<br class="">
> +define void @dog() #0 !dbg !8 {<br class="">
> +entry:<br class="">
> +  %x = alloca i32, align 4<br class="">
> +  %y = alloca i32, align 4<br class="">
> +  store i32 0, i32* %x, align 4, !dbg !11<br class="">
> +  store i32 1, i32* %y, align 4, !dbg !12<br class="">
> +  ret void, !dbg !13<br class="">
> +}<br class="">
> +<br class="">
> +define void @cat() #0 !dbg !14 {<br class="">
> +entry:<br class="">
> +  %x = alloca i32, align 4<br class="">
> +  %y = alloca i32, align 4<br class="">
> +  store i32 0, i32* %x, align 4, !dbg !15<br class="">
> +  store i32 1, i32* %y, align 4, !dbg !16<br class="">
> +  ret void, !dbg !17<br class="">
> +}<br class="">
> +<br class="">
> +attributes #0 = { noredzone nounwind ssp uwtable "no-frame-pointer-elim"="<wbr class="">false" "target-cpu"="cyclone" }<br class="">
> +<br class="">
> +!<a href="http://llvm.dbg.cu/" rel="noreferrer" target="_blank" class="">llvm.dbg.cu</a> = !{!0}<br class="">
> +!llvm.module.flags = !{!3, !4, !5, !6}<br class="">
> +!llvm.ident = !{!7}<br class="">
> +<br class="">
> +!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2)<br class="">
> +!1 = !DIFile(filename: "machine-outliner-remarks.ll", directory: "/tmp")<br class="">
> +!2 = !{}<br class="">
> +!3 = !{i32 2, !"Dwarf Version", i32 4}<br class="">
> +!4 = !{i32 2, !"Debug Info Version", i32 3}<br class="">
> +!5 = !{i32 1, !"wchar_size", i32 4}<br class="">
> +!6 = !{i32 7, !"PIC Level", i32 2}<br class="">
> +!7 = !{!""}<br class="">
> +!8 = distinct !DISubprogram(name: "dog", scope: !1, file: !1, line: 2, type: !9, isLocal: false, isDefinition: true, scopeLine: 3, flags: DIFlagPrototyped, isOptimized: false, unit: !0, variables: !2)<br class="">
> +!9 = !DISubroutineType(types: !10)<br class="">
> +!10 = !{null}<br class="">
> +!11 = !DILocation(line: 4, column: 9, scope: !8)<br class="">
> +!12 = !DILocation(line: 5, column: 9, scope: !8)<br class="">
> +!13 = !DILocation(line: 6, column: 1, scope: !8)<br class="">
> +!14 = distinct !DISubprogram(name: "cat", scope: !1, file: !1, line: 10, type: !9, isLocal: false, isDefinition: true, scopeLine: 11, flags: DIFlagPrototyped, isOptimized: false, unit: !0, variables: !2)<br class="">
> +!15 = !DILocation(line: 12, column: 9, scope: !14)<br class="">
> +!16 = !DILocation(line: 13, column: 9, scope: !14)<br class="">
> +!17 = !DILocation(line: 14, column: 1, scope: !14)<br class="">
><br class="">
><br class="">
> ______________________________<wbr class="">_________________<br class="">
> llvm-commits mailing list<br class="">
> <a href="mailto:llvm-commits@lists.llvm.org" class="">llvm-commits@lists.llvm.org</a><br class="">
> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank" class="">http://lists.llvm.org/cgi-bin/<wbr class="">mailman/listinfo/llvm-commits</a><br class="">
______________________________<wbr class="">_________________<br class="">
llvm-commits mailing list<br class="">
<a href="mailto:llvm-commits@lists.llvm.org" class="">llvm-commits@lists.llvm.org</a><br class="">
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank" class="">http://lists.llvm.org/cgi-bin/<wbr class="">mailman/listinfo/llvm-commits</a><br class="">
</div></div></blockquote></div><br class=""></div>
</div></blockquote></div><br class=""></body></html>