{"push_id":644091202,"size":19,"distinct_size":19,"ref":"refs/heads/ZeroInitLocals","head":"ee0588e3053a2405e13678066bd08525b2659fc2","before":"b4049e093a3517d9d18ca05dc67a662672b3954f","commits":[{"sha":"45dc713586e6c891050f48865e228cf917b02c47","author":{"email":"25bde77e144fcca55ce01543af70cbcf516b8a17@microsoft.com","name":"Joseph Tremoulet"},"message":"Reposition first-pass point blocks\n\nPoint blocks created in the first pass might not yet have a spot for their\npoint available to insert them into the block list.  This change:\n 1. adds tracking of whether the first pass is completed or not,\n 2. initializes the NodeOffsetListArray earlier so it will be available\n    when point blocks are craeted in readerPrePass,\n 2. during the first pass (and pre-pass), updates point block creation to call\n    fgAddNodeMSILOffset to ensure that an appropriate spot will be created\n    for it in fgReplaceBranchTargets, and\n 3. in replaceFlowGraphNodeUses (which gets called from\n    fgReplaceBranchTargets), moves the point node to the appropriate spot.\n\nThis change also fixes some blocks that are currently out-of-order:\n 1. Create endfinally blocks and unreachable continuation blocks as point\n    blocks (so the processing above will pick them up)\n 2. Add a PreviousNode parameter to makeFlowGraphNode, use it to keep the\n    tail block next to the ret block when we process ret.\n\nThis gets first-pass created point blocks in correct MSIL offset order\nbefore we process them in the second pass.  The checking in msilToIR is\nupdated to assert that the blocks are already in sorted order.\n\nAlso fix some stale comments around fgReplaceBranchTargets.","distinct":true,"url":"https://api.github.com/repos/erozenfeld/llilc/commits/45dc713586e6c891050f48865e228cf917b02c47"},{"sha":"84eaef7be2db009ef521407a16512bf03af6e206","author":{"email":"af3e4dd9d4eadafc95d2f5e1fe75bef0661e56b4@microsoft.com","name":"Bengu Li"},"message":"Exclude Inline optimization test cases that have issue with LLILC\n\n39 inlining optimization test cases were added in CoreCLR repo in dotnet/coreclr#776.\n3 of them have issue if run with LLILC, Inline_Handler, Inline_Vars, InlineThrow.\nExclude them in both powershell and python scripts. Issue dotnet#487\nis created for investigation of the causes.","distinct":true,"url":"https://api.github.com/repos/erozenfeld/llilc/commits/84eaef7be2db009ef521407a16512bf03af6e206"},{"sha":"158277621adaa5d664575c15a770c4ee8d65b714","author":{"email":"8ca7188ad8d9b98e1ad5584704078fcf19aa7c78@gmail.com","name":"Joseph Tremoulet"},"message":"Merge pull request #486 from JosephTremoulet/MovePointBlocks\n\nReposition first-pass point blocks","distinct":true,"url":"https://api.github.com/repos/erozenfeld/llilc/commits/158277621adaa5d664575c15a770c4ee8d65b714"},{"sha":"0514581ace5cbc8e1bd2b16e0175208cbf22880d","author":{"email":"c0ad65df5c2ce4e655506a410dd451246d1c9f29@microsoft.com","name":"rhadley"},"message":"Add initial Bring up Milestones markdown.\n\nThis adds a place for us to keep milestones that will take a PR.\nThese milestones will be linked to out of the wiki for reference. For\nadditions open a github issue to start a conversation then PR an edit\nthat has the new milestone.  When milestones are acheived strike through the txt.","distinct":true,"url":"https://api.github.com/repos/erozenfeld/llilc/commits/0514581ace5cbc8e1bd2b16e0175208cbf22880d"},{"sha":"5075c8aefde03af6c173e519e5cbe8e876c1f937","author":{"email":"c0ad65df5c2ce4e655506a410dd451246d1c9f29@microsoft.com","name":"Russell C Hadley"},"message":"Merge pull request #484 from russellhadley/Milestones\n\nAdd initial Bring up Milestones markdown.","distinct":true,"url":"https://api.github.com/repos/erozenfeld/llilc/commits/5075c8aefde03af6c173e519e5cbe8e876c1f937"},{"sha":"aeed7e864ce9174966a13a2dde5c92b9331b1069","author":{"email":"af3e4dd9d4eadafc95d2f5e1fe75bef0661e56b4@microsoft.com","name":"Bengu Li"},"message":"Merge pull request #488 from libengu/ExcludeInlineTests\n\nExclude Inline optimization test cases that have issue with LLILC","distinct":true,"url":"https://api.github.com/repos/erozenfeld/llilc/commits/aeed7e864ce9174966a13a2dde5c92b9331b1069"},{"sha":"93b82adac634fe93c7b798f6d2a855b601ee9310","author":{"email":"c0ad65df5c2ce4e655506a410dd451246d1c9f29@microsoft.com","name":"rhadley"},"message":"Add Reader required options\n\nAdds DoTailCallOpt, TailCallMax as well as others mentiond in the\nreader.  Also includes the UseConservativeGC/DoInsertStatepoint\noptions used by the GC work.","distinct":true,"url":"https://api.github.com/repos/erozenfeld/llilc/commits/93b82adac634fe93c7b798f6d2a855b601ee9310"},{"sha":"ef5ebebd32ec2baeb5164603767004223e1c7783","author":{"email":"c0ad65df5c2ce4e655506a410dd451246d1c9f29@microsoft.com","name":"Russell C Hadley"},"message":"Merge pull request #482 from russellhadley/SplitOptionsClass\n\nAdd Reader required options","distinct":true,"url":"https://api.github.com/repos/erozenfeld/llilc/commits/ef5ebebd32ec2baeb5164603767004223e1c7783"},{"sha":"ca0807ce35bd855b315a7e666c020974ed6804db","author":{"email":"48c10371c819736f6a953bb12ea500461c098553@microsoft.com","name":"Kyungwoo Lee"},"message":"Support for interlockedCmpXchg\n\nI use llvm intrinsic to implement this.\nI verified code sequence and ran it with a unit test,\nwhich I will add to our test asset later.","distinct":true,"url":"https://api.github.com/repos/erozenfeld/llilc/commits/ca0807ce35bd855b315a7e666c020974ed6804db"},{"sha":"c292737f4d14837e8494b9c8472dc79966fec298","author":{"email":"6566d4ac644d552ecc4d7a106c3806f21b7ba0aa@microsoft.com","name":"Pat Gavlin"},"message":"Fix unqualified (and hence ambiguous) references.","distinct":true,"url":"https://api.github.com/repos/erozenfeld/llilc/commits/c292737f4d14837e8494b9c8472dc79966fec298"},{"sha":"07eb26436728d0106b6c04525c8c4789f1e0892b","author":{"email":"48c10371c819736f6a953bb12ea500461c098553@microsoft.com","name":"kyulee1"},"message":"Merge pull request #497 from kyulee1/cmpxchg\n\nSupport for interlockedCmpXchg","distinct":true,"url":"https://api.github.com/repos/erozenfeld/llilc/commits/07eb26436728d0106b6c04525c8c4789f1e0892b"},{"sha":"003a8ff791266417510a067f130121840de30002","author":{"email":"b0f3f51d8d106eafa68beb64af628906d14dc803@gmail.com","name":"Pat Gavlin"},"message":"Merge pull request #502 from pgavlin/FixQualification\n\nFix unqualified (and hence ambiguous) references.","distinct":true,"url":"https://api.github.com/repos/erozenfeld/llilc/commits/003a8ff791266417510a067f130121840de30002"},{"sha":"2b116c64574000256ed34369bdd06b44c10cd701","author":{"email":"6566d4ac644d552ecc4d7a106c3806f21b7ba0aa@microsoft.com","name":"Pat Gavlin"},"message":"Support indirect unmanaged calls.\n\nUnmanaged calls require some extra machinery to setup the necessary data\nstructures and inform the runtime that control is entering unmanaged code.\n\nThis code is comprised of two pieces:\n- Unmanaged call frame setup, which occurs in the method prolog, and\n- GC mode transition, which occurs at an unmanaged call site.\n\nUnmanaged call frame setup is relatively simple and can be accomplished\nentirely in LLVM IR.\n\nThe GC transition, however, is more complicated due to the constraints\nthat must be satisfied for the GC to operate correctly when unmanaged code\nis running. In particular, managed code must not run if the GC has been\ninformed that unmanaged code is running. The approach taken by other\nmanaged code generators (e.g. RyuJIT) in order to meet this constraint is\nto inform the GC of the transitions to and from unmanaged code immediately\nbefore and after the machine call instruction, respectively. The same approach\nis taken here through the use of the @llvm.experimental.gc_transition intrinic,\nwhich informs the backend to surround the call with the appropriate transition\ncode. Any code that is not part of the transition itself is represented\ndirectly in IR.","distinct":true,"url":"https://api.github.com/repos/erozenfeld/llilc/commits/2b116c64574000256ed34369bdd06b44c10cd701"},{"sha":"9f1be99bf50646495c8569a20b8b178e7a3ce88b","author":{"email":"b0f3f51d8d106eafa68beb64af628906d14dc803@gmail.com","name":"Pat Gavlin"},"message":"Merge pull request #493 from pgavlin/PInvoke\n\nSupport indirect unmanaged calls.","distinct":true,"url":"https://api.github.com/repos/erozenfeld/llilc/commits/9f1be99bf50646495c8569a20b8b178e7a3ce88b"},{"sha":"2ad2b39862658b2999cf2144c601dd54101a09e3","author":{"email":"af3e4dd9d4eadafc95d2f5e1fe75bef0661e56b4@microsoft.com","name":"Bengu Li"},"message":"Update individual tests exclusion mechanism in LLILC side\n\nCoreCLR PR dotnet/coreclr#802 implemented an exclusion\nmechanism for individual test cases which works generally for different JITs.\nThis is a corresponding test case exclusion mechanism update in LLILC side\nto use that. Individual tests to exclude are specified in ExcluseList ItemGroup\nin exclusion.targets file. With this change, we no longer hard delete built\ntest cases which should reduce a lot of issues and inconvinience for developers.\nexclusion file removed. Both Powershell and Python script are updated.","distinct":true,"url":"https://api.github.com/repos/erozenfeld/llilc/commits/2ad2b39862658b2999cf2144c601dd54101a09e3"},{"sha":"7466fee80d0f2e990c927088e845d1214fa3d6d4","author":{"email":"af3e4dd9d4eadafc95d2f5e1fe75bef0661e56b4@microsoft.com","name":"Bengu Li"},"message":"Merge pull request #505 from libengu/Exclusion\n\nUpdate individual tests exclusion mechanism in LLILC side","distinct":true,"url":"https://api.github.com/repos/erozenfeld/llilc/commits/7466fee80d0f2e990c927088e845d1214fa3d6d4"},{"sha":"64c5d3ae3d18c290713690f7c3f9641ef335130e","author":{"email":"c0ad65df5c2ce4e655506a410dd451246d1c9f29@microsoft.com","name":"rhadley"},"message":"Add list of code owners\n\nList of code areas and their owners.  Owners are responsible for ensuring that code is reviewed and are the final word on changes in that area.","distinct":true,"url":"https://api.github.com/repos/erozenfeld/llilc/commits/64c5d3ae3d18c290713690f7c3f9641ef335130e"},{"sha":"b4a5dc88dfba5b1d7a27f86fc1743aa73cd14c7a","author":{"email":"c0ad65df5c2ce4e655506a410dd451246d1c9f29@microsoft.com","name":"Russell C Hadley"},"message":"Merge pull request #504 from russellhadley/CodeOwners\n\nAdd list of code owners","distinct":true,"url":"https://api.github.com/repos/erozenfeld/llilc/commits/b4a5dc88dfba5b1d7a27f86fc1743aa73cd14c7a"},{"sha":"ee0588e3053a2405e13678066bd08525b2659fc2","author":{"email":"a96234fe51920ba0e9a34bfce5dcb85e5c8dcdcd@microsoft.com","name":"Eugene Rozenfeld"},"message":"Zero initialize locals.\n\nIf CORINFO_OPT_INIT_LOCALS is set, zero initialize all locals;\notherwise, zero initialize gc pointers and structs with gc pointers.\n\nThis bug was causing bad codegen and runtime failures in 4\nmethods in baby Roslyn.","distinct":true,"url":"https://api.github.com/repos/erozenfeld/llilc/commits/ee0588e3053a2405e13678066bd08525b2659fc2"}]}