<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in replaced-function-matches-first-subprogram.ll</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>2c864551 - [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Linker/Inputs/replaced-function-matches-first-subprogram.ll#2c864551</link>
        <description>[DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label.In order to set breakpoints on labels and list source code aroundlabels, we need collect debug information for labels, i.e., labelname, the function label belong, line number in the file, and theaddress label located. In order to keep these information in LLVMIR and to allow backend to generate debug information correctly.We create a new kind of metadata for labels, DILabel. The formatof DILabel is!DILabel(scope: !1, name: &quot;foo&quot;, file: !2, line: 3)We hope to keep debug information as much as possible even thecode is optimized. So, we create a new kind of intrinsic for labelmetadata to avoid the metadata is eliminated with basic block.The intrinsic will keep existing if we keep it from optimized out.The format of the intrinsic isllvm.dbg.label(metadata !1)It has only one argument, that is the DILabel metadata. Theintrinsic will follow the label immediately. Backend could get thelabel metadata through the intrinsic&apos;s parameter.We also create DIBuilder API for labels to be used by Frontend.Frontend could use createLabel() to allocate DILabel objects, and useinsertLabel() to insert llvm.dbg.label intrinsic in LLVM IR.Differential Revision: https://reviews.llvm.org/D45024Patch by Hsiangkai Wang.llvm-svn: 331841

            List of files:
            /llvm-project-15.0.7/llvm/test/Linker/Inputs/replaced-function-matches-first-subprogram.ll</description>
        <pubDate>Wed, 09 May 2018 02:40:45 +0000</pubDate>
        <dc:creator>Shiva Chen &lt;shiva0217@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>75819aed - [PR27284] Reverse the ownership between DICompileUnit and DISubprogram.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Linker/Inputs/replaced-function-matches-first-subprogram.ll#75819aed</link>
        <description>[PR27284] Reverse the ownership between DICompileUnit and DISubprogram.Currently each Function points to a DISubprogram and DISubprogram has ascope field. For member functions the scope is a DICompositeType. DIScopespoint to the DICompileUnit to facilitate type uniquing.Distinct DISubprograms (with isDefinition: true) are not part of the typehierarchy and cannot be uniqued. This change removes the subprogramslist from DICompileUnit and instead adds a pointer to the owning compileunit to distinct DISubprograms. This would make it easy for ThinLTO tostrip unneeded DISubprograms and their transitively referenced debug info.Motivation----------Materializing DISubprograms is currently the most expensive operation whendoing a ThinLTO build of clang.We want the DISubprogram to be stored in a separate Bitcode block (or thesame block as the function body) so we can avoid having to expensivelydeserialize all DISubprograms together with the global metadata. If afunction has been inlined into another subprogram we need to store areference the block containing the inlined subprogram.Attached to https://llvm.org/bugs/show_bug.cgi?id=27284 is a python scriptthat updates LLVM IR testcases to the new format.http://reviews.llvm.org/D19034&lt;rdar://problem/25256815&gt;llvm-svn: 266446

            List of files:
            /llvm-project-15.0.7/llvm/test/Linker/Inputs/replaced-function-matches-first-subprogram.ll</description>
        <pubDate>Fri, 15 Apr 2016 15:57:41 +0000</pubDate>
        <dc:creator>Adrian Prantl &lt;aprantl@apple.com&gt;</dc:creator>
    </item>
<item>
        <title>b8089516 - testcase gardening: update the emissionKind enum to the new syntax. (NFC)</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Linker/Inputs/replaced-function-matches-first-subprogram.ll#b8089516</link>
        <description>testcase gardening: update the emissionKind enum to the new syntax. (NFC)llvm-svn: 265081

            List of files:
            /llvm-project-15.0.7/llvm/test/Linker/Inputs/replaced-function-matches-first-subprogram.ll</description>
        <pubDate>Fri, 01 Apr 2016 00:16:49 +0000</pubDate>
        <dc:creator>Adrian Prantl &lt;aprantl@apple.com&gt;</dc:creator>
    </item>
<item>
        <title>d4bff303 - DI: Reverse direction of subprogram -&gt; function edge.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Linker/Inputs/replaced-function-matches-first-subprogram.ll#d4bff303</link>
        <description>DI: Reverse direction of subprogram -&gt; function edge.Previously, subprograms contained a metadata reference to the function theydescribed. Because most clients need to get or set a subprogram for a givenfunction rather than the other way around, this created unneeded inefficiency.For example, many passes needed to call the function llvm::makeSubprogramMap()to build a mapping from functions to subprograms, and the IR linker needed tofix up function references in a way that caused quadratic complexity in the IRlinking phase of LTO.This change reverses the direction of the edge by storing the subprogram asfunction-level metadata and removing DISubprogram&apos;s function field.Since this is an IR change, a bitcode upgrade has been provided.Fixes PR23367. An upgrade script for textual IR for out-of-tree clients isattached to the PR.Differential Revision: http://reviews.llvm.org/D14265llvm-svn: 252219

            List of files:
            /llvm-project-15.0.7/llvm/test/Linker/Inputs/replaced-function-matches-first-subprogram.ll</description>
        <pubDate>Thu, 05 Nov 2015 22:03:56 +0000</pubDate>
        <dc:creator>Peter Collingbourne &lt;peter@pcc.me.uk&gt;</dc:creator>
    </item>
<item>
        <title>814b8e91 - DI: Require subprogram definitions to be distinct</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Linker/Inputs/replaced-function-matches-first-subprogram.ll#814b8e91</link>
        <description>DI: Require subprogram definitions to be distinctAs a follow-up to r246098, require `DISubprogram` definitions(`isDefinition: true`) to be &apos;distinct&apos;.  Specifically, add an assemblercheck, a verifier check, and bitcode upgrading logic to combat testcasebitrot after the `DIBuilder` change.While working on the testcases, I realized thattest/Linker/subprogram-linkonce-weak-odr.ll isn&apos;t relevant anymore.  Itspurpose was to check for a corner case in PR22792 where two subprogramdefinitions match exactly and share the same metadata node.  The newverifier check, requiring that subprogram definitions are &apos;distinct&apos;,precludes that possibility.I updated almost all the IR with the following script:    git grep -l -E -e &apos;= !DISubprogram\(.* isDefinition: true&apos; |    grep -v test/Bitcode |    xargs sed -i &apos;&apos; -e &apos;s/= \(!DISubprogram(.*, isDefinition: true\)/= distinct \1/&apos;Likely some variant of would work for out-of-tree testcases.llvm-svn: 246327

            List of files:
            /llvm-project-15.0.7/llvm/test/Linker/Inputs/replaced-function-matches-first-subprogram.ll</description>
        <pubDate>Fri, 28 Aug 2015 20:26:49 +0000</pubDate>
        <dc:creator>Duncan P. N. Exon Smith &lt;dexonsmith@apple.com&gt;</dc:creator>
    </item>
<item>
        <title>55ca964e - DI: Disallow uniquable DICompileUnits</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Linker/Inputs/replaced-function-matches-first-subprogram.ll#55ca964e</link>
        <description>DI: Disallow uniquable DICompileUnitsSince r241097, `DIBuilder` has only created distinct `DICompileUnit`s.The backend is liable to start relying on that (if it hasn&apos;t already),so make uniquable `DICompileUnit`s illegal and automatically upgrade oldbitcode.  This is a nice cleanup, since we can remove an unnecessary`DenseSet` (and the associated uniquing info) from `LLVMContextImpl`.Almost all the testcases were updated with this script:    git grep -e &apos;= !DICompileUnit&apos; -l -- test |    grep -v test/Bitcode |    xargs sed -i &apos;&apos; -e &apos;s,= !DICompileUnit,= distinct !DICompileUnit,&apos;I imagine something similar should work for out-of-tree testcases.llvm-svn: 243885

            List of files:
            /llvm-project-15.0.7/llvm/test/Linker/Inputs/replaced-function-matches-first-subprogram.ll</description>
        <pubDate>Mon, 03 Aug 2015 17:26:41 +0000</pubDate>
        <dc:creator>Duncan P. N. Exon Smith &lt;dexonsmith@apple.com&gt;</dc:creator>
    </item>
<item>
        <title>a9308c49 - IR: Give &apos;DI&apos; prefix to debug info metadata</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Linker/Inputs/replaced-function-matches-first-subprogram.ll#a9308c49</link>
        <description>IR: Give &apos;DI&apos; prefix to debug info metadataFinish off PR23080 by renaming the debug info IR constructs from `MD*`to `DI*`.  The last of the `DIDescriptor` classes were deleted inr235356, and the last of the related typedefs removed in r235413, sothis has all baked for about a week.Note: If you have out-of-tree code (like a frontend), I recommend thatyou get everything compiling and tests passing with the *previous*commit before updating to this one.  It&apos;ll be easier to keep track ofwhat code is using the `DIDescriptor` hierarchy and what you&apos;ve alreadyupdated, and I think you&apos;re extremely unlikely to insert bugs.  YMMV ofcourse.Back to *this* commit: I did this using the rename-md-di-nodes.shupgrade script I&apos;ve attached to PR23080 (both code and testcases) andfiltered through clang-format-diff.py.  I edited the tests fortest/Assembler/invalid-generic-debug-node-*.ll by hand since the columnswere off-by-three.  It should work on your out-of-tree testcases (andcode, if you&apos;ve followed the advice in the previous paragraph).Some of the tests are in badly named files now (e.g.,test/Assembler/invalid-mdcompositetype-missing-tag.ll should be&apos;dicompositetype&apos;); I&apos;ll come back and move the files in a follow-upcommit.llvm-svn: 236120

            List of files:
            /llvm-project-15.0.7/llvm/test/Linker/Inputs/replaced-function-matches-first-subprogram.ll</description>
        <pubDate>Wed, 29 Apr 2015 16:38:44 +0000</pubDate>
        <dc:creator>Duncan P. N. Exon Smith &lt;dexonsmith@apple.com&gt;</dc:creator>
    </item>
<item>
        <title>e274180f - DebugInfo: Move new hierarchy into place</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Linker/Inputs/replaced-function-matches-first-subprogram.ll#e274180f</link>
        <description>DebugInfo: Move new hierarchy into placeMove the specialized metadata nodes for the new debug info hierarchyinto place, finishing off PR22464.  I&apos;ve done bootstraps (and all that)and I&apos;m confident this commit is NFC as far as DWARF output isconcerned.  Let me know if I&apos;m wrong :).The code changes are fairly mechanical:  - Bumped the &quot;Debug Info Version&quot;.  - `DIBuilder` now creates the appropriate subclass of `MDNode`.  - Subclasses of DIDescriptor now expect to hold their &quot;MD&quot;    counterparts (e.g., `DIBasicType` expects `MDBasicType`).  - Deleted a ton of dead code in `AsmWriter.cpp` and `DebugInfo.cpp`    for printing comments.  - Big update to LangRef to describe the nodes in the new hierarchy.    Feel free to make it better.Testcase changes are enormous.  There&apos;s an accompanying clang commit onits way.If you have out-of-tree debug info testcases, I just broke your build.  - `upgrade-specialized-nodes.sh` is attached to PR22564.  I used it to    update all the IR testcases.  - Unfortunately I failed to find way to script the updates to CHECK    lines, so I updated all of these by hand.  This was fairly painful,    since the old CHECKs are difficult to reason about.  That&apos;s one of    the benefits of the new hierarchy.This work isn&apos;t quite finished, BTW.  The `DIDescriptor` subclasses arealmost empty wrappers, but not quite: they still have loose castingchecks (see the `RETURN_FROM_RAW()` macro).  Once they&apos;re completelygutted, I&apos;ll rename the &quot;MD&quot; classes to &quot;DI&quot; and kill the wrappers.  Ialso expect to make a few schema changes now that it&apos;s easier to reasonabout everything.llvm-svn: 231082

            List of files:
            /llvm-project-15.0.7/llvm/test/Linker/Inputs/replaced-function-matches-first-subprogram.ll</description>
        <pubDate>Tue, 03 Mar 2015 17:24:31 +0000</pubDate>
        <dc:creator>Duncan P. N. Exon Smith &lt;dexonsmith@apple.com&gt;</dc:creator>
    </item>
<item>
        <title>a79ac14f - [opaque pointer type] Add textual IR support for explicit type parameter to load instruction</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Linker/Inputs/replaced-function-matches-first-subprogram.ll#a79ac14f</link>
        <description>[opaque pointer type] Add textual IR support for explicit type parameter to load instructionEssentially the same as the GEP change in r230786.A similar migration script can be used to update test cases, though a few moretest case improvements/changes were required this time around: (r229269-r229278)import fileinputimport sysimport repat = re.compile(r&quot;((?:=|:|^)\s*load (?:atomic )?(?:volatile )?(.*?))(| addrspace\(\d+\) *)\*($| *(?:%|@|null|undef|blockaddress|getelementptr|addrspacecast|bitcast|inttoptr|\[\[[a-zA-Z]|\{\{).*$)&quot;)for line in sys.stdin:  sys.stdout.write(re.sub(pat, r&quot;\1, \2\3*\4&quot;, line))Reviewers: rafael, dexonsmith, grosserDifferential Revision: http://reviews.llvm.org/D7649llvm-svn: 230794

            List of files:
            /llvm-project-15.0.7/llvm/test/Linker/Inputs/replaced-function-matches-first-subprogram.ll</description>
        <pubDate>Fri, 27 Feb 2015 21:17:42 +0000</pubDate>
        <dc:creator>David Blaikie &lt;dblaikie@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>98854699 - IR: Move MDLocation into place</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Linker/Inputs/replaced-function-matches-first-subprogram.ll#98854699</link>
        <description>IR: Move MDLocation into placeThis commit moves `MDLocation`, finishing off PR21433.  There&apos;s anaccompanying clang commit for frontend testcases.  I&apos;ll attach thetestcase upgrade script I used to PR21433 to help out-of-treefrontends/backends.This changes the schema for `DebugLoc` and `DILocation` from:    !{i32 3, i32 7, !7, !8}to:    !MDLocation(line: 3, column: 7, scope: !7, inlinedAt: !8)Note that empty fields (line/column: 0 and inlinedAt: null) don&apos;t getprinted by the assembly writer.llvm-svn: 226048

            List of files:
            /llvm-project-15.0.7/llvm/test/Linker/Inputs/replaced-function-matches-first-subprogram.ll</description>
        <pubDate>Wed, 14 Jan 2015 22:27:36 +0000</pubDate>
        <dc:creator>Duncan P. N. Exon Smith &lt;dexonsmith@apple.com&gt;</dc:creator>
    </item>
<item>
        <title>fda0cee7 - Reapply &quot;Linker: Drop superseded subprograms&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Linker/Inputs/replaced-function-matches-first-subprogram.ll#fda0cee7</link>
        <description>Reapply &quot;Linker: Drop superseded subprograms&quot;This reverts commit r224416, reapplying r224389.  The buildbots hadn&apos;trecovered after my revert, waiting until David reverted a couple of hiscommits.  It looks like it was just bad timing (where we were bothmodifying code related to the same assertion).  Trying again...Here&apos;s the original text:    When a function gets replaced by `ModuleLinker`, drop superseded    subprograms.  This ensures that the &quot;first&quot; subprogram pointing at a    function is the same one that `!dbg` references point at.    This is a stop-gap fix for PR21910.  Notably, this fixes Release+Asserts    bootstraps that are currently asserting out in    `LexicalScopes::initialize()` due to the explicit instantiations in    `lib/IR/Dominators.cpp` eventually getting replaced by -argpromotion.llvm-svn: 224487

            List of files:
            /llvm-project-15.0.7/llvm/test/Linker/Inputs/replaced-function-matches-first-subprogram.ll</description>
        <pubDate>Thu, 18 Dec 2014 01:05:33 +0000</pubDate>
        <dc:creator>Duncan P. N. Exon Smith &lt;dexonsmith@apple.com&gt;</dc:creator>
    </item>
<item>
        <title>87590268 - Linker: Drop superseded subprograms</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Linker/Inputs/replaced-function-matches-first-subprogram.ll#87590268</link>
        <description>Linker: Drop superseded subprogramsWhen a function gets replaced by `ModuleLinker`, drop supersededsubprograms.  This ensures that the &quot;first&quot; subprogram pointing at afunction is the same one that `!dbg` references point at.This is a stop-gap fix for PR21910.  Notably, this fixes Release+Assertsbootstraps that are currently asserting out in`LexicalScopes::initialize()` due to the explicit instantiations in`lib/IR/Dominators.cpp` eventually getting replaced by -argpromotion.llvm-svn: 224389

            List of files:
            /llvm-project-15.0.7/llvm/test/Linker/Inputs/replaced-function-matches-first-subprogram.ll</description>
        <pubDate>Tue, 16 Dec 2014 23:23:41 +0000</pubDate>
        <dc:creator>Duncan P. N. Exon Smith &lt;dexonsmith@apple.com&gt;</dc:creator>
    </item>
</channel>
</rss>
