Uh oh!
There was an error while loading. Please reload this page.
Improve handling of immediate values - #27600
Conversation
rust-highfive
commented
Aug 8, 2015
r? @jroesch (rust_highfive has picked a reviewer for you, use r? to override) |
There was a problem hiding this comment.
I'd prefer to add that check after the if-else block, so it can be merged with the same one in the else-arm.
dotdash
commented
Aug 8, 2015
👍 I wanted to get rid of the store/load combo for function calls for sooooo long. I'm not sure about the load elision thing. How often / in which situations does that come into play? |
brson
commented
Aug 8, 2015
Neat. Do compile times improve? |
The primary improvement here is to handle function calls that return imemdiate values such that it doesn't force the use of a stack slot. It also avoids loads from slots that have an store to it in the same block. This especially improves the codegen for intrinsics, as most of them produce immediate values.
* Move the "get the value that will definitely be loaded" logic to it's own method to reduce the duplication. * Refactor base::invoke to avoid duplicating the diverging/zero-sized return logic. * Re-add debugging output I accidentally removed * Add some more comments explaining stuff
Aatch
commented
Aug 10, 2015
Updated to address comments. @brson I haven't tested, but my previous attempt at this suggested, no. At least, nothing that isn't covered by noise. The main reason presumably being that |
jroesch
commented
Aug 11, 2015
@Aatch read the patch over and it looks good to me, not sure if you want someone who spends more time in trans to look it over instead, otherwise r=me. |
dotdash
commented
Aug 11, 2015
Manishearth
commented
Aug 11, 2015
bors
commented
Aug 12, 2015
bors
commented
Aug 12, 2015
💔 Test failed - auto-mac-64-nopt-t |
bors
commented
Aug 18, 2015
☔ The latest upstream changes (presumably #27169) made this pull request unmergeable. Please resolve the merge conflicts. |
jroesch
commented
Aug 20, 2015
@Aatch ping, whats the status on this? |
dotdash
commented
Aug 27, 2015
@Aatch Are you ok with me finishing this in a new PR? |
The primary improvement here is to handle function calls that return
imemdiate values such that it doesn't force the use of a stack slot. It
also avoids loads from slots that have an store to it in the same block.
This especially improves the codegen for intrinsics, as most of them
produce immediate values.
cc @rust-lang/compiler