summary refs log tree commit diff
path: root/src/librustc_codegen_llvm/mir/rvalue.rs
AgeCommit message (Collapse)AuthorLines
2018-07-05Store scalar pair bools as i8 in memoryJosh Stone-2/+2
We represent `bool` as `i1` in a `ScalarPair`, unlike other aggregates, to optimize IR for checked operators and the like. With this patch, we still do so when the pair is an immediate value, but we use the `i8` memory type when the value is loaded or stored as an LLVM aggregate. So `(bool, bool)` looks like an `{ i1, i1 }` immediate, but `{ i8, i8 }` in memory. When a pair is a direct function argument, `PassMode::Pair`, it is still passed using the immediate `i1` type, but as a return value it will use the `i8` memory type. Also, `bool`-like` enum tags will now use scalar pairs when possible, where they were previously excluded due to optimization issues.
2018-06-16rustc_codegen_llvm: don't treat i1 as signed, even for #[repr(i8)] enums.Eduard-Mihai Burtescu-1/+5
2018-05-17Rename trans to codegen everywhere.Irina Popa-0/+952