Commit Graph

51637 Commits

Author SHA1 Message Date
Eduard Burtescu
3e98220a1c mir: Translate intrinsics, via old trans where possible. 2016-03-17 21:51:54 +02:00
Eduard Burtescu
ee7687a5e5 mir: Reintroduce the temporary block after invokes, to handle critical edges. 2016-03-17 21:51:54 +02:00
Eduard Burtescu
41fc5f7c2a mir: Trigger closure instantiations when the closure value is created. 2016-03-17 21:51:54 +02:00
Eduard Burtescu
6c551b3766 trans: Load and cache cross-crate Mir instances in the shared context. 2016-03-17 21:51:54 +02:00
Eduard Burtescu
47cd05c8c1 mir: Don't shadow the "args" variable in Call translation. 2016-03-17 21:51:54 +02:00
Eduard Burtescu
9c6bfe4499 mir: Truncate bool to i1 for SwitchInt. 2016-03-17 21:51:54 +02:00
Eduard Burtescu
38638d37f7 trans: Take a &Builder in call_memcpy, like call_memset. 2016-03-17 21:51:54 +02:00
Eduard Burtescu
b63a5eed6e mir: Support RustCall ABI functions. 2016-03-17 21:51:53 +02:00
Eduard Burtescu
92e485874e mir: Load FatPtr constants instead of keeping them indirect. 2016-03-17 21:51:53 +02:00
Eduard Burtescu
eb43d95211 mir: Don't load the discriminant, it's already in immediate form. 2016-03-17 21:51:53 +02:00
Eduard Burtescu
d3a6d67fb8 mir: Don't use ConstVal when adjustments are involved, as they would be lost. 2016-03-17 21:51:53 +02:00
Eduard Burtescu
9cc5ee359a mir: Unsize ConstVal::ByteStr before comparing &[u8] against it. 2016-03-17 21:51:53 +02:00
Eduard Burtescu
ccc5e0732a mir: Ignore noop casts (e.g. when as used for coercion). 2016-03-17 21:51:53 +02:00
Eduard Burtescu
1de6a9682f mir: Don't use ConstVal kinds that contain local NodeId's. 2016-03-17 21:51:53 +02:00
Eduard Burtescu
b38627dafb mir: Use the right form of GEPi for indexing slices vs arrays. 2016-03-17 21:51:53 +02:00
Eduard Burtescu
56417b3732 mir: Monomorphize LvalueTy's of projections. 2016-03-17 21:51:53 +02:00
Eduard Burtescu
f9c06abc21 trans: Simplify "try" intrinsic. 2016-03-17 21:51:53 +02:00
Eduard Burtescu
bffb0decc8 tests: Use arguments in codegen/stores.rs to turn aggregates into immediates. 2016-03-17 21:51:52 +02:00
Eduard Burtescu
6c0674e613 trans: Remove the foreign module. 2016-03-17 21:51:52 +02:00
Eduard Burtescu
aec63821d0 trans: Handle all function setup for all ABIs via FnType. 2016-03-17 21:51:52 +02:00
Eduard Burtescu
bd0a849f3b trans: datum::lvalue_scratch_datum doesn't need a move-into-closure trick. 2016-03-17 21:51:52 +02:00
Eduard Burtescu
03993882d6 trans: Handle calls for all ABIs through FnType. 2016-03-17 21:51:52 +02:00
Eduard Burtescu
9e036c0ff0 trans: Provide the FnType for a direct call via Callee::direct_fn_type. 2016-03-17 21:51:52 +02:00
Eduard Burtescu
80d939fd22 trans: Handle ignored arguments/returns uniformly. 2016-03-17 21:51:52 +02:00
Eduard Burtescu
7454b5c61d trans: Set the calling convention in apply_attrs_callsite. 2016-03-17 21:51:51 +02:00
Eduard Burtescu
77f3484148 trans: Apply all attributes through FnType. 2016-03-17 21:51:51 +02:00
Eduard Burtescu
de5f8244f2 trans: Use llvm::Attributes directly in ArgTy. 2016-03-17 21:51:51 +02:00
Eduard Burtescu
c7172a9935 rustc_llvm: An AttrBuilder that's not completely wasteful. 2016-03-17 21:51:51 +02:00
Eduard Burtescu
763b6cba37 rustc_llvm: Update the Attribute bitflags and remove OtherAttribute. 2016-03-17 21:51:51 +02:00
Eduard Burtescu
1d7c9bd137 trans: use sizing_type_of for interacting with potentially incomplete types. 2016-03-17 21:51:51 +02:00
Eduard Burtescu
d492d09f31 trans: Apply ZExt and StructRet attributes uniformly. 2016-03-17 21:51:51 +02:00
Eduard Burtescu
ac60318cf5 trans: Only mutate ArgTy's in C ABI handling, don't create them. 2016-03-17 21:51:51 +02:00
Eduard Burtescu
03942056aa trans: Handle type_of for Rust fn's via abi::FnType. 2016-03-17 21:51:51 +02:00
Eduard Burtescu
f6bbbe1070 trans: Remove dropflag-unaware type_is_newtype_immediate shortcut. 2016-03-17 21:51:51 +02:00
Eduard Burtescu
cf0ea786ff tests: Force instantiation of extern fns. 2016-03-17 21:51:50 +02:00
Eduard Burtescu
200d001784 trans: Pass fat pointers as two arguments even for FFI. 2016-03-17 21:51:50 +02:00
Eduard Burtescu
3342da4113 trans: Don't treat closure types like function types in declare. 2016-03-17 21:51:50 +02:00
Eduard Burtescu
da66431d06 trans: Combine cabi and back::abi into abi. 2016-03-17 21:51:50 +02:00
Eduard Burtescu
cdfad40735 trans: Condense the fn instantiation logic into callee. 2016-03-17 21:51:47 +02:00
Eduard Burtescu
b05556e06d trans: Rename MonoId to Instance and start using it in more places. 2016-03-17 21:51:32 +02:00
Katze
a6e077ebdf
documentation fix in RELEASES.md
f32 should probably be denoted as 0.0 as it might improve readability.

