{"push_id":851877742,"size":19,"distinct_size":0,"ref":"refs/heads/tmp","head":"a216e847272ddbd3033037b606eaf2d801c250b9","before":"c340ea1de5dba6d0184103b9d67e290e3ea02981","commits":[{"sha":"6d7c66e6e82229134fcc5a2b5a23545f8a17f1ce","author":{"email":"4cc33a8ae3d9bb448f90bf63a1d4018698b1fb94@alum.mit.edu","name":"Niko Matsakis"},"message":"Introduce a \"liberated fn sigs\" map so that we have easy access to this\ninformation when constructing MIR.","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/6d7c66e6e82229134fcc5a2b5a23545f8a17f1ce"},{"sha":"88a9c3e764d7938ecbc9c25e840cb60dbd70d170","author":{"email":"4cc33a8ae3d9bb448f90bf63a1d4018698b1fb94@alum.mit.edu","name":"Niko Matsakis"},"message":"Build the MIR using the liberated fn sigs, and track the return type","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/88a9c3e764d7938ecbc9c25e840cb60dbd70d170"},{"sha":"1e30f3e52be35c8992ae882a38b9c74e6adbfef6","author":{"email":"4cc33a8ae3d9bb448f90bf63a1d4018698b1fb94@alum.mit.edu","name":"Niko Matsakis"},"message":"Change ShallowDrop to Free, so that it matches what trans will do","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/1e30f3e52be35c8992ae882a38b9c74e6adbfef6"},{"sha":"15c1da4e27587951a8806b6485a8051103019a02","author":{"email":"4cc33a8ae3d9bb448f90bf63a1d4018698b1fb94@alum.mit.edu","name":"Niko Matsakis"},"message":"Convert from using named fields to always using indices","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/15c1da4e27587951a8806b6485a8051103019a02"},{"sha":"3c07b4611815d4d593fba22aaaa975ed97818919","author":{"email":"4cc33a8ae3d9bb448f90bf63a1d4018698b1fb94@alum.mit.edu","name":"Niko Matsakis"},"message":"Pass the mir map to trans","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/3c07b4611815d4d593fba22aaaa975ed97818919"},{"sha":"b5d358084395b76277d2c92f73c28338f9432a25","author":{"email":"4cc33a8ae3d9bb448f90bf63a1d4018698b1fb94@alum.mit.edu","name":"Niko Matsakis"},"message":"Move the \"HAIR\" code that reads the tcx tables etc out of the `tcx`\nmodule and into `hair/cx`, now that we don't have a trait defining\nthe interface","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/b5d358084395b76277d2c92f73c28338f9432a25"},{"sha":"3ab29d337834383c159b2a4e275581f97ad34a25","author":{"email":"4cc33a8ae3d9bb448f90bf63a1d4018698b1fb94@alum.mit.edu","name":"Niko Matsakis"},"message":"Add adt_def into Switch, since it's convenient to have in trans","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/3ab29d337834383c159b2a4e275581f97ad34a25"},{"sha":"044096b3e9a8d02461d49fb5559bb11c4308e701","author":{"email":"4cc33a8ae3d9bb448f90bf63a1d4018698b1fb94@alum.mit.edu","name":"Niko Matsakis"},"message":"Change Call operands to be, well, Operands","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/044096b3e9a8d02461d49fb5559bb11c4308e701"},{"sha":"0a62158a4e1bb012d5b0778701dd67b65a8754c2","author":{"email":"4cc33a8ae3d9bb448f90bf63a1d4018698b1fb94@alum.mit.edu","name":"Niko Matsakis"},"message":"Add helper methods that require tcx; these compute types of\nlvalues and operands","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/0a62158a4e1bb012d5b0778701dd67b65a8754c2"},{"sha":"81ff2c2f8e964c33ac8d4b3570fc881658301068","author":{"email":"4cc33a8ae3d9bb448f90bf63a1d4018698b1fb94@alum.mit.edu","name":"Niko Matsakis"},"message":"Change adt case handling fn to be less tied to match","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/81ff2c2f8e964c33ac8d4b3570fc881658301068"},{"sha":"877b93add2a0d7cc603fa3146a3b9b0af0215e9d","author":{"email":"4cc33a8ae3d9bb448f90bf63a1d4018698b1fb94@alum.mit.edu","name":"Niko Matsakis"},"message":"Move shifting code out of expr and into somewhere more accessible","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/877b93add2a0d7cc603fa3146a3b9b0af0215e9d"},{"sha":"02017b30ebebfaeb64a5a86a885773f38057beba","author":{"email":"4cc33a8ae3d9bb448f90bf63a1d4018698b1fb94@alum.mit.edu","name":"Niko Matsakis"},"message":"New trans codepath that builds fn body from MIR instead.","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/02017b30ebebfaeb64a5a86a885773f38057beba"},{"sha":"e84829d51d9aa8e2623dabd4dcd4935d22008cb5","author":{"email":"4cc33a8ae3d9bb448f90bf63a1d4018698b1fb94@alum.mit.edu","name":"Niko Matsakis"},"message":"Plumbing to omit allocas for temps when possible (currently unused)","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/e84829d51d9aa8e2623dabd4dcd4935d22008cb5"},{"sha":"544b06d455a067ab54a850e34bdc7794f23c6734","author":{"email":"4cc33a8ae3d9bb448f90bf63a1d4018698b1fb94@alum.mit.edu","name":"Niko Matsakis"},"message":"Add a MIR visitor","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/544b06d455a067ab54a850e34bdc7794f23c6734"},{"sha":"6a5b263503dce838c2a09619171b409c9f11bb9f","author":{"email":"4cc33a8ae3d9bb448f90bf63a1d4018698b1fb94@alum.mit.edu","name":"Niko Matsakis"},"message":"Add (and use) an analysis to determine which temps can forgo an alloca.","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/6a5b263503dce838c2a09619171b409c9f11bb9f"},{"sha":"9c9f4be9df863e529b09f195f013710e676fb5c1","author":{"email":"4cc33a8ae3d9bb448f90bf63a1d4018698b1fb94@alum.mit.edu","name":"Niko Matsakis"},"message":"correct typos","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/9c9f4be9df863e529b09f195f013710e676fb5c1"},{"sha":"b46c0fc49749affc0fc953e8cdc136f5aff5c1b3","author":{"email":"4cc33a8ae3d9bb448f90bf63a1d4018698b1fb94@alum.mit.edu","name":"Niko Matsakis"},"message":"address nits from dotdash","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/b46c0fc49749affc0fc953e8cdc136f5aff5c1b3"},{"sha":"e78786315b44037258970ee9187f3fd6f89fc61b","author":{"email":"4cc33a8ae3d9bb448f90bf63a1d4018698b1fb94@alum.mit.edu","name":"Niko Matsakis"},"message":"remove unused import","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/e78786315b44037258970ee9187f3fd6f89fc61b"},{"sha":"a216e847272ddbd3033037b606eaf2d801c250b9","author":{"email":"3a2c29237f73c7cf88424b80e427b1884f346b35@rust-lang.org","name":"bors"},"message":"Auto merge of #29217 - nikomatsakis:mir-trans, r=dotdash\n\nThis branch implements a variant of trans that is based on MIR. It is very incomplete (intentionally), and had only the goal of laying out enough work to enable more incremental follow-on patches. Currently, only fns tagged with `#[rustc_mir]` use the new trans code. I plan to build up a meta-issue as well that tracks the various \"not-yet-implemented\" points. The only fn that has been tested so far is this amazingly complex \"spike\" fn:\r\n\r\n```rust\r\n#[rustc_mir]\r\nfn sum(x: i32, y: i32) -> i32 {\r\n    x + y\r\n}\r\n```\r\n\r\nIn general, the most interesting commit is the last one. There are some points on which I would like feedback from @rust-lang/compiler:\r\n\r\n- I did not use `Datum`. Originally, I thought that maybe just a `ValueRef` would be enough but I wound up with two very simple structures, `LvalueRef` and `OperandRef`, that just package up a `ValueRef` and a type. Because of MIR's structure, you don't wind up mixing by-ref and by-value so much, and I tend to think that a thinner abstraction layer is better here, but I'm not sure.\r\n- Related to the above, I expect that sooner or later we will analyze temps (and maybe variables too) to find those whose address is never taken and which are word-sized and which perhaps meet a few other criteria. For those, we'll probably want to avoid the alloca, just because it means prettier code.\r\n- I generally tried to re-use data structures from elsewhere in trans, though I'm sure we can trim these down.\r\n- I didn't do any debuginfo primarily because it seems to want node-ids and we have only spans. I haven't really read into that code so I don't know what's going on there.\r\n\r\nr? @nrc","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/a216e847272ddbd3033037b606eaf2d801c250b9"}]}