{"push_id":870669636,"size":14,"distinct_size":14,"ref":"refs/heads/master","head":"b316e13c81a78997ea7b44c1d710804c9db1b4ca","before":"e3b2e3f33bc839b0636684d89b2a3d007bffff8f","commits":[{"sha":"9ce4cb929360324d85ddda77935b6f6b2120fcb6","author":{"email":"6566d4ac644d552ecc4d7a106c3806f21b7ba0aa@microsoft.com","name":"Pat Gavlin"},"message":"Add support for the SysV AMD64 ABI.\n\nMost of the work here involves adding support for aggregate arguments\nthat are represented as multiple primitive and aggregate arguments\nthat are represented as LLVM 'byvalue' arguments (i.e. LLVM arguments\nwith the 'byvalue' attribute). The former are used for IL by-value\nstruct arguments that must be passed in multiple registers; the latter\nare used for by-value struct arguments that must be passed on the\nstack. All arguments are classified as do enregister/do not\nenregister using the interface provided by CoreCLR.","distinct":true,"url":"https://api.github.com/repos/AndyAyersMS/llilc/commits/9ce4cb929360324d85ddda77935b6f6b2120fcb6"},{"sha":"a6d14644d810bb2e23de5d14101dfe70ec61c93a","author":{"email":"b0f3f51d8d106eafa68beb64af628906d14dc803@gmail.com","name":"Pat Gavlin"},"message":"Merge pull request #935 from pgavlin/SysV\n\nAdd support for the SysV AMD64 ABI.","distinct":true,"url":"https://api.github.com/repos/AndyAyersMS/llilc/commits/a6d14644d810bb2e23de5d14101dfe70ec61c93a"},{"sha":"d2bd7c6061a3ce93413de427d57ffb85bd70e419","author":{"email":"25bde77e144fcca55ce01543af70cbcf516b8a17@microsoft.com","name":"Joseph Tremoulet"},"message":"Make GcInfo lib depend on intrinsics_gen\n\nLLVM change r252796 (git hash f805775e) reworked llvm/IR/Attributes.h so\nthat it now #includes a generated .inc file.  GCInfo.cpp transitively\n #includes Attributes.h, so make it depend on the intrinsics_gen target\n(which includes the generation of the .inc file)","distinct":true,"url":"https://api.github.com/repos/AndyAyersMS/llilc/commits/d2bd7c6061a3ce93413de427d57ffb85bd70e419"},{"sha":"66db47a13eac988a43374ef17eacdedf440e9493","author":{"email":"8ca7188ad8d9b98e1ad5584704078fcf19aa7c78@gmail.com","name":"Joseph Tremoulet"},"message":"Merge pull request #937 from JosephTremoulet/GcDepends\n\nMake GcInfo lib depend on intrinsics_gen","distinct":true,"url":"https://api.github.com/repos/AndyAyersMS/llilc/commits/66db47a13eac988a43374ef17eacdedf440e9493"},{"sha":"f98daeda24fe1aadc6658f3ab7658036f84ae509","author":{"email":"48c10371c819736f6a953bb12ea500461c098553@microsoft.com","name":"Kyungwoo Lee"},"message":"Emit DebugLocInfo/DebugFileInfo in ObjectWriter for Windows\n\nThis basically emits two tables.\nOne is for file name tables (along with index table).\nThe other is for native offset to source location info.\nBorrowed CodeView emission logic from LLVM mainline. Ideally this code should be refactored to be shared.\n\nNuget package version (and name for linux) is updated.","distinct":true,"url":"https://api.github.com/repos/AndyAyersMS/llilc/commits/f98daeda24fe1aadc6658f3ab7658036f84ae509"},{"sha":"92c2cf4a068aa69b3a244201e2b888bb7b941593","author":{"email":"48c10371c819736f6a953bb12ea500461c098553@microsoft.com","name":"kyulee1"},"message":"Merge pull request #936 from kyulee1/debug\n\nEmit DebugLocInfo/DebugFileInfo in ObjectWriter for Windows","distinct":true,"url":"https://api.github.com/repos/AndyAyersMS/llilc/commits/92c2cf4a068aa69b3a244201e2b888bb7b941593"},{"sha":"4273724969ed84f5e8264b43bbd18ea9344f7b94","author":{"email":"25bde77e144fcca55ce01543af70cbcf516b8a17@microsoft.com","name":"Joseph Tremoulet"},"message":"Remove dubious usage of getNextNode\n\nLLVM change r252694 (git commit 6426aea5) fixed a problem with getNextNode\nwhen called on the last item in a list (instr in a block / block in a\nfunctino), so that it now returns nullptr as expected, whereas previously\nit cast the end iterator sentinel to a bogus node pointer.\n\nThis caused some tests to fail in createTemporary where we had evidently\n(perhaps unwittingly) worked around the previous behavior by comparing the\nresult against the end iterator rather than nullptr.\n\nThis change updates createTemporary to deal directly in iterators when\nsetting the insertion point, rather than translating them back to\ninstructinos.  I audited all the other calls to getNextNode() in LLILC\nsources, and changed several of them to likewise deal in iterators, to\nsimplify reasoning about the code.  There remaining 6 calls all appear to\nbe correct in that the input is never null/end and null is the desired\noutput if the input was the last element.","distinct":true,"url":"https://api.github.com/repos/AndyAyersMS/llilc/commits/4273724969ed84f5e8264b43bbd18ea9344f7b94"},{"sha":"6dcc1a84eba6a4cad76e1747a5c1c132f3edfac5","author":{"email":"8ca7188ad8d9b98e1ad5584704078fcf19aa7c78@gmail.com","name":"Joseph Tremoulet"},"message":"Merge pull request #942 from JosephTremoulet/NextNode\n\nRemove dubious usage of getNextNode","distinct":true,"url":"https://api.github.com/repos/AndyAyersMS/llilc/commits/6dcc1a84eba6a4cad76e1747a5c1c132f3edfac5"},{"sha":"5f75e88ac3f4a5f58ad023e0ad63a4fc15a0d56b","author":{"email":"25bde77e144fcca55ce01543af70cbcf516b8a17@microsoft.com","name":"Joseph Tremoulet"},"message":"Make 13 more test exclusions conditional on EH\n\nSupport for generating/initializing the PSPSym and using it to find the\nroot frame in funclet prologs was added to LLVM in r252983 (git commit\na736fb542); update the exclusions list to reflect the tests that now pass\nwhen ExecuteHandlers is set.","distinct":true,"url":"https://api.github.com/repos/AndyAyersMS/llilc/commits/5f75e88ac3f4a5f58ad023e0ad63a4fc15a0d56b"},{"sha":"5859835d7311421ff0e4a029c712f4a58bf2f614","author":{"email":"8ca7188ad8d9b98e1ad5584704078fcf19aa7c78@gmail.com","name":"Joseph Tremoulet"},"message":"Merge pull request #943 from JosephTremoulet/PSPSym\n\nMake 13 more test exclusions conditional on EH","distinct":true,"url":"https://api.github.com/repos/AndyAyersMS/llilc/commits/5859835d7311421ff0e4a029c712f4a58bf2f614"},{"sha":"e6da3e31307cc95ee003873d9225751d2e200982","author":{"email":"48c10371c819736f6a953bb12ea500461c098553@microsoft.com","name":"Kyungwoo Lee"},"message":"Rename object writer package\n\nAdd support for redirection package using json.","distinct":true,"url":"https://api.github.com/repos/AndyAyersMS/llilc/commits/e6da3e31307cc95ee003873d9225751d2e200982"},{"sha":"252afaef1fb783351bf0a4f1962a1f7a126027e4","author":{"email":"48c10371c819736f6a953bb12ea500461c098553@microsoft.com","name":"kyulee1"},"message":"Merge pull request #945 from kyulee1/rename\n\nFormalize object writer package names.","distinct":true,"url":"https://api.github.com/repos/AndyAyersMS/llilc/commits/252afaef1fb783351bf0a4f1962a1f7a126027e4"},{"sha":"a39370ff346e1986284864ac6b8e38bd233eaa69","author":{"email":"04b66ffb2360c42ea91fdf2fb99d31cafab10efd@microsoft.com","name":"Andy Ayers"},"message":"Use llvm::Function for direct call targets\n\nWhen we have a direct call target, lookup or create an llvm::Function for the value. Since we don't know the right function type at that time, use `void()` and patch up the function type later on during ABI processing. Handle direct recursion specially by using the llvm::Function for the current method.\n\nAvoid retyping on `jmp` calls since these may morph the argument list to match the caller's to enable LLVM's `musttail` to do the required transformation. Also allow for multiple types (handled via casting instead of mutation) since there are a handful of cases where a method is called with different (though compatible) signatures.\n\nHandle cases where `ldftn`s meet at PHIs by choosing the non `void()` function type, if any.\n\nInitially I had checked that if the lookup found a pre-existing global object, that the names matched. But there are too many cases where different names/tokens end up mapping to the same lookup handle (eg two different generic method instantations mapping to the same shared method instance). This all works out ok from a correctness standpoint because the first name we see for a given lookup handle becomes the name we use. The dumps may look a bit odd in places though; hopefully nothing too jarring.\n\nThe fixup process is a bit unsavory and uses the \"dangerous\" mutate method. We could avoid this by running part of the ABI signature unravelling when we first encounter the target method handle; I haven't looked into how feasible this is. Even if we did we'd still end up casting at some sites.\n\nThis gets us normal looking function references in direct calls. The global declarations still show the `void()` types however.","distinct":true,"url":"https://api.github.com/repos/AndyAyersMS/llilc/commits/a39370ff346e1986284864ac6b8e38bd233eaa69"},{"sha":"b316e13c81a78997ea7b44c1d710804c9db1b4ca","author":{"email":"04b66ffb2360c42ea91fdf2fb99d31cafab10efd@microsoft.com","name":"Andy Ayers"},"message":"Merge pull request #944 from AndyAyersMS/FunctionSymbols\n\nUse llvm::Function for direct call targets","distinct":true,"url":"https://api.github.com/repos/AndyAyersMS/llilc/commits/b316e13c81a78997ea7b44c1d710804c9db1b4ca"}]}