Signed-off-by: benaryorg <binary@benary.org>
2016-03-17 20:33:01 +01:00
bors
b12b4e4e32 Auto merge of #32294 - Manishearth:derive-fix, r=alexcrichton
Re-add double underscores in derive (fixes #32292)

@durka, sanity-check, please?

<s>Don't merge this yet, I need to add a test and test it locally.</s>

ready for review
2016-03-17 11:08:44 -07:00
Tang Chenglong
79244c3a6b let introduces a statement
I changes *expression* to *statement* to make more accurate, because in Rust, `let` introduces a declaration statement.
2016-03-18 01:17:19 +08:00
Alex Crichton
af65d81490 std: Revert addition of into_ascii_* methods
The addition of these methods in #31335 required adding impls of the trait for
the `String` and `Vec<T>` types. This unfortunately caused a regression (#32074)
in type inference for using these methods which the libs team has decided to not
push forward with. These methods were stabilized in #32020 which was intended to
get backported to beta, but the backport hasn't happened just yet. This commit
reverts both the addition and stabilization of these methods.

One proposed method of handling this, in #32076, was to move the methods to an
extra trait to avoid conflicts with type inference. After some discussion,
however, the libs team concluded that we probably want to reevaluate what we're
doing here, so discussion will continue on the tracking issue, #27809.
2016-03-17 09:39:10 -07:00
Eduard Burtescu
d6e72c48dd trans: Don't store extra copies of intrinsics ID/substs. 2016-03-17 18:19:50 +02:00
Eduard Burtescu
89766a81ef trans: use Cell instead of RefCell where it suffices. 2016-03-17 18:19:50 +02:00
Eduard Burtescu
b122d1636a trans: simplify the declare interface. 2016-03-17 18:19:50 +02:00
Eduard Burtescu
c6d214bdeb trans: Revamp and empower cabi::FnType. 2016-03-17 18:19:50 +02:00
Eduard Burtescu
9221b9118b trans: Pass the Rust type for the closure env in type_of_rust_fn. 2016-03-17 18:19:29 +02:00
Eduard Burtescu
7011e30352 trans: Remove the old ExprOrMethodCall. 2016-03-17 18:19:29 +02:00