{"push_id":1050422481,"size":13,"distinct_size":13,"ref":"refs/heads/remove-unnecessary-as-cast","head":"ee1582a78c12e052560340643566f401a16fa8a0","before":"5600d015c187696995042e65c7b61cc6e5db69f2","commits":[{"sha":"60a28e60aa6eb0ed074fa5e6875e60cb2f038605","author":{"email":"474ba67bdb289c6263b36dfd8a7bed6c85b04943@aatch.net","name":"James Miller"},"message":"Add some standard traversal iterators for MIR\n\nAdds Preorder, Postorder and Reverse Postorder traversal iterators.\n\nAlso makes trans/mir use Reverse Postorder traversal for blocks.","distinct":true,"url":"https://api.github.com/repos/nodakai/rust/commits/60a28e60aa6eb0ed074fa5e6875e60cb2f038605"},{"sha":"eee7f3c73298ed77f61ad15cdca552528d6f3783","author":{"email":"474ba67bdb289c6263b36dfd8a7bed6c85b04943@aatch.net","name":"James Miller"},"message":"Add and use a break critical edges transform\n\nThis is a fairly standard transform that inserts blocks along critical\nedges so code can be inserted along the edge without it affecting other\nedges. The main difference is that it considers a Drop or Call\nterminator that would require an `invoke` instruction in LLVM a critical\nedge. This is because we can't actually insert code after an invoke, so\nit ends up looking similar to a critical edge anyway.\n\nThe transform is run just before translation right now.","distinct":true,"url":"https://api.github.com/repos/nodakai/rust/commits/eee7f3c73298ed77f61ad15cdca552528d6f3783"},{"sha":"c70bc3a5daa2ce46aad7c230004ade7a404c12f1","author":{"email":"474ba67bdb289c6263b36dfd8a7bed6c85b04943@aatch.net","name":"James Miller"},"message":"Don't build a map of predecessors, just count them instead","distinct":true,"url":"https://api.github.com/repos/nodakai/rust/commits/c70bc3a5daa2ce46aad7c230004ade7a404c12f1"},{"sha":"02cb1d4ef1e187494f7f089e114515dc74fabd10","author":{"email":"474ba67bdb289c6263b36dfd8a7bed6c85b04943@aatch.net","name":"James Miller"},"message":"Delete obviously-unreachable blocks\n\nSome blocks won't be translated at all because they aren't reachable at\nthe LLVM level, these need to be dealt with because they lack a\nterminator and therefore trigger an LLVM assertion.\n\nOther blocks aren't reachable because of codegen-time optimistions, for\nexample not dropping types that don't need it, often resulting in blocks\nwith no predecessors. We'll clean those up as well.","distinct":true,"url":"https://api.github.com/repos/nodakai/rust/commits/02cb1d4ef1e187494f7f089e114515dc74fabd10"},{"sha":"6935782b07c1caf2cc78c44faf28cc4cf0658fe8","author":{"email":"474ba67bdb289c6263b36dfd8a7bed6c85b04943@aatch.net","name":"James Miller"},"message":"Add a test","distinct":true,"url":"https://api.github.com/repos/nodakai/rust/commits/6935782b07c1caf2cc78c44faf28cc4cf0658fe8"},{"sha":"63321ca19390535795780ce15991b6238fb67db4","author":{"email":"474ba67bdb289c6263b36dfd8a7bed6c85b04943@aatch.net","name":"James Miller"},"message":"Turn break critical edges into a MIR pass\n\nAlso adds a new set of passes to run just before translation that\n\"prepare\" the MIR for codegen. Removal of landing pads, region erasure\nand break critical edges are run in this pass.\n\nAlso fixes some merge/rebase errors.","distinct":true,"url":"https://api.github.com/repos/nodakai/rust/commits/63321ca19390535795780ce15991b6238fb67db4"},{"sha":"564ec1ae40329d0ab0e09b3902c0f2ba27744544","author":{"email":"eb57605890ead666b3f42952314868032ae8a429@gmail.com","name":"Oliver Middleton"},"message":"Fix a couple of dead links on core::num::ParseFloatError docs","distinct":true,"url":"https://api.github.com/repos/nodakai/rust/commits/564ec1ae40329d0ab0e09b3902c0f2ba27744544"},{"sha":"a14f14f690df0abd9da52b20422199e6bc6f4a51","author":{"email":"1e6f9b3c03ee033074cd747a9c1f4460b59f74d1@gmail.com","name":"Alex Burka"},"message":"add missing spaces in #16758 warning","distinct":true,"url":"https://api.github.com/repos/nodakai/rust/commits/a14f14f690df0abd9da52b20422199e6bc6f4a51"},{"sha":"605bc042646ef0dc0bd6e0420e6bd5a4715c93df","author":{"email":"474ba67bdb289c6263b36dfd8a7bed6c85b04943@aatch.net","name":"James Miller"},"message":"Use a BitVector instead of Vec<bool> for recording cleanup blocks\n\nAlso adds a FromIterator impl for BitVector to allow construction of a\nBitVector from an iterator yeilding bools.","distinct":true,"url":"https://api.github.com/repos/nodakai/rust/commits/605bc042646ef0dc0bd6e0420e6bd5a4715c93df"},{"sha":"c0b8c438203ada8768f2f8ea7c750131744f97ef","author":{"email":"3a2c29237f73c7cf88424b80e427b1884f346b35@rust-lang.org","name":"bors"},"message":"Auto merge of #32210 - Aatch:mir-traversal, r=nikomatsakis\n\nrBreak Critical Edges and other MIR work\n\nThis PR is built on top of #32080.\n\nThis adds the basic depth-first traversals for MIR, preorder, postorder and reverse postorder. The MIR blocks are now translated using reverse postorder. There is also a transform for breaking critical edges, which includes the edges from `invoke`d calls (`Drop` and `Call`), to account for the fact that we can't add code after an `invoke`. It also stops generating the intermediate block (since the transform essentially does it if necessary already).\n\nThe kinds of cases this deals with are difficult to produce, so the test is the one I managed to get. However, it seems to bootstrap with `-Z orbit`, which it didn't before my changes.","distinct":true,"url":"https://api.github.com/repos/nodakai/rust/commits/c0b8c438203ada8768f2f8ea7c750131744f97ef"},{"sha":"9c2186d4d7427deef9d7c40cd34bf915904a6b09","author":{"email":"3a2c29237f73c7cf88424b80e427b1884f346b35@rust-lang.org","name":"bors"},"message":"Auto merge of #32672 - ollie27:patch-5, r=alexcrichton\n\nFix a couple of dead links on core::num::ParseFloatError docs","distinct":true,"url":"https://api.github.com/repos/nodakai/rust/commits/9c2186d4d7427deef9d7c40cd34bf915904a6b09"},{"sha":"f92ce2e9fe56942e0fd6a18d0e11bc4a9bdf8ddd","author":{"email":"3a2c29237f73c7cf88424b80e427b1884f346b35@rust-lang.org","name":"bors"},"message":"Auto merge of #32676 - durka:patch-18, r=alexcrichton\n\nadd missing spaces in #16758 warning\n\nI should probably add a test.","distinct":true,"url":"https://api.github.com/repos/nodakai/rust/commits/f92ce2e9fe56942e0fd6a18d0e11bc4a9bdf8ddd"},{"sha":"ee1582a78c12e052560340643566f401a16fa8a0","author":{"email":"a445972a03eaa731f8b4469e4f864a9a57c01ed3@gmail.com","name":"NODA, Kai"},"message":"Remove unnecesary \"as\" casts.\n\n- \"0 as *mut _\" -> \"ptr::null_mut()\"; and the same goes for ptr::null()\n- Simplify \"0 as c_int\" to \"0\" when the context already expects c_int\n- \"!0 as HANDLE\" -> \"!(0 as HANDLE)\" as the language reference doesn't\n  talk much about integer casting when MSB is set\n- And so on...\n\nSigned-off-by: NODA, Kai <nodakai@gmail.com>","distinct":true,"url":"https://api.github.com/repos/nodakai/rust/commits/ee1582a78c12e052560340643566f401a16fa8a0"}]}